From 2bf7afcf1e6487b531b2cfea03f2c81f03f8819d Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:36:41 +0100
Subject: [PATCH 01/52] build: update to php 8.3
---
README.md | 6 +-
composer.json | 2 +-
composer.lock | 2108 +++++++++++++++++++++++++------------------------
package.json | 3 +-
4 files changed, 1086 insertions(+), 1033 deletions(-)
diff --git a/README.md b/README.md
index 839a8c0a..2f63fb3c 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# DataWiz - Research Data Documentation Assistant

-
-
+
+

-
+
[](https://github.com/leibniz-psychology/datawiz2/actions/workflows/wf-main.yml)
[](http://weblate.zpid.de/engage/datawiz/)
diff --git a/composer.json b/composer.json
index 263160ad..ee7ef8d3 100644
--- a/composer.json
+++ b/composer.json
@@ -4,7 +4,7 @@
"description": "lorem ipsum",
"license": "MIT",
"require": {
- "php": "^8.2",
+ "php": "^8.3",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-json": "*",
diff --git a/composer.lock b/composer.lock
index adfd8861..da74dcef 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": "bf577350bdddfa43a60f92cc4066ffce",
+ "content-hash": "47d58333bdd6ed722b870c7b34f0f107",
"packages": [
{
"name": "composer/package-versions-deprecated",
@@ -81,16 +81,16 @@
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.2",
+ "version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
"shasum": ""
},
"require": {
@@ -150,9 +150,9 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
},
- "time": "2022-10-27T11:44:00+00:00"
+ "time": "2024-07-08T12:26:09+00:00"
},
{
"name": "doctrine/cache",
@@ -249,16 +249,16 @@
},
{
"name": "doctrine/collections",
- "version": "2.1.2",
+ "version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "db8cda536a034337f7dd63febecc713d4957f9ee"
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/db8cda536a034337f7dd63febecc713d4957f9ee",
- "reference": "db8cda536a034337f7dd63febecc713d4957f9ee",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59",
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59",
"shasum": ""
},
"require": {
@@ -266,12 +266,12 @@
"php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^10.0",
+ "doctrine/coding-standard": "^12",
"ext-json": "*",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^4.22"
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.11"
},
"type": "library",
"autoload": {
@@ -315,7 +315,7 @@
],
"support": {
"issues": "https://github.com/doctrine/collections/issues",
- "source": "https://github.com/doctrine/collections/tree/2.1.2"
+ "source": "https://github.com/doctrine/collections/tree/2.2.2"
},
"funding": [
{
@@ -331,24 +331,24 @@
"type": "tidelift"
}
],
- "time": "2022-12-27T23:41:38+00:00"
+ "time": "2024-04-18T06:56:21+00:00"
},
{
"name": "doctrine/common",
- "version": "3.4.3",
+ "version": "3.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
- "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced"
+ "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced",
- "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/d9ea4a54ca2586db781f0265d36bea731ac66ec5",
+ "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5",
"shasum": ""
},
"require": {
- "doctrine/persistence": "^2.0 || ^3.0",
+ "doctrine/persistence": "^2.0 || ^3.0 || ^4.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
@@ -406,7 +406,7 @@
],
"support": {
"issues": "https://github.com/doctrine/common/issues",
- "source": "https://github.com/doctrine/common/tree/3.4.3"
+ "source": "https://github.com/doctrine/common/tree/3.5.0"
},
"funding": [
{
@@ -422,20 +422,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-09T11:47:59+00:00"
+ "time": "2025-01-01T22:12:03+00:00"
},
{
"name": "doctrine/dbal",
- "version": "3.6.4",
+ "version": "3.9.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "19f0dec95edd6a3c3c5ff1d188ea94c6b7fc903f"
+ "reference": "ec16c82f20be1a7224e65ac67144a29199f87959"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/19f0dec95edd6a3c3c5ff1d188ea94c6b7fc903f",
- "reference": "19f0dec95edd6a3c3c5ff1d188ea94c6b7fc903f",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/ec16c82f20be1a7224e65ac67144a29199f87959",
+ "reference": "ec16c82f20be1a7224e65ac67144a29199f87959",
"shasum": ""
},
"require": {
@@ -450,15 +450,14 @@
"require-dev": {
"doctrine/coding-standard": "12.0.0",
"fig/log-test": "^1",
- "jetbrains/phpstorm-stubs": "2022.3",
- "phpstan/phpstan": "1.10.14",
- "phpstan/phpstan-strict-rules": "^1.5",
- "phpunit/phpunit": "9.6.7",
- "psalm/plugin-phpunit": "0.18.4",
- "squizlabs/php_codesniffer": "3.7.2",
- "symfony/cache": "^5.4|^6.0",
- "symfony/console": "^4.4|^5.4|^6.0",
- "vimeo/psalm": "4.30.0"
+ "jetbrains/phpstorm-stubs": "2023.1",
+ "phpstan/phpstan": "2.1.1",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "9.6.22",
+ "slevomat/coding-standard": "8.13.1",
+ "squizlabs/php_codesniffer": "3.10.2",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/console": "^4.4|^5.4|^6.0|^7.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -518,7 +517,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.6.4"
+ "source": "https://github.com/doctrine/dbal/tree/3.9.4"
},
"funding": [
{
@@ -534,33 +533,31 @@
"type": "tidelift"
}
],
- "time": "2023-06-15T07:40:12+00:00"
+ "time": "2025-01-16T08:28:55+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "v1.1.1",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
+ "psr/log": "^1 || ^2 || ^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -568,7 +565,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ "Doctrine\\Deprecations\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -579,64 +576,68 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
},
- "time": "2023-06-03T09:27:29+00:00"
+ "time": "2024-12-07T21:18:45+00:00"
},
{
"name": "doctrine/doctrine-bundle",
- "version": "2.10.1",
+ "version": "2.13.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
- "reference": "f9d59c90b6f525dfc2a2064a695cb56e0ab40311"
+ "reference": "2363c43d9815a11657e452625cd64172d5587486"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f9d59c90b6f525dfc2a2064a695cb56e0ab40311",
- "reference": "f9d59c90b6f525dfc2a2064a695cb56e0ab40311",
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/2363c43d9815a11657e452625cd64172d5587486",
+ "reference": "2363c43d9815a11657e452625cd64172d5587486",
"shasum": ""
},
"require": {
"doctrine/cache": "^1.11 || ^2.0",
- "doctrine/dbal": "^3.6.0",
+ "doctrine/dbal": "^3.7.0 || ^4.0",
"doctrine/persistence": "^2.2 || ^3",
"doctrine/sql-formatter": "^1.0.1",
"php": "^7.4 || ^8.0",
- "symfony/cache": "^5.4 || ^6.0",
- "symfony/config": "^5.4 || ^6.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/dependency-injection": "^5.4 || ^6.0",
+ "symfony/cache": "^5.4 || ^6.0 || ^7.0",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
"symfony/deprecation-contracts": "^2.1 || ^3",
- "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7",
- "symfony/framework-bundle": "^5.4 || ^6.0",
+ "symfony/doctrine-bridge": "^5.4.46 || ~6.3.12 || ^6.4.3 || ^7.0.3",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-php80": "^1.15",
"symfony/service-contracts": "^1.1.1 || ^2.0 || ^3"
},
"conflict": {
"doctrine/annotations": ">=3.0",
- "doctrine/orm": "<2.11 || >=3.0",
+ "doctrine/orm": "<2.17 || >=4.0",
"twig/twig": "<1.34 || >=2.0 <2.4"
},
"require-dev": {
"doctrine/annotations": "^1 || ^2",
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^12",
"doctrine/deprecations": "^1.0",
- "doctrine/orm": "^2.11 || ^3.0",
+ "doctrine/orm": "^2.17 || ^3.0",
"friendsofphp/proxy-manager-lts": "^1.0",
- "phpunit/phpunit": "^9.5.26 || ^10.0",
- "psalm/plugin-phpunit": "^0.18.4",
- "psalm/plugin-symfony": "^4",
+ "phpstan/phpstan": "2.1.1",
+ "phpstan/phpstan-phpunit": "2.0.3",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^9.5.26",
"psr/log": "^1.1.4 || ^2.0 || ^3.0",
- "symfony/phpunit-bridge": "^6.1",
- "symfony/property-info": "^5.4 || ^6.0",
+ "symfony/phpunit-bridge": "^6.1 || ^7.0",
+ "symfony/property-info": "^5.4 || ^6.0 || ^7.0",
"symfony/proxy-manager-bridge": "^5.4 || ^6.0",
- "symfony/security-bundle": "^5.4 || ^6.0",
- "symfony/twig-bridge": "^5.4 || ^6.0",
- "symfony/validator": "^5.4 || ^6.0",
- "symfony/web-profiler-bundle": "^5.4 || ^6.0",
- "symfony/yaml": "^5.4 || ^6.0",
- "twig/twig": "^1.34 || ^2.12 || ^3.0",
- "vimeo/psalm": "^4.30"
+ "symfony/security-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0",
+ "symfony/string": "^5.4 || ^6.0 || ^7.0",
+ "symfony/twig-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/validator": "^5.4 || ^6.0 || ^7.0",
+ "symfony/var-exporter": "^5.4 || ^6.2 || ^7.0",
+ "symfony/web-profiler-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "twig/twig": "^1.34 || ^2.12 || ^3.0"
},
"suggest": {
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
@@ -646,7 +647,7 @@
"type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Doctrine\\Bundle\\DoctrineBundle\\": ""
+ "Doctrine\\Bundle\\DoctrineBundle\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -681,7 +682,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineBundle/issues",
- "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.1"
+ "source": "https://github.com/doctrine/DoctrineBundle/tree/2.13.2"
},
"funding": [
{
@@ -697,47 +698,48 @@
"type": "tidelift"
}
],
- "time": "2023-06-28T07:47:41+00:00"
+ "time": "2025-01-15T11:12:38+00:00"
},
{
"name": "doctrine/doctrine-migrations-bundle",
- "version": "3.2.4",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
- "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e"
+ "reference": "a5c5fe0d2c6b911c03555046febb05a05a347078"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e",
- "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e",
+ "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/a5c5fe0d2c6b911c03555046febb05a05a347078",
+ "reference": "a5c5fe0d2c6b911c03555046febb05a05a347078",
"shasum": ""
},
"require": {
- "doctrine/doctrine-bundle": "~1.0|~2.0",
+ "doctrine/doctrine-bundle": "^2.4",
"doctrine/migrations": "^3.2",
- "php": "^7.2|^8.0",
- "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0"
+ "php": "^7.2 || ^8.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "doctrine/orm": "^2.6",
- "doctrine/persistence": "^1.3||^2.0",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1",
- "phpstan/phpstan-strict-rules": "^1.1",
- "phpunit/phpunit": "^8.5|^9.5",
- "vimeo/psalm": "^4.22"
+ "composer/semver": "^3.0",
+ "doctrine/coding-standard": "^12",
+ "doctrine/orm": "^2.6 || ^3",
+ "doctrine/persistence": "^2.0 || ^3",
+ "phpstan/phpstan": "^1.4 || ^2",
+ "phpstan/phpstan-deprecation-rules": "^1 || ^2",
+ "phpstan/phpstan-phpunit": "^1 || ^2",
+ "phpstan/phpstan-strict-rules": "^1.1 || ^2",
+ "phpstan/phpstan-symfony": "^1.3 || ^2",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "symfony/phpunit-bridge": "^6.3 || ^7",
+ "symfony/var-exporter": "^5.4 || ^6 || ^7"
},
"type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Doctrine\\Bundle\\MigrationsBundle\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Doctrine\\Bundle\\MigrationsBundle\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -766,7 +768,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues",
- "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.4"
+ "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.4.0"
},
"funding": [
{
@@ -782,20 +784,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-02T08:19:26+00:00"
+ "time": "2025-01-16T20:28:10+00:00"
},
{
"name": "doctrine/event-manager",
- "version": "2.0.0",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
+ "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e",
+ "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e",
"shasum": ""
},
"require": {
@@ -805,10 +807,10 @@
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^12",
"phpstan/phpstan": "^1.8.8",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^4.28"
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.24"
},
"type": "library",
"autoload": {
@@ -857,7 +859,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
+ "source": "https://github.com/doctrine/event-manager/tree/2.0.1"
},
"funding": [
{
@@ -873,20 +875,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-12T20:59:15+00:00"
+ "time": "2024-05-22T20:47:39+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.8",
+ "version": "2.0.10",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
@@ -948,7 +950,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.8"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -964,7 +966,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-16T13:40:37+00:00"
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/instantiator",
@@ -1038,28 +1040,27 @@
},
{
"name": "doctrine/lexer",
- "version": "2.1.0",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"shasum": ""
},
"require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
"psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.0"
+ "vimeo/psalm": "^5.21"
},
"type": "library",
"autoload": {
@@ -1096,7 +1097,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/2.1.0"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
},
"funding": [
{
@@ -1112,51 +1113,52 @@
"type": "tidelift"
}
],
- "time": "2022-12-14T08:49:07+00:00"
+ "time": "2024-02-05T11:56:58+00:00"
},
{
"name": "doctrine/migrations",
- "version": "3.6.0",
+ "version": "3.8.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
- "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059"
+ "reference": "5007eb1168691225ac305fe16856755c20860842"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/migrations/zipball/e542ad8bcd606d7a18d0875babb8a6d963c9c059",
- "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059",
+ "url": "https://api.github.com/repos/doctrine/migrations/zipball/5007eb1168691225ac305fe16856755c20860842",
+ "reference": "5007eb1168691225ac305fe16856755c20860842",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
- "doctrine/dbal": "^3.5.1",
+ "doctrine/dbal": "^3.6 || ^4",
"doctrine/deprecations": "^0.5.3 || ^1",
"doctrine/event-manager": "^1.2 || ^2.0",
"php": "^8.1",
"psr/log": "^1.1.3 || ^2 || ^3",
- "symfony/console": "^4.4.16 || ^5.4 || ^6.0",
- "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0",
- "symfony/var-exporter": "^6.2"
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0",
+ "symfony/var-exporter": "^6.2 || ^7.0"
},
"conflict": {
- "doctrine/orm": "<2.12"
+ "doctrine/orm": "<2.12 || >=4"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "doctrine/orm": "^2.13",
+ "doctrine/coding-standard": "^12",
+ "doctrine/orm": "^2.13 || ^3",
"doctrine/persistence": "^2 || ^3",
"doctrine/sql-formatter": "^1.0",
"ext-pdo_sqlite": "*",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.1",
- "phpstan/phpstan-symfony": "^1.1",
- "phpunit/phpunit": "^9.5.24",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "symfony/process": "^4.4 || ^5.4 || ^6.0",
- "symfony/yaml": "^4.4 || ^5.4 || ^6.0"
+ "fig/log-test": "^1",
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-deprecation-rules": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpstan/phpstan-symfony": "^1.3",
+ "phpunit/phpunit": "^10.3",
+ "symfony/cache": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.",
@@ -1168,7 +1170,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
+ "Doctrine\\Migrations\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1198,7 +1200,7 @@
],
"support": {
"issues": "https://github.com/doctrine/migrations/issues",
- "source": "https://github.com/doctrine/migrations/tree/3.6.0"
+ "source": "https://github.com/doctrine/migrations/tree/3.8.2"
},
"funding": [
{
@@ -1214,20 +1216,20 @@
"type": "tidelift"
}
],
- "time": "2023-02-15T18:49:46+00:00"
+ "time": "2024-10-10T21:35:27+00:00"
},
{
"name": "doctrine/orm",
- "version": "2.15.3",
+ "version": "2.20.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "4c3bd208018c26498e5f682aaad45fa00ea307d5"
+ "reference": "e3cabade99ebccc6ba078884c1c5f250866a494e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/4c3bd208018c26498e5f682aaad45fa00ea307d5",
- "reference": "4c3bd208018c26498e5f682aaad45fa00ea307d5",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/e3cabade99ebccc6ba078884c1c5f250866a494e",
+ "reference": "e3cabade99ebccc6ba078884c1c5f250866a494e",
"shasum": ""
},
"require": {
@@ -1240,12 +1242,12 @@
"doctrine/event-manager": "^1.2 || ^2",
"doctrine/inflector": "^1.4 || ^2.0",
"doctrine/instantiator": "^1.3 || ^2",
- "doctrine/lexer": "^2",
+ "doctrine/lexer": "^2 || ^3",
"doctrine/persistence": "^2.4 || ^3",
"ext-ctype": "*",
"php": "^7.1 || ^8.0",
"psr/cache": "^1 || ^2 || ^3",
- "symfony/console": "^4.2 || ^5.0 || ^6.0",
+ "symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0",
"symfony/polyfill-php72": "^1.23",
"symfony/polyfill-php80": "^1.16"
},
@@ -1256,14 +1258,15 @@
"doctrine/annotations": "^1.13 || ^2",
"doctrine/coding-standard": "^9.0.2 || ^12.0",
"phpbench/phpbench": "^0.16.10 || ^1.0",
- "phpstan/phpstan": "~1.4.10 || 1.10.18",
+ "phpstan/extension-installer": "~1.1.0 || ^1.4",
+ "phpstan/phpstan": "~1.4.10 || 2.0.3",
+ "phpstan/phpstan-deprecation-rules": "^1 || ^2",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
"psr/log": "^1 || ^2 || ^3",
"squizlabs/php_codesniffer": "3.7.2",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2",
- "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
- "vimeo/psalm": "4.30.0 || 5.12.0"
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0",
+ "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"suggest": {
"ext-dom": "Provides support for XSD validation for XML mapping files",
@@ -1276,7 +1279,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\ORM\\": "lib/Doctrine/ORM"
+ "Doctrine\\ORM\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1313,22 +1316,22 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
- "source": "https://github.com/doctrine/orm/tree/2.15.3"
+ "source": "https://github.com/doctrine/orm/tree/2.20.1"
},
- "time": "2023-06-22T12:36:06+00:00"
+ "time": "2024-12-19T06:48:36+00:00"
},
{
"name": "doctrine/persistence",
- "version": "3.2.0",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
- "reference": "63fee8c33bef740db6730eb2a750cd3da6495603"
+ "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/persistence/zipball/63fee8c33bef740db6730eb2a750cd3da6495603",
- "reference": "63fee8c33bef740db6730eb2a750cd3da6495603",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/0ea965320cec355dba75031c1b23d4c78362e3ff",
+ "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff",
"shasum": ""
},
"require": {
@@ -1340,15 +1343,13 @@
"doctrine/common": "<2.10"
},
"require-dev": {
- "composer/package-versions-deprecated": "^1.11",
- "doctrine/coding-standard": "^11",
+ "doctrine/coding-standard": "^12",
"doctrine/common": "^3.0",
- "phpstan/phpstan": "1.9.4",
+ "phpstan/phpstan": "1.12.7",
"phpstan/phpstan-phpunit": "^1",
"phpstan/phpstan-strict-rules": "^1.1",
- "phpunit/phpunit": "^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "vimeo/psalm": "4.30.0 || 5.3.0"
+ "phpunit/phpunit": "^8.5.38 || ^9.5",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0"
},
"type": "library",
"autoload": {
@@ -1397,7 +1398,7 @@
],
"support": {
"issues": "https://github.com/doctrine/persistence/issues",
- "source": "https://github.com/doctrine/persistence/tree/3.2.0"
+ "source": "https://github.com/doctrine/persistence/tree/3.4.0"
},
"funding": [
{
@@ -1413,27 +1414,31 @@
"type": "tidelift"
}
],
- "time": "2023-05-17T18:32:04+00:00"
+ "time": "2024-10-30T19:48:12+00:00"
},
{
"name": "doctrine/sql-formatter",
- "version": "1.1.3",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/sql-formatter.git",
- "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5"
+ "reference": "b784cbde727cf806721451dde40eff4fec3bbe86"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/25a06c7bf4c6b8218f47928654252863ffc890a5",
- "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5",
+ "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/b784cbde727cf806721451dde40eff4fec3bbe86",
+ "reference": "b784cbde727cf806721451dde40eff4fec3bbe86",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4"
+ "doctrine/coding-standard": "^12",
+ "ergebnis/phpunit-slow-test-detector": "^2.14",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.24"
},
"bin": [
"bin/sql-formatter"
@@ -1463,32 +1468,32 @@
],
"support": {
"issues": "https://github.com/doctrine/sql-formatter/issues",
- "source": "https://github.com/doctrine/sql-formatter/tree/1.1.3"
+ "source": "https://github.com/doctrine/sql-formatter/tree/1.5.1"
},
- "time": "2022-05-23T21:33:49+00:00"
+ "time": "2024-10-21T18:21:57+00:00"
},
{
"name": "firebase/php-jwt",
- "version": "v6.8.0",
+ "version": "v6.10.2",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
- "reference": "48b0210c51718d682e53210c24d25c5a10a2299b"
+ "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/48b0210c51718d682e53210c24d25c5a10a2299b",
- "reference": "48b0210c51718d682e53210c24d25c5a10a2299b",
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
+ "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
"shasum": ""
},
"require": {
- "php": "^7.4||^8.0"
+ "php": "^8.0"
},
"require-dev": {
- "guzzlehttp/guzzle": "^6.5||^7.4",
+ "guzzlehttp/guzzle": "^7.4",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5",
- "psr/cache": "^1.0||^2.0",
+ "psr/cache": "^2.0||^3.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0"
},
@@ -1526,28 +1531,28 @@
],
"support": {
"issues": "https://github.com/firebase/php-jwt/issues",
- "source": "https://github.com/firebase/php-jwt/tree/v6.8.0"
+ "source": "https://github.com/firebase/php-jwt/tree/v6.10.2"
},
- "time": "2023-06-20T16:45:35+00:00"
+ "time": "2024-11-24T11:22:49+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.7.0",
+ "version": "7.9.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
- "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0",
- "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -1556,11 +1561,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "guzzle/client-integration-tests": "3.0.2",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1638,7 +1643,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.7.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
},
"funding": [
{
@@ -1654,28 +1659,28 @@
"type": "tidelift"
}
],
- "time": "2023-05-21T14:04:53+00:00"
+ "time": "2024-07-24T11:22:20+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.0",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6"
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6",
- "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"type": "library",
"extra": {
@@ -1721,7 +1726,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.0"
+ "source": "https://github.com/guzzle/promises/tree/2.0.4"
},
"funding": [
{
@@ -1737,20 +1742,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-21T13:50:22+00:00"
+ "time": "2024-10-17T10:06:22+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.5.0",
+ "version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "b635f279edd83fc275f822a1188157ffea568ff6"
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6",
- "reference": "b635f279edd83fc275f822a1188157ffea568ff6",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
"shasum": ""
},
"require": {
@@ -1764,9 +1769,9 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -1837,7 +1842,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.5.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.7.0"
},
"funding": [
{
@@ -1853,36 +1858,35 @@
"type": "tidelift"
}
],
- "time": "2023-04-17T16:11:26+00:00"
+ "time": "2024-07-18T11:15:46+00:00"
},
{
"name": "knpuniversity/oauth2-client-bundle",
- "version": "v2.15.0",
+ "version": "v2.18.3",
"source": {
"type": "git",
"url": "https://github.com/knpuniversity/oauth2-client-bundle.git",
- "reference": "9df0736d02eb20b953ec8e9986743611747d9ed9"
+ "reference": "c38ca88a70aae3694ca346a41b13b9a8f6e33ed4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/9df0736d02eb20b953ec8e9986743611747d9ed9",
- "reference": "9df0736d02eb20b953ec8e9986743611747d9ed9",
+ "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/c38ca88a70aae3694ca346a41b13b9a8f6e33ed4",
+ "reference": "c38ca88a70aae3694ca346a41b13b9a8f6e33ed4",
"shasum": ""
},
"require": {
"league/oauth2-client": "^2.0",
- "php": ">=7.4",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/framework-bundle": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0"
+ "php": ">=8.1",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/framework-bundle": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0"
},
"require-dev": {
"league/oauth2-facebook": "^1.1|^2.0",
- "phpstan/phpstan": "^0.12",
- "symfony/phpunit-bridge": "^5.3.1|^6.0",
- "symfony/security-guard": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
+ "symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
+ "symfony/security-guard": "^5.4",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"suggest": {
"symfony/security-guard": "For integration with Symfony's Guard Security layer"
@@ -1911,22 +1915,22 @@
],
"support": {
"issues": "https://github.com/knpuniversity/oauth2-client-bundle/issues",
- "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.15.0"
+ "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.18.3"
},
- "time": "2023-05-03T16:44:38+00:00"
+ "time": "2024-10-02T14:26:09+00:00"
},
{
"name": "league/commonmark",
- "version": "2.4.0",
+ "version": "2.6.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048"
+ "reference": "d990688c91cedfb69753ffc2512727ec646df2ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
- "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad",
+ "reference": "d990688c91cedfb69753ffc2512727ec646df2ad",
"shasum": ""
},
"require": {
@@ -1939,8 +1943,8 @@
},
"require-dev": {
"cebe/markdown": "^1.0",
- "commonmark/cmark": "0.30.0",
- "commonmark/commonmark.js": "0.30.0",
+ "commonmark/cmark": "0.31.1",
+ "commonmark/commonmark.js": "0.31.1",
"composer/package-versions-deprecated": "^1.8",
"embed/embed": "^4.4",
"erusev/parsedown": "^1.0",
@@ -1949,10 +1953,11 @@
"michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.21",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
"scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3 | ^6.0",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+ "symfony/finder": "^5.3 | ^6.0 | ^7.0",
+ "symfony/process": "^5.4 | ^6.0 | ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
"unleashedtech/php-coding-standard": "^3.1.1",
"vimeo/psalm": "^4.24.0 || ^5.0.0"
},
@@ -1962,7 +1967,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "2.7-dev"
}
},
"autoload": {
@@ -2019,7 +2024,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-24T15:16:10+00:00"
+ "time": "2024-12-29T14:10:59+00:00"
},
{
"name": "league/config",
@@ -2105,38 +2110,38 @@
},
{
"name": "league/csv",
- "version": "9.9.0",
+ "version": "9.21.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
- "reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b"
+ "reference": "72196d11ebba22d868954cb39c0c7346207430cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/csv/zipball/b4418ede47fbd88facc34e40a16c8ce9153b961b",
- "reference": "b4418ede47fbd88facc34e40a16c8ce9153b961b",
+ "url": "https://api.github.com/repos/thephpleague/csv/zipball/72196d11ebba22d868954cb39c0c7346207430cc",
+ "reference": "72196d11ebba22d868954cb39c0c7346207430cc",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-mbstring": "*",
+ "ext-filter": "*",
"php": "^8.1.2"
},
"require-dev": {
- "doctrine/collections": "^2.1.2",
"ext-dom": "*",
"ext-xdebug": "*",
- "friendsofphp/php-cs-fixer": "^v3.14.3",
- "phpbench/phpbench": "^1.2.8",
- "phpstan/phpstan": "^1.10.4",
- "phpstan/phpstan-deprecation-rules": "^1.1.2",
- "phpstan/phpstan-phpunit": "^1.3.10",
- "phpstan/phpstan-strict-rules": "^1.5.0",
- "phpunit/phpunit": "^10.0.14"
+ "friendsofphp/php-cs-fixer": "^3.64.0",
+ "phpbench/phpbench": "^1.3.1",
+ "phpstan/phpstan": "^1.12.11",
+ "phpstan/phpstan-deprecation-rules": "^1.2.1",
+ "phpstan/phpstan-phpunit": "^1.4.1",
+ "phpstan/phpstan-strict-rules": "^1.6.1",
+ "phpunit/phpunit": "^10.5.16 || ^11.4.3",
+ "symfony/var-dumper": "^6.4.8 || ^7.1.8"
},
"suggest": {
"ext-dom": "Required to use the XMLConverter and the HTMLConverter classes",
- "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters"
+ "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters",
+ "ext-mbstring": "Needed to ease transcoding CSV using mb stream filters"
},
"type": "library",
"extra": {
@@ -2149,7 +2154,7 @@
"src/functions_include.php"
],
"psr-4": {
- "League\\Csv\\": "src"
+ "League\\Csv\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2188,20 +2193,20 @@
"type": "github"
}
],
- "time": "2023-03-11T15:57:12+00:00"
+ "time": "2025-01-08T19:27:58+00:00"
},
{
"name": "league/flysystem",
- "version": "3.15.1",
+ "version": "3.29.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "a141d430414fcb8bf797a18716b09f759a385bed"
+ "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed",
- "reference": "a141d430414fcb8bf797a18716b09f759a385bed",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319",
+ "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319",
"shasum": ""
},
"require": {
@@ -2210,6 +2215,8 @@
"php": "^8.0.2"
},
"conflict": {
+ "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",
@@ -2217,20 +2224,23 @@
"symfony/http-client": "<5.2"
},
"require-dev": {
- "async-aws/s3": "^1.5",
- "async-aws/simple-s3": "^1.1",
- "aws/aws-sdk-php": "^3.220.0",
+ "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",
"ext-zip": "*",
"friendsofphp/php-cs-fixer": "^3.5",
"google/cloud-storage": "^1.23",
+ "guzzlehttp/psr7": "^2.6",
"microsoft/azure-storage-blob": "^1.1",
- "phpseclib/phpseclib": "^3.0.14",
- "phpstan/phpstan": "^0.12.26",
- "phpunit/phpunit": "^9.5.11",
- "sabre/dav": "^4.3.1"
+ "mongodb/mongodb": "^1.2",
+ "phpseclib/phpseclib": "^3.0.36",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.5.11|^10.0",
+ "sabre/dav": "^4.6.0"
},
"type": "library",
"autoload": {
@@ -2264,32 +2274,22 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.15.1"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.29.1"
},
- "funding": [
- {
- "url": "https://ecologi.com/frankdejonge",
- "type": "custom"
- },
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- }
- ],
- "time": "2023-05-04T09:04:26+00:00"
+ "time": "2024-10-08T08:58:34+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.15.0",
+ "version": "3.29.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3"
+ "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3",
- "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27",
+ "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27",
"shasum": ""
},
"require": {
@@ -2323,43 +2323,32 @@
"local"
],
"support": {
- "issues": "https://github.com/thephpleague/flysystem-local/issues",
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0"
},
- "funding": [
- {
- "url": "https://ecologi.com/frankdejonge",
- "type": "custom"
- },
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- }
- ],
- "time": "2023-05-02T20:02:14+00:00"
+ "time": "2024-08-09T21:24:39+00:00"
},
{
"name": "league/mime-type-detection",
- "version": "1.11.0",
+ "version": "1.16.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd"
+ "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
- "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9",
+ "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9",
"shasum": ""
},
"require": {
"ext-fileinfo": "*",
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.2",
"phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3"
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
},
"type": "library",
"autoload": {
@@ -2380,7 +2369,7 @@
"description": "Mime-type detection for Flysystem",
"support": {
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0"
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0"
},
"funding": [
{
@@ -2392,39 +2381,34 @@
"type": "tidelift"
}
],
- "time": "2022-04-17T13:12:02+00:00"
+ "time": "2024-09-21T08:32:55+00:00"
},
{
"name": "league/oauth2-client",
- "version": "2.7.0",
+ "version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-client.git",
- "reference": "160d6274b03562ebeb55ed18399281d8118b76c8"
+ "reference": "3d5cf8d0543731dfb725ab30e4d7289891991e13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/160d6274b03562ebeb55ed18399281d8118b76c8",
- "reference": "160d6274b03562ebeb55ed18399281d8118b76c8",
+ "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/3d5cf8d0543731dfb725ab30e4d7289891991e13",
+ "reference": "3d5cf8d0543731dfb725ab30e4d7289891991e13",
"shasum": ""
},
"require": {
- "guzzlehttp/guzzle": "^6.0 || ^7.0",
- "paragonie/random_compat": "^1 || ^2 || ^9.99",
- "php": "^5.6 || ^7.0 || ^8.0"
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "php": "^7.1 || >=8.0.0 <8.5.0"
},
"require-dev": {
"mockery/mockery": "^1.3.5",
- "php-parallel-lint/php-parallel-lint": "^1.3.1",
- "phpunit/phpunit": "^5.7 || ^6.0 || ^9.5",
- "squizlabs/php_codesniffer": "^2.3 || ^3.0"
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
+ "squizlabs/php_codesniffer": "^3.11"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"League\\OAuth2\\Client\\": "src/"
@@ -2460,22 +2444,22 @@
],
"support": {
"issues": "https://github.com/thephpleague/oauth2-client/issues",
- "source": "https://github.com/thephpleague/oauth2-client/tree/2.7.0"
+ "source": "https://github.com/thephpleague/oauth2-client/tree/2.8.0"
},
- "time": "2023-04-16T18:19:15+00:00"
+ "time": "2024-12-11T05:05:52+00:00"
},
{
"name": "monolog/monolog",
- "version": "3.4.0",
+ "version": "3.8.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "e2392369686d420ca32df3803de28b5d6f76867d"
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d",
- "reference": "e2392369686d420ca32df3803de28b5d6f76867d",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
"shasum": ""
},
"require": {
@@ -2495,12 +2479,14 @@
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.4",
- "phpunit/phpunit": "^10.1",
+ "php-console/php-console": "^3.1.8",
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^10.5.17 || ^11.0.7",
"predis/predis": "^1.1 || ^2",
- "ruflin/elastica": "^7",
+ "rollbar/rollbar": "^4.0",
+ "ruflin/elastica": "^7 || ^8",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
@@ -2551,7 +2537,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/3.4.0"
+ "source": "https://github.com/Seldaek/monolog/tree/3.8.1"
},
"funding": [
{
@@ -2563,35 +2549,35 @@
"type": "tidelift"
}
],
- "time": "2023-06-21T08:46:11+00:00"
+ "time": "2024-12-05T17:15:07+00:00"
},
{
"name": "nette/schema",
- "version": "v1.2.3",
+ "version": "v1.3.2",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
+ "reference": "da801d52f0354f70a638673c4a0f04e16529431d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
- "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+ "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d",
+ "reference": "da801d52f0354f70a638673c4a0f04e16529431d",
"shasum": ""
},
"require": {
- "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": ">=7.1 <8.3"
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.4"
},
"require-dev": {
- "nette/tester": "^2.3 || ^2.4",
+ "nette/tester": "^2.5.2",
"phpstan/phpstan-nette": "^1.0",
- "tracy/tracy": "^2.7"
+ "tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.3-dev"
}
},
"autoload": {
@@ -2623,26 +2609,26 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.3"
+ "source": "https://github.com/nette/schema/tree/v1.3.2"
},
- "time": "2022-10-13T01:24:26+00:00"
+ "time": "2024-10-06T23:10:23+00:00"
},
{
"name": "nette/utils",
- "version": "v4.0.0",
+ "version": "v4.0.5",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e"
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e",
- "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e",
+ "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
"shasum": ""
},
"require": {
- "php": ">=8.0 <8.3"
+ "php": "8.0 - 8.4"
},
"conflict": {
"nette/finder": "<3",
@@ -2650,7 +2636,7 @@
},
"require-dev": {
"jetbrains/phpstorm-attributes": "dev-master",
- "nette/tester": "^2.4",
+ "nette/tester": "^2.5",
"phpstan/phpstan": "^1.0",
"tracy/tracy": "^2.9"
},
@@ -2660,8 +2646,7 @@
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
- "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
- "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
},
"type": "library",
"extra": {
@@ -2710,31 +2695,33 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.0"
+ "source": "https://github.com/nette/utils/tree/v4.0.5"
},
- "time": "2023-02-02T10:41:53+00:00"
+ "time": "2024-08-07T15:39:19+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.16.0",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.0"
},
"bin": [
"bin/php-parse"
@@ -2742,7 +2729,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -2766,34 +2753,34 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
},
- "time": "2023-06-25T14:52:30+00:00"
+ "time": "2024-12-30T11:07:19+00:00"
},
{
"name": "oneup/flysystem-bundle",
- "version": "4.8.0",
+ "version": "4.12.3",
"source": {
"type": "git",
"url": "https://github.com/1up-lab/OneupFlysystemBundle.git",
- "reference": "85d2928bfc8e0c1e68a3e6c0e5a122872ed125a0"
+ "reference": "23d7186524a9c6236662c452891b1175cb193777"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/1up-lab/OneupFlysystemBundle/zipball/85d2928bfc8e0c1e68a3e6c0e5a122872ed125a0",
- "reference": "85d2928bfc8e0c1e68a3e6c0e5a122872ed125a0",
+ "url": "https://api.github.com/repos/1up-lab/OneupFlysystemBundle/zipball/23d7186524a9c6236662c452891b1175cb193777",
+ "reference": "23d7186524a9c6236662c452891b1175cb193777",
"shasum": ""
},
"require": {
"league/flysystem": "^2.0 || ^3.0",
- "php": "^8.0",
- "symfony/config": "^4.4 || ^5.3 || ^6.0",
- "symfony/dependency-injection": "^4.4 || ^5.3 || ^6.0",
- "symfony/http-kernel": "^4.4 || ^5.3 || ^6.0"
+ "php": "^8.1",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"ext-simplexml": "*",
- "friendsofphp/php-cs-fixer": "^2.16 || ^3.5",
+ "friendsofphp/php-cs-fixer": "^3.51",
"league/flysystem-async-aws-s3": "^2.0 || ^3.0",
"league/flysystem-aws-s3-v3": "^2.0 || ^3.0",
"league/flysystem-azure-blob-storage": "^3.0",
@@ -2801,17 +2788,16 @@
"league/flysystem-google-cloud-storage": "^2.0 || ^3.0",
"league/flysystem-memory": "^2.0 || ^3.0",
"league/flysystem-sftp-v3": "^2.0 || ^3.0",
- "phpstan/phpstan": "^1.4",
- "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.6.17",
"royvoetman/flysystem-gitlab-storage": "^2.0 || ^3.0",
- "symfony/asset": "^4.4 || ^5.3 || ^6.0",
- "symfony/browser-kit": "^4.4 || ^5.3 || ^6.0",
- "symfony/finder": "^4.4 || ^5.3 || ^6.0",
- "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0",
- "symfony/phpunit-bridge": "^6.0",
- "symfony/templating": "^4.4 || ^5.3 || ^6.0",
- "symfony/translation": "^4.4 || ^5.3 || ^6.0",
- "symfony/yaml": "^4.4 || ^5.3 || ^6.0"
+ "symfony/asset": "^5.4 || ^6.0 || ^7.0",
+ "symfony/browser-kit": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^7.0",
+ "symfony/translation": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"ext-fileinfo": "Required for MimeType",
@@ -2856,9 +2842,9 @@
],
"support": {
"issues": "https://github.com/1up-lab/OneupFlysystemBundle/issues",
- "source": "https://github.com/1up-lab/OneupFlysystemBundle/tree/4.8.0"
+ "source": "https://github.com/1up-lab/OneupFlysystemBundle/tree/4.12.3"
},
- "time": "2023-06-12T08:51:10+00:00"
+ "time": "2024-10-15T06:27:06+00:00"
},
{
"name": "oneup/uploader-bundle",
@@ -3156,16 +3142,16 @@
},
{
"name": "psr/http-client",
- "version": "1.0.2",
+ "version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
- "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
- "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
"shasum": ""
},
"require": {
@@ -3202,26 +3188,26 @@
"psr-18"
],
"support": {
- "source": "https://github.com/php-fig/http-client/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-client"
},
- "time": "2023-04-10T20:12:12+00:00"
+ "time": "2023-09-23T14:17:50+00:00"
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -3245,7 +3231,7 @@
"homepage": "https://www.php-fig.org/"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -3257,9 +3243,9 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
@@ -3372,16 +3358,16 @@
},
{
"name": "psr/log",
- "version": "3.0.0",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@@ -3416,9 +3402,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/3.0.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
},
- "time": "2021-07-14T16:46:02+00:00"
+ "time": "2024-09-11T13:17:53+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3527,16 +3513,16 @@
},
{
"name": "symfony/asset",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset.git",
- "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c"
+ "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset/zipball/b77a4cc8e266b7e0db688de740f9ee7253aa411c",
- "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/a579e67adaa9586a007abd1b6faf97296eef08ec",
+ "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec",
"shasum": ""
},
"require": {
@@ -3576,7 +3562,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset/tree/v6.3.0"
+ "source": "https://github.com/symfony/asset/tree/v6.3.12"
},
"funding": [
{
@@ -3592,20 +3578,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T14:41:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/cache",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "52cff7608ef6e38376ac11bd1fbb0a220107f066"
+ "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/52cff7608ef6e38376ac11bd1fbb0a220107f066",
- "reference": "52cff7608ef6e38376ac11bd1fbb0a220107f066",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/d085eedf33550ce014230bc51fca8df726ed7ac5",
+ "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5",
"shasum": ""
},
"require": {
@@ -3614,7 +3600,7 @@
"psr/log": "^1.1|^2|^3",
"symfony/cache-contracts": "^2.5|^3",
"symfony/service-contracts": "^2.5|^3",
- "symfony/var-exporter": "^6.2.10"
+ "symfony/var-exporter": "^6.3.6"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
@@ -3629,7 +3615,7 @@
},
"require-dev": {
"cache/integration-tests": "dev-master",
- "doctrine/dbal": "^2.13.1|^3.0",
+ "doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
"symfony/config": "^5.4|^6.0",
@@ -3672,7 +3658,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v6.3.1"
+ "source": "https://github.com/symfony/cache/tree/v6.3.12"
},
"funding": [
{
@@ -3688,20 +3674,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T11:51:27+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b"
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b",
- "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
"shasum": ""
},
"require": {
@@ -3710,12 +3696,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -3748,7 +3734,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3764,20 +3750,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/clock",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "2c72817f85cbdd0ae4e49643514a889004934296"
+ "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/2c72817f85cbdd0ae4e49643514a889004934296",
- "reference": "2c72817f85cbdd0ae4e49643514a889004934296",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b0fd66f03a9afb104a8def4e893fa96e1699c39b",
+ "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b",
"shasum": ""
},
"require": {
@@ -3821,7 +3807,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v6.3.1"
+ "source": "https://github.com/symfony/clock/tree/v6.3.12"
},
"funding": [
{
@@ -3837,20 +3823,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-08T23:46:55+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/config",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae"
+ "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/a5e00dec161b08c946a2c16eed02adbeedf827ae",
- "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae",
+ "url": "https://api.github.com/repos/symfony/config/zipball/66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
+ "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
"shasum": ""
},
"require": {
@@ -3896,7 +3882,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.3.0"
+ "source": "https://github.com/symfony/config/tree/v6.3.12"
},
"funding": [
{
@@ -3912,20 +3898,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-25T10:46:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/console",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7"
+ "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7",
- "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7",
+ "url": "https://api.github.com/repos/symfony/console/zipball/6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
+ "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
"shasum": ""
},
"require": {
@@ -3986,7 +3972,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.3.0"
+ "source": "https://github.com/symfony/console/tree/v6.3.12"
},
"funding": [
{
@@ -4002,20 +3988,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-29T12:49:39+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/debug-bundle",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
- "reference": "02fe831f7cdd472c561116189bcc30d0759665e7"
+ "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/02fe831f7cdd472c561116189bcc30d0759665e7",
- "reference": "02fe831f7cdd472c561116189bcc30d0759665e7",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
+ "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
"shasum": ""
},
"require": {
@@ -4060,7 +4046,7 @@
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug-bundle/tree/v6.3.0"
+ "source": "https://github.com/symfony/debug-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -4076,20 +4062,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-25T12:58:06+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "7abf242af21f196b65f20ab00ff251fdf3889b8d"
+ "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7abf242af21f196b65f20ab00ff251fdf3889b8d",
- "reference": "7abf242af21f196b65f20ab00ff251fdf3889b8d",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
+ "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
"shasum": ""
},
"require": {
@@ -4141,7 +4127,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.3.1"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.3.12"
},
"funding": [
{
@@ -4157,20 +4143,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T11:51:27+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -4178,12 +4164,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -4208,7 +4194,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -4224,20 +4210,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/doctrine-bridge",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
- "reference": "594263c7d2677022a16e4f39d20070463ba03888"
+ "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/594263c7d2677022a16e4f39d20070463ba03888",
- "reference": "594263c7d2677022a16e4f39d20070463ba03888",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/395b7bfd32b0f7700877c50ab1452f283c99878a",
+ "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a",
"shasum": ""
},
"require": {
@@ -4270,8 +4256,8 @@
"doctrine/annotations": "^1.13.1|^2",
"doctrine/collections": "^1.0|^2.0",
"doctrine/data-fixtures": "^1.1",
- "doctrine/dbal": "^2.13.1|^3.0",
- "doctrine/orm": "^2.12",
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/orm": "^2.12|^3",
"psr/log": "^1|^2|^3",
"symfony/cache": "^5.4|^6.0",
"symfony/config": "^5.4|^6.0",
@@ -4318,7 +4304,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.1"
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -4334,20 +4320,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-18T20:33:34+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/dotenv",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
- "reference": "ceadb434fe2a6763a03d2d110441745834f3dd1e"
+ "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceadb434fe2a6763a03d2d110441745834f3dd1e",
- "reference": "ceadb434fe2a6763a03d2d110441745834f3dd1e",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/d9eaf699978601af5a50c26cbc4326158d9bd8b0",
+ "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0",
"shasum": ""
},
"require": {
@@ -4392,7 +4378,7 @@
"environment"
],
"support": {
- "source": "https://github.com/symfony/dotenv/tree/v6.3.0"
+ "source": "https://github.com/symfony/dotenv/tree/v6.3.12"
},
"funding": [
{
@@ -4408,20 +4394,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T14:41:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "99d2d814a6351461af350ead4d963bd67451236f"
+ "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f",
- "reference": "99d2d814a6351461af350ead4d963bd67451236f",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/93a8400a7eaaaf385b2d6f71e30e064baa639629",
+ "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629",
"shasum": ""
},
"require": {
@@ -4466,7 +4452,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.3.0"
+ "source": "https://github.com/symfony/error-handler/tree/v6.3.12"
},
"funding": [
{
@@ -4482,20 +4468,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-10T12:03:13+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa"
+ "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa",
- "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6e344ddd3c18c525b5e5a4e996f3debda48e3078",
+ "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078",
"shasum": ""
},
"require": {
@@ -4546,7 +4532,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.3.0"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.12"
},
"funding": [
{
@@ -4562,20 +4548,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T14:41:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
@@ -4584,12 +4570,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -4622,7 +4608,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -4638,20 +4624,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/expression-language",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
- "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0"
+ "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/6d560c4c80e7e328708efd923f93ad67e6a0c1c0",
- "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/89f6dc6f1883c3dc3c31d418038966c9b1766617",
+ "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617",
"shasum": ""
},
"require": {
@@ -4686,7 +4672,7 @@
"description": "Provides an engine that can compile and evaluate expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/expression-language/tree/v6.3.0"
+ "source": "https://github.com/symfony/expression-language/tree/v6.3.12"
},
"funding": [
{
@@ -4702,20 +4688,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T16:05:33+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae"
+ "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
- "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/9f4b59b7906ccb0692d7565f98012fd1679eedfc",
+ "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc",
"shasum": ""
},
"require": {
@@ -4749,7 +4735,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.3.1"
+ "source": "https://github.com/symfony/filesystem/tree/v6.3.12"
},
"funding": [
{
@@ -4765,20 +4751,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-01T08:30:39+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.3.0",
+ "version": "v6.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2"
+ "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2",
- "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
+ "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
"shasum": ""
},
"require": {
@@ -4813,7 +4799,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.3.0"
+ "source": "https://github.com/symfony/finder/tree/v6.3.5"
},
"funding": [
{
@@ -4829,26 +4815,29 @@
"type": "tidelift"
}
],
- "time": "2023-04-02T01:25:41+00:00"
+ "time": "2023-09-26T12:56:25+00:00"
},
{
"name": "symfony/flex",
- "version": "v2.3.1",
+ "version": "v2.4.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/flex.git",
- "reference": "3c9c3424efdafe33e0e3cfb5e87e50b34711fedf"
+ "reference": "92f4fba342161ff36072bd3b8e0b3c6c23160402"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/flex/zipball/3c9c3424efdafe33e0e3cfb5e87e50b34711fedf",
- "reference": "3c9c3424efdafe33e0e3cfb5e87e50b34711fedf",
+ "url": "https://api.github.com/repos/symfony/flex/zipball/92f4fba342161ff36072bd3b8e0b3c6c23160402",
+ "reference": "92f4fba342161ff36072bd3b8e0b3c6c23160402",
"shasum": ""
},
"require": {
"composer-plugin-api": "^2.1",
"php": ">=8.0"
},
+ "conflict": {
+ "composer/semver": "<1.7.2"
+ },
"require-dev": {
"composer/composer": "^2.1",
"symfony/dotenv": "^5.4|^6.0",
@@ -4878,7 +4867,7 @@
"description": "Composer plugin for Symfony",
"support": {
"issues": "https://github.com/symfony/flex/issues",
- "source": "https://github.com/symfony/flex/tree/v2.3.1"
+ "source": "https://github.com/symfony/flex/tree/v2.4.7"
},
"funding": [
{
@@ -4894,20 +4883,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-27T07:38:25+00:00"
+ "time": "2024-10-07T08:51:54+00:00"
},
{
"name": "symfony/form",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
- "reference": "59e7c5afef32b9ff735e83e5fc74d63044833a2b"
+ "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/form/zipball/59e7c5afef32b9ff735e83e5fc74d63044833a2b",
- "reference": "59e7c5afef32b9ff735e83e5fc74d63044833a2b",
+ "url": "https://api.github.com/repos/symfony/form/zipball/bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
+ "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
"shasum": ""
},
"require": {
@@ -4928,7 +4917,7 @@
"symfony/error-handler": "<5.4",
"symfony/framework-bundle": "<5.4",
"symfony/http-kernel": "<5.4",
- "symfony/translation": "<5.4",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
"symfony/translation-contracts": "<2.5",
"symfony/twig-bridge": "<6.3"
},
@@ -4944,7 +4933,7 @@
"symfony/intl": "^5.4|^6.0",
"symfony/security-core": "^6.2",
"symfony/security-csrf": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
"symfony/uid": "^5.4|^6.0",
"symfony/validator": "^5.4|^6.0",
"symfony/var-dumper": "^5.4|^6.0"
@@ -4975,7 +4964,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/form/tree/v6.3.0"
+ "source": "https://github.com/symfony/form/tree/v6.3.12"
},
"funding": [
{
@@ -4991,20 +4980,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-25T13:09:35+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "42b0707efba17ca7c6af7373cb1b1a1b4f24f772"
+ "reference": "e144e3757296bed367ec3b764d8438891af75f78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/42b0707efba17ca7c6af7373cb1b1a1b4f24f772",
- "reference": "42b0707efba17ca7c6af7373cb1b1a1b4f24f772",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e144e3757296bed367ec3b764d8438891af75f78",
+ "reference": "e144e3757296bed367ec3b764d8438891af75f78",
"shasum": ""
},
"require": {
@@ -5031,7 +5020,7 @@
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/asset": "<5.4",
"symfony/clock": "<6.3",
- "symfony/console": "<5.4",
+ "symfony/console": "<5.4|>=7.0",
"symfony/dom-crawler": "<6.3",
"symfony/dotenv": "<5.4",
"symfony/form": "<5.4",
@@ -5119,7 +5108,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/framework-bundle/tree/v6.3.1"
+ "source": "https://github.com/symfony/framework-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -5135,20 +5124,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T09:59:31+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/http-client",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123"
+ "reference": "510c51058dbef5db7d49c704954f32d6527d17f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/1c828a06aef2f5eeba42026dfc532d4fc5406123",
- "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/510c51058dbef5db7d49c704954f32d6527d17f8",
+ "reference": "510c51058dbef5db7d49c704954f32d6527d17f8",
"shasum": ""
},
"require": {
@@ -5211,7 +5200,7 @@
"http"
],
"support": {
- "source": "https://github.com/symfony/http-client/tree/v6.3.1"
+ "source": "https://github.com/symfony/http-client/tree/v6.3.12"
},
"funding": [
{
@@ -5227,20 +5216,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T11:51:27+00:00"
+ "time": "2024-01-29T14:46:07+00:00"
},
{
"name": "symfony/http-client-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb"
+ "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb",
- "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ee8d807ab20fcb51267fdace50fbe3494c31e645",
+ "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645",
"shasum": ""
},
"require": {
@@ -5248,12 +5237,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -5289,7 +5278,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.2"
},
"funding": [
{
@@ -5305,20 +5294,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-12-07T08:49:48+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66"
+ "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e0ad0d153e1c20069250986cd9e9dd1ccebb0d66",
- "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3b72add708d48e8c08f7152df2d0b8d5303408fa",
+ "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa",
"shasum": ""
},
"require": {
@@ -5328,12 +5317,12 @@
"symfony/polyfill-php83": "^1.27"
},
"conflict": {
- "symfony/cache": "<6.2"
+ "symfony/cache": "<6.3"
},
"require-dev": {
- "doctrine/dbal": "^2.13.1|^3.0",
+ "doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^5.4|^6.0",
+ "symfony/cache": "^6.3",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/expression-language": "^5.4|^6.0",
"symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
@@ -5366,7 +5355,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.3.1"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.3.12"
},
"funding": [
{
@@ -5382,20 +5371,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T11:51:27+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374"
+ "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/161e16fd2e35fb4881a43bc8b383dfd5be4ac374",
- "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
+ "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
"shasum": ""
},
"require": {
@@ -5404,7 +5393,7 @@
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^6.3",
"symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/http-foundation": "^6.2.7",
+ "symfony/http-foundation": "^6.3.4",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -5412,7 +5401,7 @@
"symfony/cache": "<5.4",
"symfony/config": "<6.1",
"symfony/console": "<5.4",
- "symfony/dependency-injection": "<6.3",
+ "symfony/dependency-injection": "<6.3.4",
"symfony/doctrine-bridge": "<5.4",
"symfony/form": "<5.4",
"symfony/http-client": "<5.4",
@@ -5436,7 +5425,7 @@
"symfony/config": "^6.1",
"symfony/console": "^5.4|^6.0",
"symfony/css-selector": "^5.4|^6.0",
- "symfony/dependency-injection": "^6.3",
+ "symfony/dependency-injection": "^6.3.4",
"symfony/dom-crawler": "^5.4|^6.0",
"symfony/expression-language": "^5.4|^6.0",
"symfony/finder": "^5.4|^6.0",
@@ -5479,7 +5468,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.3.1"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.3.12"
},
"funding": [
{
@@ -5495,56 +5484,54 @@
"type": "tidelift"
}
],
- "time": "2023-06-26T06:07:32+00:00"
+ "time": "2024-01-30T20:05:26+00:00"
},
{
"name": "symfony/maker-bundle",
- "version": "v1.49.0",
+ "version": "v1.53.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
- "reference": "ce1d424f76bbb377f1956cc7641e8e2eafe81cde"
+ "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/ce1d424f76bbb377f1956cc7641e8e2eafe81cde",
- "reference": "ce1d424f76bbb377f1956cc7641e8e2eafe81cde",
+ "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/8d2f3f96704766837548d177fe3ae39ae94822d9",
+ "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9",
"shasum": ""
},
"require": {
"doctrine/inflector": "^2.0",
- "nikic/php-parser": "^4.11",
- "php": ">=8.0",
- "symfony/config": "^5.4.7|^6.0",
- "symfony/console": "^5.4.7|^6.0",
- "symfony/dependency-injection": "^5.4.7|^6.0",
+ "nikic/php-parser": "^4.18|^5.0",
+ "php": ">=8.1",
+ "symfony/config": "^6.3|^7.0",
+ "symfony/console": "^6.3|^7.0",
+ "symfony/dependency-injection": "^6.3|^7.0",
"symfony/deprecation-contracts": "^2.2|^3",
- "symfony/filesystem": "^5.4.7|^6.0",
- "symfony/finder": "^5.4.3|^6.0",
- "symfony/framework-bundle": "^5.4.7|^6.0",
- "symfony/http-kernel": "^5.4.7|^6.0",
- "symfony/process": "^5.4.7|^6.0"
+ "symfony/filesystem": "^6.3|^7.0",
+ "symfony/finder": "^6.3|^7.0",
+ "symfony/framework-bundle": "^6.3|^7.0",
+ "symfony/http-kernel": "^6.3|^7.0",
+ "symfony/process": "^6.3|^7.0"
},
"conflict": {
"doctrine/doctrine-bundle": "<2.4",
- "doctrine/orm": "<2.10",
- "symfony/doctrine-bridge": "<5.4"
+ "doctrine/orm": "<2.10"
},
"require-dev": {
"composer/semver": "^3.0",
- "doctrine/doctrine-bundle": "^2.4",
+ "doctrine/doctrine-bundle": "^2.5.0",
"doctrine/orm": "^2.10.0",
- "symfony/http-client": "^5.4.7|^6.0",
- "symfony/phpunit-bridge": "^5.4.17|^6.0",
- "symfony/polyfill-php80": "^1.16.0",
- "symfony/security-core": "^5.4.7|^6.0",
- "symfony/yaml": "^5.4.3|^6.0",
- "twig/twig": "^2.0|^3.0"
+ "symfony/http-client": "^6.3|^7.0",
+ "symfony/phpunit-bridge": "^6.3|^7.0",
+ "symfony/security-core": "^6.3|^7.0",
+ "symfony/yaml": "^6.3|^7.0",
+ "twig/twig": "^3.0|^4.x-dev"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-main": "1.0-dev"
+ "dev-main": "1.x-dev"
}
},
"autoload": {
@@ -5566,13 +5553,14 @@
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
"keywords": [
"code generator",
+ "dev",
"generator",
"scaffold",
"scaffolding"
],
"support": {
"issues": "https://github.com/symfony/maker-bundle/issues",
- "source": "https://github.com/symfony/maker-bundle/tree/v1.49.0"
+ "source": "https://github.com/symfony/maker-bundle/tree/v1.53.0"
},
"funding": [
{
@@ -5588,24 +5576,25 @@
"type": "tidelift"
}
],
- "time": "2023-06-07T13:10:14+00:00"
+ "time": "2024-02-01T10:05:38+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad"
+ "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad",
- "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
+ "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0"
},
@@ -5614,7 +5603,7 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<5.4",
- "symfony/serializer": "<6.2"
+ "symfony/serializer": "<6.3.12|>=6.4,<6.4.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
@@ -5623,7 +5612,7 @@
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/property-access": "^5.4|^6.0",
"symfony/property-info": "^5.4|^6.0",
- "symfony/serializer": "^6.2"
+ "symfony/serializer": "~6.3.12|^6.4.3"
},
"type": "library",
"autoload": {
@@ -5655,7 +5644,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.3.0"
+ "source": "https://github.com/symfony/mime/tree/v6.3.12"
},
"funding": [
{
@@ -5671,20 +5660,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T15:57:00+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/monolog-bridge",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1"
+ "reference": "b655801218307a85cc0ebb853ac289446db3084a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/04b04b8e465e0fa84940e5609b6796a8b4e51bf1",
- "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/b655801218307a85cc0ebb853ac289446db3084a",
+ "reference": "b655801218307a85cc0ebb853ac289446db3084a",
"shasum": ""
},
"require": {
@@ -5733,7 +5722,7 @@
"description": "Provides integration for Monolog with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.1"
+ "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -5749,34 +5738,34 @@
"type": "tidelift"
}
],
- "time": "2023-06-08T11:13:32+00:00"
+ "time": "2024-01-29T14:47:00+00:00"
},
{
"name": "symfony/monolog-bundle",
- "version": "v3.8.0",
+ "version": "v3.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bundle.git",
- "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d"
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
- "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
+ "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
"shasum": ""
},
"require": {
- "monolog/monolog": "^1.22 || ^2.0 || ^3.0",
- "php": ">=7.1.3",
- "symfony/config": "~4.4 || ^5.0 || ^6.0",
- "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
- "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0",
- "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0"
+ "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0",
+ "php": ">=7.2.5",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0",
+ "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "symfony/console": "~4.4 || ^5.0 || ^6.0",
- "symfony/phpunit-bridge": "^5.2 || ^6.0",
- "symfony/yaml": "~4.4 || ^5.0 || ^6.0"
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^6.3 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"type": "symfony-bundle",
"extra": {
@@ -5814,7 +5803,7 @@
],
"support": {
"issues": "https://github.com/symfony/monolog-bundle/issues",
- "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0"
+ "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0"
},
"funding": [
{
@@ -5830,7 +5819,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-10T14:24:36+00:00"
+ "time": "2023-11-06T17:08:13+00:00"
},
{
"name": "symfony/options-resolver",
@@ -5901,16 +5890,16 @@
},
{
"name": "symfony/password-hasher",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/password-hasher.git",
- "reference": "d23ad221989e6b8278d050cabfd7b569eee84590"
+ "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/password-hasher/zipball/d23ad221989e6b8278d050cabfd7b569eee84590",
- "reference": "d23ad221989e6b8278d050cabfd7b569eee84590",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/513140986f5d6ca1b1ef86f47166a36654571bfe",
+ "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe",
"shasum": ""
},
"require": {
@@ -5953,7 +5942,7 @@
"password"
],
"support": {
- "source": "https://github.com/symfony/password-hasher/tree/v6.3.0"
+ "source": "https://github.com/symfony/password-hasher/tree/v6.3.12"
},
"funding": [
{
@@ -5969,20 +5958,20 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T09:04:20+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/phpunit-bridge",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d"
+ "reference": "9e480445d8bb5f343870a1cba45e15a54cb3d83c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/0b0bf59b0d9bd1422145a123a67fb12af546ef0d",
- "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/9e480445d8bb5f343870a1cba45e15a54cb3d83c",
+ "reference": "9e480445d8bb5f343870a1cba45e15a54cb3d83c",
"shasum": ""
},
"require": {
@@ -6002,8 +5991,8 @@
"type": "symfony-bridge",
"extra": {
"thanks": {
- "name": "phpunit/phpunit",
- "url": "https://github.com/sebastianbergmann/phpunit"
+ "url": "https://github.com/sebastianbergmann/phpunit",
+ "name": "phpunit/phpunit"
}
},
"autoload": {
@@ -6034,7 +6023,7 @@
"description": "Provides utilities for PHPUnit, especially user deprecation notices management",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.1"
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -6050,36 +6039,33 @@
"type": "tidelift"
}
],
- "time": "2023-06-23T13:25:16+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6115,7 +6101,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -6131,36 +6117,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-icu",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git",
- "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c"
+ "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c",
- "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78",
+ "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance and support of other locales than \"en\""
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6202,7 +6185,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0"
},
"funding": [
{
@@ -6218,38 +6201,34 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6289,7 +6268,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
},
"funding": [
{
@@ -6305,36 +6284,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6373,7 +6349,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -6389,24 +6365,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -6416,12 +6392,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6456,7 +6429,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -6472,41 +6445,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
+ "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
+ "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "type": "library",
+ "type": "metapackage",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6532,7 +6494,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0"
},
"funding": [
{
@@ -6548,33 +6510,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6615,7 +6574,83 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
},
"funding": [
{
@@ -6631,34 +6666,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php83",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "508c652ba3ccf69f8c97f251534f229791b52a57"
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57",
- "reference": "508c652ba3ccf69f8c97f251534f229791b52a57",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-php80": "^1.14"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6667,7 +6698,10 @@
],
"psr-4": {
"Symfony\\Polyfill\\Php83\\": ""
- }
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6692,7 +6726,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
},
"funding": [
{
@@ -6708,24 +6742,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-uuid",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
- "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-uuid": "*"
@@ -6735,12 +6769,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6774,7 +6805,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0"
},
"funding": [
{
@@ -6790,20 +6821,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/process",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628"
+ "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628",
- "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628",
+ "url": "https://api.github.com/repos/symfony/process/zipball/6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
+ "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
"shasum": ""
},
"require": {
@@ -6835,7 +6866,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.3.0"
+ "source": "https://github.com/symfony/process/tree/v6.3.12"
},
"funding": [
{
@@ -6851,20 +6882,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-19T08:06:44+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/property-access",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "db9358571ce63f09c439c2fee6c12e5b090b69ac"
+ "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/db9358571ce63f09c439c2fee6c12e5b090b69ac",
- "reference": "db9358571ce63f09c439c2fee6c12e5b090b69ac",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/bbf7228ce2673538e1502cf1613d84ecfe8548d0",
+ "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0",
"shasum": ""
},
"require": {
@@ -6912,7 +6943,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v6.3.0"
+ "source": "https://github.com/symfony/property-access/tree/v6.3.12"
},
"funding": [
{
@@ -6928,20 +6959,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-19T08:06:44+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/property-info",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd"
+ "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/7f3a03716112269741fe2a809f8f791a371d1fcd",
- "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/ad9640f115b090503d52e8c8d5029e6041a40ccb",
+ "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb",
"shasum": ""
},
"require": {
@@ -6995,7 +7026,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v6.3.0"
+ "source": "https://github.com/symfony/property-info/tree/v6.3.12"
},
"funding": [
{
@@ -7011,24 +7042,25 @@
"type": "tidelift"
}
],
- "time": "2023-05-19T08:06:44+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5"
+ "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/d37ad1779c38b8eb71996d17dc13030dcb7f9cf5",
- "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
+ "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"doctrine/annotations": "<1.12",
@@ -7077,7 +7109,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.3.1"
+ "source": "https://github.com/symfony/routing/tree/v6.3.12"
},
"funding": [
{
@@ -7093,20 +7125,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-05T15:30:22+00:00"
+ "time": "2024-01-30T13:17:59+00:00"
},
{
"name": "symfony/runtime",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/runtime.git",
- "reference": "8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d"
+ "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/runtime/zipball/8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d",
- "reference": "8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/a8d2b8f6033a33c224b43065a10bab5e4f0be486",
+ "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486",
"shasum": ""
},
"require": {
@@ -7156,7 +7188,7 @@
"runtime"
],
"support": {
- "source": "https://github.com/symfony/runtime/tree/v6.3.1"
+ "source": "https://github.com/symfony/runtime/tree/v6.3.12"
},
"funding": [
{
@@ -7172,20 +7204,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-21T12:08:28+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/security-bundle",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-bundle.git",
- "reference": "f4fe79d7ebafd406e1a6f646839bfbbed641d8b2"
+ "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-bundle/zipball/f4fe79d7ebafd406e1a6f646839bfbbed641d8b2",
- "reference": "f4fe79d7ebafd406e1a6f646839bfbbed641d8b2",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
+ "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
"shasum": ""
},
"require": {
@@ -7195,13 +7227,15 @@
"symfony/clock": "^6.3",
"symfony/config": "^6.1",
"symfony/dependency-injection": "^6.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher": "^5.4|^6.0",
"symfony/http-foundation": "^6.2",
"symfony/http-kernel": "^6.2",
"symfony/password-hasher": "^5.4|^6.0",
"symfony/security-core": "^6.2",
"symfony/security-csrf": "^5.4|^6.0",
- "symfony/security-http": "^6.3"
+ "symfony/security-http": "^6.3.6",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/browser-kit": "<5.4",
@@ -7265,7 +7299,7 @@
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-bundle/tree/v6.3.1"
+ "source": "https://github.com/symfony/security-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -7281,24 +7315,25 @@
"type": "tidelift"
}
],
- "time": "2023-06-21T12:08:28+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/security-core",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-core.git",
- "reference": "9cb74232e978be1440d2bb7daf91eb40a9363890"
+ "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-core/zipball/9cb74232e978be1440d2bb7daf91eb40a9363890",
- "reference": "9cb74232e978be1440d2bb7daf91eb40a9363890",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/a2e6a338aaf4efec722839ec49f88eed2d752f92",
+ "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3",
"symfony/password-hasher": "^5.4|^6.0",
"symfony/service-contracts": "^2.5|^3"
@@ -7308,6 +7343,7 @@
"symfony/http-foundation": "<5.4",
"symfony/ldap": "<5.4",
"symfony/security-guard": "<5.4",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
"symfony/validator": "<5.4"
},
"require-dev": {
@@ -7320,7 +7356,7 @@
"symfony/http-foundation": "^5.4|^6.0",
"symfony/ldap": "^5.4|^6.0",
"symfony/string": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
"symfony/validator": "^5.4|^6.0"
},
"type": "library",
@@ -7349,7 +7385,7 @@
"description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-core/tree/v6.3.0"
+ "source": "https://github.com/symfony/security-core/tree/v6.3.12"
},
"funding": [
{
@@ -7365,20 +7401,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T15:57:00+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/security-csrf",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-csrf.git",
- "reference": "1f505c9060bde692eb37718c78a91d95d9abeeec"
+ "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-csrf/zipball/1f505c9060bde692eb37718c78a91d95d9abeeec",
- "reference": "1f505c9060bde692eb37718c78a91d95d9abeeec",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
+ "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
"shasum": ""
},
"require": {
@@ -7417,7 +7453,7 @@
"description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-csrf/tree/v6.3.0"
+ "source": "https://github.com/symfony/security-csrf/tree/v6.3.12"
},
"funding": [
{
@@ -7433,20 +7469,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T14:41:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/security-http",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-http.git",
- "reference": "36d2bdd09c33f63014dc65f164a77ff099d256c6"
+ "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-http/zipball/36d2bdd09c33f63014dc65f164a77ff099d256c6",
- "reference": "36d2bdd09c33f63014dc65f164a77ff099d256c6",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/09eb813655cd9b1f679f4d984721633e9a0bab60",
+ "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60",
"shasum": ""
},
"require": {
@@ -7456,7 +7492,8 @@
"symfony/http-kernel": "^6.3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/property-access": "^5.4|^6.0",
- "symfony/security-core": "^6.3"
+ "symfony/security-core": "^6.3",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/clock": "<6.3",
@@ -7504,7 +7541,7 @@
"description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-http/tree/v6.3.1"
+ "source": "https://github.com/symfony/security-http/tree/v6.3.12"
},
"funding": [
{
@@ -7520,24 +7557,25 @@
"type": "tidelift"
}
],
- "time": "2023-06-18T15:50:12+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/serializer",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "1d238ee3180bc047f8ab713bfb73848d553f4407"
+ "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/1d238ee3180bc047f8ab713bfb73848d553f4407",
- "reference": "1d238ee3180bc047f8ab713bfb73848d553f4407",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
+ "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
@@ -7546,7 +7584,7 @@
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/dependency-injection": "<5.4",
"symfony/property-access": "<5.4",
- "symfony/property-info": "<5.4",
+ "symfony/property-info": "<5.4.24|>=6,<6.2.11",
"symfony/uid": "<5.4",
"symfony/yaml": "<5.4"
},
@@ -7563,8 +7601,8 @@
"symfony/http-foundation": "^5.4|^6.0",
"symfony/http-kernel": "^5.4|^6.0",
"symfony/mime": "^5.4|^6.0",
- "symfony/property-access": "^5.4|^6.0",
- "symfony/property-info": "^5.4|^6.0",
+ "symfony/property-access": "^5.4.26|^6.3",
+ "symfony/property-info": "^5.4.24|^6.2.11",
"symfony/uid": "^5.4|^6.0",
"symfony/validator": "^5.4|^6.0",
"symfony/var-dumper": "^5.4|^6.0",
@@ -7597,7 +7635,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v6.3.1"
+ "source": "https://github.com/symfony/serializer/tree/v6.3.12"
},
"funding": [
{
@@ -7613,37 +7651,38 @@
"type": "tidelift"
}
],
- "time": "2023-06-21T19:54:33+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
- "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -7679,7 +7718,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -7695,20 +7734,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2"
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
- "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/416596166641f1f728b0a64f5b9dd07cceb410c1",
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1",
"shasum": ""
},
"require": {
@@ -7741,7 +7780,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.3.0"
+ "source": "https://github.com/symfony/stopwatch/tree/v6.3.12"
},
"funding": [
{
@@ -7757,20 +7796,20 @@
"type": "tidelift"
}
],
- "time": "2023-02-16T10:14:28+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/string",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f"
+ "reference": "bce75043af265dc8aca536a6ab1d6b3181763529"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
- "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
+ "url": "https://api.github.com/repos/symfony/string/zipball/bce75043af265dc8aca536a6ab1d6b3181763529",
+ "reference": "bce75043af265dc8aca536a6ab1d6b3181763529",
"shasum": ""
},
"require": {
@@ -7827,7 +7866,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.0"
+ "source": "https://github.com/symfony/string/tree/v6.3.12"
},
"funding": [
{
@@ -7843,20 +7882,20 @@
"type": "tidelift"
}
],
- "time": "2023-03-21T21:06:29+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/templating",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/templating.git",
- "reference": "27d79475d8bcba894235b5472df158e78c6419a3"
+ "reference": "4c54c5c58e0c7ddf8fd452b4657ed7cec586d013"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/templating/zipball/27d79475d8bcba894235b5472df158e78c6419a3",
- "reference": "27d79475d8bcba894235b5472df158e78c6419a3",
+ "url": "https://api.github.com/repos/symfony/templating/zipball/4c54c5c58e0c7ddf8fd452b4657ed7cec586d013",
+ "reference": "4c54c5c58e0c7ddf8fd452b4657ed7cec586d013",
"shasum": ""
},
"require": {
@@ -7892,7 +7931,7 @@
"description": "Provides all the tools needed to build any kind of template system",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/templating/tree/v6.3.0"
+ "source": "https://github.com/symfony/templating/tree/v6.3.12"
},
"funding": [
{
@@ -7908,24 +7947,25 @@
"type": "tidelift"
}
],
- "time": "2023-04-22T08:23:52+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f"
+ "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f",
- "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
+ "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
@@ -7943,7 +7983,7 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
- "nikic/php-parser": "^4.13",
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
"symfony/config": "^5.4|^6.0",
"symfony/console": "^5.4|^6.0",
@@ -7986,7 +8026,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.3.0"
+ "source": "https://github.com/symfony/translation/tree/v6.3.12"
},
"funding": [
{
@@ -8002,20 +8042,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-19T12:46:45+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86",
- "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@@ -8023,12 +8063,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -8064,7 +8104,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -8080,20 +8120,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-30T17:17:10+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/twig-bridge",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "67a33c71062d7d931fe9a8cb7be79cca986a6c09"
+ "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/67a33c71062d7d931fe9a8cb7be79cca986a6c09",
- "reference": "67a33c71062d7d931fe9a8cb7be79cca986a6c09",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/dd34e348a9237d40eb7a791ee14de6efbadd5108",
+ "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108",
"shasum": ""
},
"require": {
@@ -8136,7 +8176,7 @@
"symfony/security-core": "^5.4|^6.0",
"symfony/security-csrf": "^5.4|^6.0",
"symfony/security-http": "^5.4|^6.0",
- "symfony/serializer": "^6.2",
+ "symfony/serializer": "~6.3.12|^6.4.3",
"symfony/stopwatch": "^5.4|^6.0",
"symfony/translation": "^6.1",
"symfony/web-link": "^5.4|^6.0",
@@ -8172,7 +8212,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v6.3.0"
+ "source": "https://github.com/symfony/twig-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -8188,20 +8228,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-29T13:12:36+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea"
+ "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea",
- "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/820d2a7a2b876b287215a6b93f482dace8057d9b",
+ "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b",
"shasum": ""
},
"require": {
@@ -8257,7 +8297,7 @@
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bundle/tree/v6.3.0"
+ "source": "https://github.com/symfony/twig-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -8273,20 +8313,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-06T09:53:41+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/uid",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384"
+ "reference": "49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384",
- "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4",
+ "reference": "49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4",
"shasum": ""
},
"require": {
@@ -8331,7 +8371,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.3.0"
+ "source": "https://github.com/symfony/uid/tree/v6.3.12"
},
"funding": [
{
@@ -8347,24 +8387,25 @@
"type": "tidelift"
}
],
- "time": "2023-04-08T07:25:02+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "c81268d6960ddb47af17391a27d222bd58cf0515"
+ "reference": "5791cc448c78a1a7879812d8073cc6690286e488"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c81268d6960ddb47af17391a27d222bd58cf0515",
- "reference": "c81268d6960ddb47af17391a27d222bd58cf0515",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5791cc448c78a1a7879812d8073cc6690286e488",
+ "reference": "5791cc448c78a1a7879812d8073cc6690286e488",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
@@ -8373,6 +8414,7 @@
"require-dev": {
"ext-iconv": "*",
"symfony/console": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
"symfony/process": "^5.4|^6.0",
"symfony/uid": "^5.4|^6.0",
"twig/twig": "^2.13|^3.0.4"
@@ -8413,7 +8455,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.3.1"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.3.12"
},
"funding": [
{
@@ -8429,20 +8471,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-21T12:08:28+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "db5416d04269f2827d8c54331ba4cfa42620d350"
+ "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/db5416d04269f2827d8c54331ba4cfa42620d350",
- "reference": "db5416d04269f2827d8c54331ba4cfa42620d350",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
+ "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
"shasum": ""
},
"require": {
@@ -8487,7 +8529,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.3.0"
+ "source": "https://github.com/symfony/var-exporter/tree/v6.3.12"
},
"funding": [
{
@@ -8503,20 +8545,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T08:48:44+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/web-link",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-link.git",
- "reference": "0989ca617d0703cdca501a245f10e194ff22315b"
+ "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-link/zipball/0989ca617d0703cdca501a245f10e194ff22315b",
- "reference": "0989ca617d0703cdca501a245f10e194ff22315b",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/0bc29a164b8c9c683d5eb0f839762c055d01e42e",
+ "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e",
"shasum": ""
},
"require": {
@@ -8570,7 +8612,7 @@
"push"
],
"support": {
- "source": "https://github.com/symfony/web-link/tree/v6.3.0"
+ "source": "https://github.com/symfony/web-link/tree/v6.3.12"
},
"funding": [
{
@@ -8586,26 +8628,26 @@
"type": "tidelift"
}
],
- "time": "2023-04-21T14:41:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "4a6cf8cb093e720c7ae4d55b1af848ce7e9abd36"
+ "reference": "920efdd0f53f088b44963cf89368038ee39719b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4a6cf8cb093e720c7ae4d55b1af848ce7e9abd36",
- "reference": "4a6cf8cb093e720c7ae4d55b1af848ce7e9abd36",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/920efdd0f53f088b44963cf89368038ee39719b9",
+ "reference": "920efdd0f53f088b44963cf89368038ee39719b9",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/config": "^5.4|^6.0",
- "symfony/framework-bundle": "^5.4|^6.0",
+ "symfony/framework-bundle": "^5.4|^6.0,<6.4",
"symfony/http-kernel": "^6.3",
"symfony/routing": "^5.4|^6.0",
"symfony/twig-bundle": "^5.4|^6.0",
@@ -8651,7 +8693,7 @@
"dev"
],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.1"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -8667,20 +8709,20 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T11:51:27+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/webpack-encore-bundle",
- "version": "v1.17.1",
+ "version": "v1.17.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/webpack-encore-bundle.git",
- "reference": "7e3b6f69bcfcbb40ecfe83ad7a77e44316d26573"
+ "reference": "471ebbc03072dad6e31840dc317bc634a32785f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/7e3b6f69bcfcbb40ecfe83ad7a77e44316d26573",
- "reference": "7e3b6f69bcfcbb40ecfe83ad7a77e44316d26573",
+ "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/471ebbc03072dad6e31840dc317bc634a32785f5",
+ "reference": "471ebbc03072dad6e31840dc317bc634a32785f5",
"shasum": ""
},
"require": {
@@ -8702,8 +8744,8 @@
"type": "symfony-bundle",
"extra": {
"thanks": {
- "name": "symfony/webpack-encore",
- "url": "https://github.com/symfony/webpack-encore"
+ "url": "https://github.com/symfony/webpack-encore",
+ "name": "symfony/webpack-encore"
}
},
"autoload": {
@@ -8724,7 +8766,7 @@
"description": "Integration with your Symfony app & Webpack Encore!",
"support": {
"issues": "https://github.com/symfony/webpack-encore-bundle/issues",
- "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.17.1"
+ "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.17.2"
},
"funding": [
{
@@ -8740,24 +8782,25 @@
"type": "tidelift"
}
],
- "time": "2023-05-29T00:18:01+00:00"
+ "time": "2023-09-26T14:36:28+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927"
+ "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/a9a8337aa641ef2aa39c3e028f9107ec391e5927",
- "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
+ "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -8795,7 +8838,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.3.0"
+ "source": "https://github.com/symfony/yaml/tree/v6.3.12"
},
"funding": [
{
@@ -8811,31 +8854,31 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T13:28:14+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "twig/extra-bundle",
- "version": "v3.6.1",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
- "reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49"
+ "reference": "32807183753de0388c8e59f7ac2d13bb47311140"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49",
- "reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49",
+ "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/32807183753de0388c8e59f7ac2d13bb47311140",
+ "reference": "32807183753de0388c8e59f7ac2d13bb47311140",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/framework-bundle": "^4.4|^5.0|^6.0",
- "symfony/twig-bundle": "^4.4|^5.0|^6.0",
- "twig/twig": "^2.7|^3.0"
+ "symfony/framework-bundle": "^5.4|^6.0|^7.0",
+ "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+ "twig/twig": "^3.0"
},
"require-dev": {
"league/commonmark": "^1.0|^2.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0",
+ "symfony/phpunit-bridge": "^6.4|^7.0",
"twig/cache-extra": "^3.0",
"twig/cssinliner-extra": "^2.12|^3.0",
"twig/html-extra": "^2.12|^3.0",
@@ -8873,7 +8916,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.6.1"
+ "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.8.0"
},
"funding": [
{
@@ -8885,35 +8928,39 @@
"type": "tidelift"
}
],
- "time": "2023-05-06T11:11:46+00:00"
+ "time": "2023-11-21T14:02:01+00:00"
},
{
"name": "twig/markdown-extra",
- "version": "v3.6.0",
+ "version": "v3.18.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/markdown-extra.git",
- "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8"
+ "reference": "76219b06e104a706879752e6e4d79f63ef7e9f23"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/8f1179e279cea6ef14066a4560b859df58acd5d8",
- "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8",
+ "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/76219b06e104a706879752e6e4d79f63ef7e9f23",
+ "reference": "76219b06e104a706879752e6e4d79f63ef7e9f23",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "twig/twig": "^2.7|^3.0"
+ "php": ">=8.0.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "twig/twig": "^3.13|^4.0"
},
"require-dev": {
- "erusev/parsedown": "^1.7",
+ "erusev/parsedown": "dev-master as 1.x-dev",
"league/commonmark": "^1.0|^2.0",
"league/html-to-markdown": "^4.8|^5.0",
"michelf/php-markdown": "^1.8|^2.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^6.4|^7.0"
},
"type": "library",
"autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
"Twig\\Extra\\Markdown\\": ""
},
@@ -8941,7 +8988,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/markdown-extra/tree/v3.6.0"
+ "source": "https://github.com/twigphp/markdown-extra/tree/v3.18.0"
},
"funding": [
{
@@ -8953,30 +9000,30 @@
"type": "tidelift"
}
],
- "time": "2023-02-09T06:45:16+00:00"
+ "time": "2024-12-02T08:57:02+00:00"
},
{
"name": "twig/string-extra",
- "version": "v3.6.0",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/string-extra.git",
- "reference": "fab682645b3f8730fbdb7bf9ec8fe668d6f76638"
+ "reference": "b0c9037d96baff79abe368dc092a59b726517548"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/string-extra/zipball/fab682645b3f8730fbdb7bf9ec8fe668d6f76638",
- "reference": "fab682645b3f8730fbdb7bf9ec8fe668d6f76638",
+ "url": "https://api.github.com/repos/twigphp/string-extra/zipball/b0c9037d96baff79abe368dc092a59b726517548",
+ "reference": "b0c9037d96baff79abe368dc092a59b726517548",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/string": "^5.0|^6.0",
+ "symfony/string": "^5.4|^6.0|^7.0",
"symfony/translation-contracts": "^1.1|^2|^3",
- "twig/twig": "^2.7|^3.0"
+ "twig/twig": "^3.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -9008,7 +9055,7 @@
"unicode"
],
"support": {
- "source": "https://github.com/twigphp/string-extra/tree/v3.6.0"
+ "source": "https://github.com/twigphp/string-extra/tree/v3.8.0"
},
"funding": [
{
@@ -9020,33 +9067,42 @@
"type": "tidelift"
}
],
- "time": "2023-02-09T06:45:16+00:00"
+ "time": "2023-11-21T14:02:01+00:00"
},
{
"name": "twig/twig",
- "version": "v3.6.1",
+ "version": "v3.18.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd"
+ "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd",
- "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50",
+ "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.0.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-mbstring": "^1.3"
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php81": "^1.29"
},
"require-dev": {
+ "phpstan/phpstan": "^2.0",
"psr/container": "^1.0|^2.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
},
"type": "library",
"autoload": {
+ "files": [
+ "src/Resources/core.php",
+ "src/Resources/debug.php",
+ "src/Resources/escaper.php",
+ "src/Resources/string_loader.php"
+ ],
"psr-4": {
"Twig\\": "src/"
}
@@ -9079,7 +9135,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.6.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.18.0"
},
"funding": [
{
@@ -9091,22 +9147,22 @@
"type": "tidelift"
}
],
- "time": "2023-06-08T12:52:13+00:00"
+ "time": "2024-12-29T10:51:50+00:00"
}
],
"packages-dev": [
{
"name": "masterminds/html5",
- "version": "2.8.0",
+ "version": "2.9.0",
"source": {
"type": "git",
"url": "https://github.com/Masterminds/html5-php.git",
- "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3"
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
- "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
"shasum": ""
},
"require": {
@@ -9114,7 +9170,7 @@
"php": ">=5.3.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8"
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
},
"type": "library",
"extra": {
@@ -9158,22 +9214,22 @@
],
"support": {
"issues": "https://github.com/Masterminds/html5-php/issues",
- "source": "https://github.com/Masterminds/html5-php/tree/2.8.0"
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
},
- "time": "2023-04-26T07:27:39+00:00"
+ "time": "2024-03-31T07:05:07+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.10.25",
+ "version": "1.12.15",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "578f4e70d117f9a90699324c555922800ac38d8c"
+ "reference": "c91d4e8bc056f46cf653656e6f71004b254574d1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/578f4e70d117f9a90699324c555922800ac38d8c",
- "reference": "578f4e70d117f9a90699324c555922800ac38d8c",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c91d4e8bc056f46cf653656e6f71004b254574d1",
+ "reference": "c91d4e8bc056f46cf653656e6f71004b254574d1",
"shasum": ""
},
"require": {
@@ -9216,13 +9272,9 @@
{
"url": "https://github.com/phpstan",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
- "type": "tidelift"
}
],
- "time": "2023-07-06T12:11:37+00:00"
+ "time": "2025-01-05T16:40:22+00:00"
},
{
"name": "rector/rector",
@@ -9287,16 +9339,16 @@
},
{
"name": "symfony/browser-kit",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "0eb7228e7c435169e65c911ba8d107d56d850049"
+ "reference": "867868fca3a0939236ab89600f9480eee74843ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0eb7228e7c435169e65c911ba8d107d56d850049",
- "reference": "0eb7228e7c435169e65c911ba8d107d56d850049",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/867868fca3a0939236ab89600f9480eee74843ce",
+ "reference": "867868fca3a0939236ab89600f9480eee74843ce",
"shasum": ""
},
"require": {
@@ -9335,7 +9387,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v6.3.0"
+ "source": "https://github.com/symfony/browser-kit/tree/v6.3.12"
},
"funding": [
{
@@ -9351,20 +9403,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-25T10:46:17+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.3.0",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf"
+ "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
- "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/7bb2f446287397cc41ebd9acfa0755b16db05fbc",
+ "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc",
"shasum": ""
},
"require": {
@@ -9400,7 +9452,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.3.0"
+ "source": "https://github.com/symfony/css-selector/tree/v6.3.12"
},
"funding": [
{
@@ -9416,20 +9468,20 @@
"type": "tidelift"
}
],
- "time": "2023-03-20T16:43:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v6.3.1",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212"
+ "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8aa333f41f05afc7fc285a976b58272fd90fc212",
- "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e412abb0a443dc2c29decb96cac476aed7b8234b",
+ "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b",
"shasum": ""
},
"require": {
@@ -9467,7 +9519,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v6.3.1"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.3.12"
},
"funding": [
{
@@ -9483,7 +9535,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-05T15:30:22+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
}
],
"aliases": [],
@@ -9492,12 +9544,12 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "^8.2",
+ "php": "^8.3",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-json": "*",
"ext-zip": "*"
},
"platform-dev": [],
- "plugin-api-version": "2.2.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/package.json b/package.json
index 69f772fa..276607b8 100644
--- a/package.json
+++ b/package.json
@@ -89,5 +89,6 @@
"dependencies": {
"datatables.net": "^1.11.5",
"datatables.net-dt": "^1.11.5"
- }
+ },
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
From 56400cc0bba5de3607e37bb4effdd23835e1d542 Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:42:45 +0100
Subject: [PATCH 02/52] build: upgrade to symfony 6.4
---
README.md | 2 +-
composer.json | 44 +-
composer.lock | 1433 +++++++++++++++++++++++++------------------------
3 files changed, 754 insertions(+), 725 deletions(-)
diff --git a/README.md b/README.md
index 2f63fb3c..864c7028 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# DataWiz - Research Data Documentation Assistant
-
+



diff --git a/composer.json b/composer.json
index ee7ef8d3..a1918468 100644
--- a/composer.json
+++ b/composer.json
@@ -19,29 +19,29 @@
"oneup/flysystem-bundle": "^4.6",
"oneup/uploader-bundle": "^4.0",
"stevenmaguire/oauth2-keycloak": "^4.0",
- "symfony/console": "6.3.*",
- "symfony/debug-bundle": "6.3.*",
- "symfony/dotenv": "6.3.*",
- "symfony/expression-language": "6.3.*",
+ "symfony/console": "6.4.*",
+ "symfony/debug-bundle": "6.4.*",
+ "symfony/dotenv": "6.4.*",
+ "symfony/expression-language": "6.4.*",
"symfony/flex": "^2.1",
- "symfony/form": "6.3.*",
- "symfony/framework-bundle": "6.3.*",
- "symfony/http-client": "6.3.*",
+ "symfony/form": "6.4.*",
+ "symfony/framework-bundle": "6.4.*",
+ "symfony/http-client": "6.4.*",
"symfony/maker-bundle": "^1.33",
"symfony/monolog-bundle": "^3.0",
- "symfony/phpunit-bridge": "6.3.*",
- "symfony/runtime": "6.3.*",
- "symfony/security-bundle": "6.3.*",
- "symfony/serializer": "6.3.*",
- "symfony/stopwatch": "6.3.*",
- "symfony/translation": "6.3.*",
- "symfony/twig-bundle": "6.3.*",
- "symfony/uid": "6.3.*",
- "symfony/var-dumper": "6.3.*",
- "symfony/web-link": "6.3.*",
- "symfony/web-profiler-bundle": "6.3.*",
+ "symfony/phpunit-bridge": "6.4.*",
+ "symfony/runtime": "6.4.*",
+ "symfony/security-bundle": "6.4.*",
+ "symfony/serializer": "6.4.*",
+ "symfony/stopwatch": "6.4.*",
+ "symfony/translation": "6.4.*",
+ "symfony/twig-bundle": "6.4.*",
+ "symfony/uid": "6.4.*",
+ "symfony/var-dumper": "6.4.*",
+ "symfony/web-link": "6.4.*",
+ "symfony/web-profiler-bundle": "6.4.*",
"symfony/webpack-encore-bundle": "^1.7",
- "symfony/yaml": "6.3.*",
+ "symfony/yaml": "6.4.*",
"twig/extra-bundle": "^3.3",
"twig/markdown-extra": "^3.3",
"twig/string-extra": "^3.3",
@@ -50,8 +50,8 @@
"require-dev": {
"phpstan/phpstan": "^1.10",
"rector/rector": "^0.15.25",
- "symfony/browser-kit": "6.3.*",
- "symfony/css-selector": "6.3.*"
+ "symfony/browser-kit": "6.4.*",
+ "symfony/css-selector": "6.4.*"
},
"config": {
"preferred-install": {
@@ -99,7 +99,7 @@
"extra": {
"symfony": {
"allow-contrib": false,
- "require": "6.3.*"
+ "require": "6.4.*"
}
}
}
diff --git a/composer.lock b/composer.lock
index da74dcef..79a863fb 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": "47d58333bdd6ed722b870c7b34f0f107",
+ "content-hash": "2bdf851cacea6a98db4e860916c2faa3",
"packages": [
{
"name": "composer/package-versions-deprecated",
@@ -3513,16 +3513,16 @@
},
{
"name": "symfony/asset",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset.git",
- "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec"
+ "reference": "2466c17d61d14539cddf77e57ebb9cc971185302"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset/zipball/a579e67adaa9586a007abd1b6faf97296eef08ec",
- "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/2466c17d61d14539cddf77e57ebb9cc971185302",
+ "reference": "2466c17d61d14539cddf77e57ebb9cc971185302",
"shasum": ""
},
"require": {
@@ -3532,9 +3532,9 @@
"symfony/http-foundation": "<5.4"
},
"require-dev": {
- "symfony/http-client": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0"
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3562,7 +3562,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset/tree/v6.3.12"
+ "source": "https://github.com/symfony/asset/tree/v6.4.13"
},
"funding": [
{
@@ -3578,20 +3578,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/cache",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5"
+ "reference": "70d60e9a3603108563010f8592dff15a6f15dfae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/d085eedf33550ce014230bc51fca8df726ed7ac5",
- "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/70d60e9a3603108563010f8592dff15a6f15dfae",
+ "reference": "70d60e9a3603108563010f8592dff15a6f15dfae",
"shasum": ""
},
"require": {
@@ -3600,7 +3600,7 @@
"psr/log": "^1.1|^2|^3",
"symfony/cache-contracts": "^2.5|^3",
"symfony/service-contracts": "^2.5|^3",
- "symfony/var-exporter": "^6.3.6"
+ "symfony/var-exporter": "^6.3.6|^7.0"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
@@ -3618,12 +3618,12 @@
"doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3658,7 +3658,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v6.3.12"
+ "source": "https://github.com/symfony/cache/tree/v6.4.16"
},
"funding": [
{
@@ -3674,7 +3674,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:42:18+00:00"
+ "time": "2024-11-20T10:10:54+00:00"
},
{
"name": "symfony/cache-contracts",
@@ -3754,21 +3754,22 @@
},
{
"name": "symfony/clock",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b"
+ "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/b0fd66f03a9afb104a8def4e893fa96e1699c39b",
- "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b",
+ "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/clock": "^1.0"
+ "psr/clock": "^1.0",
+ "symfony/polyfill-php83": "^1.28"
},
"provide": {
"psr/clock-implementation": "1.0"
@@ -3807,7 +3808,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v6.3.12"
+ "source": "https://github.com/symfony/clock/tree/v6.4.13"
},
"funding": [
{
@@ -3823,26 +3824,26 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/config",
- "version": "v6.3.12",
+ "version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e"
+ "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
- "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
+ "url": "https://api.github.com/repos/symfony/config/zipball/4e55e7e4ffddd343671ea972216d4509f46c22ef",
+ "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/filesystem": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0|^7.0",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
@@ -3850,11 +3851,11 @@
"symfony/service-contracts": "<2.5"
},
"require-dev": {
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
+ "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/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3882,7 +3883,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.3.12"
+ "source": "https://github.com/symfony/config/tree/v6.4.14"
},
"funding": [
{
@@ -3898,20 +3899,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-04T11:33:53+00:00"
},
{
"name": "symfony/console",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd"
+ "reference": "799445db3f15768ecc382ac5699e6da0520a0a04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
- "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
+ "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04",
+ "reference": "799445db3f15768ecc382ac5699e6da0520a0a04",
"shasum": ""
},
"require": {
@@ -3919,7 +3920,7 @@
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^5.4|^6.0|^7.0"
},
"conflict": {
"symfony/dependency-injection": "<5.4",
@@ -3933,12 +3934,16 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3972,7 +3977,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.3.12"
+ "source": "https://github.com/symfony/console/tree/v6.4.17"
},
"funding": [
{
@@ -3988,37 +3993,37 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-12-07T12:07:30+00:00"
},
{
"name": "symfony/debug-bundle",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
- "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4"
+ "reference": "7bcfaff39e094cc09455201916d016d9b2ae08ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
- "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/7bcfaff39e094cc09455201916d016d9b2ae08ff",
+ "reference": "7bcfaff39e094cc09455201916d016d9b2ae08ff",
"shasum": ""
},
"require": {
"ext-xml": "*",
"php": ">=8.1",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/twig-bridge": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/twig-bridge": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"conflict": {
"symfony/config": "<5.4",
"symfony/dependency-injection": "<5.4"
},
"require-dev": {
- "symfony/config": "^5.4|^6.0",
- "symfony/web-profiler-bundle": "^5.4|^6.0"
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -4046,7 +4051,7 @@
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug-bundle/tree/v6.3.12"
+ "source": "https://github.com/symfony/debug-bundle/tree/v6.4.13"
},
"funding": [
{
@@ -4062,20 +4067,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d"
+ "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
- "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7a379d8871f6a36f01559c14e11141cc02eb8dc8",
+ "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8",
"shasum": ""
},
"require": {
@@ -4083,7 +4088,7 @@
"psr/container": "^1.1|^2.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^6.2.10"
+ "symfony/var-exporter": "^6.2.10|^7.0"
},
"conflict": {
"ext-psr": "<1.1|>=2",
@@ -4097,9 +4102,9 @@
"symfony/service-implementation": "1.1|2.0|3.0"
},
"require-dev": {
- "symfony/config": "^6.1",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/config": "^6.1|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4127,7 +4132,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.3.12"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.4.16"
},
"funding": [
{
@@ -4143,7 +4148,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T08:17:33+00:00"
+ "time": "2024-11-25T14:52:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -4214,21 +4219,21 @@
},
{
"name": "symfony/doctrine-bridge",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
- "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a"
+ "reference": "2ba7e747a944b69f9f583c35173560afebbff995"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/395b7bfd32b0f7700877c50ab1452f283c99878a",
- "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/2ba7e747a944b69f9f583c35173560afebbff995",
+ "reference": "2ba7e747a944b69f9f583c35173560afebbff995",
"shasum": ""
},
"require": {
"doctrine/event-manager": "^1.2|^2",
- "doctrine/persistence": "^2|^3",
+ "doctrine/persistence": "^3.1",
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
@@ -4236,47 +4241,45 @@
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/annotations": "<1.13.1",
"doctrine/dbal": "<2.13.1",
"doctrine/lexer": "<1.1",
- "doctrine/orm": "<2.12",
+ "doctrine/orm": "<2.15",
"symfony/cache": "<5.4",
"symfony/dependency-injection": "<6.2",
- "symfony/form": "<5.4.21|>=6,<6.2.7",
+ "symfony/form": "<5.4.38|>=6,<6.4.6|>=7,<7.0.6",
"symfony/http-foundation": "<6.3",
"symfony/http-kernel": "<6.2",
"symfony/lock": "<6.3",
"symfony/messenger": "<5.4",
"symfony/property-info": "<5.4",
"symfony/security-bundle": "<5.4",
- "symfony/security-core": "<6.0",
- "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1"
+ "symfony/security-core": "<6.4",
+ "symfony/validator": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.13.1|^2",
"doctrine/collections": "^1.0|^2.0",
- "doctrine/data-fixtures": "^1.1",
+ "doctrine/data-fixtures": "^1.1|^2",
"doctrine/dbal": "^2.13.1|^3|^4",
- "doctrine/orm": "^2.12|^3",
+ "doctrine/orm": "^2.15|^3",
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^6.2",
- "symfony/doctrine-messenger": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/form": "^5.4.21|^6.2.7",
- "symfony/http-kernel": "^6.3",
- "symfony/lock": "^6.3",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/property-access": "^5.4|^6.0",
- "symfony/property-info": "^5.4|^6.0",
- "symfony/proxy-manager-bridge": "^5.4|^6.0",
- "symfony/security-core": "^6.0",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^5.4.25|~6.2.12|^6.3.1",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.2|^7.0",
+ "symfony/doctrine-messenger": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/form": "^5.4.38|^6.4.6|^7.0.6",
+ "symfony/http-kernel": "^6.3|^7.0",
+ "symfony/lock": "^6.3|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/proxy-manager-bridge": "^6.4",
+ "symfony/security-core": "^6.4|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -4304,7 +4307,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.12"
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.17"
},
"funding": [
{
@@ -4320,20 +4323,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:42:18+00:00"
+ "time": "2024-12-18T10:42:42+00:00"
},
{
"name": "symfony/dotenv",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
- "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0"
+ "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/d9eaf699978601af5a50c26cbc4326158d9bd8b0",
- "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/1ac5e7e7e862d4d574258daf08bd569ba926e4a5",
+ "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5",
"shasum": ""
},
"require": {
@@ -4344,8 +4347,8 @@
"symfony/process": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4378,7 +4381,7 @@
"environment"
],
"support": {
- "source": "https://github.com/symfony/dotenv/tree/v6.3.12"
+ "source": "https://github.com/symfony/dotenv/tree/v6.4.16"
},
"funding": [
{
@@ -4394,34 +4397,35 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-27T11:08:19+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629"
+ "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/93a8400a7eaaaf385b2d6f71e30e064baa639629",
- "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/37ad2380e8c1a8cf62a1200a5c10080b679b446c",
+ "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"conflict": {
- "symfony/deprecation-contracts": "<2.5"
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
},
"require-dev": {
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0"
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -4452,7 +4456,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.3.12"
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.17"
},
"funding": [
{
@@ -4468,20 +4472,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-12-06T13:30:51+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078"
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6e344ddd3c18c525b5e5a4e996f3debda48e3078",
- "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
"shasum": ""
},
"require": {
@@ -4498,13 +4502,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "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/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4532,7 +4536,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.3.12"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13"
},
"funding": [
{
@@ -4548,7 +4552,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -4628,21 +4632,21 @@
},
{
"name": "symfony/expression-language",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
- "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617"
+ "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/89f6dc6f1883c3dc3c31d418038966c9b1766617",
- "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/3524904fb026356a5230cd197f9a4e6a61e0e7df",
+ "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "symfony/cache": "^5.4|^6.0",
+ "symfony/cache": "^5.4|^6.0|^7.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^2.5|^3"
},
@@ -4672,7 +4676,7 @@
"description": "Provides an engine that can compile and evaluate expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/expression-language/tree/v6.3.12"
+ "source": "https://github.com/symfony/expression-language/tree/v6.4.13"
},
"funding": [
{
@@ -4688,20 +4692,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-10-09T08:40:40+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc"
+ "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/9f4b59b7906ccb0692d7565f98012fd1679eedfc",
- "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3",
+ "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3",
"shasum": ""
},
"require": {
@@ -4709,6 +4713,9 @@
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
+ "require-dev": {
+ "symfony/process": "^5.4|^6.4|^7.0"
+ },
"type": "library",
"autoload": {
"psr-4": {
@@ -4735,7 +4742,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.3.12"
+ "source": "https://github.com/symfony/filesystem/tree/v6.4.13"
},
"funding": [
{
@@ -4751,27 +4758,27 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.3.5",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
+ "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
+ "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4799,7 +4806,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.3.5"
+ "source": "https://github.com/symfony/finder/tree/v6.4.17"
},
"funding": [
{
@@ -4815,7 +4822,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-26T12:56:25+00:00"
+ "time": "2024-12-29T13:51:37+00:00"
},
{
"name": "symfony/flex",
@@ -4887,27 +4894,27 @@
},
{
"name": "symfony/form",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
- "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88"
+ "reference": "0fe17f90af23908ddc11dc23507db98e66572046"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/form/zipball/bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
- "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
+ "url": "https://api.github.com/repos/symfony/form/zipball/0fe17f90af23908ddc11dc23507db98e66572046",
+ "reference": "0fe17f90af23908ddc11dc23507db98e66572046",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/options-resolver": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/options-resolver": "^5.4|^6.0|^7.0",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-icu": "^1.21",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -4917,26 +4924,26 @@
"symfony/error-handler": "<5.4",
"symfony/framework-bundle": "<5.4",
"symfony/http-kernel": "<5.4",
- "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3",
"symfony/translation-contracts": "<2.5",
"symfony/twig-bridge": "<6.3"
},
"require-dev": {
"doctrine/collections": "^1.0|^2.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/html-sanitizer": "^6.1",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
- "symfony/security-core": "^6.2",
- "symfony/security-csrf": "^5.4|^6.0",
- "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/html-sanitizer": "^6.1|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^6.2|^7.0",
+ "symfony/security-csrf": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4964,7 +4971,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/form/tree/v6.3.12"
+ "source": "https://github.com/symfony/form/tree/v6.4.13"
},
"funding": [
{
@@ -4980,38 +4987,38 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-10-09T08:40:40+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "e144e3757296bed367ec3b764d8438891af75f78"
+ "reference": "17d8ae2e7aa77154f942e8ac48849ac718b0963f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e144e3757296bed367ec3b764d8438891af75f78",
- "reference": "e144e3757296bed367ec3b764d8438891af75f78",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/17d8ae2e7aa77154f942e8ac48849ac718b0963f",
+ "reference": "17d8ae2e7aa77154f942e8ac48849ac718b0963f",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
"php": ">=8.1",
- "symfony/cache": "^5.4|^6.0",
- "symfony/config": "^6.1",
- "symfony/dependency-injection": "^6.3.1",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/dependency-injection": "^6.4.12|^7.0",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.1",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/http-foundation": "^6.3",
- "symfony/http-kernel": "^6.3",
+ "symfony/error-handler": "^6.1|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/routing": "^5.4|^6.0"
+ "symfony/routing": "^6.4|^7.0"
},
"conflict": {
"doctrine/annotations": "<1.13.1",
@@ -5019,68 +5026,73 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/asset": "<5.4",
+ "symfony/asset-mapper": "<6.4",
"symfony/clock": "<6.3",
"symfony/console": "<5.4|>=7.0",
- "symfony/dom-crawler": "<6.3",
+ "symfony/dom-crawler": "<6.4",
"symfony/dotenv": "<5.4",
"symfony/form": "<5.4",
"symfony/http-client": "<6.3",
"symfony/lock": "<5.4",
"symfony/mailer": "<5.4",
"symfony/messenger": "<6.3",
- "symfony/mime": "<6.2",
+ "symfony/mime": "<6.4",
"symfony/property-access": "<5.4",
"symfony/property-info": "<5.4",
+ "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6",
+ "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4",
"symfony/security-core": "<5.4",
"symfony/security-csrf": "<5.4",
- "symfony/serializer": "<6.3",
+ "symfony/serializer": "<6.4",
"symfony/stopwatch": "<5.4",
- "symfony/translation": "<6.2.8",
+ "symfony/translation": "<6.4",
"symfony/twig-bridge": "<5.4",
"symfony/twig-bundle": "<5.4",
- "symfony/validator": "<6.3",
- "symfony/web-profiler-bundle": "<5.4",
- "symfony/workflow": "<5.4"
+ "symfony/validator": "<6.4",
+ "symfony/web-profiler-bundle": "<6.4",
+ "symfony/workflow": "<6.4"
},
"require-dev": {
"doctrine/annotations": "^1.13.1|^2",
"doctrine/persistence": "^1.3|^2|^3",
+ "dragonmantank/cron-expression": "^3.1",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^5.4|^6.0",
- "symfony/asset-mapper": "^6.3",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/clock": "^6.2",
- "symfony/console": "^5.4.9|^6.0.9",
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/dom-crawler": "^6.3",
- "symfony/dotenv": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/form": "^5.4|^6.0",
- "symfony/html-sanitizer": "^6.1",
- "symfony/http-client": "^6.3",
- "symfony/lock": "^5.4|^6.0",
- "symfony/mailer": "^5.4|^6.0",
- "symfony/messenger": "^6.3",
- "symfony/mime": "^6.2",
- "symfony/notifier": "^5.4|^6.0",
+ "seld/jsonlint": "^1.10",
+ "symfony/asset": "^5.4|^6.0|^7.0",
+ "symfony/asset-mapper": "^6.4|^7.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/console": "^5.4.9|^6.0.9|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dom-crawler": "^6.4|^7.0",
+ "symfony/dotenv": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/form": "^5.4|^6.0|^7.0",
+ "symfony/html-sanitizer": "^6.1|^7.0",
+ "symfony/http-client": "^6.3|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/mailer": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.3|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/notifier": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/property-info": "^5.4|^6.0",
- "symfony/rate-limiter": "^5.4|^6.0",
- "symfony/scheduler": "^6.3",
- "symfony/security-bundle": "^5.4|^6.0",
- "symfony/semaphore": "^5.4|^6.0",
- "symfony/serializer": "^6.3",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/string": "^5.4|^6.0",
- "symfony/translation": "^6.2.8",
- "symfony/twig-bundle": "^5.4|^6.0",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^6.3",
- "symfony/web-link": "^5.4|^6.0",
- "symfony/workflow": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0",
- "twig/twig": "^2.10|^3.0"
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0",
+ "symfony/scheduler": "^6.4.4|^7.0.4",
+ "symfony/security-bundle": "^5.4|^6.0|^7.0",
+ "symfony/semaphore": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/string": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/web-link": "^5.4|^6.0|^7.0",
+ "symfony/workflow": "^6.4|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.10|^3.0.4"
},
"type": "symfony-bundle",
"autoload": {
@@ -5108,7 +5120,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/framework-bundle/tree/v6.3.12"
+ "source": "https://github.com/symfony/framework-bundle/tree/v6.4.17"
},
"funding": [
{
@@ -5124,27 +5136,27 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-12-19T14:08:41+00:00"
},
{
"name": "symfony/http-client",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "510c51058dbef5db7d49c704954f32d6527d17f8"
+ "reference": "88898d842eb29d7e1a903724c94e90a6ca9c0509"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/510c51058dbef5db7d49c704954f32d6527d17f8",
- "reference": "510c51058dbef5db7d49c704954f32d6527d17f8",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/88898d842eb29d7e1a903724c94e90a6ca9c0509",
+ "reference": "88898d842eb29d7e1a903724c94e90a6ca9c0509",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-client-contracts": "^3",
+ "symfony/http-client-contracts": "~3.4.4|^3.5.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -5162,14 +5174,15 @@
"amphp/http-client": "^4.2.1",
"amphp/http-tunnel": "^1.0",
"amphp/socket": "^1.1",
- "guzzlehttp/promises": "^1.4",
+ "guzzlehttp/promises": "^1.4|^2.0",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5200,7 +5213,7 @@
"http"
],
"support": {
- "source": "https://github.com/symfony/http-client/tree/v6.3.12"
+ "source": "https://github.com/symfony/http-client/tree/v6.4.17"
},
"funding": [
{
@@ -5216,7 +5229,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T14:46:07+00:00"
+ "time": "2024-12-18T12:18:31+00:00"
},
{
"name": "symfony/http-client-contracts",
@@ -5298,16 +5311,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa"
+ "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3b72add708d48e8c08f7152df2d0b8d5303408fa",
- "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57",
+ "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57",
"shasum": ""
},
"require": {
@@ -5317,17 +5330,17 @@
"symfony/polyfill-php83": "^1.27"
},
"conflict": {
- "symfony/cache": "<6.3"
+ "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
},
"require-dev": {
"doctrine/dbal": "^2.13.1|^3|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^5.4|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0"
+ "symfony/cache": "^6.4.12|^7.1.5",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5355,7 +5368,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.3.12"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.16"
},
"funding": [
{
@@ -5371,29 +5384,29 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-13T18:58:10+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b"
+ "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
- "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c5647393c5ce11833d13e4b70fff4b571d4ac710",
+ "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/http-foundation": "^6.3.4",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -5401,7 +5414,7 @@
"symfony/cache": "<5.4",
"symfony/config": "<6.1",
"symfony/console": "<5.4",
- "symfony/dependency-injection": "<6.3.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/doctrine-bridge": "<5.4",
"symfony/form": "<5.4",
"symfony/http-client": "<5.4",
@@ -5411,7 +5424,7 @@
"symfony/translation": "<5.4",
"symfony/translation-contracts": "<2.5",
"symfony/twig-bridge": "<5.4",
- "symfony/validator": "<5.4",
+ "symfony/validator": "<6.4",
"symfony/var-dumper": "<6.3",
"twig/twig": "<2.13"
},
@@ -5420,26 +5433,27 @@
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/clock": "^6.2",
- "symfony/config": "^6.1",
- "symfony/console": "^5.4|^6.0",
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/dependency-injection": "^6.3.4",
- "symfony/dom-crawler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^5.4|^6.0",
- "symfony/property-access": "^5.4.5|^6.0.5",
- "symfony/routing": "^5.4|^6.0",
- "symfony/serializer": "^6.3",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.4|^7.0.4",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^6.3",
- "symfony/var-exporter": "^6.2",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.4|^7.0",
+ "symfony/var-exporter": "^6.2|^7.0",
"twig/twig": "^2.13|^3.0.4"
},
"type": "library",
@@ -5468,7 +5482,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.3.12"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.17"
},
"funding": [
{
@@ -5484,48 +5498,48 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T20:05:26+00:00"
+ "time": "2024-12-31T14:49:31+00:00"
},
{
"name": "symfony/maker-bundle",
- "version": "v1.53.0",
+ "version": "v1.62.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
- "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9"
+ "reference": "468ff2708200c95ebc0d85d3174b6c6711b8a590"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/8d2f3f96704766837548d177fe3ae39ae94822d9",
- "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9",
+ "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/468ff2708200c95ebc0d85d3174b6c6711b8a590",
+ "reference": "468ff2708200c95ebc0d85d3174b6c6711b8a590",
"shasum": ""
},
"require": {
"doctrine/inflector": "^2.0",
"nikic/php-parser": "^4.18|^5.0",
"php": ">=8.1",
- "symfony/config": "^6.3|^7.0",
- "symfony/console": "^6.3|^7.0",
- "symfony/dependency-injection": "^6.3|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
"symfony/deprecation-contracts": "^2.2|^3",
- "symfony/filesystem": "^6.3|^7.0",
- "symfony/finder": "^6.3|^7.0",
- "symfony/framework-bundle": "^6.3|^7.0",
- "symfony/http-kernel": "^6.3|^7.0",
- "symfony/process": "^6.3|^7.0"
+ "symfony/filesystem": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0"
},
"conflict": {
- "doctrine/doctrine-bundle": "<2.4",
- "doctrine/orm": "<2.10"
+ "doctrine/doctrine-bundle": "<2.10",
+ "doctrine/orm": "<2.15"
},
"require-dev": {
"composer/semver": "^3.0",
"doctrine/doctrine-bundle": "^2.5.0",
- "doctrine/orm": "^2.10.0",
- "symfony/http-client": "^6.3|^7.0",
- "symfony/phpunit-bridge": "^6.3|^7.0",
- "symfony/security-core": "^6.3|^7.0",
- "symfony/yaml": "^6.3|^7.0",
+ "doctrine/orm": "^2.15|^3",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/phpunit-bridge": "^6.4.1|^7.0",
+ "symfony/security-core": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0",
"twig/twig": "^3.0|^4.x-dev"
},
"type": "symfony-bundle",
@@ -5560,7 +5574,7 @@
],
"support": {
"issues": "https://github.com/symfony/maker-bundle/issues",
- "source": "https://github.com/symfony/maker-bundle/tree/v1.53.0"
+ "source": "https://github.com/symfony/maker-bundle/tree/v1.62.1"
},
"funding": [
{
@@ -5576,20 +5590,20 @@
"type": "tidelift"
}
],
- "time": "2024-02-01T10:05:38+00:00"
+ "time": "2025-01-15T00:21:40+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a"
+ "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
- "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
+ "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
"shasum": ""
},
"require": {
@@ -5603,16 +5617,17 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<5.4",
- "symfony/serializer": "<6.3.12|>=6.4,<6.4.3"
+ "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/property-access": "^5.4|^6.0",
- "symfony/property-info": "^5.4|^6.0",
- "symfony/serializer": "~6.3.12|^6.4.3"
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.4|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.3|^7.0.3"
},
"type": "library",
"autoload": {
@@ -5644,7 +5659,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.3.12"
+ "source": "https://github.com/symfony/mime/tree/v6.4.17"
},
"funding": [
{
@@ -5660,41 +5675,42 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T08:17:33+00:00"
+ "time": "2024-12-02T11:09:41+00:00"
},
{
"name": "symfony/monolog-bridge",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "b655801218307a85cc0ebb853ac289446db3084a"
+ "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/b655801218307a85cc0ebb853ac289446db3084a",
- "reference": "b655801218307a85cc0ebb853ac289446db3084a",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9d14621e59f22c2b6d030d92d37ffe5ae1e60452",
+ "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452",
"shasum": ""
},
"require": {
"monolog/monolog": "^1.25.1|^2|^3",
"php": ">=8.1",
- "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/console": "<5.4",
"symfony/http-foundation": "<5.4",
- "symfony/security-core": "<6.0"
+ "symfony/security-core": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/mailer": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/mime": "^5.4|^6.0",
- "symfony/security-core": "^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/mailer": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -5722,7 +5738,7 @@
"description": "Provides integration for Monolog with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.12"
+ "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.13"
},
"funding": [
{
@@ -5738,7 +5754,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T14:47:00+00:00"
+ "time": "2024-10-14T08:49:08+00:00"
},
{
"name": "symfony/monolog-bundle",
@@ -5823,16 +5839,16 @@
},
{
"name": "symfony/options-resolver",
- "version": "v6.3.0",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
+ "reference": "368128ad168f20e22c32159b9f761e456cec0c78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/368128ad168f20e22c32159b9f761e456cec0c78",
+ "reference": "368128ad168f20e22c32159b9f761e456cec0c78",
"shasum": ""
},
"require": {
@@ -5870,7 +5886,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.3.0"
+ "source": "https://github.com/symfony/options-resolver/tree/v6.4.16"
},
"funding": [
{
@@ -5886,20 +5902,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-12T14:21:09+00:00"
+ "time": "2024-11-20T10:57:02+00:00"
},
{
"name": "symfony/password-hasher",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/password-hasher.git",
- "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe"
+ "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/password-hasher/zipball/513140986f5d6ca1b1ef86f47166a36654571bfe",
- "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47",
+ "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47",
"shasum": ""
},
"require": {
@@ -5909,8 +5925,8 @@
"symfony/security-core": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0",
- "symfony/security-core": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5942,7 +5958,7 @@
"password"
],
"support": {
- "source": "https://github.com/symfony/password-hasher/tree/v6.3.12"
+ "source": "https://github.com/symfony/password-hasher/tree/v6.4.13"
},
"funding": [
{
@@ -5958,20 +5974,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/phpunit-bridge",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "9e480445d8bb5f343870a1cba45e15a54cb3d83c"
+ "reference": "cebafe2f1ad2d1e745c1015b7c2519592341e4e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/9e480445d8bb5f343870a1cba45e15a54cb3d83c",
- "reference": "9e480445d8bb5f343870a1cba45e15a54cb3d83c",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cebafe2f1ad2d1e745c1015b7c2519592341e4e6",
+ "reference": "cebafe2f1ad2d1e745c1015b7c2519592341e4e6",
"shasum": ""
},
"require": {
@@ -5982,7 +5998,7 @@
},
"require-dev": {
"symfony/deprecation-contracts": "^2.5|^3.0",
- "symfony/error-handler": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
"symfony/polyfill-php81": "^1.27"
},
"bin": [
@@ -6003,7 +6019,8 @@
"Symfony\\Bridge\\PhpUnit\\": ""
},
"exclude-from-classmap": [
- "/Tests/"
+ "/Tests/",
+ "/bin/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -6023,7 +6040,7 @@
"description": "Provides utilities for PHPUnit, especially user deprecation notices management",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.12"
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.16"
},
"funding": [
{
@@ -6039,7 +6056,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-13T15:06:22+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -6825,16 +6842,16 @@
},
{
"name": "symfony/process",
- "version": "v6.3.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882"
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
- "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392",
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392",
"shasum": ""
},
"require": {
@@ -6866,7 +6883,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.3.12"
+ "source": "https://github.com/symfony/process/tree/v6.4.15"
},
"funding": [
{
@@ -6882,29 +6899,29 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-06T14:19:14+00:00"
},
{
"name": "symfony/property-access",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0"
+ "reference": "8cc779d88d12e440adaa26387bcfc25744064afe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/bbf7228ce2673538e1502cf1613d84ecfe8548d0",
- "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/8cc779d88d12e440adaa26387bcfc25744064afe",
+ "reference": "8cc779d88d12e440adaa26387bcfc25744064afe",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/property-info": "^5.4|^6.0"
+ "symfony/property-info": "^5.4|^6.0|^7.0"
},
"require-dev": {
- "symfony/cache": "^5.4|^6.0"
+ "symfony/cache": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -6943,7 +6960,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v6.3.12"
+ "source": "https://github.com/symfony/property-access/tree/v6.4.13"
},
"funding": [
{
@@ -6959,38 +6976,39 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/property-info",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb"
+ "reference": "38b125d78e67668159f75383a293ec0c5d3f2963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/ad9640f115b090503d52e8c8d5029e6041a40ccb",
- "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/38b125d78e67668159f75383a293ec0c5d3f2963",
+ "reference": "38b125d78e67668159f75383a293ec0c5d3f2963",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^5.4|^6.0|^7.0"
},
"conflict": {
+ "doctrine/annotations": "<1.12",
"phpdocumentor/reflection-docblock": "<5.2",
"phpdocumentor/type-resolver": "<1.5.1",
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<5.4|>=6.0,<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4|^2",
+ "doctrine/annotations": "^1.12|^2",
"phpdocumentor/reflection-docblock": "^5.2",
- "phpstan/phpdoc-parser": "^1.0",
- "symfony/cache": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0"
+ "phpstan/phpdoc-parser": "^1.0|^2.0",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^5.4|^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7026,7 +7044,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v6.3.12"
+ "source": "https://github.com/symfony/property-info/tree/v6.4.17"
},
"funding": [
{
@@ -7042,20 +7060,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-12-26T19:01:29+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85"
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
- "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220",
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220",
"shasum": ""
},
"require": {
@@ -7071,11 +7089,11 @@
"require-dev": {
"doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^6.2",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/config": "^6.2|^7.0",
+ "symfony/dependency-injection": "^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/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -7109,7 +7127,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.3.12"
+ "source": "https://github.com/symfony/routing/tree/v6.4.16"
},
"funding": [
{
@@ -7125,20 +7143,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T13:17:59+00:00"
+ "time": "2024-11-13T15:31:34+00:00"
},
{
"name": "symfony/runtime",
- "version": "v6.3.12",
+ "version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/runtime.git",
- "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486"
+ "reference": "4facd4174f45cd37c65860403412b67c7381136a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/runtime/zipball/a8d2b8f6033a33c224b43065a10bab5e4f0be486",
- "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/4facd4174f45cd37c65860403412b67c7381136a",
+ "reference": "4facd4174f45cd37c65860403412b67c7381136a",
"shasum": ""
},
"require": {
@@ -7150,10 +7168,10 @@
},
"require-dev": {
"composer/composer": "^1.0.2|^2.0",
- "symfony/console": "^5.4.9|^6.0.9",
- "symfony/dotenv": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0"
+ "symfony/console": "^5.4.9|^6.0.9|^7.0",
+ "symfony/dotenv": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0"
},
"type": "composer-plugin",
"extra": {
@@ -7188,7 +7206,7 @@
"runtime"
],
"support": {
- "source": "https://github.com/symfony/runtime/tree/v6.3.12"
+ "source": "https://github.com/symfony/runtime/tree/v6.4.14"
},
"funding": [
{
@@ -7204,67 +7222,68 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-05T16:39:55+00:00"
},
{
"name": "symfony/security-bundle",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-bundle.git",
- "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244"
+ "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-bundle/zipball/60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
- "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3",
+ "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
"php": ">=8.1",
- "symfony/clock": "^6.3",
- "symfony/config": "^6.1",
- "symfony/dependency-injection": "^6.2",
+ "symfony/clock": "^6.3|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/dependency-injection": "^6.4.11|^7.1.4",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/http-foundation": "^6.2",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.2|^7.0",
"symfony/http-kernel": "^6.2",
- "symfony/password-hasher": "^5.4|^6.0",
- "symfony/security-core": "^6.2",
- "symfony/security-csrf": "^5.4|^6.0",
- "symfony/security-http": "^6.3.6",
+ "symfony/password-hasher": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^6.2|^7.0",
+ "symfony/security-csrf": "^5.4|^6.0|^7.0",
+ "symfony/security-http": "^6.3.6|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/browser-kit": "<5.4",
"symfony/console": "<5.4",
- "symfony/framework-bundle": "<6.3",
+ "symfony/framework-bundle": "<6.4",
"symfony/http-client": "<5.4",
"symfony/ldap": "<5.4",
- "symfony/twig-bundle": "<5.4"
+ "symfony/serializer": "<6.4",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/validator": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4|^2",
- "symfony/asset": "^5.4|^6.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/dom-crawler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/form": "^5.4|^6.0",
- "symfony/framework-bundle": "^6.3",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/ldap": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/rate-limiter": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
- "symfony/twig-bridge": "^5.4|^6.0",
- "symfony/twig-bundle": "^5.4|^6.0",
- "symfony/validator": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0",
+ "symfony/asset": "^5.4|^6.0|^7.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/form": "^5.4|^6.0|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/ldap": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/twig-bridge": "^5.4|^6.0|^7.0",
+ "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0",
"twig/twig": "^2.13|^3.0.4",
"web-token/jwt-checker": "^3.1",
"web-token/jwt-signature-algorithm-ecdsa": "^3.1",
@@ -7299,7 +7318,7 @@
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-bundle/tree/v6.3.12"
+ "source": "https://github.com/symfony/security-bundle/tree/v6.4.13"
},
"funding": [
{
@@ -7315,27 +7334,27 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:42:18+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/security-core",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-core.git",
- "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92"
+ "reference": "19cdb7de86e556202ab16e0cffd1a97348231bc0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-core/zipball/a2e6a338aaf4efec722839ec49f88eed2d752f92",
- "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/19cdb7de86e556202ab16e0cffd1a97348231bc0",
+ "reference": "19cdb7de86e556202ab16e0cffd1a97348231bc0",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3",
- "symfony/password-hasher": "^5.4|^6.0",
+ "symfony/password-hasher": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -7343,21 +7362,21 @@
"symfony/http-foundation": "<5.4",
"symfony/ldap": "<5.4",
"symfony/security-guard": "<5.4",
- "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3",
"symfony/validator": "<5.4"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
"psr/container": "^1.1|^2.0",
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/ldap": "^5.4|^6.0",
- "symfony/string": "^5.4|^6.0",
- "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
- "symfony/validator": "^5.4|^6.0"
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^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/ldap": "^5.4|^6.0|^7.0",
+ "symfony/string": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3",
+ "symfony/validator": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7385,7 +7404,7 @@
"description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-core/tree/v6.3.12"
+ "source": "https://github.com/symfony/security-core/tree/v6.4.16"
},
"funding": [
{
@@ -7401,31 +7420,31 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:42:18+00:00"
+ "time": "2024-11-27T09:48:51+00:00"
},
{
"name": "symfony/security-csrf",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-csrf.git",
- "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5"
+ "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-csrf/zipball/7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
- "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c34421b7d34efbaef5d611ab2e646a0ec464ffe3",
+ "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "symfony/security-core": "^5.4|^6.0"
+ "symfony/security-core": "^5.4|^6.0|^7.0"
},
"conflict": {
"symfony/http-foundation": "<5.4"
},
"require-dev": {
- "symfony/http-foundation": "^5.4|^6.0"
+ "symfony/http-foundation": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -7453,7 +7472,7 @@
"description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-csrf/tree/v6.3.12"
+ "source": "https://github.com/symfony/security-csrf/tree/v6.4.13"
},
"funding": [
{
@@ -7469,30 +7488,30 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/security-http",
- "version": "v6.3.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-http.git",
- "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60"
+ "reference": "ded1e078f952e686b058d9eac98e497bea47b308"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-http/zipball/09eb813655cd9b1f679f4d984721633e9a0bab60",
- "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/ded1e078f952e686b058d9eac98e497bea47b308",
+ "reference": "ded1e078f952e686b058d9eac98e497bea47b308",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^6.3",
+ "symfony/http-foundation": "^6.2|^7.0",
+ "symfony/http-kernel": "^6.3|^7.0",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/property-access": "^5.4|^6.0",
- "symfony/security-core": "^6.3",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -7504,14 +7523,14 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0",
- "symfony/clock": "^6.3",
- "symfony/expression-language": "^5.4|^6.0",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.3|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^3.0",
- "symfony/rate-limiter": "^5.4|^6.0",
- "symfony/routing": "^5.4|^6.0",
- "symfony/security-csrf": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/security-csrf": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
"web-token/jwt-checker": "^3.1",
"web-token/jwt-signature-algorithm-ecdsa": "^3.1"
},
@@ -7541,7 +7560,7 @@
"description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-http/tree/v6.3.12"
+ "source": "https://github.com/symfony/security-http/tree/v6.4.15"
},
"funding": [
{
@@ -7557,20 +7576,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:42:18+00:00"
+ "time": "2024-11-13T13:40:18+00:00"
},
{
"name": "symfony/serializer",
- "version": "v6.3.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803"
+ "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
- "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e",
+ "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e",
"shasum": ""
},
"require": {
@@ -7586,28 +7605,32 @@
"symfony/property-access": "<5.4",
"symfony/property-info": "<5.4.24|>=6,<6.2.11",
"symfony/uid": "<5.4",
+ "symfony/validator": "<6.4",
"symfony/yaml": "<5.4"
},
"require-dev": {
"doctrine/annotations": "^1.12|^2",
"phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
- "symfony/cache": "^5.4|^6.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/form": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/mime": "^5.4|^6.0",
- "symfony/property-access": "^5.4.26|^6.3",
- "symfony/property-info": "^5.4.24|^6.2.11",
- "symfony/uid": "^5.4|^6.0",
- "symfony/validator": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0",
- "symfony/var-exporter": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0"
+ "seld/jsonlint": "^1.10",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^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/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/form": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.26|^6.3|^7.0",
+ "symfony/property-info": "^5.4.24|^6.2.11|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -7635,7 +7658,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v6.3.12"
+ "source": "https://github.com/symfony/serializer/tree/v6.4.15"
},
"funding": [
{
@@ -7651,7 +7674,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T08:17:33+00:00"
+ "time": "2024-10-23T13:25:59+00:00"
},
{
"name": "symfony/service-contracts",
@@ -7738,16 +7761,16 @@
},
{
"name": "symfony/stopwatch",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1"
+ "reference": "2cae0a6f8d04937d02f6d19806251e2104d54f92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/416596166641f1f728b0a64f5b9dd07cceb410c1",
- "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2cae0a6f8d04937d02f6d19806251e2104d54f92",
+ "reference": "2cae0a6f8d04937d02f6d19806251e2104d54f92",
"shasum": ""
},
"require": {
@@ -7780,7 +7803,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.3.12"
+ "source": "https://github.com/symfony/stopwatch/tree/v6.4.13"
},
"funding": [
{
@@ -7796,20 +7819,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/string",
- "version": "v6.3.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "bce75043af265dc8aca536a6ab1d6b3181763529"
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/bce75043af265dc8aca536a6ab1d6b3181763529",
- "reference": "bce75043af265dc8aca536a6ab1d6b3181763529",
+ "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
"shasum": ""
},
"require": {
@@ -7823,11 +7846,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -7866,7 +7889,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.12"
+ "source": "https://github.com/symfony/string/tree/v6.4.15"
},
"funding": [
{
@@ -7882,24 +7905,25 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-13T13:31:12+00:00"
},
{
"name": "symfony/templating",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/templating.git",
- "reference": "4c54c5c58e0c7ddf8fd452b4657ed7cec586d013"
+ "reference": "e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/templating/zipball/4c54c5c58e0c7ddf8fd452b4657ed7cec586d013",
- "reference": "4c54c5c58e0c7ddf8fd452b4657ed7cec586d013",
+ "url": "https://api.github.com/repos/symfony/templating/zipball/e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33",
+ "reference": "e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8"
},
"require-dev": {
@@ -7931,7 +7955,7 @@
"description": "Provides all the tools needed to build any kind of template system",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/templating/tree/v6.3.12"
+ "source": "https://github.com/symfony/templating/tree/v6.4.13"
},
"funding": [
{
@@ -7947,20 +7971,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5"
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
- "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66",
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66",
"shasum": ""
},
"require": {
@@ -7985,17 +8009,17 @@
"require-dev": {
"nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -8026,7 +8050,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.3.12"
+ "source": "https://github.com/symfony/translation/tree/v6.4.13"
},
"funding": [
{
@@ -8042,7 +8066,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-27T18:14:25+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -8124,20 +8148,21 @@
},
{
"name": "symfony/twig-bridge",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108"
+ "reference": "238e1aac992b5231c66faf10131ace7bdba97065"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/dd34e348a9237d40eb7a791ee14de6efbadd5108",
- "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/238e1aac992b5231c66faf10131ace7bdba97065",
+ "reference": "238e1aac992b5231c66faf10131ace7bdba97065",
"shasum": ""
},
"require": {
"php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/translation-contracts": "^2.5|^3",
"twig/twig": "^2.13|^3.0.4"
},
@@ -8147,41 +8172,41 @@
"symfony/console": "<5.4",
"symfony/form": "<6.3",
"symfony/http-foundation": "<5.4",
- "symfony/http-kernel": "<6.2",
+ "symfony/http-kernel": "<6.4",
"symfony/mime": "<6.2",
+ "symfony/serializer": "<6.4",
"symfony/translation": "<5.4",
"symfony/workflow": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12|^2",
"egulias/email-validator": "^2.1.10|^3|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^5.4|^6.0",
- "symfony/asset-mapper": "^6.3",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/form": "^6.3",
- "symfony/html-sanitizer": "^6.1",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/http-kernel": "^6.2",
- "symfony/intl": "^5.4|^6.0",
- "symfony/mime": "^6.2",
+ "symfony/asset": "^5.4|^6.0|^7.0",
+ "symfony/asset-mapper": "^6.3|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/form": "^6.4|^7.0",
+ "symfony/html-sanitizer": "^6.1|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/property-info": "^5.4|^6.0",
- "symfony/routing": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
"symfony/security-acl": "^2.8|^3.0",
- "symfony/security-core": "^5.4|^6.0",
- "symfony/security-csrf": "^5.4|^6.0",
- "symfony/security-http": "^5.4|^6.0",
- "symfony/serializer": "~6.3.12|^6.4.3",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/translation": "^6.1",
- "symfony/web-link": "^5.4|^6.0",
- "symfony/workflow": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0",
+ "symfony/security-core": "^5.4|^6.0|^7.0",
+ "symfony/security-csrf": "^5.4|^6.0|^7.0",
+ "symfony/security-http": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.3|^7.0.3",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^6.1|^7.0",
+ "symfony/web-link": "^5.4|^6.0|^7.0",
+ "symfony/workflow": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0",
"twig/cssinliner-extra": "^2.12|^3",
"twig/inky-extra": "^2.12|^3",
"twig/markdown-extra": "^2.12|^3"
@@ -8212,7 +8237,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v6.3.12"
+ "source": "https://github.com/symfony/twig-bridge/tree/v6.4.17"
},
"funding": [
{
@@ -8228,30 +8253,30 @@
"type": "tidelift"
}
],
- "time": "2024-01-30T08:17:33+00:00"
+ "time": "2024-12-19T14:08:41+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b"
+ "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/820d2a7a2b876b287215a6b93f482dace8057d9b",
- "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c3beeb5336aba1ea03c37e526968c2fde3ef25c4",
+ "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"php": ">=8.1",
- "symfony/config": "^6.1",
- "symfony/dependency-injection": "^6.1",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/dependency-injection": "^6.1|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
"symfony/http-kernel": "^6.2",
- "symfony/twig-bridge": "^6.3",
+ "symfony/twig-bridge": "^6.4",
"twig/twig": "^2.13|^3.0.4"
},
"conflict": {
@@ -8259,17 +8284,16 @@
"symfony/translation": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4|^2",
- "symfony/asset": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/form": "^5.4|^6.0",
- "symfony/framework-bundle": "^5.4|^6.0",
- "symfony/routing": "^5.4|^6.0",
- "symfony/stopwatch": "^5.4|^6.0",
- "symfony/translation": "^5.4|^6.0",
- "symfony/web-link": "^5.4|^6.0",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/asset": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/form": "^5.4|^6.0|^7.0",
+ "symfony/framework-bundle": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/web-link": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -8297,7 +8321,7 @@
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bundle/tree/v6.3.12"
+ "source": "https://github.com/symfony/twig-bundle/tree/v6.4.13"
},
"funding": [
{
@@ -8313,20 +8337,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/uid",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4"
+ "reference": "18eb207f0436a993fffbdd811b5b8fa35fa5e007"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4",
- "reference": "49d02f0c96c79f9cbfdb0e88ea2be0654b1c2da4",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/18eb207f0436a993fffbdd811b5b8fa35fa5e007",
+ "reference": "18eb207f0436a993fffbdd811b5b8fa35fa5e007",
"shasum": ""
},
"require": {
@@ -8334,7 +8358,7 @@
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -8371,7 +8395,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.3.12"
+ "source": "https://github.com/symfony/uid/tree/v6.4.13"
},
"funding": [
{
@@ -8387,20 +8411,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.3.12",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "5791cc448c78a1a7879812d8073cc6690286e488"
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5791cc448c78a1a7879812d8073cc6690286e488",
- "reference": "5791cc448c78a1a7879812d8073cc6690286e488",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
"shasum": ""
},
"require": {
@@ -8413,10 +8437,11 @@
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/uid": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
"twig/twig": "^2.13|^3.0.4"
},
"bin": [
@@ -8455,7 +8480,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.3.12"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.15"
},
"funding": [
{
@@ -8471,27 +8496,30 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-11-08T15:28:48+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b"
+ "reference": "0f605f72a363f8743001038a176eeb2a11223b51"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
- "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51",
+ "reference": "0f605f72a363f8743001038a176eeb2a11223b51",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -8529,7 +8557,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.3.12"
+ "source": "https://github.com/symfony/var-exporter/tree/v6.4.13"
},
"funding": [
{
@@ -8545,20 +8573,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/web-link",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-link.git",
- "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e"
+ "reference": "4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-link/zipball/0bc29a164b8c9c683d5eb0f839762c055d01e42e",
- "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94",
+ "reference": "4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94",
"shasum": ""
},
"require": {
@@ -8572,7 +8600,7 @@
"psr/link-implementation": "1.0|2.0"
},
"require-dev": {
- "symfony/http-kernel": "^5.4|^6.0"
+ "symfony/http-kernel": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -8612,7 +8640,7 @@
"push"
],
"support": {
- "source": "https://github.com/symfony/web-link/tree/v6.3.12"
+ "source": "https://github.com/symfony/web-link/tree/v6.4.13"
},
"funding": [
{
@@ -8628,41 +8656,42 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v6.3.12",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "920efdd0f53f088b44963cf89368038ee39719b9"
+ "reference": "979f8ee1a4f2464c20f3fef0d2111827fef2e97e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/920efdd0f53f088b44963cf89368038ee39719b9",
- "reference": "920efdd0f53f088b44963cf89368038ee39719b9",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/979f8ee1a4f2464c20f3fef0d2111827fef2e97e",
+ "reference": "979f8ee1a4f2464c20f3fef0d2111827fef2e97e",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "symfony/config": "^5.4|^6.0",
- "symfony/framework-bundle": "^5.4|^6.0,<6.4",
- "symfony/http-kernel": "^6.3",
- "symfony/routing": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
"symfony/twig-bundle": "^5.4|^6.0",
"twig/twig": "^2.13|^3.0.4"
},
"conflict": {
"symfony/form": "<5.4",
"symfony/mailer": "<5.4",
- "symfony/messenger": "<5.4"
+ "symfony/messenger": "<5.4",
+ "symfony/twig-bundle": ">=7.0"
},
"require-dev": {
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -8693,7 +8722,7 @@
"dev"
],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.12"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.17"
},
"funding": [
{
@@ -8709,7 +8738,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T16:21:43+00:00"
+ "time": "2024-12-08T23:00:41+00:00"
},
{
"name": "symfony/webpack-encore-bundle",
@@ -8786,16 +8815,16 @@
},
{
"name": "symfony/yaml",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246"
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
- "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
"shasum": ""
},
"require": {
@@ -8807,7 +8836,7 @@
"symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -8838,7 +8867,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.3.12"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.13"
},
"funding": [
{
@@ -8854,38 +8883,38 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "twig/extra-bundle",
- "version": "v3.8.0",
+ "version": "v3.18.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
- "reference": "32807183753de0388c8e59f7ac2d13bb47311140"
+ "reference": "9746573ca4bc1cd03a767a183faadaf84e0c31fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/32807183753de0388c8e59f7ac2d13bb47311140",
- "reference": "32807183753de0388c8e59f7ac2d13bb47311140",
+ "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/9746573ca4bc1cd03a767a183faadaf84e0c31fa",
+ "reference": "9746573ca4bc1cd03a767a183faadaf84e0c31fa",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/framework-bundle": "^5.4|^6.0|^7.0",
- "symfony/twig-bundle": "^5.4|^6.0|^7.0",
- "twig/twig": "^3.0"
+ "php": ">=8.0.2",
+ "symfony/framework-bundle": "^5.4|^6.4|^7.0",
+ "symfony/twig-bundle": "^5.4|^6.4|^7.0",
+ "twig/twig": "^3.2|^4.0"
},
"require-dev": {
"league/commonmark": "^1.0|^2.0",
"symfony/phpunit-bridge": "^6.4|^7.0",
"twig/cache-extra": "^3.0",
- "twig/cssinliner-extra": "^2.12|^3.0",
- "twig/html-extra": "^2.12|^3.0",
- "twig/inky-extra": "^2.12|^3.0",
- "twig/intl-extra": "^2.12|^3.0",
- "twig/markdown-extra": "^2.12|^3.0",
- "twig/string-extra": "^2.12|^3.0"
+ "twig/cssinliner-extra": "^3.0",
+ "twig/html-extra": "^3.0",
+ "twig/inky-extra": "^3.0",
+ "twig/intl-extra": "^3.0",
+ "twig/markdown-extra": "^3.0",
+ "twig/string-extra": "^3.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -8916,7 +8945,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.8.0"
+ "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.18.0"
},
"funding": [
{
@@ -8928,7 +8957,7 @@
"type": "tidelift"
}
],
- "time": "2023-11-21T14:02:01+00:00"
+ "time": "2024-09-26T19:22:23+00:00"
},
{
"name": "twig/markdown-extra",
@@ -9004,23 +9033,23 @@
},
{
"name": "twig/string-extra",
- "version": "v3.8.0",
+ "version": "v3.18.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/string-extra.git",
- "reference": "b0c9037d96baff79abe368dc092a59b726517548"
+ "reference": "cb4eec11de02f63ad8ea9d065a1f27752d0bf752"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/string-extra/zipball/b0c9037d96baff79abe368dc092a59b726517548",
- "reference": "b0c9037d96baff79abe368dc092a59b726517548",
+ "url": "https://api.github.com/repos/twigphp/string-extra/zipball/cb4eec11de02f63ad8ea9d065a1f27752d0bf752",
+ "reference": "cb4eec11de02f63ad8ea9d065a1f27752d0bf752",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/string": "^5.4|^6.0|^7.0",
+ "php": ">=8.0.2",
+ "symfony/string": "^5.4|^6.4|^7.0",
"symfony/translation-contracts": "^1.1|^2|^3",
- "twig/twig": "^3.0"
+ "twig/twig": "^3.13|^4.0"
},
"require-dev": {
"symfony/phpunit-bridge": "^6.4|^7.0"
@@ -9055,7 +9084,7 @@
"unicode"
],
"support": {
- "source": "https://github.com/twigphp/string-extra/tree/v3.8.0"
+ "source": "https://github.com/twigphp/string-extra/tree/v3.18.0"
},
"funding": [
{
@@ -9067,7 +9096,7 @@
"type": "tidelift"
}
],
- "time": "2023-11-21T14:02:01+00:00"
+ "time": "2024-11-30T08:42:13+00:00"
},
{
"name": "twig/twig",
@@ -9339,27 +9368,27 @@
},
{
"name": "symfony/browser-kit",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "867868fca3a0939236ab89600f9480eee74843ce"
+ "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/867868fca3a0939236ab89600f9480eee74843ce",
- "reference": "867868fca3a0939236ab89600f9480eee74843ce",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/65d4b3fd9556e4b5b41287bef93c671f8f9f86ab",
+ "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "symfony/dom-crawler": "^5.4|^6.0"
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0"
},
"require-dev": {
- "symfony/css-selector": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/mime": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0"
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -9387,7 +9416,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v6.3.12"
+ "source": "https://github.com/symfony/browser-kit/tree/v6.4.13"
},
"funding": [
{
@@ -9403,20 +9432,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-10-25T15:07:50+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.3.12",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc"
+ "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/7bb2f446287397cc41ebd9acfa0755b16db05fbc",
- "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/cb23e97813c5837a041b73a6d63a9ddff0778f5e",
+ "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e",
"shasum": ""
},
"require": {
@@ -9452,7 +9481,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.3.12"
+ "source": "https://github.com/symfony/css-selector/tree/v6.4.13"
},
"funding": [
{
@@ -9468,20 +9497,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v6.3.12",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b"
+ "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e412abb0a443dc2c29decb96cac476aed7b8234b",
- "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4304e6ad5c894a9c72831ad459f627bfd35d766d",
+ "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d",
"shasum": ""
},
"require": {
@@ -9491,7 +9520,7 @@
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
- "symfony/css-selector": "^5.4|^6.0"
+ "symfony/css-selector": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -9519,7 +9548,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v6.3.12"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.4.16"
},
"funding": [
{
@@ -9535,7 +9564,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:35:58+00:00"
+ "time": "2024-11-13T15:06:22+00:00"
}
],
"aliases": [],
From 982208671b0d5b3de24fd5538f3a6d506760e658 Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:47:12 +0100
Subject: [PATCH 03/52] build: update recipe doctrine/doctrine-bundle
---
.env | 8 +++++---
config/packages/doctrine.yaml | 6 +++++-
symfony.lock | 4 ++--
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/.env b/.env
index da3ba257..38e65d36 100644
--- a/.env
+++ b/.env
@@ -25,9 +25,11 @@ TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
-# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4"
-# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
-DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7
+# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
+# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
+# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
+DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=10.11.8-MariaDB&charset=utf8mb4
+
###< doctrine/doctrine-bundle ###
###< Keycloak OAUTH >###
diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml
index 9b1539ec..be036a8c 100644
--- a/config/packages/doctrine.yaml
+++ b/config/packages/doctrine.yaml
@@ -4,7 +4,10 @@ doctrine:
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
- #server_version: '15'
+ #server_version: '16'
+
+ profiling_collect_backtrace: '%kernel.debug%'
+ use_savepoints: true
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
@@ -14,6 +17,7 @@ doctrine:
auto_mapping: true
mappings:
App:
+ type: attribute
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
diff --git a/symfony.lock b/symfony.lock
index 95663dc1..bc7a2553 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -21,12 +21,12 @@
"version": "v0.5.3"
},
"doctrine/doctrine-bundle": {
- "version": "2.10",
+ "version": "2.13",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "2.10",
- "ref": "f0d8c9a4da17815830aac0d63e153a940ae176bb"
+ "ref": "c170ded8fc587d6bd670550c43dafcf093762245"
},
"files": [
"config/packages/doctrine.yaml",
From 56ecc2b5a6c172cb54294b762e9e212ef15a6842 Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:49:40 +0100
Subject: [PATCH 04/52] build: update recipe phpstan/phpstan
---
phpstan.neon => phpstan.dist.neon | 1 -
symfony.lock | 6 +++---
2 files changed, 3 insertions(+), 4 deletions(-)
rename phpstan.neon => phpstan.dist.neon (76%)
diff --git a/phpstan.neon b/phpstan.dist.neon
similarity index 76%
rename from phpstan.neon
rename to phpstan.dist.neon
index 1af7f380..895af969 100644
--- a/phpstan.neon
+++ b/phpstan.dist.neon
@@ -6,4 +6,3 @@ parameters:
- public/
- src/
- tests/
- treatPhpDocTypesAsCertain: false
\ No newline at end of file
diff --git a/symfony.lock b/symfony.lock
index bc7a2553..e4b3fdf5 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -151,15 +151,15 @@
]
},
"phpstan/phpstan": {
- "version": "1.10",
+ "version": "1.12",
"recipe": {
"repo": "github.com/symfony/recipes-contrib",
"branch": "main",
"version": "1.0",
- "ref": "d74d4d719d5f53856c9c13544aa22d44144b1819"
+ "ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767"
},
"files": [
- "phpstan.neon"
+ "phpstan.dist.neon"
]
},
"psr/cache": {
From 0fbf02900115db8a867aad66de608caf1093e35f Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:51:03 +0100
Subject: [PATCH 05/52] build: update recipe symfony/console
---
bin/console | 4 ++++
symfony.lock | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/bin/console b/bin/console
index c933dc53..d8d530e2 100755
--- a/bin/console
+++ b/bin/console
@@ -4,6 +4,10 @@
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
+if (!is_dir(dirname(__DIR__).'/vendor')) {
+ throw new LogicException('Dependencies are missing. Try running "composer install".');
+}
+
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
}
diff --git a/symfony.lock b/symfony.lock
index e4b3fdf5..357dc0e9 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -208,12 +208,12 @@
"version": "v4.4.10"
},
"symfony/console": {
- "version": "5.4",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.3",
- "ref": "da0c8be8157600ad34f10ff0c9cc91232522e047"
+ "ref": "1781ff40d8a17d87cf53f8d4cf0c8346ed2bb461"
},
"files": [
"bin/console"
From 8e6ba1d7024ff0c81a0545fa484abede6a71393f Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:52:31 +0100
Subject: [PATCH 06/52] build: update recipe symfony/flex
---
.env.dev | 0
symfony.lock | 9 +++++----
2 files changed, 5 insertions(+), 4 deletions(-)
create mode 100644 .env.dev
diff --git a/.env.dev b/.env.dev
new file mode 100644
index 00000000..e69de29b
diff --git a/symfony.lock b/symfony.lock
index 357dc0e9..065d0993 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -268,15 +268,16 @@
"version": "v4.4.10"
},
"symfony/flex": {
- "version": "1.19",
+ "version": "2.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "1.0",
- "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
+ "version": "2.4",
+ "ref": "52e9754527a15e2b79d9a610f98185a1fe46622a"
},
"files": [
- ".env"
+ ".env",
+ ".env.dev"
]
},
"symfony/form": {
From 3a459fc4db01123f5d90db3e00c5f8288134bac4 Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:53:35 +0100
Subject: [PATCH 07/52] build: update recipe symfony/framework-bundle
---
config/packages/framework.yaml | 3 +--
symfony.lock | 6 +++---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
index bc6b3a88..0dd27ddb 100644
--- a/config/packages/framework.yaml
+++ b/config/packages/framework.yaml
@@ -1,7 +1,7 @@
# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
secret: '%env(APP_SECRET)%'
- #csrf_protection: true
+ annotations: false
http_method_override: false
handle_all_throwables: true
@@ -11,7 +11,6 @@ framework:
handler_id: null
cookie_secure: auto
cookie_samesite: lax
- storage_factory_id: session.storage.factory.native
#esi: true
#fragments: true
diff --git a/symfony.lock b/symfony.lock
index 065d0993..4c142d3a 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -284,12 +284,12 @@
"version": "v4.4.19"
},
"symfony/framework-bundle": {
- "version": "6.2",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "6.2",
- "ref": "af47254c5e4cd543e6af3e4508298ffebbdaddd3"
+ "version": "6.4",
+ "ref": "32126346f25e1cee607cc4aa6783d46034920554"
},
"files": [
"config/packages/cache.yaml",
From b9de766fea188d735b09114d9192de4e7f3f463b Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:54:25 +0100
Subject: [PATCH 08/52] build: update recipe symfony/monolog-bundle
---
config/packages/monolog.yaml | 1 +
symfony.lock | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml
index 8c9efa91..9db7d8a7 100644
--- a/config/packages/monolog.yaml
+++ b/config/packages/monolog.yaml
@@ -59,3 +59,4 @@ when@prod:
type: stream
channels: [deprecation]
path: php://stderr
+ formatter: monolog.formatter.json
diff --git a/symfony.lock b/symfony.lock
index 4c142d3a..7e5fbbb9 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -330,12 +330,12 @@
"version": "v4.4.10"
},
"symfony/monolog-bundle": {
- "version": "3.8",
+ "version": "3.10",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "3.7",
- "ref": "213676c4ec929f046dfde5ea8e97625b81bc0578"
+ "ref": "aff23899c4440dd995907613c1dd709b6f59503f"
},
"files": [
"config/packages/monolog.yaml"
From 1f59c37b8c827ccd41fa533c21f4d331c4d6f618 Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:56:18 +0100
Subject: [PATCH 09/52] build: update recipe symfony/security-bundle
---
config/routes/security.yaml | 3 +++
symfony.lock | 9 +++++----
2 files changed, 8 insertions(+), 4 deletions(-)
create mode 100644 config/routes/security.yaml
diff --git a/config/routes/security.yaml b/config/routes/security.yaml
new file mode 100644
index 00000000..f853be15
--- /dev/null
+++ b/config/routes/security.yaml
@@ -0,0 +1,3 @@
+_security_logout:
+ resource: security.route_loader.logout
+ type: service
diff --git a/symfony.lock b/symfony.lock
index 7e5fbbb9..e656c31b 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -406,15 +406,16 @@
]
},
"symfony/security-bundle": {
- "version": "6.2",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "6.0",
- "ref": "8a5b112826f7d3d5b07027f93786ae11a1c7de48"
+ "version": "6.4",
+ "ref": "2ae08430db28c8eb4476605894296c82a642028f"
},
"files": [
- "config/packages/security.yaml"
+ "config/packages/security.yaml",
+ "config/routes/security.yaml"
]
},
"symfony/security-core": {
From 188c49735d3aee0671f36cff5a6c1a4bb176a3ee Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 12:58:32 +0100
Subject: [PATCH 10/52] build: update recipe symfony/translation
---
config/packages/translation.yaml | 8 +-------
symfony.lock | 6 +++---
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml
index abb76aae..b3f8f9cf 100644
--- a/config/packages/translation.yaml
+++ b/config/packages/translation.yaml
@@ -4,10 +4,4 @@ framework:
default_path: '%kernel.project_dir%/translations'
fallbacks:
- en
-# providers:
-# crowdin:
-# dsn: '%env(CROWDIN_DSN)%'
-# loco:
-# dsn: '%env(LOCO_DSN)%'
-# lokalise:
-# dsn: '%env(LOKALISE_DSN)%'
+ providers:
diff --git a/symfony.lock b/symfony.lock
index e656c31b..f7a13a65 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -443,12 +443,12 @@
"version": "v5.2.4"
},
"symfony/translation": {
- "version": "5.4",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "5.3",
- "ref": "da64f5a2b6d96f5dc24914517c0350a5f91dee43"
+ "version": "6.3",
+ "ref": "e28e27f53663cc34f0be2837aba18e3a1bef8e7b"
},
"files": [
"config/packages/translation.yaml",
From 758f5a3e56948f73465ffede0d558c28175acddb Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 13:02:02 +0100
Subject: [PATCH 11/52] build: update recipe symfony/twig-bundle
---
config/packages/twig.yaml | 11 ++++++-----
symfony.lock | 6 +++---
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
index ede3afaf..5a8641a5 100644
--- a/config/packages/twig.yaml
+++ b/config/packages/twig.yaml
@@ -1,6 +1,7 @@
-twig:
- default_path: '%kernel.project_dir%/templates'
-
-when@test:
- twig:
+twig:
+ default_path: '%kernel.project_dir%/templates'
+ file_name_pattern: '*.twig'
+
+when@test:
+ twig:
strict_variables: true
\ No newline at end of file
diff --git a/symfony.lock b/symfony.lock
index f7a13a65..b2a055d3 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -462,12 +462,12 @@
"version": "v4.4.10"
},
"symfony/twig-bundle": {
- "version": "6.3",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "6.3",
- "ref": "b7772eb20e92f3fb4d4fe756e7505b4ba2ca1a2c"
+ "version": "6.4",
+ "ref": "cab5fd2a13a45c266d45a7d9337e28dee6272877"
},
"files": [
"config/packages/twig.yaml",
From 2bde5f165e4b817c6a725d0b503c7bfeb01e467f Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 13:09:28 +0100
Subject: [PATCH 12/52] build: update recipe symfony/phpunit-bridge
---
bin/phpunit | 10 +++++++---
symfony.lock | 4 ++--
tests/bootstrap.php | 4 +---
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/bin/phpunit b/bin/phpunit
index f26f2c72..692baccb 100755
--- a/bin/phpunit
+++ b/bin/phpunit
@@ -6,9 +6,13 @@ if (!ini_get('date.timezone')) {
}
if (is_file(dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit')) {
- define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
- require PHPUNIT_COMPOSER_INSTALL;
- PHPUnit\TextUI\Command::main();
+ if (PHP_VERSION_ID >= 80000) {
+ require dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit';
+ } else {
+ define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
+ require PHPUNIT_COMPOSER_INSTALL;
+ PHPUnit\TextUI\Command::main();
+ }
} else {
if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) {
echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
diff --git a/symfony.lock b/symfony.lock
index b2a055d3..2a2a9d7f 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -348,12 +348,12 @@
"version": "v5.3.3"
},
"symfony/phpunit-bridge": {
- "version": "6.3",
+ "version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.3",
- "ref": "01dfaa98c58f7a7b5a9b30e6edb7074af7ed9819"
+ "ref": "a411a0480041243d97382cac7984f7dce7813c08"
},
"files": [
".env.test",
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 3181151d..47a58557 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -4,9 +4,7 @@
require dirname(__DIR__).'/vendor/autoload.php';
-if (file_exists(dirname(__DIR__).'/config/bootstrap.php')) {
- require dirname(__DIR__).'/config/bootstrap.php';
-} elseif (method_exists(Dotenv::class, 'bootEnv')) {
+if (method_exists(Dotenv::class, 'bootEnv')) {
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
}
From 19afbd303722ef5cf73db0b76a4928621f39ce5c Mon Sep 17 00:00:00 2001
From: Joel Beckmann
Date: Fri, 17 Jan 2025 13:13:25 +0100
Subject: [PATCH 13/52] ci: update php-cs-fixer
---
migrations/Version20230428165114.php | 7 +-
src/Controller/AdministrationController.php | 3 +-
src/Controller/CodebookController.php | 4 +-
src/Controller/FileManagementController.php | 3 +-
src/Controller/ModerationController.php | 3 +-
src/Controller/NavigationController.php | 4 +-
src/Controller/OauthController.php | 12 +-
src/Controller/ReviewController.php | 4 +-
src/Controller/StudyController.php | 3 +-
src/Controller/UserController.php | 4 +-
src/Entity/Administration/DataWizUser.php | 2 +-
src/Entity/Study/SettingsMetaDataGroup.php | 1 +
src/Form/CreatorType.php | 2 +-
src/Repository/ExperimentRepository.php | 2 +-
.../Authentication/OauthAuthenticator.php | 5 +-
.../Authentication/OauthLogoutSubscriber.php | 3 +-
src/Service/Api/ApiClientService.php | 7 +-
src/Service/Api/SpssApiClient.php | 5 +-
src/Service/Crud/CrudService.php | 3 +-
src/Service/Io/Formats/CsvImportable.php | 3 +-
src/Service/Io/Formats/SavImportable.php | 3 +-
.../Io/Input/DatasetUploadSubscriber.php | 3 +-
.../Io/Input/MaterialUploadSubscriber.php | 3 +-
.../Questionnaire/QuestionnaireService.php | 3 +-
src/Service/Review/ReviewDataCollectable.php | 4 +-
src/Twig/CommonMarkdown.php | 2 +-
tools/php-cs-fixer/composer.lock | 1334 +++++++++-----
tools/php-cs-fixer/vendor/autoload.php | 18 +
tools/php-cs-fixer/vendor/bin/php-cs-fixer | 10 +-
.../clue/ndjson-react/.github/FUNDING.yml | 2 +
.../vendor/clue/ndjson-react/CHANGELOG.md | 75 +
.../annotations => clue/ndjson-react}/LICENSE | 20 +-
.../vendor/clue/ndjson-react/README.md | 365 ++++
.../vendor/clue/ndjson-react/composer.json | 31 +
.../vendor/clue/ndjson-react/src/Decoder.php | 166 ++
.../vendor/clue/ndjson-react/src/Encoder.php | 144 ++
.../vendor/composer/ClassLoader.php | 137 +-
.../vendor/composer/InstalledVersions.php | 33 +-
.../vendor/composer/autoload_classmap.php | 3 +-
.../vendor/composer/autoload_files.php | 9 +-
.../vendor/composer/autoload_namespaces.php | 2 +-
.../vendor/composer/autoload_psr4.php | 15 +-
.../vendor/composer/autoload_real.php | 54 +-
.../vendor/composer/autoload_static.php | 73 +-
.../vendor/composer/installed.json | 1421 ++++++++++-----
.../vendor/composer/installed.php | 249 ++-
.../vendor/composer/pcre/README.md | 10 +-
.../vendor/composer/pcre/composer.json | 18 +-
.../vendor/composer/pcre/extension.neon | 22 +
.../composer/pcre/src/MatchAllResult.php | 2 +-
.../pcre/src/MatchAllStrictGroupsResult.php | 2 +-
.../src/PHPStan/InvalidRegexPatternRule.php | 142 ++
.../pcre/src/PHPStan/PregMatchFlags.php | 70 +
.../PregMatchParameterOutTypeExtension.php | 65 +
.../PregMatchTypeSpecifyingExtension.php | 119 ++
...regReplaceCallbackClosureTypeExtension.php | 91 +
.../PHPStan/UnsafeStrictGroupsCallRule.php | 112 ++
.../composer/pcre/src/PcreException.php | 7 +-
.../vendor/composer/pcre/src/Preg.php | 50 +-
.../vendor/composer/pcre/src/Regex.php | 10 +-
.../vendor/composer/platform_check.php | 4 +-
.../vendor/composer/semver/CHANGELOG.md | 20 +
.../vendor/composer/semver/README.md | 7 +-
.../vendor/composer/semver/composer.json | 6 +-
.../composer/semver/src/CompilingMatcher.php | 2 +-
.../composer/semver/src/VersionParser.php | 29 +-
.../composer/xdebug-handler/CHANGELOG.md | 13 +-
.../vendor/composer/xdebug-handler/README.md | 15 +-
.../composer/xdebug-handler/composer.json | 8 +-
.../composer/xdebug-handler/src/Process.php | 1 +
.../composer/xdebug-handler/src/Status.php | 35 +-
.../xdebug-handler/src/XdebugHandler.php | 152 +-
.../vendor/doctrine/annotations/README.md | 24 -
.../vendor/doctrine/annotations/UPGRADE.md | 18 -
.../vendor/doctrine/annotations/composer.json | 72 -
.../annotations/docs/en/annotations.rst | 189 --
.../doctrine/annotations/docs/en/custom.rst | 443 -----
.../doctrine/annotations/docs/en/index.rst | 102 --
.../doctrine/annotations/docs/en/sidebar.rst | 6 -
.../Common/Annotations/Annotation.php | 54 -
.../Annotations/Annotation/Attribute.php | 21 -
.../Annotations/Annotation/Attributes.php | 15 -
.../Common/Annotations/Annotation/Enum.php | 69 -
.../Annotation/IgnoreAnnotation.php | 43 -
.../Annotation/NamedArgumentConstructor.php | 13 -
.../Annotations/Annotation/Required.php | 13 -
.../Common/Annotations/Annotation/Target.php | 101 --
.../Annotations/AnnotationException.php | 158 --
.../Common/Annotations/AnnotationReader.php | 385 ----
.../Common/Annotations/AnnotationRegistry.php | 43 -
.../Doctrine/Common/Annotations/DocLexer.php | 131 --
.../Doctrine/Common/Annotations/DocParser.php | 1494 ----------------
.../ImplicitlyIgnoredAnnotationNames.php | 178 --
.../Common/Annotations/IndexedReader.php | 99 --
.../Doctrine/Common/Annotations/PhpParser.php | 78 -
.../Common/Annotations/PsrCachedReader.php | 232 ---
.../Doctrine/Common/Annotations/Reader.php | 80 -
.../Common/Annotations/TokenParser.php | 205 ---
.../vendor/doctrine/lexer/README.md | 9 -
.../vendor/doctrine/lexer/UPGRADE.md | 22 -
.../vendor/doctrine/lexer/composer.json | 55 -
.../doctrine/lexer/src/AbstractLexer.php | 330 ----
.../vendor/doctrine/lexer/src/Token.php | 56 -
.../vendor/evenement/evenement/.gitattributes | 7 +
.../evenement/LICENSE} | 10 +-
.../vendor/evenement/evenement/README.md | 64 +
.../vendor/evenement/evenement/composer.json | 29 +
.../evenement/evenement/src/EventEmitter.php | 17 +
.../evenement/src/EventEmitterInterface.php | 22 +
.../evenement/src/EventEmitterTrait.php | 154 ++
.../vendor/fidry/cpu-core-counter/.envrc | 5 +
.../vendor/fidry/cpu-core-counter/LICENSE.md | 16 +
.../vendor/fidry/cpu-core-counter/README.md | 138 ++
.../fidry/cpu-core-counter/bin/diagnose.php | 27 +
.../fidry/cpu-core-counter/bin/execute.php | 21 +
.../fidry/cpu-core-counter/bin/trace.php | 32 +
.../fidry/cpu-core-counter/composer.json | 48 +
.../cpu-core-counter/src/CpuCoreCounter.php | 268 +++
.../fidry/cpu-core-counter/src/Diagnoser.php | 101 ++
.../src/Executor/ProcOpenExecutor.php | 56 +
.../src/Executor/ProcessExecutor.php | 22 +
.../src/Finder/CmiCmdletLogicalFinder.php | 46 +
.../src/Finder/CmiCmdletPhysicalFinder.php | 47 +
.../src/Finder/CpuCoreFinder.php | 37 +
.../src/Finder/CpuInfoFinder.php | 100 ++
.../src/Finder/DummyCpuCoreFinder.php | 57 +
.../src/Finder/EnvVariableFinder.php | 69 +
.../src/Finder/FinderRegistry.php | 91 +
.../src/Finder/HwLogicalFinder.php | 33 +
.../src/Finder/HwPhysicalFinder.php | 33 +
.../src/Finder/LscpuLogicalFinder.php | 52 +
.../src/Finder/LscpuPhysicalFinder.php | 66 +
.../src/Finder/NProcFinder.php | 59 +
.../src/Finder/NProcessorFinder.php | 32 +
.../src/Finder/NullCpuCoreFinder.php | 35 +
.../src/Finder/OnlyInPowerShellFinder.php | 62 +
.../src/Finder/OnlyOnOSFamilyFinder.php | 113 ++
.../src/Finder/ProcOpenBasedFinder.php | 107 ++
.../src/Finder/SkipOnOSFamilyFinder.php | 113 ++
.../Finder/WindowsRegistryLogicalFinder.php | 51 +
.../src/Finder/WmicLogicalFinder.php | 47 +
.../src/Finder/WmicPhysicalFinder.php | 47 +
.../src/Finder/_NProcessorFinder.php | 32 +
.../src/NumberOfCpuCoreNotFound.php | 26 +
.../src/ParallelisationResult.php | 87 +
.../friendsofphp/php-cs-fixer/CHANGELOG.md | 1301 +++++++++++++-
.../friendsofphp/php-cs-fixer/CONTRIBUTING.md | 113 +-
.../friendsofphp/php-cs-fixer/README.md | 27 +-
.../friendsofphp/php-cs-fixer/UPGRADE-v3.md | 169 +-
.../php-cs-fixer/ci-integration.sh | 2 +-
.../friendsofphp/php-cs-fixer/composer.json | 188 +-
.../vendor/friendsofphp/php-cs-fixer/logo.md | 2 +-
.../friendsofphp/php-cs-fixer/php-cs-fixer | 30 +-
.../src/AbstractDoctrineAnnotationFixer.php | 31 +-
.../php-cs-fixer/src/AbstractFixer.php | 108 +-
.../src/AbstractFopenFlagFixer.php | 6 -
.../src/AbstractFunctionReferenceFixer.php | 13 +-
.../src/AbstractLinesBeforeNamespaceFixer.php | 120 --
.../src/AbstractNoUselessElseFixer.php | 5 +-
.../AbstractPhpdocToTypeDeclarationFixer.php | 169 +-
.../src/AbstractPhpdocTypesFixer.php | 56 +-
.../php-cs-fixer/src/AbstractProxyFixer.php | 20 +-
.../php-cs-fixer/src/Cache/Cache.php | 36 +-
.../src/Cache/CacheManagerInterface.php | 2 +
.../php-cs-fixer/src/Cache/Directory.php | 5 +-
.../src/Cache/FileCacheManager.php | 36 +-
.../php-cs-fixer/src/Cache/FileHandler.php | 166 +-
.../src/Cache/NullCacheManager.php | 7 +-
.../php-cs-fixer/src/Cache/Signature.php | 2 +
.../friendsofphp/php-cs-fixer/src/Config.php | 118 +-
.../php-cs-fixer/src/ConfigInterface.php | 28 +-
.../InvalidFixerConfigurationException.php | 2 +-
...validForEnvFixerConfigurationException.php | 4 +-
.../RequiredFixerConfigurationException.php | 4 +-
.../php-cs-fixer/src/Console/Application.php | 105 +-
.../src/Console/Command/CheckCommand.php | 64 +
.../src/Console/Command/DescribeCommand.php | 196 ++-
.../Console/Command/DocumentationCommand.php | 35 +-
.../src/Console/Command/FixCommand.php | 262 +--
.../FixCommandExitStatusCalculator.php | 9 +-
.../src/Console/Command/HelpCommand.php | 61 +-
.../src/Console/Command/ListFilesCommand.php | 9 +-
.../src/Console/Command/ListSetsCommand.php | 11 +-
.../src/Console/Command/SelfUpdateCommand.php | 44 +-
.../src/Console/Command/WorkerCommand.php | 243 +++
.../src/Console/ConfigurationResolver.php | 201 +--
.../src/Console/Output/ErrorOutput.php | 32 +-
.../src/Console/Output/OutputContext.php | 54 +
.../src/Console/Output/ProcessOutput.php | 133 --
.../Console/Output/Progress/DotsOutput.php | 124 ++
.../Console/Output/Progress/NullOutput.php | 29 +
.../Output/Progress/PercentageBarOutput.php | 78 +
.../Output/Progress/ProgressOutputFactory.php | 63 +
.../Progress/ProgressOutputInterface.php | 27 +
.../Output/Progress/ProgressOutputType.php | 37 +
.../Report/FixReport/CheckstyleReporter.php | 12 +-
.../Report/FixReport/GitlabReporter.php | 45 +-
.../Console/Report/FixReport/JsonReporter.php | 16 +-
.../Report/FixReport/JunitReporter.php | 22 +-
.../Report/FixReport/ReportSummary.php | 2 +
.../Report/FixReport/ReporterFactory.php | 14 +-
.../Console/Report/FixReport/TextReporter.php | 22 +-
.../Console/Report/FixReport/XmlReporter.php | 23 +-
.../Report/ListSetsReport/JsonReporter.php | 14 +-
.../Report/ListSetsReport/ReportSummary.php | 2 +
.../Report/ListSetsReport/ReporterFactory.php | 10 +-
.../Report/ListSetsReport/TextReporter.php | 14 +-
.../src/Console/SelfUpdate/GithubClient.php | 35 +-
.../SelfUpdate/GithubClientInterface.php | 7 +-
.../Console/SelfUpdate/NewVersionChecker.php | 22 +-
.../src/Console/WarningsDetector.php | 12 +-
.../src/Differ/DiffConsoleFormatter.php | 8 +-
.../php-cs-fixer/src/Differ/FullDiffer.php | 5 +-
.../php-cs-fixer/src/Differ/NullDiffer.php | 3 -
.../php-cs-fixer/src/Differ/UnifiedDiffer.php | 5 +-
.../php-cs-fixer/src/DocBlock/Annotation.php | 121 +-
.../php-cs-fixer/src/DocBlock/DocBlock.php | 4 +-
.../php-cs-fixer/src/DocBlock/Line.php | 6 +-
.../src/DocBlock/ShortDescription.php | 2 +
.../src/DocBlock/TagComparator.php | 4 +-
.../src/DocBlock/TypeExpression.php | 691 ++++++--
.../src/Doctrine/Annotation/DocLexer.php | 171 ++
.../src/Doctrine/Annotation/Token.php | 14 +-
.../src/Doctrine/Annotation/Tokens.php | 52 +-
.../Documentation/DocumentationLocator.php | 12 +-
.../Documentation/FixerDocumentGenerator.php | 215 ++-
.../Documentation/ListDocumentGenerator.php | 174 --
.../src/Documentation/RstUtils.php | 7 +-
.../RuleSetDocumentationGenerator.php | 81 +-
.../php-cs-fixer/src/Error/Error.php | 34 +-
.../php-cs-fixer/src/Error/ErrorsManager.php | 32 +-
.../src/Error/SourceExceptionFactory.php | 62 +
.../src/ExecutorWithoutErrorHandler.php | 58 +
.../ExecutorWithoutErrorHandlerException.php | 22 +
.../php-cs-fixer/src/FileReader.php | 9 +-
.../php-cs-fixer/src/FileRemoval.php | 4 +-
.../src/Fixer/AbstractPhpUnitFixer.php | 148 +-
.../src/Fixer/AbstractShortOperatorFixer.php | 264 +++
.../src/Fixer/Alias/ArrayPushFixer.php | 9 -
.../Fixer/Alias/BacktickToShellExecFixer.php | 24 +-
.../src/Fixer/Alias/EregToPregFixer.php | 20 +-
.../src/Fixer/Alias/MbStrFunctionsFixer.php | 20 +-
.../src/Fixer/Alias/ModernizeStrposFixer.php | 121 +-
.../src/Fixer/Alias/NoAliasFunctionsFixer.php | 70 +-
.../NoAliasLanguageConstructCallFixer.php | 9 -
.../src/Fixer/Alias/NoMixedEchoPrintFixer.php | 60 +-
.../Fixer/Alias/PowToExponentiationFixer.php | 29 +-
.../Fixer/Alias/RandomApiMigrationFixer.php | 63 +-
.../src/Fixer/Alias/SetTypeToCastFixer.php | 11 +-
.../Fixer/ArrayNotation/ArraySyntaxFixer.php | 65 +-
...tilineWhitespaceAroundDoubleArrowFixer.php | 9 -
.../NoTrailingCommaInSinglelineArrayFixer.php | 9 -
.../NoWhitespaceBeforeCommaInArrayFixer.php | 30 +-
.../NormalizeIndexBraceFixer.php | 17 +-
.../ArrayNotation/ReturnToYieldFromFixer.php | 105 ++
.../ArrayNotation/TrimArraySpacesFixer.php | 15 +-
.../WhitespaceAfterCommaInArrayFixer.php | 31 +-
.../YieldFromArrayToYieldsFixer.php | 189 ++
.../AttributeEmptyParenthesesFixer.php | 136 ++
.../GeneralAttributeRemoveFixer.php | 142 ++
.../OrderedAttributesFixer.php | 271 +++
.../src/Fixer/Basic/BracesFixer.php | 63 +-
.../src/Fixer/Basic/BracesPositionFixer.php | 441 +++++
.../Fixer/Basic/CurlyBracesPositionFixer.php | 425 +----
.../src/Fixer/Basic/EncodingFixer.php | 20 +-
.../NoMultipleStatementsPerLineFixer.php | 24 +-
.../NoTrailingCommaInSinglelineFixer.php | 29 +-
.../Basic/NonPrintableCharacterFixer.php | 48 +-
.../Basic/NumericLiteralSeparatorFixer.php | 232 +++
.../src/Fixer/Basic/OctalNotationFixer.php | 17 +-
.../src/Fixer/Basic/PsrAutoloadingFixer.php | 73 +-
.../Fixer/Basic/SingleLineEmptyBodyFixer.php | 83 +
.../Casing/ClassReferenceNameCasingFixer.php | 17 +-
.../src/Fixer/Casing/ConstantCaseFixer.php | 144 +-
.../Fixer/Casing/IntegerLiteralCaseFixer.php | 9 +-
.../Fixer/Casing/LowercaseKeywordsFixer.php | 16 +-
.../Casing/LowercaseStaticReferenceFixer.php | 5 +-
.../Fixer/Casing/MagicConstantCasingFixer.php | 11 +-
.../Fixer/Casing/MagicMethodCasingFixer.php | 26 +-
.../Casing/NativeFunctionCasingFixer.php | 9 -
...tiveFunctionTypeDeclarationCasingFixer.php | 137 +-
.../NativeTypeDeclarationCasingFixer.php | 360 ++++
.../Fixer/CastNotation/CastSpacesFixer.php | 25 +-
.../Fixer/CastNotation/LowercaseCastFixer.php | 33 +-
.../ModernizeTypesCastingFixer.php | 6 -
.../CastNotation/NoShortBoolCastFixer.php | 9 -
.../Fixer/CastNotation/NoUnsetCastFixer.php | 9 -
.../CastNotation/ShortScalarCastFixer.php | 19 +-
.../ClassAttributesSeparationFixer.php | 111 +-
.../ClassNotation/ClassDefinitionFixer.php | 113 +-
.../Fixer/ClassNotation/FinalClassFixer.php | 14 +-
.../ClassNotation/FinalInternalClassFixer.php | 273 ++-
...FinalPublicMethodForAbstractClassFixer.php | 22 +-
.../NoBlankLinesAfterClassOpeningFixer.php | 9 -
.../NoNullPropertyInitializationFixer.php | 9 -
.../ClassNotation/NoPhp4ConstructorFixer.php | 17 +-
.../NoUnneededFinalMethodFixer.php | 49 +-
.../OrderedClassElementsFixer.php | 298 ++--
.../ClassNotation/OrderedInterfacesFixer.php | 64 +-
.../ClassNotation/OrderedTraitsFixer.php | 63 +-
.../Fixer/ClassNotation/OrderedTypesFixer.php | 453 +++++
...pdocReadonlyClassCommentToKeywordFixer.php | 129 ++
.../ClassNotation/ProtectedToPrivateFixer.php | 17 +-
.../Fixer/ClassNotation/SelfAccessorFixer.php | 37 +-
.../ClassNotation/SelfStaticAccessorFixer.php | 68 +-
.../SingleClassElementPerStatementFixer.php | 29 +-
.../SingleTraitInsertPerStatementFixer.php | 6 +-
.../ClassNotation/VisibilityRequiredFixer.php | 29 +-
.../ClassUsage/DateTimeImmutableFixer.php | 12 -
.../Fixer/Comment/CommentToPhpdocFixer.php | 57 +-
.../src/Fixer/Comment/HeaderCommentFixer.php | 43 +-
.../MultilineCommentOpeningClosingFixer.php | 35 +-
.../src/Fixer/Comment/NoEmptyCommentFixer.php | 31 +-
.../NoTrailingWhitespaceInCommentFixer.php | 9 -
.../Comment/SingleLineCommentSpacingFixer.php | 11 +-
.../Comment/SingleLineCommentStyleFixer.php | 62 +-
.../src/Fixer/ConfigurableFixerInterface.php | 5 +-
.../src/Fixer/ConfigurableFixerTrait.php | 124 ++
.../NativeConstantInvocationFixer.php | 60 +-
.../ControlStructureBracesFixer.php | 22 +-
...trolStructureContinuationPositionFixer.php | 17 +-
.../Fixer/ControlStructure/ElseifFixer.php | 6 -
.../ControlStructure/EmptyLoopBodyFixer.php | 26 +-
.../EmptyLoopConditionFixer.php | 28 +-
.../Fixer/ControlStructure/IncludeFixer.php | 13 +-
.../NoAlternativeSyntaxFixer.php | 25 +-
.../ControlStructure/NoBreakCommentFixer.php | 52 +-
.../NoSuperfluousElseifFixer.php | 9 -
.../NoTrailingCommaInListCallFixer.php | 9 -
.../NoUnneededBracesFixer.php | 182 ++
.../NoUnneededControlParenthesesFixer.php | 92 +-
.../NoUnneededCurlyBracesFixer.php | 156 +-
.../ControlStructure/NoUselessElseFixer.php | 13 +-
.../SimplifiedIfReturnFixer.php | 15 +-
.../SwitchCaseSemicolonToColonFixer.php | 9 -
.../ControlStructure/SwitchCaseSpaceFixer.php | 9 -
.../SwitchContinueToBreakFixer.php | 13 +-
.../TrailingCommaInMultilineFixer.php | 148 +-
.../Fixer/ControlStructure/YodaStyleFixer.php | 69 +-
.../src/Fixer/DeprecatedFixerInterface.php | 2 +-
...DoctrineAnnotationArrayAssignmentFixer.php | 32 +-
.../DoctrineAnnotationBracesFixer.php | 45 +-
.../DoctrineAnnotationIndentationFixer.php | 50 +-
.../DoctrineAnnotationSpacesFixer.php | 115 +-
.../ExperimentalFixerInterface.php} | 7 +-
.../CombineNestedDirnameFixer.php | 44 +-
.../DateTimeCreateFromFormatCallFixer.php | 9 +-
.../FunctionNotation/FopenFlagOrderFixer.php | 7 +-
.../FunctionNotation/FopenFlagsFixer.php | 20 +-
.../FunctionDeclarationFixer.php | 36 +-
.../FunctionTypehintSpaceFixer.php | 47 +-
.../FunctionNotation/ImplodeCallFixer.php | 16 +-
.../LambdaNotUsedImportFixer.php | 36 +-
.../MethodArgumentSpaceFixer.php | 130 +-
.../NativeFunctionInvocationFixer.php | 92 +-
.../NoSpacesAfterFunctionNameFixer.php | 27 +-
...lingCommaInSinglelineFunctionCallFixer.php | 9 -
...NoUnreachableDefaultArgumentValueFixer.php | 12 -
.../NoUselessSprintfFixer.php | 14 +-
...ypeDeclarationForDefaultNullValueFixer.php | 142 +-
.../PhpdocToParamTypeFixer.php | 86 +-
.../PhpdocToPropertyTypeFixer.php | 108 +-
.../PhpdocToReturnTypeFixer.php | 108 +-
.../RegularCallableCallFixer.php | 11 +-
.../ReturnTypeDeclarationFixer.php | 27 +-
.../FunctionNotation/SingleLineThrowFixer.php | 19 +-
.../FunctionNotation/StaticLambdaFixer.php | 41 +-
.../UseArrowFunctionsFixer.php | 58 +-
.../FunctionNotation/VoidReturnFixer.php | 34 +-
.../Import/FullyQualifiedStrictTypesFixer.php | 897 +++++++++-
.../Import/GlobalNamespaceImportFixer.php | 170 +-
.../src/Fixer/Import/GroupImportFixer.php | 161 +-
.../Import/NoLeadingImportSlashFixer.php | 9 -
.../Import/NoUnneededImportAliasFixer.php | 9 -
.../src/Fixer/Import/NoUnusedImportsFixer.php | 229 ++-
.../src/Fixer/Import/OrderedImportsFixer.php | 226 ++-
.../Import/SingleImportPerStatementFixer.php | 39 +-
.../Import/SingleLineAfterImportsFixer.php | 9 -
.../php-cs-fixer/src/Fixer/Indentation.php | 2 +-
.../InternalFixerInterface.php} | 9 +-
.../LanguageConstruct/ClassKeywordFixer.php | 100 ++
.../ClassKeywordRemoveFixer.php | 29 +-
.../CombineConsecutiveIssetsFixer.php | 21 +-
.../CombineConsecutiveUnsetsFixer.php | 13 +-
.../DeclareEqualNormalizeFixer.php | 45 +-
.../LanguageConstruct/DirConstantFixer.php | 9 -
.../ErrorSuppressionFixer.php | 38 +-
.../ExplicitIndirectVariableFixer.php | 23 +-
.../FunctionToConstantFixer.php | 96 +-
.../GetClassToClassKeywordFixer.php | 14 +-
.../Fixer/LanguageConstruct/IsNullFixer.php | 12 -
.../NoUnsetOnPropertyFixer.php | 13 +-
.../NullableTypeDeclarationFixer.php | 348 ++++
.../SingleSpaceAfterConstructFixer.php | 60 +-
.../SingleSpaceAroundConstructFixer.php | 219 ++-
.../Fixer/ListNotation/ListSyntaxFixer.php | 55 +-
.../BlankLineAfterNamespaceFixer.php | 13 +-
.../BlankLinesBeforeNamespaceFixer.php | 242 +++
.../NamespaceNotation/CleanNamespaceFixer.php | 19 +-
.../NoBlankLinesBeforeNamespaceFixer.php | 40 +-
.../NoLeadingNamespaceWhitespaceFixer.php | 9 -
.../SingleBlankLineBeforeNamespaceFixer.php | 42 +-
.../Fixer/Naming/NoHomoglyphNamesFixer.php | 20 +-
...signNullCoalescingToCoalesceEqualFixer.php | 144 +-
.../Operator/BinaryOperatorSpacesFixer.php | 166 +-
.../src/Fixer/Operator/ConcatSpaceFixer.php | 58 +-
.../Fixer/Operator/IncrementStyleFixer.php | 27 +-
.../Fixer/Operator/LogicalOperatorsFixer.php | 12 -
.../Operator/LongToShorthandOperatorFixer.php | 140 ++
.../src/Fixer/Operator/NewWithBracesFixer.php | 205 +--
.../Operator/NewWithParenthesesFixer.php | 216 +++
.../NoSpaceAroundDoubleColonFixer.php | 15 +-
.../Operator/NoUselessConcatOperatorFixer.php | 142 +-
.../NoUselessNullsafeOperatorFixer.php | 11 +-
.../Operator/NotOperatorWithSpaceFixer.php | 9 -
.../NotOperatorWithSuccessorSpaceFixer.php | 9 -
.../ObjectOperatorWithoutWhitespaceFixer.php | 9 -
.../Fixer/Operator/OperatorLinebreakFixer.php | 93 +-
.../Operator/StandardizeIncrementFixer.php | 10 +-
.../Operator/StandardizeNotEqualsFixer.php | 9 -
.../Operator/TernaryOperatorSpacesFixer.php | 40 +-
.../Operator/TernaryToElvisOperatorFixer.php | 34 +-
.../Operator/TernaryToNullCoalescingFixer.php | 19 +-
.../Operator/UnaryOperatorSpacesFixer.php | 59 +-
.../PhpTag/BlankLineAfterOpeningTagFixer.php | 42 +-
.../src/Fixer/PhpTag/EchoTagSyntaxFixer.php | 41 +-
.../src/Fixer/PhpTag/FullOpeningTagFixer.php | 14 +-
.../PhpTag/LinebreakAfterOpeningTagFixer.php | 22 +-
.../src/Fixer/PhpTag/NoClosingTagFixer.php | 17 +-
.../PhpUnit/PhpUnitAssertNewNamesFixer.php | 107 ++
.../Fixer/PhpUnit/PhpUnitAttributesFixer.php | 596 +++++++
.../Fixer/PhpUnit/PhpUnitConstructFixer.php | 62 +-
.../PhpUnit/PhpUnitDataProviderNameFixer.php | 199 +++
.../PhpUnitDataProviderReturnTypeFixer.php | 120 ++
.../PhpUnitDataProviderStaticFixer.php | 34 +-
.../PhpUnit/PhpUnitDedicateAssertFixer.php | 211 +--
...PhpUnitDedicateAssertInternalTypeFixer.php | 25 +-
.../Fixer/PhpUnit/PhpUnitExpectationFixer.php | 66 +-
.../PhpUnit/PhpUnitFqcnAnnotationFixer.php | 8 +-
.../PhpUnit/PhpUnitInternalClassFixer.php | 27 +-
.../PhpUnit/PhpUnitMethodCasingFixer.php | 40 +-
.../src/Fixer/PhpUnit/PhpUnitMockFixer.php | 39 +-
.../PhpUnitMockShortWillReturnFixer.php | 18 +-
.../Fixer/PhpUnit/PhpUnitNamespacedFixer.php | 71 +-
.../PhpUnitNoExpectationAnnotationFixer.php | 47 +-
.../PhpUnitSetUpTearDownVisibilityFixer.php | 54 +-
.../Fixer/PhpUnit/PhpUnitSizeClassFixer.php | 37 +-
.../src/Fixer/PhpUnit/PhpUnitStrictFixer.php | 35 +-
.../Fixer/PhpUnit/PhpUnitTargetVersion.php | 7 +-
.../PhpUnit/PhpUnitTestAnnotationFixer.php | 50 +-
.../PhpUnitTestCaseStaticMethodCallsFixer.php | 151 +-
.../PhpUnitTestClassRequiresCoversFixer.php | 25 +-
.../Phpdoc/AlignMultilineCommentFixer.php | 54 +-
.../GeneralPhpdocAnnotationRemoveFixer.php | 35 +-
.../Phpdoc/GeneralPhpdocTagRenameFixer.php | 63 +-
.../Phpdoc/NoBlankLinesAfterPhpdocFixer.php | 13 +-
.../src/Fixer/Phpdoc/NoEmptyPhpdocFixer.php | 39 +-
.../Phpdoc/NoSuperfluousPhpdocTagsFixer.php | 238 ++-
.../PhpdocAddMissingParamAnnotationFixer.php | 48 +-
.../src/Fixer/Phpdoc/PhpdocAlignFixer.php | 311 ++--
.../PhpdocAnnotationWithoutDotFixer.php | 23 +-
.../src/Fixer/Phpdoc/PhpdocArrayTypeFixer.php | 92 +
.../src/Fixer/Phpdoc/PhpdocIndentFixer.php | 25 +-
.../Phpdoc/PhpdocInlineTagNormalizerFixer.php | 36 +-
.../src/Fixer/Phpdoc/PhpdocLineSpanFixer.php | 26 +-
.../src/Fixer/Phpdoc/PhpdocListTypeFixer.php | 70 +
.../src/Fixer/Phpdoc/PhpdocNoAccessFixer.php | 14 +-
.../Fixer/Phpdoc/PhpdocNoAliasTagFixer.php | 28 +-
.../Fixer/Phpdoc/PhpdocNoEmptyReturnFixer.php | 11 +-
.../src/Fixer/Phpdoc/PhpdocNoPackageFixer.php | 13 +-
.../Phpdoc/PhpdocNoUselessInheritdocFixer.php | 15 +-
.../Fixer/Phpdoc/PhpdocOrderByValueFixer.php | 40 +-
.../src/Fixer/Phpdoc/PhpdocOrderFixer.php | 61 +-
.../Fixer/Phpdoc/PhpdocParamOrderFixer.php | 273 +++
.../Phpdoc/PhpdocReturnSelfReferenceFixer.php | 47 +-
.../src/Fixer/Phpdoc/PhpdocScalarFixer.php | 40 +-
.../Fixer/Phpdoc/PhpdocSeparationFixer.php | 127 +-
.../PhpdocSingleLineVarSpacingFixer.php | 9 -
.../src/Fixer/Phpdoc/PhpdocSummaryFixer.php | 20 +-
.../src/Fixer/Phpdoc/PhpdocTagCasingFixer.php | 31 +-
.../src/Fixer/Phpdoc/PhpdocTagTypeFixer.php | 38 +-
.../src/Fixer/Phpdoc/PhpdocToCommentFixer.php | 73 +-
...rimConsecutiveBlankLineSeparationFixer.php | 16 +-
.../src/Fixer/Phpdoc/PhpdocTrimFixer.php | 11 +-
.../src/Fixer/Phpdoc/PhpdocTypesFixer.php | 93 +-
.../Fixer/Phpdoc/PhpdocTypesOrderFixer.php | 80 +-
.../PhpdocVarAnnotationCorrectOrderFixer.php | 2 +-
.../Phpdoc/PhpdocVarWithoutNameFixer.php | 20 +-
.../ReturnNotation/NoUselessReturnFixer.php | 13 +-
.../ReturnNotation/ReturnAssignmentFixer.php | 89 +-
.../SimplifiedNullReturnFixer.php | 58 +-
...ltilineWhitespaceBeforeSemicolonsFixer.php | 148 +-
.../Fixer/Semicolon/NoEmptyStatementFixer.php | 9 -
...glelineWhitespaceBeforeSemicolonsFixer.php | 11 +-
.../SemicolonAfterInstructionFixer.php | 9 -
.../Semicolon/SpaceAfterSemicolonFixer.php | 26 +-
.../Fixer/Strict/DeclareStrictTypesFixer.php | 56 +-
.../Fixer/Strict/StrictComparisonFixer.php | 9 -
.../src/Fixer/Strict/StrictParamFixer.php | 17 +-
.../EscapeImplicitBackslashesFixer.php | 137 +-
.../ExplicitStringVariableFixer.php | 34 +-
.../HeredocClosingMarkerFixer.php | 205 +++
.../StringNotation/HeredocToNowdocFixer.php | 23 +-
.../MultilineStringToHeredocFixer.php | 166 ++
.../StringNotation/NoBinaryStringFixer.php | 9 -
.../NoTrailingWhitespaceInStringFixer.php | 12 -
.../SimpleToComplexStringVariableFixer.php | 56 +-
.../Fixer/StringNotation/SingleQuoteFixer.php | 39 +-
.../StringImplicitBackslashesFixer.php | 194 ++
.../StringLengthToEmptyFixer.php | 8 +-
.../StringNotation/StringLineEndingFixer.php | 12 -
.../Whitespace/ArrayIndentationFixer.php | 22 +-
.../BlankLineBeforeStatementFixer.php | 105 +-
.../BlankLineBetweenImportGroupsFixer.php | 20 +-
.../CompactNullableTypeDeclarationFixer.php | 72 +
.../CompactNullableTypehintFixer.php | 69 +-
.../Whitespace/HeredocIndentationFixer.php | 89 +-
.../Fixer/Whitespace/IndentationTypeFixer.php | 18 +-
.../src/Fixer/Whitespace/LineEndingFixer.php | 9 -
.../MethodChainingIndentationFixer.php | 27 +-
.../Whitespace/NoExtraBlankLinesFixer.php | 174 +-
.../Whitespace/NoSpacesAroundOffsetFixer.php | 27 +-
.../NoSpacesInsideParenthesisFixer.php | 60 +-
.../Whitespace/NoTrailingWhitespaceFixer.php | 17 +-
.../NoWhitespaceInBlankLineFixer.php | 13 +-
.../Whitespace/SingleBlankLineAtEofFixer.php | 14 +-
.../SpacesInsideParenthesesFixer.php | 223 +++
.../Whitespace/StatementIndentationFixer.php | 326 +++-
.../Whitespace/TypeDeclarationSpacesFixer.php | 212 +++
.../src/Fixer/Whitespace/TypesSpacesFixer.php | 50 +-
.../FixerConfiguration/AliasedFixerOption.php | 23 +-
.../AliasedFixerOptionBuilder.php | 2 +-
.../FixerConfiguration/AllowedValueSubset.php | 4 +-
.../DeprecatedFixerOption.php | 23 +-
.../FixerConfigurationResolver.php | 79 +-
.../src/FixerConfiguration/FixerOption.php | 42 +-
.../FixerConfiguration/FixerOptionBuilder.php | 21 +-
.../FixerOptionInterface.php | 2 +-
.../FixerConfiguration/FixerOptionSorter.php | 37 +
.../InvalidOptionsForEnvException.php | 4 +-
.../src/FixerDefinition/CodeSample.php | 2 +
.../FileSpecificCodeSample.php | 11 +-
.../src/FixerDefinition/FixerDefinition.php | 8 +
.../VersionSpecificCodeSample.php | 11 +-
.../FixerDefinition/VersionSpecification.php | 5 +-
.../php-cs-fixer/src/FixerFactory.php | 40 +-
.../php-cs-fixer/src/FixerNameValidator.php | 4 +-
.../Indicator/PhpUnitTestCaseIndicator.php | 8 +-
.../php-cs-fixer/src/Linter/CachingLinter.php | 21 +-
.../php-cs-fixer/src/Linter/Linter.php | 11 +-
.../src/Linter/LintingException.php | 4 +-
.../php-cs-fixer/src/Linter/ProcessLinter.php | 19 +-
.../Linter/ProcessLinterProcessBuilder.php | 2 +
.../src/Linter/ProcessLintingResult.php | 16 +-
.../src/Linter/TokenizerLinter.php | 13 +-
.../src/Linter/TokenizerLintingResult.php | 7 +-
.../src/Linter/UnavailableLinterException.php | 4 +-
.../src/ParallelAwareConfigInterface.php | 29 +
.../php-cs-fixer/src/PharChecker.php | 3 -
.../friendsofphp/php-cs-fixer/src/Preg.php | 146 +-
.../php-cs-fixer/src/PregException.php | 4 +-
.../AbstractMigrationSetDescription.php | 10 +-
.../RuleSet/AbstractRuleSetDescription.php | 4 +-
.../DeprecatedRuleSetDescriptionInterface.php | 28 +
.../php-cs-fixer/src/RuleSet/RuleSet.php | 47 +-
.../src/RuleSet/RuleSetInterface.php | 2 +-
.../php-cs-fixer/src/RuleSet/RuleSets.php | 10 +-
.../src/RuleSet/Sets/PERCS1x0RiskySet.php | 44 +
.../src/RuleSet/Sets/PERCS1x0Set.php | 44 +
.../src/RuleSet/Sets/PERCS2x0RiskySet.php | 44 +
.../src/RuleSet/Sets/PERCS2x0Set.php | 112 ++
.../src/RuleSet/Sets/PERCSRiskySet.php | 40 +
.../src/RuleSet/Sets/PERCSSet.php | 40 +
.../src/RuleSet/Sets/PERRiskySet.php | 23 +-
.../php-cs-fixer/src/RuleSet/Sets/PERSet.php | 18 +-
.../RuleSet/Sets/PHP82MigrationRiskySet.php | 31 +
.../src/RuleSet/Sets/PHP83MigrationSet.php | 30 +
.../src/RuleSet/Sets/PHP84MigrationSet.php | 31 +
.../Sets/PHPUnit100MigrationRiskySet.php | 4 +-
.../Sets/PHPUnit91MigrationRiskySet.php | 31 +
.../src/RuleSet/Sets/PSR12Set.php | 63 +-
.../php-cs-fixer/src/RuleSet/Sets/PSR2Set.php | 39 +-
.../src/RuleSet/Sets/PhpCsFixerRiskySet.php | 14 +-
.../src/RuleSet/Sets/PhpCsFixerSet.php | 25 +-
.../src/RuleSet/Sets/SymfonyRiskySet.php | 6 +-
.../src/RuleSet/Sets/SymfonySet.php | 65 +-
.../src/Runner/Event/AnalysisStarted.php | 54 +
.../Event/FileProcessed.php} | 30 +-
...php => FileCachingLintingFileIterator.php} | 16 +-
.../src/Runner/FileFilterIterator.php | 9 +-
...ngIterator.php => LintingFileIterator.php} | 7 +-
...intingResultAwareFileIteratorInterface.php | 29 +
.../src/Runner/Parallel/ParallelAction.php | 35 +
.../src/Runner/Parallel/ParallelConfig.php | 67 +
.../Runner/Parallel/ParallelConfigFactory.php | 61 +
.../Parallel/ParallelisationException.php | 30 +
.../src/Runner/Parallel/Process.php | 189 ++
.../src/Runner/Parallel/ProcessFactory.php | 111 ++
.../src/Runner/Parallel/ProcessIdentifier.php | 55 +
.../src/Runner/Parallel/ProcessPool.php | 99 ++
.../src/Runner/Parallel/WorkerException.php | 66 +
.../php-cs-fixer/src/Runner/Runner.php | 375 +++-
.../php-cs-fixer/src/Runner/RunnerConfig.php | 64 +
.../php-cs-fixer/src/StdinFileInfo.php | 25 +-
.../src/Tokenizer/AbstractTransformer.php | 9 -
.../src/Tokenizer/AbstractTypeTransformer.php | 14 +-
.../Analyzer/AlternativeSyntaxAnalyzer.php | 5 +
.../AbstractControlCaseStructuresAnalysis.php | 2 +
.../Analyzer/Analysis/ArgumentAnalysis.php | 16 +-
.../Analyzer/Analysis/AttributeAnalysis.php | 76 +
.../Analyzer/Analysis/CaseAnalysis.php | 2 +
.../Analysis/DataProviderAnalysis.php | 68 +
.../Analyzer/Analysis/DefaultAnalysis.php | 2 +
.../Analyzer/Analysis/EnumAnalysis.php | 2 +
.../Analyzer/Analysis/MatchAnalysis.php | 2 +
.../Analyzer/Analysis/NamespaceAnalysis.php | 2 +
.../Analysis/NamespaceUseAnalysis.php | 85 +-
.../Analysis/StartEndTokenAwareAnalysis.php | 5 +
.../Analyzer/Analysis/SwitchAnalysis.php | 2 +
.../Analyzer/Analysis/TypeAnalysis.php | 40 +-
.../Tokenizer/Analyzer/ArgumentsAnalyzer.php | 6 +-
.../Tokenizer/Analyzer/AttributeAnalyzer.php | 141 ++
.../src/Tokenizer/Analyzer/BlocksAnalyzer.php | 10 +-
.../src/Tokenizer/Analyzer/ClassyAnalyzer.php | 8 +-
.../Tokenizer/Analyzer/CommentsAnalyzer.php | 69 +-
.../ControlCaseStructuresAnalyzer.php | 8 +-
.../Analyzer/DataProviderAnalyzer.php | 61 +-
.../Tokenizer/Analyzer/FunctionsAnalyzer.php | 18 +-
.../Analyzer/NamespaceUsesAnalyzer.php | 163 +-
.../Tokenizer/Analyzer/NamespacesAnalyzer.php | 36 +-
.../src/Tokenizer/Analyzer/SwitchAnalyzer.php | 69 +
.../php-cs-fixer/src/Tokenizer/CT.php | 92 +-
.../php-cs-fixer/src/Tokenizer/CodeHasher.php | 2 +
.../Tokenizer/Processor/ImportProcessor.php | 103 ++
.../php-cs-fixer/src/Tokenizer/Token.php | 84 +-
.../php-cs-fixer/src/Tokenizer/Tokens.php | 478 +++--
.../src/Tokenizer/TokensAnalyzer.php | 132 +-
.../Transformer/ArrayTypehintTransformer.php | 9 -
.../Transformer/AttributeTransformer.php | 12 -
.../BraceClassInstantiationTransformer.php | 14 +-
...ceTransformer.php => BraceTransformer.php} | 150 +-
.../Transformer/ClassConstantTransformer.php | 9 -
.../ConstructorPromotionTransformer.php | 33 +-
...veNormalFormTypeParenthesisTransformer.php | 12 -
.../FirstClassCallableTransformer.php | 9 -
.../Transformer/ImportTransformer.php | 12 -
.../Transformer/NameQualifiedTransformer.php | 42 +-
.../Transformer/NamedArgumentTransformer.php | 12 -
.../NamespaceOperatorTransformer.php | 9 -
.../Transformer/NullableTypeTransformer.php | 13 +-
.../Transformer/ReturnRefTransformer.php | 9 -
.../Transformer/SquareBraceTransformer.php | 12 -
.../TypeAlternationTransformer.php | 12 -
.../Transformer/TypeColonTransformer.php | 12 -
.../TypeIntersectionTransformer.php | 12 -
.../Tokenizer/Transformer/UseTransformer.php | 12 -
.../WhitespacyCommentTransformer.php | 9 -
.../src/Tokenizer/Transformers.php | 6 +-
.../php-cs-fixer/src/ToolInfo.php | 20 +-
.../php-cs-fixer/src/ToolInfoInterface.php | 2 +
.../friendsofphp/php-cs-fixer/src/Utils.php | 122 +-
.../src/WhitespacesFixerConfig.php | 14 +
.../php-cs-fixer/src/WordMatcher.php | 6 +-
.../vendor/psr/cache/CHANGELOG.md | 16 -
tools/php-cs-fixer/vendor/psr/cache/README.md | 12 -
.../vendor/psr/cache/composer.json | 25 -
.../vendor/psr/cache/src/CacheException.php | 10 -
.../psr/cache/src/CacheItemInterface.php | 105 --
.../psr/cache/src/CacheItemPoolInterface.php | 138 --
.../cache/src/InvalidArgumentException.php | 13 -
.../psr/log/src/LoggerAwareInterface.php | 4 -
.../vendor/psr/log/src/LoggerAwareTrait.php | 4 -
.../vendor/psr/log/src/LoggerInterface.php | 29 +-
.../vendor/psr/log/src/LoggerTrait.php | 46 +-
.../vendor/psr/log/src/NullLogger.php | 6 +-
.../vendor/react/cache/CHANGELOG.md | 96 +
.../{doctrine/lexer => react/cache}/LICENSE | 20 +-
.../php-cs-fixer/vendor/react/cache/README.md | 367 ++++
.../vendor/react/cache/composer.json | 45 +
.../vendor/react/cache/src/ArrayCache.php | 181 ++
.../vendor/react/cache/src/CacheInterface.php | 194 ++
.../vendor/react/child-process/CHANGELOG.md | 176 ++
.../vendor/react/child-process/LICENSE | 21 +
.../vendor/react/child-process/README.md | 619 +++++++
.../vendor/react/child-process/composer.json | 49 +
.../react/child-process/src/Process.php | 585 ++++++
.../vendor/react/dns/CHANGELOG.md | 452 +++++
tools/php-cs-fixer/vendor/react/dns/LICENSE | 21 +
tools/php-cs-fixer/vendor/react/dns/README.md | 453 +++++
.../vendor/react/dns/composer.json | 49 +
.../react/dns/src/BadServerException.php | 7 +
.../vendor/react/dns/src/Config/Config.php | 137 ++
.../vendor/react/dns/src/Config/HostsFile.php | 153 ++
.../vendor/react/dns/src/Model/Message.php | 230 +++
.../vendor/react/dns/src/Model/Record.php | 153 ++
.../react/dns/src/Protocol/BinaryDumper.php | 199 +++
.../vendor/react/dns/src/Protocol/Parser.php | 356 ++++
.../react/dns/src/Query/CachingExecutor.php | 88 +
.../dns/src/Query/CancellationException.php | 7 +
.../react/dns/src/Query/CoopExecutor.php | 91 +
.../react/dns/src/Query/ExecutorInterface.php | 43 +
.../react/dns/src/Query/FallbackExecutor.php | 49 +
.../react/dns/src/Query/HostsFileExecutor.php | 89 +
.../vendor/react/dns/src/Query/Query.php | 69 +
.../react/dns/src/Query/RetryExecutor.php | 85 +
.../src/Query/SelectiveTransportExecutor.php | 85 +
.../dns/src/Query/TcpTransportExecutor.php | 382 ++++
.../react/dns/src/Query/TimeoutException.php | 7 +
.../react/dns/src/Query/TimeoutExecutor.php | 78 +
.../dns/src/Query/UdpTransportExecutor.php | 221 +++
.../react/dns/src/RecordNotFoundException.php | 7 +
.../vendor/react/dns/src/Resolver/Factory.php | 226 +++
.../react/dns/src/Resolver/Resolver.php | 147 ++
.../dns/src/Resolver/ResolverInterface.php | 94 +
.../vendor/react/event-loop/CHANGELOG.md | 468 +++++
.../vendor/react/event-loop/LICENSE | 21 +
.../vendor/react/event-loop/README.md | 930 ++++++++++
.../vendor/react/event-loop/composer.json | 47 +
.../vendor/react/event-loop/src/ExtEvLoop.php | 253 +++
.../react/event-loop/src/ExtEventLoop.php | 275 +++
.../react/event-loop/src/ExtLibevLoop.php | 201 +++
.../react/event-loop/src/ExtLibeventLoop.php | 285 +++
.../vendor/react/event-loop/src/ExtUvLoop.php | 342 ++++
.../vendor/react/event-loop/src/Factory.php | 75 +
.../vendor/react/event-loop/src/Loop.php | 266 +++
.../react/event-loop/src/LoopInterface.php | 472 +++++
.../react/event-loop/src/SignalsHandler.php | 63 +
.../react/event-loop/src/StreamSelectLoop.php | 330 ++++
.../event-loop/src/Tick/FutureTickQueue.php | 60 +
.../react/event-loop/src/Timer/Timer.php | 55 +
.../react/event-loop/src/Timer/Timers.php | 113 ++
.../react/event-loop/src/TimerInterface.php | 27 +
.../vendor/react/promise/CHANGELOG.md | 156 ++
.../php-cs-fixer/vendor/react/promise/LICENSE | 24 +
.../vendor/react/promise/README.md | 722 ++++++++
.../vendor/react/promise/composer.json | 57 +
.../vendor/react/promise/src/Deferred.php | 52 +
.../src/Exception/CompositeException.php | 32 +
.../promise/src/Exception/LengthException.php | 7 +
.../src/Internal/CancellationQueue.php | 64 +
.../promise/src/Internal/FulfilledPromise.php | 89 +
.../promise/src/Internal/RejectedPromise.php | 128 ++
.../vendor/react/promise/src/Promise.php | 303 ++++
.../react/promise/src/PromiseInterface.php | 152 ++
.../vendor/react/promise/src/functions.php | 345 ++++
.../react/promise/src/functions_include.php | 5 +
.../vendor/react/socket/CHANGELOG.md | 785 +++++++++
.../php-cs-fixer/vendor/react/socket/LICENSE | 21 +
.../vendor/react/socket/README.md | 1564 +++++++++++++++++
.../vendor/react/socket/composer.json | 52 +
.../vendor/react/socket/src/Connection.php | 183 ++
.../react/socket/src/ConnectionInterface.php | 119 ++
.../vendor/react/socket/src/Connector.php | 236 +++
.../react/socket/src/ConnectorInterface.php | 59 +
.../vendor/react/socket/src/DnsConnector.php | 117 ++
.../vendor/react/socket/src/FdServer.php | 222 +++
.../react/socket/src/FixedUriConnector.php | 41 +
.../src/HappyEyeBallsConnectionBuilder.php | 334 ++++
.../socket/src/HappyEyeBallsConnector.php | 80 +
.../react/socket/src/LimitingServer.php | 203 +++
.../react/socket/src/SecureConnector.php | 132 ++
.../vendor/react/socket/src/SecureServer.php | 210 +++
.../vendor/react/socket/src/Server.php | 118 ++
.../react/socket/src/ServerInterface.php | 151 ++
.../vendor/react/socket/src/SocketServer.php | 215 +++
.../react/socket/src/StreamEncryption.php | 158 ++
.../vendor/react/socket/src/TcpConnector.php | 173 ++
.../vendor/react/socket/src/TcpServer.php | 262 +++
.../react/socket/src/TimeoutConnector.php | 79 +
.../vendor/react/socket/src/UnixConnector.php | 58 +
.../vendor/react/socket/src/UnixServer.php | 162 ++
.../vendor/react/stream/CHANGELOG.md | 460 +++++
.../php-cs-fixer/vendor/react/stream/LICENSE | 21 +
.../vendor/react/stream/README.md | 1249 +++++++++++++
.../vendor/react/stream/composer.json | 47 +
.../react/stream/src/CompositeStream.php | 83 +
.../react/stream/src/DuplexResourceStream.php | 240 +++
.../stream/src/DuplexStreamInterface.php | 39 +
.../stream/src/ReadableResourceStream.php | 188 ++
.../stream/src/ReadableStreamInterface.php | 362 ++++
.../vendor/react/stream/src/ThroughStream.php | 195 ++
.../vendor/react/stream/src/Util.php | 75 +
.../stream/src/WritableResourceStream.php | 178 ++
.../stream/src/WritableStreamInterface.php | 347 ++++
.../vendor/sebastian/diff/ChangeLog.md | 52 +
.../vendor/sebastian/diff/LICENSE | 2 +-
.../vendor/sebastian/diff/README.md | 1 -
.../vendor/sebastian/diff/composer.json | 8 +-
.../vendor/sebastian/diff/src/Chunk.php | 35 +-
.../vendor/sebastian/diff/src/Diff.php | 43 +-
.../vendor/sebastian/diff/src/Differ.php | 12 +-
.../src/Exception/ConfigurationException.php | 13 +-
.../vendor/sebastian/diff/src/Line.php | 19 +-
...ientLongestCommonSubsequenceCalculator.php | 8 +-
.../Output/StrictUnifiedDiffOutputBuilder.php | 20 +-
.../src/Output/UnifiedDiffOutputBuilder.php | 13 +-
.../vendor/sebastian/diff/src/Parser.php | 6 +-
.../vendor/symfony/console/Application.php | 257 +--
.../symfony/console/Attribute/AsCommand.php | 6 +
.../vendor/symfony/console/CHANGELOG.md | 39 +
.../console/CI/GithubActionReporter.php | 20 +-
.../vendor/symfony/console/Color.php | 8 +-
.../symfony/console/Command/Command.php | 111 +-
.../console/Command/CompleteCommand.php | 39 +-
.../console/Command/DumpCompletionCommand.php | 24 +-
.../symfony/console/Command/HelpCommand.php | 12 +-
.../symfony/console/Command/LazyCommand.php | 23 +-
.../symfony/console/Command/ListCommand.php | 10 +-
.../symfony/console/Command/LockableTrait.php | 22 +-
.../Command/SignalableCommandInterface.php | 4 +-
.../console/Command/TraceableCommand.php | 356 ++++
.../CommandLoader/ContainerCommandLoader.php | 13 +-
.../CommandLoader/FactoryCommandLoader.php | 10 +-
.../console/Completion/CompletionInput.php | 22 +-
.../Completion/CompletionSuggestions.php | 4 +-
.../Output/FishCompletionOutput.php | 9 +-
.../symfony/console/Completion/Suggestion.php | 2 +-
.../vendor/symfony/console/Cursor.php | 23 +-
.../DataCollector/CommandDataCollector.php | 234 +++
.../symfony/console/Debug/CliRequest.php | 70 +
.../AddConsoleCommandPass.php | 12 +-
.../Descriptor/ApplicationDescription.php | 17 +-
.../symfony/console/Descriptor/Descriptor.php | 24 +-
.../Descriptor/DescriptorInterface.php | 2 +-
.../console/Descriptor/JsonDescriptor.php | 12 +-
.../console/Descriptor/MarkdownDescriptor.php | 40 +-
.../Descriptor/ReStructuredTextDescriptor.php | 273 +++
.../console/Descriptor/TextDescriptor.php | 40 +-
.../console/Descriptor/XmlDescriptor.php | 24 +-
.../console/Event/ConsoleAlarmEvent.php | 47 +
.../console/Event/ConsoleCommandEvent.php | 5 +-
.../console/Event/ConsoleErrorEvent.php | 11 +-
.../symfony/console/Event/ConsoleEvent.php | 15 +-
.../console/Event/ConsoleSignalEvent.php | 31 +-
.../console/Event/ConsoleTerminateEvent.php | 19 +-
.../console/EventListener/ErrorListener.php | 30 +-
.../Exception/CommandNotFoundException.php | 12 +-
.../Exception/RunCommandFailedException.php | 29 +
.../Formatter/NullOutputFormatterStyle.php | 10 +-
.../console/Formatter/OutputFormatter.php | 28 +-
.../Formatter/OutputFormatterInterface.php | 4 +-
.../Formatter/OutputFormatterStyle.php | 18 +-
.../OutputFormatterStyleInterface.php | 10 +-
.../Formatter/OutputFormatterStyleStack.php | 8 +-
.../WrappableOutputFormatterInterface.php | 4 +-
.../console/Helper/DebugFormatterHelper.php | 16 +-
.../console/Helper/DescriptorHelper.php | 6 +-
.../vendor/symfony/console/Helper/Dumper.php | 28 +-
.../console/Helper/FormatterHelper.php | 6 +-
.../vendor/symfony/console/Helper/Helper.php | 72 +-
.../console/Helper/HelperInterface.php | 6 +-
.../symfony/console/Helper/HelperSet.php | 4 +-
.../console/Helper/InputAwareHelper.php | 4 +-
.../symfony/console/Helper/OutputWrapper.php | 6 +-
.../symfony/console/Helper/ProcessHelper.php | 14 +-
.../symfony/console/Helper/ProgressBar.php | 160 +-
.../console/Helper/ProgressIndicator.php | 63 +-
.../symfony/console/Helper/QuestionHelper.php | 62 +-
.../console/Helper/SymfonyQuestionHelper.php | 16 +-
.../vendor/symfony/console/Helper/Table.php | 104 +-
.../symfony/console/Helper/TableCell.php | 11 +-
.../symfony/console/Helper/TableCellStyle.php | 8 +-
.../symfony/console/Helper/TableRows.php | 8 +-
.../symfony/console/Helper/TableStyle.php | 6 +-
.../symfony/console/Input/ArgvInput.php | 80 +-
.../symfony/console/Input/ArrayInput.php | 26 +-
.../vendor/symfony/console/Input/Input.php | 45 +-
.../symfony/console/Input/InputArgument.php | 48 +-
.../console/Input/InputAwareInterface.php | 2 +-
.../symfony/console/Input/InputDefinition.php | 44 +-
.../symfony/console/Input/InputInterface.php | 32 +-
.../symfony/console/Input/InputOption.php | 52 +-
.../Input/StreamableInputInterface.php | 2 +-
.../symfony/console/Input/StringInput.php | 8 +-
.../symfony/console/Logger/ConsoleLogger.php | 13 +-
.../console/Messenger/RunCommandContext.php | 25 +
.../console/Messenger/RunCommandMessage.php | 36 +
.../Messenger/RunCommandMessageHandler.php | 49 +
.../symfony/console/Output/AnsiColorMode.php | 40 +-
.../symfony/console/Output/BufferedOutput.php | 2 +-
.../symfony/console/Output/ConsoleOutput.php | 10 +-
.../console/Output/ConsoleOutputInterface.php | 2 +-
.../console/Output/ConsoleSectionOutput.php | 27 +-
.../symfony/console/Output/NullOutput.php | 19 +-
.../vendor/symfony/console/Output/Output.php | 24 +-
.../console/Output/OutputInterface.php | 17 +-
.../symfony/console/Output/StreamOutput.php | 39 +-
.../console/Output/TrimmedBufferOutput.php | 8 +-
.../console/Question/ChoiceQuestion.php | 21 +-
.../console/Question/ConfirmationQuestion.php | 10 +-
.../symfony/console/Question/Question.php | 31 +-
.../vendor/symfony/console/README.md | 7 +
.../symfony/console/Resources/completion.bash | 12 +-
.../symfony/console/Resources/completion.fish | 6 +-
.../console/SignalRegistry/SignalMap.php | 36 +
.../console/SignalRegistry/SignalRegistry.php | 8 +
.../console/SingleCommandApplication.php | 4 +-
.../symfony/console/Style/OutputStyle.php | 28 +-
.../symfony/console/Style/StyleInterface.php | 32 +-
.../symfony/console/Style/SymfonyStyle.php | 89 +-
.../vendor/symfony/console/Terminal.php | 25 +-
.../console/Tester/ApplicationTester.php | 8 +-
.../Tester/CommandCompletionTester.php | 8 +-
.../symfony/console/Tester/CommandTester.php | 8 +-
.../Tester/Constraint/CommandIsSuccessful.php | 2 +-
.../symfony/console/Tester/TesterTrait.php | 4 +-
.../vendor/symfony/console/composer.json | 39 +-
.../deprecation-contracts/composer.json | 2 +-
.../EventDispatcherInterface.php | 2 +-
.../event-dispatcher-contracts/composer.json | 5 +-
.../Attribute/AsEventListener.php | 6 +
.../Debug/TraceableEventDispatcher.php | 50 +-
.../Debug/WrappedListener.php | 21 +-
.../AddEventAliasesPass.php | 8 +-
.../RegisterListenersPass.php | 18 +-
.../event-dispatcher/EventDispatcher.php | 18 +-
.../EventDispatcherInterface.php | 12 +-
.../symfony/event-dispatcher/GenericEvent.php | 15 +-
.../ImmutableEventDispatcher.php | 22 +-
.../symfony/event-dispatcher/composer.json | 25 +-
.../vendor/symfony/filesystem/CHANGELOG.md | 10 +
.../Exception/FileNotFoundException.php | 4 +-
.../filesystem/Exception/IOException.php | 12 +-
.../vendor/symfony/filesystem/Filesystem.php | 158 +-
.../vendor/symfony/filesystem/Path.php | 27 +-
.../vendor/symfony/filesystem/composer.json | 5 +-
.../vendor/symfony/finder/CHANGELOG.md | 5 +
.../symfony/finder/Comparator/Comparator.php | 10 +-
.../finder/Comparator/DateComparator.php | 6 +-
.../finder/Comparator/NumberComparator.php | 6 +-
.../vendor/symfony/finder/Finder.php | 72 +-
.../vendor/symfony/finder/Gitignore.php | 4 +-
.../ExcludeDirectoryFilterIterator.php | 25 +-
.../Iterator/FileTypeFilterIterator.php | 10 +-
.../Iterator/MultiplePcreFilterIterator.php | 10 +-
.../Iterator/RecursiveDirectoryIterator.php | 39 +-
.../finder/Iterator/SortableIterator.php | 38 +-
.../Iterator/VcsIgnoredFilterIterator.php | 19 +-
.../vendor/symfony/finder/SplFileInfo.php | 12 +-
.../vendor/symfony/finder/composer.json | 4 +-
.../symfony/options-resolver/CHANGELOG.md | 10 +
.../Debug/OptionsResolverIntrospector.php | 16 +-
.../options-resolver/OptionConfigurator.php | 23 +-
.../options-resolver/OptionsResolver.php | 137 +-
.../symfony/options-resolver/composer.json | 4 +-
.../vendor/symfony/polyfill-ctype/LICENSE | 2 +-
.../symfony/polyfill-ctype/composer.json | 5 +-
.../symfony/polyfill-intl-grapheme/LICENSE | 2 +-
.../polyfill-intl-grapheme/composer.json | 5 +-
.../symfony/polyfill-intl-normalizer/LICENSE | 2 +-
.../polyfill-intl-normalizer/composer.json | 5 +-
.../vendor/symfony/polyfill-mbstring/LICENSE | 2 +-
.../symfony/polyfill-mbstring/Mbstring.php | 185 +-
.../Resources/unidata/caseFolding.php | 119 ++
.../symfony/polyfill-mbstring/bootstrap.php | 25 +
.../symfony/polyfill-mbstring/bootstrap80.php | 26 +-
.../symfony/polyfill-mbstring/composer.json | 5 +-
.../vendor/symfony/polyfill-php80/LICENSE | 2 +-
.../symfony/polyfill-php80/composer.json | 5 +-
.../vendor/symfony/polyfill-php81/LICENSE | 2 +-
.../vendor/symfony/polyfill-php81/README.md | 1 +
.../Resources/stubs/CURLStringFile.php | 51 +
.../symfony/polyfill-php81/composer.json | 5 +-
.../vendor/symfony/process/CHANGELOG.md | 12 +
.../Exception/ProcessFailedException.php | 13 +-
.../Exception/ProcessSignaledException.php | 11 +-
.../Exception/ProcessStartFailedException.php | 43 +
.../Exception/ProcessTimedOutException.php | 24 +-
.../Exception/RunProcessFailedException.php | 25 +
.../symfony/process/ExecutableFinder.php | 69 +-
.../vendor/symfony/process/InputStream.php | 19 +-
.../process/Messenger/RunProcessContext.php | 33 +
.../process/Messenger/RunProcessMessage.php | 32 +
.../Messenger/RunProcessMessageHandler.php | 33 +
.../symfony/process/PhpExecutableFinder.php | 17 +-
.../vendor/symfony/process/PhpProcess.php | 8 +-
.../vendor/symfony/process/PhpSubprocess.php | 164 ++
.../symfony/process/Pipes/AbstractPipes.php | 21 +-
.../symfony/process/Pipes/PipesInterface.php | 2 +-
.../symfony/process/Pipes/UnixPipes.php | 18 +-
.../symfony/process/Pipes/WindowsPipes.php | 25 +-
.../vendor/symfony/process/Process.php | 288 +--
.../vendor/symfony/process/ProcessUtils.php | 5 +-
.../vendor/symfony/process/composer.json | 2 +-
.../Attribute/SubscribedService.php | 4 +-
.../ServiceCollectionInterface.php | 26 +
.../service-contracts/ServiceLocatorTrait.php | 2 +-
.../ServiceMethodsSubscriberTrait.php | 80 +
.../ServiceProviderInterface.php | 2 +-
.../ServiceSubscriberTrait.php | 16 +-
.../Test/ServiceLocatorTest.php | 81 +-
.../Test/ServiceLocatorTestCase.php | 96 +
.../symfony/service-contracts/composer.json | 8 +-
.../vendor/symfony/stopwatch/CHANGELOG.md | 6 +
.../vendor/symfony/stopwatch/README.md | 4 +-
.../vendor/symfony/stopwatch/Section.php | 14 +-
.../vendor/symfony/stopwatch/Stopwatch.php | 30 +-
.../symfony/stopwatch/StopwatchEvent.php | 28 +-
.../symfony/stopwatch/StopwatchPeriod.php | 4 +-
.../vendor/symfony/stopwatch/composer.json | 4 +-
.../vendor/symfony/string/AbstractString.php | 66 +-
.../symfony/string/AbstractUnicodeString.php | 104 +-
.../vendor/symfony/string/ByteString.php | 31 +-
.../vendor/symfony/string/CHANGELOG.md | 11 +
.../vendor/symfony/string/CodePointString.php | 6 +-
.../string/Inflector/EnglishInflector.php | 131 +-
.../string/Inflector/SpanishInflector.php | 126 ++
.../vendor/symfony/string/LazyString.php | 12 +-
.../Resources/data/wcswidth_table_wide.php | 60 +-
.../Resources/data/wcswidth_table_zero.php | 52 +-
.../symfony/string/Slugger/AsciiSlugger.php | 20 +-
.../string/Slugger/SluggerInterface.php | 2 +-
.../vendor/symfony/string/TruncateMode.php | 42 +
.../vendor/symfony/string/UnicodeString.php | 56 +-
.../vendor/symfony/string/composer.json | 15 +-
1015 files changed, 55916 insertions(+), 18523 deletions(-)
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/.github/FUNDING.yml
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/CHANGELOG.md
rename tools/php-cs-fixer/vendor/{doctrine/annotations => clue/ndjson-react}/LICENSE (58%)
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/README.md
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/composer.json
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/src/Decoder.php
create mode 100644 tools/php-cs-fixer/vendor/clue/ndjson-react/src/Encoder.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/extension.neon
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchFlags.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php
create mode 100644 tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/README.md
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/UPGRADE.md
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/composer.json
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/annotations.rst
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/custom.rst
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/index.rst
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/sidebar.rst
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/NamedArgumentConstructor.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/ImplicitlyIgnoredAnnotationNames.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/lexer/README.md
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/lexer/UPGRADE.md
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/lexer/composer.json
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/lexer/src/AbstractLexer.php
delete mode 100644 tools/php-cs-fixer/vendor/doctrine/lexer/src/Token.php
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/.gitattributes
rename tools/php-cs-fixer/vendor/{psr/cache/LICENSE.txt => evenement/evenement/LICENSE} (83%)
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/README.md
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/composer.json
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/src/EventEmitter.php
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/src/EventEmitterInterface.php
create mode 100644 tools/php-cs-fixer/vendor/evenement/evenement/src/EventEmitterTrait.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/.envrc
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/LICENSE.md
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/README.md
create mode 100755 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/bin/diagnose.php
create mode 100755 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/bin/execute.php
create mode 100755 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/bin/trace.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/composer.json
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/CpuCoreCounter.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Diagnoser.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/EnvVariableFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php
create mode 100644 tools/php-cs-fixer/vendor/fidry/cpu-core-counter/src/ParallelisationResult.php
delete mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractLinesBeforeNamespaceFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/WorkerCommand.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/OutputContext.php
delete mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutput.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/DotsOutput.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/NullOutput.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/PercentageBarOutput.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputFactory.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputInterface.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputType.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/DocLexer.php
delete mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/ListDocumentGenerator.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/SourceExceptionFactory.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandler.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandlerException.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ReturnToYieldFromFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/YieldFromArrayToYieldsFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/GeneralAttributeRemoveFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/OrderedAttributesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NumericLiteralSeparatorFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/SingleLineEmptyBodyFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeTypeDeclarationCasingFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/PhpdocReadonlyClassCommentToKeywordFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerTrait.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/{Console/Output/ProcessOutputInterface.php => Fixer/ExperimentalFixerInterface.php} (73%)
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/{Console/Output/NullOutput.php => Fixer/InternalFixerInterface.php} (67%)
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NullableTypeDeclarationFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLinesBeforeNamespaceFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/LongToShorthandOperatorFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitAssertNewNamesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitAttributesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderReturnTypeFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocArrayTypeFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocListTypeFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocParamOrderFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocClosingMarkerFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/MultilineStringToHeredocFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringImplicitBackslashesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypeDeclarationFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SpacesInsideParenthesesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypeDeclarationSpacesFixer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionSorter.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ParallelAwareConfigInterface.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/DeprecatedRuleSetDescriptionInterface.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0RiskySet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0Set.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0RiskySet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0Set.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSRiskySet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSSet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP82MigrationRiskySet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP83MigrationSet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP84MigrationSet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit91MigrationRiskySet.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Event/AnalysisStarted.php
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/{FixerFileProcessedEvent.php => Runner/Event/FileProcessed.php} (58%)
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/{FileCachingLintingIterator.php => FileCachingLintingFileIterator.php} (84%)
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/{FileLintingIterator.php => LintingFileIterator.php} (89%)
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/LintingResultAwareFileIteratorInterface.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ParallelAction.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ParallelConfig.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ParallelConfigFactory.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ParallelisationException.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/Process.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ProcessFactory.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ProcessIdentifier.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/ProcessPool.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/Parallel/WorkerException.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Runner/RunnerConfig.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/AttributeAnalysis.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/DataProviderAnalysis.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/SwitchAnalyzer.php
create mode 100644 tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Processor/ImportProcessor.php
rename tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/{CurlyBraceTransformer.php => BraceTransformer.php} (57%)
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/CHANGELOG.md
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/README.md
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/composer.json
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/src/CacheException.php
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/src/CacheItemInterface.php
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/src/CacheItemPoolInterface.php
delete mode 100644 tools/php-cs-fixer/vendor/psr/cache/src/InvalidArgumentException.php
create mode 100644 tools/php-cs-fixer/vendor/react/cache/CHANGELOG.md
rename tools/php-cs-fixer/vendor/{doctrine/lexer => react/cache}/LICENSE (55%)
create mode 100644 tools/php-cs-fixer/vendor/react/cache/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/cache/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/cache/src/ArrayCache.php
create mode 100644 tools/php-cs-fixer/vendor/react/cache/src/CacheInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/child-process/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/child-process/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/child-process/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/child-process/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/child-process/src/Process.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/dns/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/dns/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/dns/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/BadServerException.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Config/Config.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Config/HostsFile.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Model/Message.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Model/Record.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Protocol/BinaryDumper.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Protocol/Parser.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/CachingExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/CancellationException.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/CoopExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/ExecutorInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/FallbackExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/HostsFileExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/Query.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/RetryExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/SelectiveTransportExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/TcpTransportExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/TimeoutException.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/TimeoutExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Query/UdpTransportExecutor.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/RecordNotFoundException.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Resolver/Factory.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Resolver/Resolver.php
create mode 100644 tools/php-cs-fixer/vendor/react/dns/src/Resolver/ResolverInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/ExtEvLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/ExtEventLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/ExtLibevLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/ExtLibeventLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/ExtUvLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/Factory.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/Loop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/LoopInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/SignalsHandler.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/StreamSelectLoop.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/Tick/FutureTickQueue.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/Timer/Timer.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/Timer/Timers.php
create mode 100644 tools/php-cs-fixer/vendor/react/event-loop/src/TimerInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/promise/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/promise/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/promise/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Deferred.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Exception/CompositeException.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Exception/LengthException.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Internal/CancellationQueue.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Internal/FulfilledPromise.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Internal/RejectedPromise.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/Promise.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/PromiseInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/functions.php
create mode 100644 tools/php-cs-fixer/vendor/react/promise/src/functions_include.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/socket/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/socket/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/socket/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/Connection.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/ConnectionInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/Connector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/ConnectorInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/DnsConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/FdServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/FixedUriConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/HappyEyeBallsConnectionBuilder.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/HappyEyeBallsConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/LimitingServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/SecureConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/SecureServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/Server.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/ServerInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/SocketServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/StreamEncryption.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/TcpConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/TcpServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/TimeoutConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/UnixConnector.php
create mode 100644 tools/php-cs-fixer/vendor/react/socket/src/UnixServer.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/CHANGELOG.md
create mode 100644 tools/php-cs-fixer/vendor/react/stream/LICENSE
create mode 100644 tools/php-cs-fixer/vendor/react/stream/README.md
create mode 100644 tools/php-cs-fixer/vendor/react/stream/composer.json
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/CompositeStream.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/DuplexResourceStream.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/DuplexStreamInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/ReadableResourceStream.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/ReadableStreamInterface.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/ThroughStream.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/Util.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/WritableResourceStream.php
create mode 100644 tools/php-cs-fixer/vendor/react/stream/src/WritableStreamInterface.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Command/TraceableCommand.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/DataCollector/CommandDataCollector.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Debug/CliRequest.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Event/ConsoleAlarmEvent.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Exception/RunCommandFailedException.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Messenger/RunCommandContext.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Messenger/RunCommandMessage.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/Messenger/RunCommandMessageHandler.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/console/SignalRegistry/SignalMap.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/Exception/ProcessStartFailedException.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/Exception/RunProcessFailedException.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/Messenger/RunProcessContext.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/Messenger/RunProcessMessage.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/Messenger/RunProcessMessageHandler.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/process/PhpSubprocess.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/service-contracts/ServiceCollectionInterface.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/string/Inflector/SpanishInflector.php
create mode 100644 tools/php-cs-fixer/vendor/symfony/string/TruncateMode.php
diff --git a/migrations/Version20230428165114.php b/migrations/Version20230428165114.php
index ef8b493b..80791916 100644
--- a/migrations/Version20230428165114.php
+++ b/migrations/Version20230428165114.php
@@ -6,6 +6,7 @@
use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Schema\Schema;
+use Doctrine\DBAL\Types\ArrayType;
use Doctrine\DBAL\Types\ConversionException;
use Doctrine\DBAL\Types\JsonType;
use Doctrine\Migrations\AbstractMigration;
@@ -80,12 +81,12 @@ private function convertColumnToJson(string $tableName, string $columnName, stri
}
}
- private function convertArrayToJson(string $array): null|string
+ private function convertArrayToJson(string $array): ?string
{
$platform = $this->platform;
- if (class_exists(\Doctrine\DBAL\Types\ArrayType::class)) {
- $arrayType = new \Doctrine\DBAL\Types\ArrayType();
+ if (class_exists(ArrayType::class)) {
+ $arrayType = new ArrayType();
try {
$array = $arrayType->convertToPHPValue($array, $platform);
} catch (ConversionException $e) {
diff --git a/src/Controller/AdministrationController.php b/src/Controller/AdministrationController.php
index 0aa915f2..cf072e91 100644
--- a/src/Controller/AdministrationController.php
+++ b/src/Controller/AdministrationController.php
@@ -19,8 +19,7 @@ class AdministrationController extends AbstractController
public function __construct(
private readonly EntityManagerInterface $em,
private readonly LoggerInterface $logger
- ) {
- }
+ ) {}
#[Route(path: '/admin/user', name: 'admin_user', methods: ['GET'])]
public function listUser(): Response
diff --git a/src/Controller/CodebookController.php b/src/Controller/CodebookController.php
index da7583e2..b8823975 100644
--- a/src/Controller/CodebookController.php
+++ b/src/Controller/CodebookController.php
@@ -23,9 +23,7 @@
#[IsGranted('ROLE_USER')]
class CodebookController extends AbstractController
{
- public function __construct(protected EntityManagerInterface $em, protected LoggerInterface $logger, private readonly FilesystemOperator $matrixFilesystem)
- {
- }
+ public function __construct(protected EntityManagerInterface $em, protected LoggerInterface $logger, private readonly FilesystemOperator $matrixFilesystem) {}
#[Route(path: '/{uuid}', name: 'index', methods: ['GET'])]
public function codebookIndexAction(string $uuid): Response
diff --git a/src/Controller/FileManagementController.php b/src/Controller/FileManagementController.php
index 786a8a94..72f31ada 100644
--- a/src/Controller/FileManagementController.php
+++ b/src/Controller/FileManagementController.php
@@ -28,8 +28,7 @@ public function __construct(
private readonly SavImportable $savImportable,
private readonly EntityManagerInterface $em,
private readonly LoggerInterface $logger
- ) {
- }
+ ) {}
#[Route(path: '/preview/sav/{fileId}', name: 'preview-sav', methods: ['POST'])]
public function previewSavAction(string $fileId): JsonResponse
diff --git a/src/Controller/ModerationController.php b/src/Controller/ModerationController.php
index f0e311f0..8da019a0 100644
--- a/src/Controller/ModerationController.php
+++ b/src/Controller/ModerationController.php
@@ -13,8 +13,7 @@ class ModerationController extends AbstractController
{
public function __construct(
private readonly LoggerInterface $logger
- ) {
- }
+ ) {}
#[Route(path: '/moderation/dashboard', name: 'moderation_dashboard', methods: ['GET'])]
public function dashboard(): Response
diff --git a/src/Controller/NavigationController.php b/src/Controller/NavigationController.php
index ecb5f778..8b61b310 100644
--- a/src/Controller/NavigationController.php
+++ b/src/Controller/NavigationController.php
@@ -11,9 +11,7 @@
class NavigationController extends AbstractController
{
- public function __construct(private readonly EntityManagerInterface $em)
- {
- }
+ public function __construct(private readonly EntityManagerInterface $em) {}
public function sidebarNavigationAction(Request $request): Response
{
diff --git a/src/Controller/OauthController.php b/src/Controller/OauthController.php
index 9e982791..5f215a82 100644
--- a/src/Controller/OauthController.php
+++ b/src/Controller/OauthController.php
@@ -10,9 +10,7 @@
#[Route(path: '/security', name: 'Security-', condition: "'%kernel.environment%' in ['dev', 'prod']")]
class OauthController extends AbstractController
{
- public function __construct(private readonly ClientRegistry $clientRegistry)
- {
- }
+ public function __construct(private readonly ClientRegistry $clientRegistry) {}
#[Route(path: '/login', name: 'login', methods: ['GET'])]
public function loginAction(): RedirectResponse
@@ -21,12 +19,8 @@ public function loginAction(): RedirectResponse
}
#[Route(path: '/logout', name: 'logout', methods: ['GET'])]
- public function logoutAction(ClientRegistry $clientRegistry)
- {
- }
+ public function logoutAction(ClientRegistry $clientRegistry) {}
#[Route(path: '/login/check', name: 'check', methods: ['GET'])]
- public function loginCheckAction()
- {
- }
+ public function loginCheckAction() {}
}
diff --git a/src/Controller/ReviewController.php b/src/Controller/ReviewController.php
index 6371cfd3..bdc14d47 100644
--- a/src/Controller/ReviewController.php
+++ b/src/Controller/ReviewController.php
@@ -13,9 +13,7 @@
#[IsGranted('ROLE_USER')]
class ReviewController extends AbstractController
{
- public function __construct(private readonly EntityManagerInterface $em)
- {
- }
+ public function __construct(private readonly EntityManagerInterface $em) {}
#[Route(path: 'review/{uuid}', name: 'Study-review', methods: ['GET'])]
public function reviewAction(string $uuid): Response
diff --git a/src/Controller/StudyController.php b/src/Controller/StudyController.php
index b59a0469..91fd56b2 100644
--- a/src/Controller/StudyController.php
+++ b/src/Controller/StudyController.php
@@ -32,8 +32,7 @@ public function __construct(
private readonly EntityManagerInterface $em,
private readonly LoggerInterface $logger,
private readonly Crudable $crud
- ) {
- }
+ ) {}
#[Route(path: '/', name: 'overview', methods: ['GET'])]
public function overviewAction(): Response
diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php
index 77a2e6c8..126e6a88 100644
--- a/src/Controller/UserController.php
+++ b/src/Controller/UserController.php
@@ -16,9 +16,7 @@
#[IsGranted('ROLE_USER')]
class UserController extends AbstractController
{
- public function __construct(private readonly LoggerInterface $logger, private readonly KernelInterface $kernel)
- {
- }
+ public function __construct(private readonly LoggerInterface $logger, private readonly KernelInterface $kernel) {}
/**
* @throws \Exception
diff --git a/src/Entity/Administration/DataWizUser.php b/src/Entity/Administration/DataWizUser.php
index 664a56e1..3c434f7f 100644
--- a/src/Entity/Administration/DataWizUser.php
+++ b/src/Entity/Administration/DataWizUser.php
@@ -14,7 +14,7 @@ class DataWizUser implements UserInterface
{
#[ORM\Id]
#[ORM\Column(type: 'uuid')]
- private UUid $id;
+ private Uuid $id;
#[ORM\Column(type: 'simple_array')]
private array $roles;
diff --git a/src/Entity/Study/SettingsMetaDataGroup.php b/src/Entity/Study/SettingsMetaDataGroup.php
index 5a66158e..ee1c3a3f 100644
--- a/src/Entity/Study/SettingsMetaDataGroup.php
+++ b/src/Entity/Study/SettingsMetaDataGroup.php
@@ -1,4 +1,5 @@
['class' => 'MetaData-Label !px-4 !mt-0'],
'attr' => ['class' => 'MetaData-Widget MetaData-Widget_collection'],
'entry_type' => ChoiceType::class,
- 'delete_empty' => fn (string $role = null) => empty($role),
+ 'delete_empty' => fn (?string $role = null) => empty($role),
'entry_options' => [
'placeholder' => 'input.creator.credit.choices.placeholder',
'required' => true,
diff --git a/src/Repository/ExperimentRepository.php b/src/Repository/ExperimentRepository.php
index 8e630916..f2b3110a 100644
--- a/src/Repository/ExperimentRepository.php
+++ b/src/Repository/ExperimentRepository.php
@@ -19,7 +19,7 @@ public function __construct(ManagerRegistry $registry)
parent::__construct($registry, Experiment::class);
}
- public function findByBasicMetadata(array $orderBy = null, $limit = null, $offset = null)
+ public function findByBasicMetadata(?array $orderBy = null, $limit = null, $offset = null)
{
$qb = $this->createQueryBuilder('e');
if (is_iterable($orderBy) && sizeof($orderBy) > 1) {
diff --git a/src/Security/Authentication/OauthAuthenticator.php b/src/Security/Authentication/OauthAuthenticator.php
index 18c92bc8..afeb9e90 100644
--- a/src/Security/Authentication/OauthAuthenticator.php
+++ b/src/Security/Authentication/OauthAuthenticator.php
@@ -27,8 +27,7 @@ public function __construct(
private readonly ClientRegistry $clientRegistry,
private readonly Crudable $crud,
private readonly UrlGeneratorInterface $urlGenerator,
- ) {
- }
+ ) {}
public function authenticate(Request $request): SelfValidatingPassport
{
@@ -66,7 +65,7 @@ public function authenticate(Request $request): SelfValidatingPassport
);
}
- public function start(Request $request, AuthenticationException $authException = null): RedirectResponse
+ public function start(Request $request, ?AuthenticationException $authException = null): RedirectResponse
{
return new RedirectResponse('/', Response::HTTP_TEMPORARY_REDIRECT);
}
diff --git a/src/Security/Authentication/OauthLogoutSubscriber.php b/src/Security/Authentication/OauthLogoutSubscriber.php
index 9a065bd1..d688ca8f 100644
--- a/src/Security/Authentication/OauthLogoutSubscriber.php
+++ b/src/Security/Authentication/OauthLogoutSubscriber.php
@@ -14,8 +14,7 @@
public function __construct(
private ClientRegistry $clientRegistry,
private UrlGeneratorInterface $urlGenerator
- ) {
- }
+ ) {}
/**
* This function returns an array containing the subscribed events and the function that is called when the subscribed event is called.
diff --git a/src/Service/Api/ApiClientService.php b/src/Service/Api/ApiClientService.php
index c3584f4c..a0f32139 100644
--- a/src/Service/Api/ApiClientService.php
+++ b/src/Service/Api/ApiClientService.php
@@ -15,8 +15,7 @@
public function __construct(
private HttpClientInterface $client,
private LoggerInterface $logger
- ) {
- }
+ ) {}
public function GET(string $uri, array $params): ?array
{
@@ -33,7 +32,7 @@ public function GET(string $uri, array $params): ?array
if ($response->getStatusCode() == 200) {
$content = json_decode($response->getContent(), true, 512, JSON_THROW_ON_ERROR);
}
- } catch (TransportExceptionInterface|ClientExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface $e) {
+ } catch (ClientExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface|TransportExceptionInterface $e) {
$this->logger->error("HttpClientService::GET - Exception thrown: {$e->getMessage()}");
}
@@ -57,7 +56,7 @@ public function POST(string $uri, array $params): ?array
if ($response->getStatusCode() == 200) {
$content = json_decode($response->getContent(), true, 512, JSON_THROW_ON_ERROR);
}
- } catch (TransportExceptionInterface|ClientExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface $e) {
+ } catch (ClientExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface|TransportExceptionInterface $e) {
$this->logger->error("HttpClientService::POST - Exception thrown: {$e->getMessage()}");
}
diff --git a/src/Service/Api/SpssApiClient.php b/src/Service/Api/SpssApiClient.php
index 573dcb50..7c8b9219 100644
--- a/src/Service/Api/SpssApiClient.php
+++ b/src/Service/Api/SpssApiClient.php
@@ -19,10 +19,9 @@ public function __construct(
private ApiClientService $clientService,
private LoggerInterface $logger,
private string $spss_uri
- ) {
- }
+ ) {}
- public function savToArray(?Dataset $dataset): array|null
+ public function savToArray(?Dataset $dataset): ?array
{
if ($dataset === null) {
return null;
diff --git a/src/Service/Crud/CrudService.php b/src/Service/Crud/CrudService.php
index be56bd8d..038c6417 100644
--- a/src/Service/Crud/CrudService.php
+++ b/src/Service/Crud/CrudService.php
@@ -21,8 +21,7 @@ public function __construct(
private FilesystemOperator $materialFilesystem,
private EntityManagerInterface $em,
private LoggerInterface $logger
- ) {
- }
+ ) {}
/**
* Wrapper for find from EntityManager.
diff --git a/src/Service/Io/Formats/CsvImportable.php b/src/Service/Io/Formats/CsvImportable.php
index fd8e8923..03116b9f 100644
--- a/src/Service/Io/Formats/CsvImportable.php
+++ b/src/Service/Io/Formats/CsvImportable.php
@@ -14,8 +14,7 @@
public function __construct(
private FilesystemOperator $datasetFilesystem,
private LoggerInterface $logger
- ) {
- }
+ ) {}
public function csvToArray(string $fileId, string $delimiter, string $escape, int $headerRows, int $resultSize = 0): ?array
{
diff --git a/src/Service/Io/Formats/SavImportable.php b/src/Service/Io/Formats/SavImportable.php
index 1ed89200..96d90a99 100644
--- a/src/Service/Io/Formats/SavImportable.php
+++ b/src/Service/Io/Formats/SavImportable.php
@@ -11,8 +11,7 @@
public function __construct(
private SpssApiClient $spssApiClient,
private LoggerInterface $logger
- ) {
- }
+ ) {}
public function savToArray(Dataset $dataset): array
{
diff --git a/src/Service/Io/Input/DatasetUploadSubscriber.php b/src/Service/Io/Input/DatasetUploadSubscriber.php
index fc873aae..0b3601af 100644
--- a/src/Service/Io/Input/DatasetUploadSubscriber.php
+++ b/src/Service/Io/Input/DatasetUploadSubscriber.php
@@ -15,8 +15,7 @@
{
public function __construct(
private EntityManagerInterface $em
- ) {
- }
+ ) {}
public static function getSubscribedEvents(): array
{
diff --git a/src/Service/Io/Input/MaterialUploadSubscriber.php b/src/Service/Io/Input/MaterialUploadSubscriber.php
index 86816473..adc1efb7 100644
--- a/src/Service/Io/Input/MaterialUploadSubscriber.php
+++ b/src/Service/Io/Input/MaterialUploadSubscriber.php
@@ -13,8 +13,7 @@
{
public function __construct(
private EntityManagerInterface $em
- ) {
- }
+ ) {}
public static function getSubscribedEvents(): array
{
diff --git a/src/Service/Questionnaire/QuestionnaireService.php b/src/Service/Questionnaire/QuestionnaireService.php
index 4866c189..7a444fd3 100644
--- a/src/Service/Questionnaire/QuestionnaireService.php
+++ b/src/Service/Questionnaire/QuestionnaireService.php
@@ -11,8 +11,7 @@
{
public function __construct(
private FormFactoryInterface $formBuilder
- ) {
- }
+ ) {}
public function formFromEntity(Questionable $entity, string $buttonLabel): ?FormInterface
{
diff --git a/src/Service/Review/ReviewDataCollectable.php b/src/Service/Review/ReviewDataCollectable.php
index 7a647da7..e675f30d 100644
--- a/src/Service/Review/ReviewDataCollectable.php
+++ b/src/Service/Review/ReviewDataCollectable.php
@@ -10,9 +10,7 @@ final class ReviewDataCollectable
private ?string $errorMessage = null;
private ?string $errorType = null;
- private function __construct()
- {
- }
+ private function __construct() {}
public function getDataName(): string
{
diff --git a/src/Twig/CommonMarkdown.php b/src/Twig/CommonMarkdown.php
index f73a2c62..15a4a33e 100644
--- a/src/Twig/CommonMarkdown.php
+++ b/src/Twig/CommonMarkdown.php
@@ -17,7 +17,7 @@ class CommonMarkdown implements MarkdownInterface
private readonly Environment $environment;
private readonly MarkdownConverter $converter;
- public function __construct(MarkdownConverter $converter = null)
+ public function __construct(?MarkdownConverter $converter = null)
{
// Configure the Environment with all the CommonMark parsers/renderers
$this->environment = new Environment($this->config);
diff --git a/tools/php-cs-fixer/composer.lock b/tools/php-cs-fixer/composer.lock
index b3b126f0..4c2178da 100644
--- a/tools/php-cs-fixer/composer.lock
+++ b/tools/php-cs-fixer/composer.lock
@@ -6,30 +6,102 @@
],
"content-hash": "8e940cfd5a10474f1bb48c5a5b12da94",
"packages": [
+ {
+ "name": "clue/ndjson-react",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-ndjson.git",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
+ "react/event-loop": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\NDJson\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-ndjson",
+ "keywords": [
+ "NDJSON",
+ "json",
+ "jsonlines",
+ "newline",
+ "reactphp",
+ "streaming"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-ndjson/issues",
+ "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-23T10:58:28+00:00"
+ },
{
"name": "composer/pcre",
- "version": "3.1.0",
+ "version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
"require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^5"
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
},
"type": "library",
"extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
"branch-alias": {
"dev-main": "3.x-dev"
}
@@ -59,7 +131,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.1.0"
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
},
"funding": [
{
@@ -75,28 +147,28 @@
"type": "tidelift"
}
],
- "time": "2022-11-17T09:50:14+00:00"
+ "time": "2024-11-12T16:29:46+00:00"
},
{
"name": "composer/semver",
- "version": "3.3.2",
+ "version": "3.4.3",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
},
"type": "library",
"extra": {
@@ -138,9 +210,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.3"
},
"funding": [
{
@@ -156,20 +228,20 @@
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2024-09-19T14:15:21+00:00"
},
{
"name": "composer/xdebug-handler",
- "version": "3.0.3",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
- "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
"shasum": ""
},
"require": {
@@ -180,7 +252,7 @@
"require-dev": {
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^6.0"
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
"type": "library",
"autoload": {
@@ -204,9 +276,9 @@
"performance"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
},
"funding": [
{
@@ -222,43 +294,32 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T21:32:43+00:00"
+ "time": "2024-05-06T16:37:16+00:00"
},
{
- "name": "doctrine/annotations",
- "version": "2.0.1",
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^2 || ^3",
- "ext-tokenizer": "*",
- "php": "^7.2 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
+ "php": ">=7.0"
},
"require-dev": {
- "doctrine/cache": "^2.0",
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^5.4 || ^6",
- "vimeo/psalm": "^4.10"
- },
- "suggest": {
- "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ "phpunit/phpunit": "^9 || ^6"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ "Evenement\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -267,67 +328,53 @@
],
"authors": [
{
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
}
],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
- "annotations",
- "docblock",
- "parser"
+ "event-dispatcher",
+ "event-emitter"
],
"support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/2.0.1"
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
},
- "time": "2023-02-02T22:02:53+00:00"
+ "time": "2023-08-08T05:53:35+00:00"
},
{
- "name": "doctrine/lexer",
- "version": "3.0.0",
+ "name": "fidry/cpu-core-counter",
+ "version": "1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568"
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.9",
- "phpunit/phpunit": "^9.5",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^5.0"
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "src"
+ "Fidry\\CpuCoreCounter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -336,96 +383,80 @@
],
"authors": [
{
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
}
],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "description": "Tiny utility to get the number of CPU cores.",
"keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
+ "CPU",
+ "core"
],
"support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/3.0.0"
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
},
"funding": [
{
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
- "type": "tidelift"
+ "url": "https://github.com/theofidry",
+ "type": "github"
}
],
- "time": "2022-12-15T16:57:16+00:00"
+ "time": "2024-08-06T10:04:20+00:00"
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.16.0",
+ "version": "v3.68.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc"
+ "reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc",
- "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/b9db2b2ea3cdba7201067acee46f984ef2397cff",
+ "reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff",
"shasum": ""
},
"require": {
- "composer/semver": "^3.3",
+ "clue/ndjson-react": "^1.0",
+ "composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
- "doctrine/annotations": "^2",
- "doctrine/lexer": "^2 || ^3",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
+ "fidry/cpu-core-counter": "^1.2",
"php": "^7.4 || ^8.0",
- "sebastian/diff": "^4.0 || ^5.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/event-dispatcher": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/options-resolver": "^5.4 || ^6.0",
- "symfony/polyfill-mbstring": "^1.27",
- "symfony/polyfill-php80": "^1.27",
- "symfony/polyfill-php81": "^1.27",
- "symfony/process": "^5.4 || ^6.0",
- "symfony/stopwatch": "^5.4 || ^6.0"
+ "react/child-process": "^0.6.5",
+ "react/event-loop": "^1.0",
+ "react/promise": "^2.0 || ^3.0",
+ "react/socket": "^1.0",
+ "react/stream": "^1.0",
+ "sebastian/diff": "^4.0 || ^5.1 || ^6.0",
+ "symfony/console": "^5.4 || ^6.4 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.4 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.4 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.31",
+ "symfony/polyfill-php80": "^1.31",
+ "symfony/polyfill-php81": "^1.31",
+ "symfony/process": "^5.4 || ^6.4 || ^7.2",
+ "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0"
},
"require-dev": {
- "justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^2.0",
- "mikey179/vfsstream": "^1.6.11",
- "php-coveralls/php-coveralls": "^2.5.3",
+ "facile-it/paraunit": "^1.3.1 || ^2.4",
+ "infection/infection": "^0.29.8",
+ "justinrainbow/json-schema": "^5.3 || ^6.0",
+ "keradus/cli-executor": "^2.1",
+ "mikey179/vfsstream": "^1.6.12",
+ "php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.16",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5",
- "phpunitgoodpractices/polyfill": "^1.6",
- "phpunitgoodpractices/traits": "^1.9.2",
- "symfony/phpunit-bridge": "^6.2.3",
- "symfony/yaml": "^5.4 || ^6.0"
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
+ "phpunit/phpunit": "^9.6.22 || ^10.5.40 || ^11.5.2",
+ "symfony/var-dumper": "^5.4.48 || ^6.4.15 || ^7.2.0",
+ "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.2.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@@ -438,7 +469,10 @@
"autoload": {
"psr-4": {
"PhpCsFixer\\": "src/"
- }
+ },
+ "exclude-from-classmap": [
+ "src/Fixer/Internal/*"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -463,7 +497,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0"
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.68.1"
},
"funding": [
{
@@ -471,56 +505,7 @@
"type": "github"
}
],
- "time": "2023-04-02T19:30:06+00:00"
- },
- {
- "name": "psr/cache",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
- },
- "time": "2021-02-03T23:26:27+00:00"
+ "time": "2025-01-17T09:20:36+00:00"
},
{
"name": "psr/container",
@@ -627,16 +612,16 @@
},
{
"name": "psr/log",
- "version": "3.0.0",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@@ -671,35 +656,561 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/3.0.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
+ },
+ "time": "2024-09-11T13:17:53+00:00"
+ },
+ {
+ "name": "react/cache",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/cache.git",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/promise": "^3.0 || ^2.0 || ^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, Promise-based cache interface for ReactPHP",
+ "keywords": [
+ "cache",
+ "caching",
+ "promise",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/cache/issues",
+ "source": "https://github.com/reactphp/cache/tree/v1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-11-30T15:59:55+00:00"
+ },
+ {
+ "name": "react/child-process",
+ "version": "v0.6.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/child-process.git",
+ "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/child-process/zipball/1721e2b93d89b745664353b9cfc8f155ba8a6159",
+ "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/event-loop": "^1.2",
+ "react/stream": "^1.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/socket": "^1.16",
+ "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\ChildProcess\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven library for executing child processes with ReactPHP.",
+ "keywords": [
+ "event-driven",
+ "process",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/child-process/issues",
+ "source": "https://github.com/reactphp/child-process/tree/v0.6.6"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2025-01-01T16:37:48+00:00"
+ },
+ {
+ "name": "react/dns",
+ "version": "v1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/dns.git",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.7 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3 || ^2",
+ "react/promise-timer": "^1.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Dns\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async DNS resolver for ReactPHP",
+ "keywords": [
+ "async",
+ "dns",
+ "dns-resolver",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/dns/issues",
+ "source": "https://github.com/reactphp/dns/tree/v1.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-13T14:18:03+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-24T10:39:05+00:00"
+ },
+ {
+ "name": "react/socket",
+ "version": "v1.16.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/socket.git",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/dns": "^1.13",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.6 || ^1.2.1",
+ "react/stream": "^1.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3.3 || ^2",
+ "react/promise-stream": "^1.4",
+ "react/promise-timer": "^1.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Socket\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
+ "keywords": [
+ "Connection",
+ "Socket",
+ "async",
+ "reactphp",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/socket/issues",
+ "source": "https://github.com/reactphp/socket/tree/v1.16.0"
},
- "time": "2021-07-14T16:46:02+00:00"
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-07-26T10:38:09+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-11T12:45:25+00:00"
},
{
"name": "sebastian/diff",
- "version": "5.0.3",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b"
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0",
+ "phpunit/phpunit": "^11.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -732,7 +1243,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
},
"funding": [
{
@@ -740,53 +1251,50 @@
"type": "github"
}
],
- "time": "2023-05-01T07:48:21+00:00"
+ "time": "2024-07-03T04:53:05+00:00"
},
{
"name": "symfony/console",
- "version": "v6.2.10",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "12288d9f4500f84a4d02254d4aa968b15488476f"
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/12288d9f4500f84a4d02254d4aa968b15488476f",
- "reference": "12288d9f4500f84a4d02254d4aa968b15488476f",
+ "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -820,7 +1328,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.2.10"
+ "source": "https://github.com/symfony/console/tree/v7.2.1"
},
"funding": [
{
@@ -836,20 +1344,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T13:37:43+00:00"
+ "time": "2024-12-11T03:49:26+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.2.1",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -857,12 +1365,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -887,7 +1395,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -903,28 +1411,29 @@
"type": "tidelift"
}
],
- "time": "2023-03-01T10:25:55+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.2.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339",
- "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "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": {
"psr/event-dispatcher-implementation": "1.0",
@@ -932,17 +1441,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -970,7 +1475,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.2.8"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -986,37 +1491,34 @@
"type": "tidelift"
}
],
- "time": "2023-03-20T16:06:02+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.2.1",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
- "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -1049,7 +1551,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -1065,27 +1567,30 @@
"type": "tidelift"
}
],
- "time": "2023-03-01T10:32:47+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.2.10",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894"
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd588debf7d1bc16a2c84b4b3b71145d9946b894",
- "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
+ },
"type": "library",
"autoload": {
"psr-4": {
@@ -1112,7 +1617,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.2.10"
+ "source": "https://github.com/symfony/filesystem/tree/v7.2.0"
},
"funding": [
{
@@ -1128,27 +1633,27 @@
"type": "tidelift"
}
],
- "time": "2023-04-18T13:46:08+00:00"
+ "time": "2024-10-25T15:15:23+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.2.7",
+ "version": "v7.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb"
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb",
- "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb",
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -1176,7 +1681,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.2.7"
+ "source": "https://github.com/symfony/finder/tree/v7.2.2"
},
"funding": [
{
@@ -1192,25 +1697,25 @@
"type": "tidelift"
}
],
- "time": "2023-02-16T09:57:23+00:00"
+ "time": "2024-12-30T19:00:17+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v6.2.7",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629"
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/aa0e85b53bbb2b4951960efd61d295907eacd629",
- "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -1243,7 +1748,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.2.7"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.2.0"
},
"funding": [
{
@@ -1259,24 +1764,24 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:44:56+00:00"
+ "time": "2024-11-20T11:17:29+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -1286,12 +1791,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1325,7 +1827,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
},
"funding": [
{
@@ -1341,36 +1843,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1406,7 +1905,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -1422,36 +1921,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1490,7 +1986,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -1506,24 +2002,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -1533,12 +2029,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1573,7 +2066,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -1589,33 +2082,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1656,7 +2146,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@@ -1672,33 +2162,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -1735,7 +2222,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
},
"funding": [
{
@@ -1751,24 +2238,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/process",
- "version": "v6.2.10",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e"
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e",
- "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -1796,7 +2283,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.2.10"
+ "source": "https://github.com/symfony/process/tree/v7.2.0"
},
"funding": [
{
@@ -1812,40 +2299,38 @@
"type": "tidelift"
}
],
- "time": "2023-04-18T13:56:57+00:00"
+ "time": "2024-11-06T14:24:19+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.2.1",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"autoload": {
@@ -1881,7 +2366,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -1897,25 +2382,25 @@
"type": "tidelift"
}
],
- "time": "2023-03-01T10:32:47+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.2.7",
+ "version": "v7.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f"
+ "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f3adc98c1061875dd2edcd45e5b04e63d0e29f8f",
- "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e46690d5b9d7164a6d061cab1e8d46141b9f49df",
+ "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/service-contracts": "^1|^2|^3"
+ "php": ">=8.2",
+ "symfony/service-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -1943,7 +2428,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.2.7"
+ "source": "https://github.com/symfony/stopwatch/tree/v7.2.2"
},
"funding": [
{
@@ -1959,38 +2444,39 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:44:56+00:00"
+ "time": "2024-12-18T14:28:33+00:00"
},
{
"name": "symfony/string",
- "version": "v6.2.8",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef"
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef",
- "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef",
+ "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2029,7 +2515,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.2.8"
+ "source": "https://github.com/symfony/string/tree/v7.2.0"
},
"funding": [
{
@@ -2045,7 +2531,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-20T16:06:02+00:00"
+ "time": "2024-11-13T13:31:26+00:00"
}
],
"packages-dev": [],
@@ -2056,5 +2542,5 @@
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
- "plugin-api-version": "2.2.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/tools/php-cs-fixer/vendor/autoload.php b/tools/php-cs-fixer/vendor/autoload.php
index af11a0ee..aaa8907f 100644
--- a/tools/php-cs-fixer/vendor/autoload.php
+++ b/tools/php-cs-fixer/vendor/autoload.php
@@ -2,6 +2,24 @@
// autoload.php @generated by Composer
+if (PHP_VERSION_ID < 50600) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, $err);
+ } elseif (!headers_sent()) {
+ echo $err;
+ }
+ }
+ trigger_error(
+ $err,
+ E_USER_ERROR
+ );
+}
+
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit5d6f4352aed43a8d4e8a161c85a71e74::getLoader();
diff --git a/tools/php-cs-fixer/vendor/bin/php-cs-fixer b/tools/php-cs-fixer/vendor/bin/php-cs-fixer
index 897061a4..d40411aa 100755
--- a/tools/php-cs-fixer/vendor/bin/php-cs-fixer
+++ b/tools/php-cs-fixer/vendor/bin/php-cs-fixer
@@ -108,10 +108,12 @@ if (PHP_VERSION_ID < 80000) {
}
}
- if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
- include("phpvfscomposer://" . __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer');
- exit(0);
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer');
}
}
-include __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer';
+return include __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer';
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/.github/FUNDING.yml b/tools/php-cs-fixer/vendor/clue/ndjson-react/.github/FUNDING.yml
new file mode 100644
index 00000000..9c09fb87
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+github: clue
+custom: https://clue.engineering/support
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/CHANGELOG.md b/tools/php-cs-fixer/vendor/clue/ndjson-react/CHANGELOG.md
new file mode 100644
index 00000000..bc4faf69
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/CHANGELOG.md
@@ -0,0 +1,75 @@
+# Changelog
+
+## 1.3.0 (2022-12-23)
+
+* Feature: Add support for PHP 8.1 and PHP 8.2.
+ (#31 by @clue and #30 by @SimonFring)
+
+* Feature: Check type of incoming `data` before trying to decode NDJSON.
+ (#29 by @SimonFrings)
+
+* Improve documentation and examples and update to new [default loop](https://reactphp.org/event-loop/#loop).
+ (#26 by @clue, #27 by @SimonFrings and #25 by @PaulRotmann)
+
+* Improve test suite, report failed assertions and ensure 100% code coverage.
+ (#32 and #33 by @clue and #28 by @SimonFrings)
+
+## 1.2.0 (2020-12-09)
+
+* Improve test suite and add `.gitattributes` to exclude dev files from exports.
+ Add PHP 8 support, update to PHPUnit 9 and simplify test setup.
+ (#18 by @clue and #19, #22 and #23 by @SimonFrings)
+
+## 1.1.0 (2020-02-04)
+
+* Feature: Improve error reporting and add parsing error message to Exception and
+ ignore `JSON_THROW_ON_ERROR` option (available as of PHP 7.3).
+ (#14 by @clue)
+
+* Feature: Add bechmarking script and import all global function references.
+ (#16 by @clue)
+
+* Improve documentation and add NDJSON format description and
+ add support / sponsorship info.
+ (#12 and #17 by @clue)
+
+* Improve test suite to run tests on PHP 7.4 and simplify test matrix and
+ apply minor code style adjustments to make phpstan happy.
+ (#13 and #15 by @clue)
+
+## 1.0.0 (2018-05-17)
+
+* First stable release, now following SemVer
+
+* Improve documentation and usage examples
+
+> Contains no other changes, so it's actually fully compatible with the v0.1.2 release.
+
+## 0.1.2 (2018-05-11)
+
+* Feature: Limit buffer size to 64 KiB by default.
+ (#10 by @clue)
+
+* Feature: Forward compatiblity with EventLoop v0.5 and upcoming v1.0.
+ (#8 by @clue)
+
+* Fix: Return bool `false` if encoding fails due to invalid value to pause source.
+ (#9 by @clue)
+
+* Improve test suite by supporting PHPUnit v6 and test against legacy PHP 5.3 through PHP 7.2.
+ (#7 by @clue)
+
+* Update project homepage.
+ (#11 by @clue)
+
+## 0.1.1 (2017-05-22)
+
+* Feature: Forward compatibility with Stream v0.7, v0.6, v0.5 and upcoming v1.0 (while keeping BC)
+ (#6 by @thklein)
+
+* Improved test suite by adding PHPUnit to `require-dev`
+ (#5 by @thklein)
+
+## 0.1.0 (2016-11-24)
+
+* First tagged release
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/LICENSE b/tools/php-cs-fixer/vendor/clue/ndjson-react/LICENSE
similarity index 58%
rename from tools/php-cs-fixer/vendor/doctrine/annotations/LICENSE
rename to tools/php-cs-fixer/vendor/clue/ndjson-react/LICENSE
index 5e781fce..7baae8e9 100644
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/LICENSE
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/LICENSE
@@ -1,11 +1,13 @@
-Copyright (c) 2006-2013 Doctrine Project
+The MIT License (MIT)
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
+Copyright (c) 2016 Christian Lück
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
@@ -15,5 +17,5 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/README.md b/tools/php-cs-fixer/vendor/clue/ndjson-react/README.md
new file mode 100644
index 00000000..0ca4eabe
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/README.md
@@ -0,0 +1,365 @@
+# clue/reactphp-ndjson
+
+[](https://github.com/clue/reactphp-ndjson/actions)
+[](https://packagist.org/packages/clue/ndjson-react)
+[](#tests)
+
+Streaming newline-delimited JSON ([NDJSON](http://ndjson.org/)) parser and encoder for [ReactPHP](https://reactphp.org/).
+
+[NDJSON](http://ndjson.org/) can be used to store multiple JSON records in a
+file to store any kind of (uniform) structured data, such as a list of user
+objects or log entries. It uses a simple newline character between each
+individual record and as such can be both used for efficient persistence and
+simple append-style operations. This also allows it to be used in a streaming
+context, such as a simple inter-process communication (IPC) protocol or for a
+remote procedure call (RPC) mechanism. This library provides a simple
+streaming API to process very large NDJSON files with thousands or even millions
+of rows efficiently without having to load the whole file into memory at once.
+
+* **Standard interfaces** -
+ Allows easy integration with existing higher-level components by implementing
+ ReactPHP's standard streaming interfaces.
+* **Lightweight, SOLID design** -
+ Provides a thin abstraction that is [*just good enough*](https://en.wikipedia.org/wiki/Principle_of_good_enough)
+ and does not get in your way.
+ Builds on top of well-tested components and well-established concepts instead of reinventing the wheel.
+* **Good test coverage** -
+ Comes with an [automated tests suite](#tests) and is regularly tested in the *real world*.
+
+**Table of contents**
+
+* [Support us](#support-us)
+* [NDJSON format](#ndjson-format)
+* [Usage](#usage)
+ * [Decoder](#decoder)
+ * [Encoder](#encoder)
+* [Install](#install)
+* [Tests](#tests)
+* [License](#license)
+* [More](#more)
+
+## Support us
+
+We invest a lot of time developing, maintaining, and updating our awesome
+open-source projects. You can help us sustain this high-quality of our work by
+[becoming a sponsor on GitHub](https://github.com/sponsors/clue). Sponsors get
+numerous benefits in return, see our [sponsoring page](https://github.com/sponsors/clue)
+for details.
+
+Let's take these projects to the next level together! 🚀
+
+## NDJSON format
+
+NDJSON ("Newline-Delimited JSON" or sometimes referred to as "JSON lines") is a
+very simple text-based format for storing a large number of records, such as a
+list of user records or log entries.
+
+```JSON
+{"name":"Alice","age":30,"comment":"Yes, I like cheese"}
+{"name":"Bob","age":50,"comment":"Hello\nWorld!"}
+```
+
+If you understand JSON and you're now looking at this newline-delimited JSON for
+the first time, you should already know everything you need to know to
+understand NDJSON: As the name implies, this format essentially consists of
+individual lines where each individual line is any valid JSON text and each line
+is delimited with a newline character.
+
+This example uses a list of user objects where each user has some arbitrary
+properties. This can easily be adjusted for many different use cases, such as
+storing for example products instead of users, assigning additional properties
+or having a significantly larger number of records. You can edit NDJSON files in
+any text editor or use them in a streaming context where individual records
+should be processed. Unlike normal JSON files, adding a new log entry to this
+NDJSON file does not require modification of this file's structure (note there's
+no "outer array" to be modified). This makes it a perfect fit for a streaming
+context, for line-oriented CLI tools (such as `grep` and others) or for a logging
+context where you want to append records at a later time. Additionally, this
+also allows it to be used in a streaming context, such as a simple inter-process
+communication (IPC) protocol or for a remote procedure call (RPC) mechanism.
+
+The newline character at the end of each line allows for some really simple
+*framing* (detecting individual records). While each individual line is valid
+JSON, the complete file as a whole is technically no longer valid JSON, because
+it contains multiple JSON texts. This implies that for example calling PHP's
+`json_decode()` on this complete input would fail because it would try to parse
+multiple records at once. Likewise, using "pretty printing" JSON
+(`JSON_PRETTY_PRINT`) is not allowed because each JSON text is limited to exactly
+one line. On the other hand, values containing newline characters (such as the
+`comment` property in the above example) do not cause issues because each newline
+within a JSON string will be represented by a `\n` instead.
+
+One common alternative to NDJSON would be Comma-Separated Values (CSV).
+If you want to process CSV files, you may want to take a look at the related
+project [clue/reactphp-csv](https://github.com/clue/reactphp-csv) instead:
+
+```
+name,age,comment
+Alice,30,"Yes, I like cheese"
+Bob,50,"Hello
+World!"
+```
+
+CSV may look slightly simpler, but this simplicity comes at a price. CSV is
+limited to untyped, two-dimensional data, so there's no standard way of storing
+any nested structures or to differentiate a boolean value from a string or
+integer. Field names are sometimes used, sometimes they're not
+(application-dependant). Inconsistent handling for fields that contain
+separators such as `,` or spaces or line breaks (see the `comment` field above)
+introduce additional complexity and its text encoding is usually undefined,
+Unicode (or UTF-8) is unlikely to be supported and CSV files often use ISO
+8859-1 encoding or some variant (again application-dependant).
+
+While NDJSON helps avoiding many of CSV's shortcomings, it is still a
+(relatively) young format while CSV files have been used in production systems
+for decades. This means that if you want to interface with an existing system,
+you may have to rely on the format that's already supported. If you're building
+a new system, using NDJSON is an excellent choice as it provides a flexible way
+to process individual records using a common text-based format that can include
+any kind of structured data.
+
+## Usage
+
+### Decoder
+
+The `Decoder` (parser) class can be used to make sure you only get back
+complete, valid JSON elements when reading from a stream.
+It wraps a given
+[`ReadableStreamInterface`](https://github.com/reactphp/stream#readablestreaminterface)
+and exposes its data through the same interface, but emits the JSON elements
+as parsed values instead of just chunks of strings:
+
+```
+{"name":"test","active":true}
+{"name":"hello w\u00f6rld","active":true}
+```
+
+```php
+$stdin = new React\Stream\ReadableResourceStream(STDIN);
+
+$ndjson = new Clue\React\NDJson\Decoder($stdin);
+
+$ndjson->on('data', function ($data) {
+ // $data is a parsed element from the JSON stream
+ // line 1: $data = (object)array('name' => 'test', 'active' => true);
+ // line 2: $data = (object)array('name' => 'hello wörld', 'active' => true);
+ var_dump($data);
+});
+```
+
+ReactPHP's streams emit chunks of data strings and make no assumption about their lengths.
+These chunks do not necessarily represent complete JSON elements, as an
+element may be broken up into multiple chunks.
+This class reassembles these elements by buffering incomplete ones.
+
+The `Decoder` supports the same optional parameters as the underlying
+[`json_decode()`](https://www.php.net/manual/en/function.json-decode.php) function.
+This means that, by default, JSON objects will be emitted as a `stdClass`.
+This behavior can be controlled through the optional constructor parameters:
+
+```php
+$ndjson = new Clue\React\NDJson\Decoder($stdin, true);
+
+$ndjson->on('data', function ($data) {
+ // JSON objects will be emitted as assoc arrays now
+});
+```
+
+Additionally, the `Decoder` limits the maximum buffer size (maximum line
+length) to avoid buffer overflows due to malformed user input. Usually, there
+should be no need to change this value, unless you know you're dealing with some
+unreasonably long lines. It accepts an additional argument if you want to change
+this from the default of 64 KiB:
+
+```php
+$ndjson = new Clue\React\NDJson\Decoder($stdin, false, 512, 0, 64 * 1024);
+```
+
+If the underlying stream emits an `error` event or the plain stream contains
+any data that does not represent a valid NDJson stream,
+it will emit an `error` event and then `close` the input stream:
+
+```php
+$ndjson->on('error', function (Exception $error) {
+ // an error occured, stream will close next
+});
+```
+
+If the underlying stream emits an `end` event, it will flush any incomplete
+data from the buffer, thus either possibly emitting a final `data` event
+followed by an `end` event on success or an `error` event for
+incomplete/invalid JSON data as above:
+
+```php
+$ndjson->on('end', function () {
+ // stream successfully ended, stream will close next
+});
+```
+
+If either the underlying stream or the `Decoder` is closed, it will forward
+the `close` event:
+
+```php
+$ndjson->on('close', function () {
+ // stream closed
+ // possibly after an "end" event or due to an "error" event
+});
+```
+
+The `close(): void` method can be used to explicitly close the `Decoder` and
+its underlying stream:
+
+```php
+$ndjson->close();
+```
+
+The `pipe(WritableStreamInterface $dest, array $options = array(): WritableStreamInterface`
+method can be used to forward all data to the given destination stream.
+Please note that the `Decoder` emits decoded/parsed data events, while many
+(most?) writable streams expect only data chunks:
+
+```php
+$ndjson->pipe($logger);
+```
+
+For more details, see ReactPHP's
+[`ReadableStreamInterface`](https://github.com/reactphp/stream#readablestreaminterface).
+
+### Encoder
+
+The `Encoder` (serializer) class can be used to make sure anything you write to
+a stream ends up as valid JSON elements in the resulting NDJSON stream.
+It wraps a given
+[`WritableStreamInterface`](https://github.com/reactphp/stream#writablestreaminterface)
+and accepts its data through the same interface, but handles any data as complete
+JSON elements instead of just chunks of strings:
+
+```php
+$stdout = new React\Stream\WritableResourceStream(STDOUT);
+
+$ndjson = new Clue\React\NDJson\Encoder($stdout);
+
+$ndjson->write(array('name' => 'test', 'active' => true));
+$ndjson->write(array('name' => 'hello wörld', 'active' => true));
+```
+```
+{"name":"test","active":true}
+{"name":"hello w\u00f6rld","active":true}
+```
+
+The `Encoder` supports the same parameters as the underlying
+[`json_encode()`](https://www.php.net/manual/en/function.json-encode.php) function.
+This means that, by default, Unicode characters will be escaped in the output.
+This behavior can be controlled through the optional constructor parameters:
+
+```php
+$ndjson = new Clue\React\NDJson\Encoder($stdout, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
+
+$ndjson->write('hello wörld');
+```
+```
+"hello wörld"
+```
+
+Note that trying to pass the `JSON_PRETTY_PRINT` option will yield an
+`InvalidArgumentException` because it is not compatible with NDJSON.
+
+If the underlying stream emits an `error` event or the given data contains
+any data that can not be represented as a valid NDJSON stream,
+it will emit an `error` event and then `close` the input stream:
+
+```php
+$ndjson->on('error', function (Exception $error) {
+ // an error occured, stream will close next
+});
+```
+
+If either the underlying stream or the `Encoder` is closed, it will forward
+the `close` event:
+
+```php
+$ndjson->on('close', function () {
+ // stream closed
+ // possibly after an "end" event or due to an "error" event
+});
+```
+
+The `end(mixed $data = null): void` method can be used to optionally emit
+any final data and then soft-close the `Encoder` and its underlying stream:
+
+```php
+$ndjson->end();
+```
+
+The `close(): void` method can be used to explicitly close the `Encoder` and
+its underlying stream:
+
+```php
+$ndjson->close();
+```
+
+For more details, see ReactPHP's
+[`WritableStreamInterface`](https://github.com/reactphp/stream#writablestreaminterface).
+
+## Install
+
+The recommended way to install this library is [through Composer](https://getcomposer.org/).
+[New to Composer?](https://getcomposer.org/doc/00-intro.md)
+
+This project follows [SemVer](https://semver.org/).
+This will install the latest supported version:
+
+```bash
+composer require clue/ndjson-react:^1.3
+```
+
+See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
+
+This project aims to run on any platform and thus does not require any PHP
+extensions and supports running on legacy PHP 5.3 through current PHP 8+ and
+HHVM.
+It's *highly recommended to use the latest supported PHP version* for this project.
+
+## Tests
+
+To run the test suite, you first need to clone this repo and then install all
+dependencies [through Composer](https://getcomposer.org/):
+
+```bash
+composer install
+```
+
+To run the test suite, go to the project root and run:
+
+```bash
+vendor/bin/phpunit
+```
+
+## License
+
+This project is released under the permissive [MIT license](LICENSE).
+
+> Did you know that I offer custom development services and issuing invoices for
+ sponsorships of releases and for contributions? Contact me (@clue) for details.
+
+## More
+
+* If you want to learn more about processing streams of data, refer to the documentation of
+ the underlying [react/stream](https://github.com/reactphp/stream) component.
+
+* If you want to process compressed NDJSON files (`.ndjson.gz` file extension),
+ you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
+ on the compressed input stream before passing the decompressed stream to the NDJSON decoder.
+
+* If you want to create compressed NDJSON files (`.ndjson.gz` file extension),
+ you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
+ on the resulting NDJSON encoder output stream before passing the compressed
+ stream to the file output stream.
+
+* If you want to concurrently process the records from your NDJSON stream,
+ you may want to use [clue/reactphp-flux](https://github.com/clue/reactphp-flux)
+ to concurrently process many (but not too many) records at once.
+
+* If you want to process structured data in the more common text-based format,
+ you may want to use [clue/reactphp-csv](https://github.com/clue/reactphp-csv)
+ to process Comma-Separated-Values (CSV) files (`.csv` file extension).
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/composer.json b/tools/php-cs-fixer/vendor/clue/ndjson-react/composer.json
new file mode 100644
index 00000000..01a4b859
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/composer.json
@@ -0,0 +1,31 @@
+{
+ "name": "clue/ndjson-react",
+ "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
+ "keywords": ["NDJSON", "newline", "JSON", "jsonlines", "streaming", "ReactPHP"],
+ "homepage": "https://github.com/clue/reactphp-ndjson",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
+ "react/event-loop": "^1.2"
+ },
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\NDJson\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Clue\\Tests\\React\\NDJson\\": "tests/"
+ }
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Decoder.php b/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Decoder.php
new file mode 100644
index 00000000..876ff2b1
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Decoder.php
@@ -0,0 +1,166 @@
+input = $input;
+
+ if (!$input->isReadable()) {
+ $this->close();
+ return;
+ }
+
+ $this->assoc = $assoc;
+ $this->depth = $depth;
+ $this->options = $options;
+ $this->maxlength = $maxlength;
+
+ $this->input->on('data', array($this, 'handleData'));
+ $this->input->on('end', array($this, 'handleEnd'));
+ $this->input->on('error', array($this, 'handleError'));
+ $this->input->on('close', array($this, 'close'));
+ }
+
+ public function isReadable()
+ {
+ return !$this->closed;
+ }
+
+ public function close()
+ {
+ if ($this->closed) {
+ return;
+ }
+
+ $this->closed = true;
+ $this->buffer = '';
+
+ $this->input->close();
+
+ $this->emit('close');
+ $this->removeAllListeners();
+ }
+
+ public function pause()
+ {
+ $this->input->pause();
+ }
+
+ public function resume()
+ {
+ $this->input->resume();
+ }
+
+ public function pipe(WritableStreamInterface $dest, array $options = array())
+ {
+ Util::pipe($this, $dest, $options);
+
+ return $dest;
+ }
+
+ /** @internal */
+ public function handleData($data)
+ {
+ if (!\is_string($data)) {
+ $this->handleError(new \UnexpectedValueException('Expected stream to emit string, but got ' . \gettype($data)));
+ return;
+ }
+
+ $this->buffer .= $data;
+
+ // keep parsing while a newline has been found
+ while (($newline = \strpos($this->buffer, "\n")) !== false && $newline <= $this->maxlength) {
+ // read data up until newline and remove from buffer
+ $data = (string)\substr($this->buffer, 0, $newline);
+ $this->buffer = (string)\substr($this->buffer, $newline + 1);
+
+ // decode data with options given in ctor
+ // @codeCoverageIgnoreStart
+ if ($this->options === 0) {
+ $data = \json_decode($data, $this->assoc, $this->depth);
+ } else {
+ assert(\PHP_VERSION_ID >= 50400);
+ $data = \json_decode($data, $this->assoc, $this->depth, $this->options);
+ }
+ // @codeCoverageIgnoreEnd
+
+ // abort stream if decoding failed
+ if ($data === null && \json_last_error() !== \JSON_ERROR_NONE) {
+ // @codeCoverageIgnoreStart
+ if (\PHP_VERSION_ID > 50500) {
+ $errstr = \json_last_error_msg();
+ } elseif (\json_last_error() === \JSON_ERROR_SYNTAX) {
+ $errstr = 'Syntax error';
+ } else {
+ $errstr = 'Unknown error';
+ }
+ // @codeCoverageIgnoreEnd
+ return $this->handleError(new \RuntimeException('Unable to decode JSON: ' . $errstr, \json_last_error()));
+ }
+
+ $this->emit('data', array($data));
+ }
+
+ if (isset($this->buffer[$this->maxlength])) {
+ $this->handleError(new \OverflowException('Buffer size exceeded'));
+ }
+ }
+
+ /** @internal */
+ public function handleEnd()
+ {
+ if ($this->buffer !== '') {
+ $this->handleData("\n");
+ }
+
+ if (!$this->closed) {
+ $this->emit('end');
+ $this->close();
+ }
+ }
+
+ /** @internal */
+ public function handleError(\Exception $error)
+ {
+ $this->emit('error', array($error));
+ $this->close();
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Encoder.php b/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Encoder.php
new file mode 100644
index 00000000..30d5c311
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/clue/ndjson-react/src/Encoder.php
@@ -0,0 +1,144 @@
+output = $output;
+
+ if (!$output->isWritable()) {
+ $this->close();
+ return;
+ }
+
+ $this->options = $options;
+ $this->depth = $depth;
+
+ $this->output->on('drain', array($this, 'handleDrain'));
+ $this->output->on('error', array($this, 'handleError'));
+ $this->output->on('close', array($this, 'close'));
+ }
+
+ public function write($data)
+ {
+ if ($this->closed) {
+ return false;
+ }
+
+ // we have to handle PHP warnings for legacy PHP < 5.5
+ // certain values (such as INF etc.) emit a warning, but still encode successfully
+ // @codeCoverageIgnoreStart
+ if (\PHP_VERSION_ID < 50500) {
+ $errstr = null;
+ \set_error_handler(function ($_, $error) use (&$errstr) {
+ $errstr = $error;
+ });
+
+ // encode data with options given in ctor (depth not supported)
+ $data = \json_encode($data, $this->options);
+
+ // always check error code and match missing error messages
+ \restore_error_handler();
+ $errno = \json_last_error();
+ if (\defined('JSON_ERROR_UTF8') && $errno === \JSON_ERROR_UTF8) {
+ // const JSON_ERROR_UTF8 added in PHP 5.3.3, but no error message assigned in legacy PHP < 5.5
+ // this overrides PHP 5.3.14 only: https://3v4l.org/IGP8Z#v5314
+ $errstr = 'Malformed UTF-8 characters, possibly incorrectly encoded';
+ } elseif ($errno !== \JSON_ERROR_NONE && $errstr === null) {
+ // error number present, but no error message applicable
+ $errstr = 'Unknown error';
+ }
+
+ // abort stream if encoding fails
+ if ($errno !== \JSON_ERROR_NONE || $errstr !== null) {
+ $this->handleError(new \RuntimeException('Unable to encode JSON: ' . $errstr, $errno));
+ return false;
+ }
+ } else {
+ // encode data with options given in ctor
+ $data = \json_encode($data, $this->options, $this->depth);
+
+ // abort stream if encoding fails
+ if ($data === false && \json_last_error() !== \JSON_ERROR_NONE) {
+ $this->handleError(new \RuntimeException('Unable to encode JSON: ' . \json_last_error_msg(), \json_last_error()));
+ return false;
+ }
+ }
+ // @codeCoverageIgnoreEnd
+
+ return $this->output->write($data . "\n");
+ }
+
+ public function end($data = null)
+ {
+ if ($data !== null) {
+ $this->write($data);
+ }
+
+ $this->output->end();
+ }
+
+ public function isWritable()
+ {
+ return !$this->closed;
+ }
+
+ public function close()
+ {
+ if ($this->closed) {
+ return;
+ }
+
+ $this->closed = true;
+ $this->output->close();
+
+ $this->emit('close');
+ $this->removeAllListeners();
+ }
+
+ /** @internal */
+ public function handleDrain()
+ {
+ $this->emit('drain');
+ }
+
+ /** @internal */
+ public function handleError(\Exception $error)
+ {
+ $this->emit('error', array($error));
+ $this->close();
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/composer/ClassLoader.php b/tools/php-cs-fixer/vendor/composer/ClassLoader.php
index afef3fa2..7824d8f7 100644
--- a/tools/php-cs-fixer/vendor/composer/ClassLoader.php
+++ b/tools/php-cs-fixer/vendor/composer/ClassLoader.php
@@ -42,35 +42,37 @@
*/
class ClassLoader
{
- /** @var ?string */
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
+ /** @var string|null */
private $vendorDir;
// PSR-4
/**
- * @var array[]
- * @psalm-var array>
+ * @var array>
*/
private $prefixLengthsPsr4 = array();
/**
- * @var array[]
- * @psalm-var array>
+ * @var array>
*/
private $prefixDirsPsr4 = array();
/**
- * @var array[]
- * @psalm-var array
+ * @var list
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
- * @var array[]
- * @psalm-var array>
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array>>
*/
private $prefixesPsr0 = array();
/**
- * @var array[]
- * @psalm-var array
+ * @var list
*/
private $fallbackDirsPsr0 = array();
@@ -78,8 +80,7 @@ class ClassLoader
private $useIncludePath = false;
/**
- * @var string[]
- * @psalm-var array
+ * @var array
*/
private $classMap = array();
@@ -87,29 +88,29 @@ class ClassLoader
private $classMapAuthoritative = false;
/**
- * @var bool[]
- * @psalm-var array
+ * @var array
*/
private $missingClasses = array();
- /** @var ?string */
+ /** @var string|null */
private $apcuPrefix;
/**
- * @var self[]
+ * @var array
*/
private static $registeredLoaders = array();
/**
- * @param ?string $vendorDir
+ * @param string|null $vendorDir
*/
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
}
/**
- * @return string[]
+ * @return array>
*/
public function getPrefixes()
{
@@ -121,8 +122,7 @@ public function getPrefixes()
}
/**
- * @return array[]
- * @psalm-return array>
+ * @return array>
*/
public function getPrefixesPsr4()
{
@@ -130,8 +130,7 @@ public function getPrefixesPsr4()
}
/**
- * @return array[]
- * @psalm-return array
+ * @return list
*/
public function getFallbackDirs()
{
@@ -139,8 +138,7 @@ public function getFallbackDirs()
}
/**
- * @return array[]
- * @psalm-return array
+ * @return list
*/
public function getFallbackDirsPsr4()
{
@@ -148,8 +146,7 @@ public function getFallbackDirsPsr4()
}
/**
- * @return string[] Array of classname => path
- * @psalm-return array
+ * @return array Array of classname => path
*/
public function getClassMap()
{
@@ -157,8 +154,7 @@ public function getClassMap()
}
/**
- * @param string[] $classMap Class to filename map
- * @psalm-param array $classMap
+ * @param array $classMap Class to filename map
*
* @return void
*/
@@ -175,24 +171,25 @@ public function addClassMap(array $classMap)
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param string[]|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
- (array) $paths
+ $paths
);
}
@@ -201,19 +198,19 @@ public function add($prefix, $paths, $prepend = false)
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+ $this->prefixesPsr0[$first][$prefix] = $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -222,9 +219,9 @@ public function add($prefix, $paths, $prepend = false)
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param string[]|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
@@ -232,17 +229,18 @@ public function add($prefix, $paths, $prepend = false)
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
- (array) $paths
+ $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -252,18 +250,18 @@ public function addPsr4($prefix, $paths, $prepend = false)
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ $this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -272,8 +270,8 @@ public function addPsr4($prefix, $paths, $prepend = false)
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param string[]|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 base directories
*
* @return void
*/
@@ -290,8 +288,8 @@ public function set($prefix, $paths)
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param string[]|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
@@ -425,7 +423,8 @@ public function unregister()
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
- includeFile($file);
+ $includeFile = self::$includeFile;
+ $includeFile($file);
return true;
}
@@ -476,9 +475,9 @@ public function findFile($class)
}
/**
- * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
*
- * @return self[]
+ * @return array
*/
public static function getRegisteredLoaders()
{
@@ -555,18 +554,26 @@ private function findFileWithExtension($class, $ext)
return false;
}
-}
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- *
- * @param string $file
- * @return void
- * @private
- */
-function includeFile($file)
-{
- include $file;
+ /**
+ * @return void
+ */
+ private static function initializeIncludeClosure()
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = \Closure::bind(static function($file) {
+ include $file;
+ }, null, null);
+ }
}
diff --git a/tools/php-cs-fixer/vendor/composer/InstalledVersions.php b/tools/php-cs-fixer/vendor/composer/InstalledVersions.php
index d50e0c9f..51e734a7 100644
--- a/tools/php-cs-fixer/vendor/composer/InstalledVersions.php
+++ b/tools/php-cs-fixer/vendor/composer/InstalledVersions.php
@@ -21,12 +21,14 @@
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
* To require its presence, you can require `composer-runtime-api ^2.0`
+ *
+ * @final
*/
class InstalledVersions
{
/**
* @var mixed[]|null
- * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null
*/
private static $installed;
@@ -37,7 +39,7 @@ class InstalledVersions
/**
* @var array[]
- * @psalm-var array}>
+ * @psalm-var array}>
*/
private static $installedByVendor = array();
@@ -96,7 +98,7 @@ public static function isInstalled($packageName, $includeDevRequirements = true)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
- return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
}
}
@@ -117,7 +119,7 @@ public static function isInstalled($packageName, $includeDevRequirements = true)
*/
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
- $constraint = $parser->parseConstraints($constraint);
+ $constraint = $parser->parseConstraints((string) $constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
@@ -241,7 +243,7 @@ public static function getInstallPath($packageName)
/**
* @return array
- * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
@@ -255,7 +257,7 @@ public static function getRootPackage()
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
- * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}
+ * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}
*/
public static function getRawData()
{
@@ -278,7 +280,7 @@ public static function getRawData()
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
- * @psalm-return list}>
+ * @psalm-return list}>
*/
public static function getAllRawData()
{
@@ -301,7 +303,7 @@ public static function getAllRawData()
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
- * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data
+ * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data
*/
public static function reload($data)
{
@@ -311,7 +313,7 @@ public static function reload($data)
/**
* @return array[]
- * @psalm-return list}>
+ * @psalm-return list}>
*/
private static function getInstalled()
{
@@ -326,7 +328,9 @@ private static function getInstalled()
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
- $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require $vendorDir.'/composer/installed.php';
+ $installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
@@ -338,12 +342,17 @@ private static function getInstalled()
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
- self::$installed = require __DIR__ . '/installed.php';
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
} else {
self::$installed = array();
}
}
- $installed[] = self::$installed;
+
+ if (self::$installed !== array()) {
+ $installed[] = self::$installed;
+ }
return $installed;
}
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_classmap.php b/tools/php-cs-fixer/vendor/composer/autoload_classmap.php
index 46781d65..1d1b8341 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_classmap.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_classmap.php
@@ -2,11 +2,12 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
+ 'CURLStringFile' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php',
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_files.php b/tools/php-cs-fixer/vendor/composer/autoload_files.php
index 002499ee..758ec42f 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_files.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_files.php
@@ -2,16 +2,17 @@
// autoload_files.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
+ 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
- '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
+ '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
);
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_namespaces.php b/tools/php-cs-fixer/vendor/composer/autoload_namespaces.php
index b7fc0125..15a2ff3a 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_namespaces.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_namespaces.php
@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_psr4.php b/tools/php-cs-fixer/vendor/composer/autoload_psr4.php
index e0608504..b34ad2ea 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_psr4.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_psr4.php
@@ -2,7 +2,7 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
@@ -22,14 +22,21 @@
'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'),
'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
+ 'React\\Stream\\' => array($vendorDir . '/react/stream/src'),
+ 'React\\Socket\\' => array($vendorDir . '/react/socket/src'),
+ 'React\\Promise\\' => array($vendorDir . '/react/promise/src'),
+ 'React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'),
+ 'React\\Dns\\' => array($vendorDir . '/react/dns/src'),
+ 'React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'),
+ 'React\\Cache\\' => array($vendorDir . '/react/cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
- 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PhpCsFixer\\' => array($vendorDir . '/friendsofphp/php-cs-fixer/src'),
- 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/src'),
- 'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'),
+ 'Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'),
+ 'Evenement\\' => array($vendorDir . '/evenement/evenement/src'),
'Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'),
'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'),
'Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'),
+ 'Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'),
);
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_real.php b/tools/php-cs-fixer/vendor/composer/autoload_real.php
index 6aef2ef8..79ef3fb8 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_real.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_real.php
@@ -25,56 +25,26 @@ public static function getLoader()
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit5d6f4352aed43a8d4e8a161c85a71e74', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit5d6f4352aed43a8d4e8a161c85a71e74', 'loadClassLoader'));
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if ($useStaticLoader) {
- require __DIR__ . '/autoload_static.php';
+ require __DIR__ . '/autoload_static.php';
+ call_user_func(\Composer\Autoload\ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74::getInitializer($loader));
- call_user_func(\Composer\Autoload\ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74::getInitializer($loader));
- } else {
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
+ $loader->register(true);
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
+ $filesToLoad = \Composer\Autoload\ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74::$files;
+ $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
+ require $file;
}
- }
-
- $loader->register(true);
-
- if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74::$files;
- } else {
- $includeFiles = require __DIR__ . '/autoload_files.php';
- }
- foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequire5d6f4352aed43a8d4e8a161c85a71e74($fileIdentifier, $file);
+ }, null, null);
+ foreach ($filesToLoad as $fileIdentifier => $file) {
+ $requireFile($fileIdentifier, $file);
}
return $loader;
}
}
-
-/**
- * @param string $fileIdentifier
- * @param string $file
- * @return void
- */
-function composerRequire5d6f4352aed43a8d4e8a161c85a71e74($fileIdentifier, $file)
-{
- if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
- $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-
- require $file;
- }
-}
diff --git a/tools/php-cs-fixer/vendor/composer/autoload_static.php b/tools/php-cs-fixer/vendor/composer/autoload_static.php
index 61f3edd0..508ac083 100644
--- a/tools/php-cs-fixer/vendor/composer/autoload_static.php
+++ b/tools/php-cs-fixer/vendor/composer/autoload_static.php
@@ -7,14 +7,15 @@
class ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74
{
public static $files = array (
+ 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
- '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
+ '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
);
public static $prefixLengthsPsr4 = array (
@@ -37,24 +38,37 @@ class ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74
'Symfony\\Component\\EventDispatcher\\' => 34,
'Symfony\\Component\\Console\\' => 26,
),
+ 'R' =>
+ array (
+ 'React\\Stream\\' => 13,
+ 'React\\Socket\\' => 13,
+ 'React\\Promise\\' => 14,
+ 'React\\EventLoop\\' => 16,
+ 'React\\Dns\\' => 10,
+ 'React\\ChildProcess\\' => 19,
+ 'React\\Cache\\' => 12,
+ ),
'P' =>
array (
'Psr\\Log\\' => 8,
'Psr\\EventDispatcher\\' => 20,
'Psr\\Container\\' => 14,
- 'Psr\\Cache\\' => 10,
'PhpCsFixer\\' => 11,
),
- 'D' =>
+ 'F' =>
+ array (
+ 'Fidry\\CpuCoreCounter\\' => 21,
+ ),
+ 'E' =>
array (
- 'Doctrine\\Common\\Lexer\\' => 22,
- 'Doctrine\\Common\\Annotations\\' => 28,
+ 'Evenement\\' => 10,
),
'C' =>
array (
'Composer\\XdebugHandler\\' => 23,
'Composer\\Semver\\' => 16,
'Composer\\Pcre\\' => 14,
+ 'Clue\\React\\NDJson\\' => 18,
),
);
@@ -123,6 +137,34 @@ class ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74
array (
0 => __DIR__ . '/..' . '/symfony/console',
),
+ 'React\\Stream\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/stream/src',
+ ),
+ 'React\\Socket\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/socket/src',
+ ),
+ 'React\\Promise\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/promise/src',
+ ),
+ 'React\\EventLoop\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/event-loop/src',
+ ),
+ 'React\\Dns\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/dns/src',
+ ),
+ 'React\\ChildProcess\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/child-process/src',
+ ),
+ 'React\\Cache\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/react/cache/src',
+ ),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/src',
@@ -135,21 +177,17 @@ class ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
- 'Psr\\Cache\\' =>
- array (
- 0 => __DIR__ . '/..' . '/psr/cache/src',
- ),
'PhpCsFixer\\' =>
array (
0 => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src',
),
- 'Doctrine\\Common\\Lexer\\' =>
+ 'Fidry\\CpuCoreCounter\\' =>
array (
- 0 => __DIR__ . '/..' . '/doctrine/lexer/src',
+ 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src',
),
- 'Doctrine\\Common\\Annotations\\' =>
+ 'Evenement\\' =>
array (
- 0 => __DIR__ . '/..' . '/doctrine/annotations/lib/Doctrine/Common/Annotations',
+ 0 => __DIR__ . '/..' . '/evenement/evenement/src',
),
'Composer\\XdebugHandler\\' =>
array (
@@ -163,10 +201,15 @@ class ComposerStaticInit5d6f4352aed43a8d4e8a161c85a71e74
array (
0 => __DIR__ . '/..' . '/composer/pcre/src',
),
+ 'Clue\\React\\NDJson\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/clue/ndjson-react/src',
+ ),
);
public static $classMap = array (
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
+ 'CURLStringFile' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php',
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
diff --git a/tools/php-cs-fixer/vendor/composer/installed.json b/tools/php-cs-fixer/vendor/composer/installed.json
index 8443d0e0..642d68a1 100644
--- a/tools/php-cs-fixer/vendor/composer/installed.json
+++ b/tools/php-cs-fixer/vendor/composer/installed.json
@@ -1,31 +1,106 @@
{
"packages": [
+ {
+ "name": "clue/ndjson-react",
+ "version": "v1.3.0",
+ "version_normalized": "1.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-ndjson.git",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
+ "react/event-loop": "^1.2"
+ },
+ "time": "2022-12-23T10:58:28+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\NDJson\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-ndjson",
+ "keywords": [
+ "NDJSON",
+ "json",
+ "jsonlines",
+ "newline",
+ "reactphp",
+ "streaming"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-ndjson/issues",
+ "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "install-path": "../clue/ndjson-react"
+ },
{
"name": "composer/pcre",
- "version": "3.1.0",
- "version_normalized": "3.1.0.0",
+ "version": "3.3.2",
+ "version_normalized": "3.3.2.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
"require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^5"
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
},
- "time": "2022-11-17T09:50:14+00:00",
+ "time": "2024-11-12T16:29:46+00:00",
"type": "library",
"extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
"branch-alias": {
"dev-main": "3.x-dev"
}
@@ -56,7 +131,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.1.0"
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
},
"funding": [
{
@@ -76,27 +151,27 @@
},
{
"name": "composer/semver",
- "version": "3.3.2",
- "version_normalized": "3.3.2.0",
+ "version": "3.4.3",
+ "version_normalized": "3.4.3.0",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
},
- "time": "2022-04-01T19:23:25+00:00",
+ "time": "2024-09-19T14:15:21+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -138,9 +213,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.3"
},
"funding": [
{
@@ -160,17 +235,17 @@
},
{
"name": "composer/xdebug-handler",
- "version": "3.0.3",
- "version_normalized": "3.0.3.0",
+ "version": "3.0.5",
+ "version_normalized": "3.0.5.0",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
- "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
"shasum": ""
},
"require": {
@@ -181,9 +256,9 @@
"require-dev": {
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^6.0"
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
- "time": "2022-02-25T21:32:43+00:00",
+ "time": "2024-05-06T16:37:16+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -207,9 +282,9 @@
"performance"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
},
"funding": [
{
@@ -228,43 +303,32 @@
"install-path": "./xdebug-handler"
},
{
- "name": "doctrine/annotations",
- "version": "2.0.1",
- "version_normalized": "2.0.1.0",
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
+ "version_normalized": "3.0.2.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^2 || ^3",
- "ext-tokenizer": "*",
- "php": "^7.2 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
+ "php": ">=7.0"
},
"require-dev": {
- "doctrine/cache": "^2.0",
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^5.4 || ^6",
- "vimeo/psalm": "^4.10"
- },
- "suggest": {
- "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ "phpunit/phpunit": "^9 || ^6"
},
- "time": "2023-02-02T22:02:53+00:00",
+ "time": "2023-08-08T05:53:35+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ "Evenement\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -273,70 +337,56 @@
],
"authors": [
{
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
}
],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
- "annotations",
- "docblock",
- "parser"
+ "event-dispatcher",
+ "event-emitter"
],
"support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/2.0.1"
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
},
- "install-path": "../doctrine/annotations"
+ "install-path": "../evenement/evenement"
},
{
- "name": "doctrine/lexer",
- "version": "3.0.0",
- "version_normalized": "3.0.0.0",
+ "name": "fidry/cpu-core-counter",
+ "version": "1.2.0",
+ "version_normalized": "1.2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568"
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.9",
- "phpunit/phpunit": "^9.5",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^5.0"
- },
- "time": "2022-12-15T16:57:16+00:00",
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
+ },
+ "time": "2024-08-06T10:04:20+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "src"
+ "Fidry\\CpuCoreCounter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -345,103 +395,87 @@
],
"authors": [
{
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
}
],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "description": "Tiny utility to get the number of CPU cores.",
"keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
+ "CPU",
+ "core"
],
"support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/3.0.0"
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
},
"funding": [
{
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
- "type": "tidelift"
+ "url": "https://github.com/theofidry",
+ "type": "github"
}
],
- "install-path": "../doctrine/lexer"
+ "install-path": "../fidry/cpu-core-counter"
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.16.0",
- "version_normalized": "3.16.0.0",
+ "version": "v3.68.1",
+ "version_normalized": "3.68.1.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc"
+ "reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc",
- "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/b9db2b2ea3cdba7201067acee46f984ef2397cff",
+ "reference": "b9db2b2ea3cdba7201067acee46f984ef2397cff",
"shasum": ""
},
"require": {
- "composer/semver": "^3.3",
+ "clue/ndjson-react": "^1.0",
+ "composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
- "doctrine/annotations": "^2",
- "doctrine/lexer": "^2 || ^3",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
+ "fidry/cpu-core-counter": "^1.2",
"php": "^7.4 || ^8.0",
- "sebastian/diff": "^4.0 || ^5.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/event-dispatcher": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/options-resolver": "^5.4 || ^6.0",
- "symfony/polyfill-mbstring": "^1.27",
- "symfony/polyfill-php80": "^1.27",
- "symfony/polyfill-php81": "^1.27",
- "symfony/process": "^5.4 || ^6.0",
- "symfony/stopwatch": "^5.4 || ^6.0"
+ "react/child-process": "^0.6.5",
+ "react/event-loop": "^1.0",
+ "react/promise": "^2.0 || ^3.0",
+ "react/socket": "^1.0",
+ "react/stream": "^1.0",
+ "sebastian/diff": "^4.0 || ^5.1 || ^6.0",
+ "symfony/console": "^5.4 || ^6.4 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.4 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.4 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.31",
+ "symfony/polyfill-php80": "^1.31",
+ "symfony/polyfill-php81": "^1.31",
+ "symfony/process": "^5.4 || ^6.4 || ^7.2",
+ "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0"
},
"require-dev": {
- "justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^2.0",
- "mikey179/vfsstream": "^1.6.11",
- "php-coveralls/php-coveralls": "^2.5.3",
+ "facile-it/paraunit": "^1.3.1 || ^2.4",
+ "infection/infection": "^0.29.8",
+ "justinrainbow/json-schema": "^5.3 || ^6.0",
+ "keradus/cli-executor": "^2.1",
+ "mikey179/vfsstream": "^1.6.12",
+ "php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.16",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5",
- "phpunitgoodpractices/polyfill": "^1.6",
- "phpunitgoodpractices/traits": "^1.9.2",
- "symfony/phpunit-bridge": "^6.2.3",
- "symfony/yaml": "^5.4 || ^6.0"
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
+ "phpunit/phpunit": "^9.6.22 || ^10.5.40 || ^11.5.2",
+ "symfony/var-dumper": "^5.4.48 || ^6.4.15 || ^7.2.0",
+ "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.2.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
"ext-mbstring": "For handling non-UTF8 characters."
},
- "time": "2023-04-02T19:30:06+00:00",
+ "time": "2025-01-17T09:20:36+00:00",
"bin": [
"php-cs-fixer"
],
@@ -450,7 +484,10 @@
"autoload": {
"psr-4": {
"PhpCsFixer\\": "src/"
- }
+ },
+ "exclude-from-classmap": [
+ "src/Fixer/Internal/*"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -475,7 +512,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0"
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.68.1"
},
"funding": [
{
@@ -485,58 +522,6 @@
],
"install-path": "../friendsofphp/php-cs-fixer"
},
- {
- "name": "psr/cache",
- "version": "3.0.0",
- "version_normalized": "3.0.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "time": "2021-02-03T23:26:27+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
- },
- "install-path": "../psr/cache"
- },
{
"name": "psr/container",
"version": "2.0.2",
@@ -648,23 +633,23 @@
},
{
"name": "psr/log",
- "version": "3.0.0",
- "version_normalized": "3.0.0.0",
+ "version": "3.0.2",
+ "version_normalized": "3.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
"php": ">=8.0.0"
},
- "time": "2021-07-14T16:46:02+00:00",
+ "time": "2024-09-11T13:17:53+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -695,37 +680,584 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/3.0.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
},
"install-path": "../psr/log"
},
+ {
+ "name": "react/cache",
+ "version": "v1.2.0",
+ "version_normalized": "1.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/cache.git",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/promise": "^3.0 || ^2.0 || ^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+ },
+ "time": "2022-11-30T15:59:55+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, Promise-based cache interface for ReactPHP",
+ "keywords": [
+ "cache",
+ "caching",
+ "promise",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/cache/issues",
+ "source": "https://github.com/reactphp/cache/tree/v1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/cache"
+ },
+ {
+ "name": "react/child-process",
+ "version": "v0.6.6",
+ "version_normalized": "0.6.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/child-process.git",
+ "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/child-process/zipball/1721e2b93d89b745664353b9cfc8f155ba8a6159",
+ "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/event-loop": "^1.2",
+ "react/stream": "^1.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/socket": "^1.16",
+ "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
+ },
+ "time": "2025-01-01T16:37:48+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\ChildProcess\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven library for executing child processes with ReactPHP.",
+ "keywords": [
+ "event-driven",
+ "process",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/child-process/issues",
+ "source": "https://github.com/reactphp/child-process/tree/v0.6.6"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/child-process"
+ },
+ {
+ "name": "react/dns",
+ "version": "v1.13.0",
+ "version_normalized": "1.13.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/dns.git",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.7 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3 || ^2",
+ "react/promise-timer": "^1.11"
+ },
+ "time": "2024-06-13T14:18:03+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\Dns\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async DNS resolver for ReactPHP",
+ "keywords": [
+ "async",
+ "dns",
+ "dns-resolver",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/dns/issues",
+ "source": "https://github.com/reactphp/dns/tree/v1.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/dns"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "version_normalized": "1.5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "time": "2023-11-13T13:48:05+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/event-loop"
+ },
+ {
+ "name": "react/promise",
+ "version": "v3.2.0",
+ "version_normalized": "3.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
+ },
+ "time": "2024-05-24T10:39:05+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/promise"
+ },
+ {
+ "name": "react/socket",
+ "version": "v1.16.0",
+ "version_normalized": "1.16.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/socket.git",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/dns": "^1.13",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.6 || ^1.2.1",
+ "react/stream": "^1.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3.3 || ^2",
+ "react/promise-stream": "^1.4",
+ "react/promise-timer": "^1.11"
+ },
+ "time": "2024-07-26T10:38:09+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\Socket\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
+ "keywords": [
+ "Connection",
+ "Socket",
+ "async",
+ "reactphp",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/socket/issues",
+ "source": "https://github.com/reactphp/socket/tree/v1.16.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/socket"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "version_normalized": "1.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "time": "2024-06-11T12:45:25+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/stream"
+ },
{
"name": "sebastian/diff",
- "version": "5.0.3",
- "version_normalized": "5.0.3.0",
+ "version": "6.0.2",
+ "version_normalized": "6.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b"
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0",
+ "phpunit/phpunit": "^11.0",
"symfony/process": "^4.2 || ^5"
},
- "time": "2023-05-01T07:48:21+00:00",
+ "time": "2024-07-03T04:53:05+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"installation-source": "dist",
@@ -759,7 +1291,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
},
"funding": [
{
@@ -771,52 +1303,49 @@
},
{
"name": "symfony/console",
- "version": "v6.2.10",
- "version_normalized": "6.2.10.0",
+ "version": "v7.2.1",
+ "version_normalized": "7.2.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "12288d9f4500f84a4d02254d4aa968b15488476f"
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/12288d9f4500f84a4d02254d4aa968b15488476f",
- "reference": "12288d9f4500f84a4d02254d4aa968b15488476f",
+ "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
+ "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
- },
- "time": "2023-04-28T13:37:43+00:00",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
+ },
+ "time": "2024-12-11T03:49:26+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -850,7 +1379,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.2.10"
+ "source": "https://github.com/symfony/console/tree/v7.2.1"
},
"funding": [
{
@@ -870,31 +1399,31 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.2.1",
- "version_normalized": "3.2.1.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
- "time": "2023-03-01T10:25:55+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"installation-source": "dist",
@@ -920,7 +1449,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -940,25 +1469,26 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.2.8",
- "version_normalized": "6.2.8.0",
+ "version": "v7.2.0",
+ "version_normalized": "7.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339",
- "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "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": {
"psr/event-dispatcher-implementation": "1.0",
@@ -966,19 +1496,15 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "time": "2023-03-20T16:06:02+00:00",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "time": "2024-09-25T14:21:43+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1006,7 +1532,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.2.8"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -1026,35 +1552,32 @@
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.2.1",
- "version_normalized": "3.2.1.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
- "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
"php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
- "time": "2023-03-01T10:32:47+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"installation-source": "dist",
@@ -1088,7 +1611,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -1108,25 +1631,28 @@
},
{
"name": "symfony/filesystem",
- "version": "v6.2.10",
- "version_normalized": "6.2.10.0",
+ "version": "v7.2.0",
+ "version_normalized": "7.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894"
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd588debf7d1bc16a2c84b4b3b71145d9946b894",
- "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
- "time": "2023-04-18T13:46:08+00:00",
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
+ },
+ "time": "2024-10-25T15:15:23+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1154,7 +1680,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.2.10"
+ "source": "https://github.com/symfony/filesystem/tree/v7.2.0"
},
"funding": [
{
@@ -1174,26 +1700,26 @@
},
{
"name": "symfony/finder",
- "version": "v6.2.7",
- "version_normalized": "6.2.7.0",
+ "version": "v7.2.2",
+ "version_normalized": "7.2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb"
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb",
- "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb",
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.4|^7.0"
},
- "time": "2023-02-16T09:57:23+00:00",
+ "time": "2024-12-30T19:00:17+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1221,7 +1747,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.2.7"
+ "source": "https://github.com/symfony/finder/tree/v7.2.2"
},
"funding": [
{
@@ -1241,24 +1767,24 @@
},
{
"name": "symfony/options-resolver",
- "version": "v6.2.7",
- "version_normalized": "6.2.7.0",
+ "version": "v7.2.0",
+ "version_normalized": "7.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629"
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/aa0e85b53bbb2b4951960efd61d295907eacd629",
- "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
- "time": "2023-02-14T08:44:56+00:00",
+ "time": "2024-11-20T11:17:29+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1291,7 +1817,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.2.7"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.2.0"
},
"funding": [
{
@@ -1311,21 +1837,21 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -1333,15 +1859,12 @@
"suggest": {
"ext-ctype": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1376,7 +1899,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
},
"funding": [
{
@@ -1396,34 +1919,31 @@
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1460,7 +1980,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -1480,34 +2000,31 @@
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1547,7 +2064,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -1567,21 +2084,21 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -1589,15 +2106,12 @@
"suggest": {
"ext-mbstring": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1633,7 +2147,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -1653,31 +2167,28 @@
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1719,7 +2230,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@@ -1739,31 +2250,28 @@
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -1801,7 +2309,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
},
"funding": [
{
@@ -1821,23 +2329,23 @@
},
{
"name": "symfony/process",
- "version": "v6.2.10",
- "version_normalized": "6.2.10.0",
+ "version": "v7.2.0",
+ "version_normalized": "7.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e"
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e",
- "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
- "time": "2023-04-18T13:56:57+00:00",
+ "time": "2024-11-06T14:24:19+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1865,7 +2373,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.2.10"
+ "source": "https://github.com/symfony/process/tree/v7.2.0"
},
"funding": [
{
@@ -1885,38 +2393,36 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.2.1",
- "version_normalized": "3.2.1.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
- "time": "2023-03-01T10:32:47+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
}
},
"installation-source": "dist",
@@ -1953,7 +2459,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -1973,24 +2479,24 @@
},
{
"name": "symfony/stopwatch",
- "version": "v6.2.7",
- "version_normalized": "6.2.7.0",
+ "version": "v7.2.2",
+ "version_normalized": "7.2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f"
+ "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f3adc98c1061875dd2edcd45e5b04e63d0e29f8f",
- "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e46690d5b9d7164a6d061cab1e8d46141b9f49df",
+ "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/service-contracts": "^1|^2|^3"
+ "php": ">=8.2",
+ "symfony/service-contracts": "^2.5|^3"
},
- "time": "2023-02-14T08:44:56+00:00",
+ "time": "2024-12-18T14:28:33+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -2018,7 +2524,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.2.7"
+ "source": "https://github.com/symfony/stopwatch/tree/v7.2.2"
},
"funding": [
{
@@ -2038,37 +2544,38 @@
},
{
"name": "symfony/string",
- "version": "v6.2.8",
- "version_normalized": "6.2.8.0",
+ "version": "v7.2.0",
+ "version_normalized": "7.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef"
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef",
- "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef",
+ "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
- },
- "time": "2023-03-20T16:06:02+00:00",
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "time": "2024-11-13T13:31:26+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -2107,7 +2614,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.2.8"
+ "source": "https://github.com/symfony/string/tree/v7.2.0"
},
"funding": [
{
diff --git a/tools/php-cs-fixer/vendor/composer/installed.php b/tools/php-cs-fixer/vendor/composer/installed.php
index 5daa04b9..08936f96 100644
--- a/tools/php-cs-fixer/vendor/composer/installed.php
+++ b/tools/php-cs-fixer/vendor/composer/installed.php
@@ -1,103 +1,103 @@
array(
+ 'name' => '__root__',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
+ 'reference' => '2bde5f165e4b817c6a725d0b503c7bfeb01e467f',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => 'b982a766fe33dda238d09e54a405685b90ef1102',
- 'name' => '__root__',
'dev' => true,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
+ 'reference' => '2bde5f165e4b817c6a725d0b503c7bfeb01e467f',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => 'b982a766fe33dda238d09e54a405685b90ef1102',
+ 'dev_requirement' => false,
+ ),
+ 'clue/ndjson-react' => array(
+ 'pretty_version' => 'v1.3.0',
+ 'version' => '1.3.0.0',
+ 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../clue/ndjson-react',
+ 'aliases' => array(),
'dev_requirement' => false,
),
'composer/pcre' => array(
- 'pretty_version' => '3.1.0',
- 'version' => '3.1.0.0',
+ 'pretty_version' => '3.3.2',
+ 'version' => '3.3.2.0',
+ 'reference' => 'b2bed4734f0cc156ee1fe9c0da2550420d99a21e',
'type' => 'library',
'install_path' => __DIR__ . '/./pcre',
'aliases' => array(),
- 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2',
'dev_requirement' => false,
),
'composer/semver' => array(
- 'pretty_version' => '3.3.2',
- 'version' => '3.3.2.0',
+ 'pretty_version' => '3.4.3',
+ 'version' => '3.4.3.0',
+ 'reference' => '4313d26ada5e0c4edfbd1dc481a92ff7bff91f12',
'type' => 'library',
'install_path' => __DIR__ . '/./semver',
'aliases' => array(),
- 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9',
'dev_requirement' => false,
),
'composer/xdebug-handler' => array(
- 'pretty_version' => '3.0.3',
- 'version' => '3.0.3.0',
+ 'pretty_version' => '3.0.5',
+ 'version' => '3.0.5.0',
+ 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef',
'type' => 'library',
'install_path' => __DIR__ . '/./xdebug-handler',
'aliases' => array(),
- 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c',
'dev_requirement' => false,
),
- 'doctrine/annotations' => array(
- 'pretty_version' => '2.0.1',
- 'version' => '2.0.1.0',
+ 'evenement/evenement' => array(
+ 'pretty_version' => 'v3.0.2',
+ 'version' => '3.0.2.0',
+ 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc',
'type' => 'library',
- 'install_path' => __DIR__ . '/../doctrine/annotations',
+ 'install_path' => __DIR__ . '/../evenement/evenement',
'aliases' => array(),
- 'reference' => 'e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f',
'dev_requirement' => false,
),
- 'doctrine/lexer' => array(
- 'pretty_version' => '3.0.0',
- 'version' => '3.0.0.0',
+ 'fidry/cpu-core-counter' => array(
+ 'pretty_version' => '1.2.0',
+ 'version' => '1.2.0.0',
+ 'reference' => '8520451a140d3f46ac33042715115e290cf5785f',
'type' => 'library',
- 'install_path' => __DIR__ . '/../doctrine/lexer',
+ 'install_path' => __DIR__ . '/../fidry/cpu-core-counter',
'aliases' => array(),
- 'reference' => '84a527db05647743d50373e0ec53a152f2cde568',
'dev_requirement' => false,
),
'friendsofphp/php-cs-fixer' => array(
- 'pretty_version' => 'v3.16.0',
- 'version' => '3.16.0.0',
+ 'pretty_version' => 'v3.68.1',
+ 'version' => '3.68.1.0',
+ 'reference' => 'b9db2b2ea3cdba7201067acee46f984ef2397cff',
'type' => 'application',
'install_path' => __DIR__ . '/../friendsofphp/php-cs-fixer',
'aliases' => array(),
- 'reference' => 'd40f9436e1c448d309fa995ab9c14c5c7a96f2dc',
- 'dev_requirement' => false,
- ),
- 'psr/cache' => array(
- 'pretty_version' => '3.0.0',
- 'version' => '3.0.0.0',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/cache',
- 'aliases' => array(),
- 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
'dev_requirement' => false,
),
'psr/container' => array(
'pretty_version' => '2.0.2',
'version' => '2.0.2.0',
+ 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/container',
'aliases' => array(),
- 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
'dev_requirement' => false,
),
'psr/event-dispatcher' => array(
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
+ 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/event-dispatcher',
'aliases' => array(),
- 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'dev_requirement' => false,
),
'psr/event-dispatcher-implementation' => array(
@@ -107,12 +107,12 @@
),
),
'psr/log' => array(
- 'pretty_version' => '3.0.0',
- 'version' => '3.0.0.0',
+ 'pretty_version' => '3.0.2',
+ 'version' => '3.0.2.0',
+ 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
- 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001',
'dev_requirement' => false,
),
'psr/log-implementation' => array(
@@ -121,49 +121,112 @@
0 => '1.0|2.0|3.0',
),
),
+ 'react/cache' => array(
+ 'pretty_version' => 'v1.2.0',
+ 'version' => '1.2.0.0',
+ 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/cache',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/child-process' => array(
+ 'pretty_version' => 'v0.6.6',
+ 'version' => '0.6.6.0',
+ 'reference' => '1721e2b93d89b745664353b9cfc8f155ba8a6159',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/child-process',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/dns' => array(
+ 'pretty_version' => 'v1.13.0',
+ 'version' => '1.13.0.0',
+ 'reference' => 'eb8ae001b5a455665c89c1df97f6fb682f8fb0f5',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/dns',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/event-loop' => array(
+ 'pretty_version' => 'v1.5.0',
+ 'version' => '1.5.0.0',
+ 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/event-loop',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/promise' => array(
+ 'pretty_version' => 'v3.2.0',
+ 'version' => '3.2.0.0',
+ 'reference' => '8a164643313c71354582dc850b42b33fa12a4b63',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/promise',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/socket' => array(
+ 'pretty_version' => 'v1.16.0',
+ 'version' => '1.16.0.0',
+ 'reference' => '23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/socket',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'react/stream' => array(
+ 'pretty_version' => 'v1.4.0',
+ 'version' => '1.4.0.0',
+ 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../react/stream',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
'sebastian/diff' => array(
- 'pretty_version' => '5.0.3',
- 'version' => '5.0.3.0',
+ 'pretty_version' => '6.0.2',
+ 'version' => '6.0.2.0',
+ 'reference' => 'b4ccd857127db5d41a5b676f24b51371d76d8544',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/diff',
'aliases' => array(),
- 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b',
'dev_requirement' => false,
),
'symfony/console' => array(
- 'pretty_version' => 'v6.2.10',
- 'version' => '6.2.10.0',
+ 'pretty_version' => 'v7.2.1',
+ 'version' => '7.2.1.0',
+ 'reference' => 'fefcc18c0f5d0efe3ab3152f15857298868dc2c3',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/console',
'aliases' => array(),
- 'reference' => '12288d9f4500f84a4d02254d4aa968b15488476f',
'dev_requirement' => false,
),
'symfony/deprecation-contracts' => array(
- 'pretty_version' => 'v3.2.1',
- 'version' => '3.2.1.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(),
- 'reference' => 'e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e',
'dev_requirement' => false,
),
'symfony/event-dispatcher' => array(
- 'pretty_version' => 'v6.2.8',
- 'version' => '6.2.8.0',
+ 'pretty_version' => 'v7.2.0',
+ 'version' => '7.2.0.0',
+ 'reference' => '910c5db85a5356d0fea57680defec4e99eb9c8c1',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(),
- 'reference' => '04046f35fd7d72f9646e721fc2ecb8f9c67d3339',
'dev_requirement' => false,
),
'symfony/event-dispatcher-contracts' => array(
- 'pretty_version' => 'v3.2.1',
- 'version' => '3.2.1.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => '7642f5e970b672283b7823222ae8ef8bbc160b9f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(),
- 'reference' => '0ad3b6f1e4e2da5690fefe075cd53a238646d8dd',
'dev_requirement' => false,
),
'symfony/event-dispatcher-implementation' => array(
@@ -173,120 +236,120 @@
),
),
'symfony/filesystem' => array(
- 'pretty_version' => 'v6.2.10',
- 'version' => '6.2.10.0',
+ 'pretty_version' => 'v7.2.0',
+ 'version' => '7.2.0.0',
+ 'reference' => 'b8dce482de9d7c9fe2891155035a7248ab5c7fdb',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/filesystem',
'aliases' => array(),
- 'reference' => 'fd588debf7d1bc16a2c84b4b3b71145d9946b894',
'dev_requirement' => false,
),
'symfony/finder' => array(
- 'pretty_version' => 'v6.2.7',
- 'version' => '6.2.7.0',
+ 'pretty_version' => 'v7.2.2',
+ 'version' => '7.2.2.0',
+ 'reference' => '87a71856f2f56e4100373e92529eed3171695cfb',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/finder',
'aliases' => array(),
- 'reference' => '20808dc6631aecafbe67c186af5dcb370be3a0eb',
'dev_requirement' => false,
),
'symfony/options-resolver' => array(
- 'pretty_version' => 'v6.2.7',
- 'version' => '6.2.7.0',
+ 'pretty_version' => 'v7.2.0',
+ 'version' => '7.2.0.0',
+ 'reference' => '7da8fbac9dcfef75ffc212235d76b2754ce0cf50',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/options-resolver',
'aliases' => array(),
- 'reference' => 'aa0e85b53bbb2b4951960efd61d295907eacd629',
'dev_requirement' => false,
),
'symfony/polyfill-ctype' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => 'a3cc8b044a6ea513310cbd48ef7333b384945638',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
'aliases' => array(),
- 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a',
'dev_requirement' => false,
),
'symfony/polyfill-intl-grapheme' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => 'b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme',
'aliases' => array(),
- 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354',
'dev_requirement' => false,
),
'symfony/polyfill-intl-normalizer' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '3833d7255cc303546435cb650316bff708a1c75c',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
'aliases' => array(),
- 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6',
'dev_requirement' => false,
),
'symfony/polyfill-mbstring' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
'aliases' => array(),
- 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534',
'dev_requirement' => false,
),
'symfony/polyfill-php80' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php80',
'aliases' => array(),
- 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936',
'dev_requirement' => false,
),
'symfony/polyfill-php81' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php81',
'aliases' => array(),
- 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a',
'dev_requirement' => false,
),
'symfony/process' => array(
- 'pretty_version' => 'v6.2.10',
- 'version' => '6.2.10.0',
+ 'pretty_version' => 'v7.2.0',
+ 'version' => '7.2.0.0',
+ 'reference' => 'd34b22ba9390ec19d2dd966c40aa9e8462f27a7e',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/process',
'aliases' => array(),
- 'reference' => 'b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e',
'dev_requirement' => false,
),
'symfony/service-contracts' => array(
- 'pretty_version' => 'v3.2.1',
- 'version' => '3.2.1.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => 'e53260aabf78fb3d63f8d79d69ece59f80d5eda0',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/service-contracts',
'aliases' => array(),
- 'reference' => 'a8c9cedf55f314f3a186041d19537303766df09a',
'dev_requirement' => false,
),
'symfony/stopwatch' => array(
- 'pretty_version' => 'v6.2.7',
- 'version' => '6.2.7.0',
+ 'pretty_version' => 'v7.2.2',
+ 'version' => '7.2.2.0',
+ 'reference' => 'e46690d5b9d7164a6d061cab1e8d46141b9f49df',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/stopwatch',
'aliases' => array(),
- 'reference' => 'f3adc98c1061875dd2edcd45e5b04e63d0e29f8f',
'dev_requirement' => false,
),
'symfony/string' => array(
- 'pretty_version' => 'v6.2.8',
- 'version' => '6.2.8.0',
+ 'pretty_version' => 'v7.2.0',
+ 'version' => '7.2.0.0',
+ 'reference' => '446e0d146f991dde3e73f45f2c97a9faad773c82',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/string',
'aliases' => array(),
- 'reference' => '193e83bbd6617d6b2151c37fff10fa7168ebddef',
'dev_requirement' => false,
),
),
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/README.md b/tools/php-cs-fixer/vendor/composer/pcre/README.md
index 973b17d8..49065149 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/README.md
+++ b/tools/php-cs-fixer/vendor/composer/pcre/README.md
@@ -12,7 +12,8 @@ to understand the implications.
It thus makes it easier to work with static analysis tools like PHPStan or Psalm as it
simplifies and reduces the possible return values from all the `preg_*` functions which
-are quite packed with edge cases.
+are quite packed with edge cases. As of v2.2.0 / v3.2.0 the library also comes with a
+[PHPStan extension](#phpstan-extension) for parsing regular expressions and giving you even better output types.
This library is a thin wrapper around `preg_*` functions with [some limitations](#restrictions--limitations).
If you are looking for a richer API to handle regular expressions have a look at
@@ -175,6 +176,13 @@ preg_match('/(a)(b)*(c)(d)*/', 'ac', $matches, $flags);
| group 2 (any unmatched group preceding one that matched) is set to `''`. You cannot tell if it matched an empty string or did not match at all | group 2 is `null` when unmatched and a string if it matched, easy to check for |
| group 4 (any optional group without a matching one following) is missing altogether. So you have to check with `isset()`, but really you want `isset($m[4]) && $m[4] !== ''` for safety unless you are very careful to check that a non-optional group follows it | group 4 is always set, and null in this case as there was no match, easy to check for with `$m[4] !== null` |
+PHPStan Extension
+-----------------
+
+To use the PHPStan extension if you do not use `phpstan/extension-installer` you can include `vendor/composer/pcre/extension.neon` in your PHPStan config.
+
+The extension provides much better type information for $matches as well as regex validation where possible.
+
License
-------
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/composer.json b/tools/php-cs-fixer/vendor/composer/pcre/composer.json
index 40477ff4..d3a7e67c 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/composer.json
+++ b/tools/php-cs-fixer/vendor/composer/pcre/composer.json
@@ -20,9 +20,12 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^5",
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1"
+ "phpunit/phpunit": "^8 || ^9",
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
},
"autoload": {
"psr-4": {
@@ -37,10 +40,15 @@
"extra": {
"branch-alias": {
"dev-main": "3.x-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
}
},
"scripts": {
- "test": "vendor/bin/simple-phpunit",
- "phpstan": "phpstan analyse"
+ "test": "@php vendor/bin/phpunit",
+ "phpstan": "@php phpstan analyse"
}
}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/extension.neon b/tools/php-cs-fixer/vendor/composer/pcre/extension.neon
new file mode 100644
index 00000000..b9cea113
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/extension.neon
@@ -0,0 +1,22 @@
+# composer/pcre PHPStan extensions
+#
+# These can be reused by third party packages by including 'vendor/composer/pcre/extension.neon'
+# in your phpstan config
+
+services:
+ -
+ class: Composer\Pcre\PHPStan\PregMatchParameterOutTypeExtension
+ tags:
+ - phpstan.staticMethodParameterOutTypeExtension
+ -
+ class: Composer\Pcre\PHPStan\PregMatchTypeSpecifyingExtension
+ tags:
+ - phpstan.typeSpecifier.staticMethodTypeSpecifyingExtension
+ -
+ class: Composer\Pcre\PHPStan\PregReplaceCallbackClosureTypeExtension
+ tags:
+ - phpstan.staticMethodParameterClosureTypeExtension
+
+rules:
+ - Composer\Pcre\PHPStan\UnsafeStrictGroupsCallRule
+ - Composer\Pcre\PHPStan\InvalidRegexPatternRule
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllResult.php b/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllResult.php
index 4310c536..b22b52d6 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllResult.php
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllResult.php
@@ -35,7 +35,7 @@ final class MatchAllResult
/**
* @param 0|positive-int $count
- * @param array> $matches
+ * @param array> $matches
*/
public function __construct(int $count, array $matches)
{
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php
index 69dcd062..b7ec3974 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php
@@ -35,7 +35,7 @@ final class MatchAllStrictGroupsResult
/**
* @param 0|positive-int $count
- * @param array> $matches
+ * @param array> $matches
*/
public function __construct(int $count, array $matches)
{
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php
new file mode 100644
index 00000000..8a05fb24
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php
@@ -0,0 +1,142 @@
+
+ */
+class InvalidRegexPatternRule implements Rule
+{
+ public function getNodeType(): string
+ {
+ return StaticCall::class;
+ }
+
+ public function processNode(Node $node, Scope $scope): array
+ {
+ $patterns = $this->extractPatterns($node, $scope);
+
+ $errors = [];
+ foreach ($patterns as $pattern) {
+ $errorMessage = $this->validatePattern($pattern);
+ if ($errorMessage === null) {
+ continue;
+ }
+
+ $errors[] = RuleErrorBuilder::message(sprintf('Regex pattern is invalid: %s', $errorMessage))->identifier('regexp.pattern')->build();
+ }
+
+ return $errors;
+ }
+
+ /**
+ * @return string[]
+ */
+ private function extractPatterns(StaticCall $node, Scope $scope): array
+ {
+ if (!$node->class instanceof FullyQualified) {
+ return [];
+ }
+ $isRegex = $node->class->toString() === Regex::class;
+ $isPreg = $node->class->toString() === Preg::class;
+ if (!$isRegex && !$isPreg) {
+ return [];
+ }
+ if (!$node->name instanceof Node\Identifier || !Preg::isMatch('{^(match|isMatch|grep|replace|split)}', $node->name->name)) {
+ return [];
+ }
+
+ $functionName = $node->name->name;
+ if (!isset($node->getArgs()[0])) {
+ return [];
+ }
+
+ $patternNode = $node->getArgs()[0]->value;
+ $patternType = $scope->getType($patternNode);
+
+ $patternStrings = [];
+
+ foreach ($patternType->getConstantStrings() as $constantStringType) {
+ if ($functionName === 'replaceCallbackArray') {
+ continue;
+ }
+
+ $patternStrings[] = $constantStringType->getValue();
+ }
+
+ foreach ($patternType->getConstantArrays() as $constantArrayType) {
+ if (
+ in_array($functionName, [
+ 'replace',
+ 'replaceCallback',
+ ], true)
+ ) {
+ foreach ($constantArrayType->getValueTypes() as $arrayKeyType) {
+ foreach ($arrayKeyType->getConstantStrings() as $constantString) {
+ $patternStrings[] = $constantString->getValue();
+ }
+ }
+ }
+
+ if ($functionName !== 'replaceCallbackArray') {
+ continue;
+ }
+
+ foreach ($constantArrayType->getKeyTypes() as $arrayKeyType) {
+ foreach ($arrayKeyType->getConstantStrings() as $constantString) {
+ $patternStrings[] = $constantString->getValue();
+ }
+ }
+ }
+
+ return $patternStrings;
+ }
+
+ private function validatePattern(string $pattern): ?string
+ {
+ try {
+ $msg = null;
+ $prev = set_error_handler(function (int $severity, string $message, string $file) use (&$msg): bool {
+ $msg = preg_replace("#^preg_match(_all)?\\(.*?\\): #", '', $message);
+
+ return true;
+ });
+
+ if ($pattern === '') {
+ return 'Empty string is not a valid regular expression';
+ }
+
+ Preg::match($pattern, '');
+ if ($msg !== null) {
+ return $msg;
+ }
+ } catch (PcreException $e) {
+ if ($e->getCode() === PREG_INTERNAL_ERROR && $msg !== null) {
+ return $msg;
+ }
+
+ return preg_replace('{.*? failed executing ".*": }', '', $e->getMessage());
+ } finally {
+ restore_error_handler();
+ }
+
+ return null;
+ }
+
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchFlags.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchFlags.php
new file mode 100644
index 00000000..aa30ab34
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchFlags.php
@@ -0,0 +1,70 @@
+getType($flagsArg->value);
+
+ $constantScalars = $flagsType->getConstantScalarValues();
+ if ($constantScalars === []) {
+ return null;
+ }
+
+ $internalFlagsTypes = [];
+ foreach ($flagsType->getConstantScalarValues() as $constantScalarValue) {
+ if (!is_int($constantScalarValue)) {
+ return null;
+ }
+
+ $internalFlagsTypes[] = new ConstantIntegerType($constantScalarValue | PREG_UNMATCHED_AS_NULL);
+ }
+ return TypeCombinator::union(...$internalFlagsTypes);
+ }
+
+ static public function removeNullFromMatches(Type $matchesType): Type
+ {
+ return TypeTraverser::map($matchesType, static function (Type $type, callable $traverse): Type {
+ if ($type instanceof UnionType || $type instanceof IntersectionType) {
+ return $traverse($type);
+ }
+
+ if ($type instanceof ConstantArrayType) {
+ return new ConstantArrayType(
+ $type->getKeyTypes(),
+ array_map(static function (Type $valueType) use ($traverse): Type {
+ return $traverse($valueType);
+ }, $type->getValueTypes()),
+ $type->getNextAutoIndexes(),
+ [],
+ $type->isList()
+ );
+ }
+
+ if ($type instanceof ArrayType) {
+ return new ArrayType($type->getKeyType(), $traverse($type->getItemType()));
+ }
+
+ return TypeCombinator::removeNull($type);
+ });
+ }
+
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php
new file mode 100644
index 00000000..e0d60208
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php
@@ -0,0 +1,65 @@
+regexShapeMatcher = $regexShapeMatcher;
+ }
+
+ public function isStaticMethodSupported(MethodReflection $methodReflection, ParameterReflection $parameter): bool
+ {
+ return
+ $methodReflection->getDeclaringClass()->getName() === Preg::class
+ && in_array($methodReflection->getName(), [
+ 'match', 'isMatch', 'matchStrictGroups', 'isMatchStrictGroups',
+ 'matchAll', 'isMatchAll', 'matchAllStrictGroups', 'isMatchAllStrictGroups'
+ ], true)
+ && $parameter->getName() === 'matches';
+ }
+
+ public function getParameterOutTypeFromStaticMethodCall(MethodReflection $methodReflection, StaticCall $methodCall, ParameterReflection $parameter, Scope $scope): ?Type
+ {
+ $args = $methodCall->getArgs();
+ $patternArg = $args[0] ?? null;
+ $matchesArg = $args[2] ?? null;
+ $flagsArg = $args[3] ?? null;
+
+ if (
+ $patternArg === null || $matchesArg === null
+ ) {
+ return null;
+ }
+
+ $flagsType = PregMatchFlags::getType($flagsArg, $scope);
+ if ($flagsType === null) {
+ return null;
+ }
+
+ if (stripos($methodReflection->getName(), 'matchAll') !== false) {
+ return $this->regexShapeMatcher->matchAllExpr($patternArg->value, $flagsType, TrinaryLogic::createMaybe(), $scope);
+ }
+
+ return $this->regexShapeMatcher->matchExpr($patternArg->value, $flagsType, TrinaryLogic::createMaybe(), $scope);
+ }
+
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php
new file mode 100644
index 00000000..3db0ce06
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php
@@ -0,0 +1,119 @@
+regexShapeMatcher = $regexShapeMatcher;
+ }
+
+ public function setTypeSpecifier(TypeSpecifier $typeSpecifier): void
+ {
+ $this->typeSpecifier = $typeSpecifier;
+ }
+
+ public function getClass(): string
+ {
+ return Preg::class;
+ }
+
+ public function isStaticMethodSupported(MethodReflection $methodReflection, StaticCall $node, TypeSpecifierContext $context): bool
+ {
+ return in_array($methodReflection->getName(), [
+ 'match', 'isMatch', 'matchStrictGroups', 'isMatchStrictGroups',
+ 'matchAll', 'isMatchAll', 'matchAllStrictGroups', 'isMatchAllStrictGroups'
+ ], true)
+ && !$context->null();
+ }
+
+ public function specifyTypes(MethodReflection $methodReflection, StaticCall $node, Scope $scope, TypeSpecifierContext $context): SpecifiedTypes
+ {
+ $args = $node->getArgs();
+ $patternArg = $args[0] ?? null;
+ $matchesArg = $args[2] ?? null;
+ $flagsArg = $args[3] ?? null;
+
+ if (
+ $patternArg === null || $matchesArg === null
+ ) {
+ return new SpecifiedTypes();
+ }
+
+ $flagsType = PregMatchFlags::getType($flagsArg, $scope);
+ if ($flagsType === null) {
+ return new SpecifiedTypes();
+ }
+
+ if (stripos($methodReflection->getName(), 'matchAll') !== false) {
+ $matchedType = $this->regexShapeMatcher->matchAllExpr($patternArg->value, $flagsType, TrinaryLogic::createFromBoolean($context->true()), $scope);
+ } else {
+ $matchedType = $this->regexShapeMatcher->matchExpr($patternArg->value, $flagsType, TrinaryLogic::createFromBoolean($context->true()), $scope);
+ }
+
+ if ($matchedType === null) {
+ return new SpecifiedTypes();
+ }
+
+ if (
+ in_array($methodReflection->getName(), ['matchStrictGroups', 'isMatchStrictGroups', 'matchAllStrictGroups', 'isMatchAllStrictGroups'], true)
+ ) {
+ $matchedType = PregMatchFlags::removeNullFromMatches($matchedType);
+ }
+
+ $overwrite = false;
+ if ($context->false()) {
+ $overwrite = true;
+ $context = $context->negate();
+ }
+
+ // @phpstan-ignore function.alreadyNarrowedType
+ if (method_exists('PHPStan\Analyser\SpecifiedTypes', 'setRootExpr')) {
+ $typeSpecifier = $this->typeSpecifier->create(
+ $matchesArg->value,
+ $matchedType,
+ $context,
+ $scope
+ )->setRootExpr($node);
+
+ return $overwrite ? $typeSpecifier->setAlwaysOverwriteTypes() : $typeSpecifier;
+ }
+
+ // @phpstan-ignore arguments.count
+ return $this->typeSpecifier->create(
+ $matchesArg->value,
+ $matchedType,
+ $context,
+ // @phpstan-ignore argument.type
+ $overwrite,
+ $scope,
+ $node
+ );
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php
new file mode 100644
index 00000000..7b953672
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php
@@ -0,0 +1,91 @@
+regexShapeMatcher = $regexShapeMatcher;
+ }
+
+ public function isStaticMethodSupported(MethodReflection $methodReflection, ParameterReflection $parameter): bool
+ {
+ return in_array($methodReflection->getDeclaringClass()->getName(), [Preg::class, Regex::class], true)
+ && in_array($methodReflection->getName(), ['replaceCallback', 'replaceCallbackStrictGroups'], true)
+ && $parameter->getName() === 'replacement';
+ }
+
+ public function getTypeFromStaticMethodCall(MethodReflection $methodReflection, StaticCall $methodCall, ParameterReflection $parameter, Scope $scope): ?Type
+ {
+ $args = $methodCall->getArgs();
+ $patternArg = $args[0] ?? null;
+ $flagsArg = $args[5] ?? null;
+
+ if (
+ $patternArg === null
+ ) {
+ return null;
+ }
+
+ $flagsType = PregMatchFlags::getType($flagsArg, $scope);
+
+ $matchesType = $this->regexShapeMatcher->matchExpr($patternArg->value, $flagsType, TrinaryLogic::createYes(), $scope);
+ if ($matchesType === null) {
+ return null;
+ }
+
+ if ($methodReflection->getName() === 'replaceCallbackStrictGroups' && count($matchesType->getConstantArrays()) === 1) {
+ $matchesType = $matchesType->getConstantArrays()[0];
+ $matchesType = new ConstantArrayType(
+ $matchesType->getKeyTypes(),
+ array_map(static function (Type $valueType): Type {
+ if (count($valueType->getConstantArrays()) === 1) {
+ $valueTypeArray = $valueType->getConstantArrays()[0];
+ return new ConstantArrayType(
+ $valueTypeArray->getKeyTypes(),
+ array_map(static function (Type $valueType): Type {
+ return TypeCombinator::removeNull($valueType);
+ }, $valueTypeArray->getValueTypes()),
+ $valueTypeArray->getNextAutoIndexes(),
+ [],
+ $valueTypeArray->isList()
+ );
+ }
+ return TypeCombinator::removeNull($valueType);
+ }, $matchesType->getValueTypes()),
+ $matchesType->getNextAutoIndexes(),
+ [],
+ $matchesType->isList()
+ );
+ }
+
+ return new ClosureType(
+ [
+ new NativeParameterReflection($parameter->getName(), $parameter->isOptional(), $matchesType, $parameter->passedByReference(), $parameter->isVariadic(), $parameter->getDefaultValue()),
+ ],
+ new StringType()
+ );
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php
new file mode 100644
index 00000000..5bced507
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php
@@ -0,0 +1,112 @@
+
+ */
+final class UnsafeStrictGroupsCallRule implements Rule
+{
+ /**
+ * @var RegexArrayShapeMatcher
+ */
+ private $regexShapeMatcher;
+
+ public function __construct(RegexArrayShapeMatcher $regexShapeMatcher)
+ {
+ $this->regexShapeMatcher = $regexShapeMatcher;
+ }
+
+ public function getNodeType(): string
+ {
+ return StaticCall::class;
+ }
+
+ public function processNode(Node $node, Scope $scope): array
+ {
+ if (!$node->class instanceof FullyQualified) {
+ return [];
+ }
+ $isRegex = $node->class->toString() === Regex::class;
+ $isPreg = $node->class->toString() === Preg::class;
+ if (!$isRegex && !$isPreg) {
+ return [];
+ }
+ if (!$node->name instanceof Node\Identifier || !in_array($node->name->name, ['matchStrictGroups', 'isMatchStrictGroups', 'matchAllStrictGroups', 'isMatchAllStrictGroups'], true)) {
+ return [];
+ }
+
+ $args = $node->getArgs();
+ if (!isset($args[0])) {
+ return [];
+ }
+
+ $patternArg = $args[0] ?? null;
+ if ($isPreg) {
+ if (!isset($args[2])) { // no matches set, skip as the matches won't be used anyway
+ return [];
+ }
+ $flagsArg = $args[3] ?? null;
+ } else {
+ $flagsArg = $args[2] ?? null;
+ }
+
+ if ($patternArg === null) {
+ return [];
+ }
+
+ $flagsType = PregMatchFlags::getType($flagsArg, $scope);
+ if ($flagsType === null) {
+ return [];
+ }
+
+ $matchedType = $this->regexShapeMatcher->matchExpr($patternArg->value, $flagsType, TrinaryLogic::createYes(), $scope);
+ if ($matchedType === null) {
+ return [
+ RuleErrorBuilder::message(sprintf('The %s call is potentially unsafe as $matches\' type could not be inferred.', $node->name->name))
+ ->identifier('composerPcre.maybeUnsafeStrictGroups')
+ ->build(),
+ ];
+ }
+
+ if (count($matchedType->getConstantArrays()) === 1) {
+ $matchedType = $matchedType->getConstantArrays()[0];
+ $nullableGroups = [];
+ foreach ($matchedType->getValueTypes() as $index => $type) {
+ if (TypeCombinator::containsNull($type)) {
+ $nullableGroups[] = $matchedType->getKeyTypes()[$index]->getValue();
+ }
+ }
+
+ if (\count($nullableGroups) > 0) {
+ return [
+ RuleErrorBuilder::message(sprintf(
+ 'The %s call is unsafe as match group%s "%s" %s optional and may be null.',
+ $node->name->name,
+ \count($nullableGroups) > 1 ? 's' : '',
+ implode('", "', $nullableGroups),
+ \count($nullableGroups) > 1 ? 'are' : 'is'
+ ))->identifier('composerPcre.unsafeStrictGroups')->build(),
+ ];
+ }
+ }
+
+ return [];
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/PcreException.php b/tools/php-cs-fixer/vendor/composer/pcre/src/PcreException.php
index 218b2f2d..23d93279 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/src/PcreException.php
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/PcreException.php
@@ -39,13 +39,8 @@ private static function pcreLastErrorMessage($code)
return preg_last_error_msg();
}
- // older php versions did not set the code properly in all cases
- if (PHP_VERSION_ID < 70201 && $code === 0) {
- return 'UNDEFINED_ERROR';
- }
-
$constants = get_defined_constants(true);
- if (!isset($constants['pcre'])) {
+ if (!isset($constants['pcre']) || !is_array($constants['pcre'])) {
return 'UNDEFINED_ERROR';
}
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/Preg.php b/tools/php-cs-fixer/vendor/composer/pcre/src/Preg.php
index 0e35f7d6..400abbfe 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/src/Preg.php
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/Preg.php
@@ -20,7 +20,7 @@ class Preg
/**
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
* @return 0|1
*
@@ -42,7 +42,7 @@ public static function match(string $pattern, string $subject, ?array &$matches
* Variant of `match()` which outputs non-null matches (or throws)
*
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
* @return 0|1
* @throws UnexpectedNullMatchException
@@ -61,7 +61,7 @@ public static function matchStrictGroups(string $pattern, string $subject, ?arra
* Runs preg_match with PREG_OFFSET_CAPTURE
*
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_OFFSET_CAPTURE are always set, no other flags are supported
* @return 0|1
*
@@ -79,7 +79,7 @@ public static function matchWithOffsets(string $pattern, string $subject, ?array
/**
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
* @return 0|positive-int
*
@@ -102,7 +102,7 @@ public static function matchAll(string $pattern, string $subject, ?array &$match
* Variant of `match()` which outputs non-null matches (or throws)
*
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
* @return 0|positive-int
* @throws UnexpectedNullMatchException
@@ -121,11 +121,11 @@ public static function matchAllStrictGroups(string $pattern, string $subject, ?a
* Runs preg_match_all with PREG_OFFSET_CAPTURE
*
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported
* @return 0|positive-int
*
- * @phpstan-param array}>> $matches
+ * @param-out array}>> $matches
*/
public static function matchAllWithOffsets(string $pattern, string $subject, ?array &$matches, int $flags = 0, int $offset = 0): int
{
@@ -147,7 +147,7 @@ public static function matchAllWithOffsets(string $pattern, string $subject, ?ar
*
* @param-out int<0, max> $count
*/
- public static function replace($pattern, $replacement, $subject, int $limit = -1, int &$count = null): string
+ public static function replace($pattern, $replacement, $subject, int $limit = -1, ?int &$count = null): string
{
if (!is_scalar($subject)) {
if (is_array($subject)) {
@@ -167,14 +167,14 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1
/**
* @param string|string[] $pattern
- * @param callable(array): string $replacement
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement
* @param string $subject
* @param int $count Set by method
* @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*
* @param-out int<0, max> $count
*/
- public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, int &$count = null, int $flags = 0): string
+ public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
{
if (!is_scalar($subject)) {
if (is_array($subject)) {
@@ -196,14 +196,14 @@ public static function replaceCallback($pattern, callable $replacement, $subject
* Variant of `replaceCallback()` which outputs non-null matches (or throws)
*
* @param string $pattern
- * @param callable(array): string $replacement
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement
* @param string $subject
* @param int $count Set by method
- * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+
+ * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*
* @param-out int<0, max> $count
*/
- public static function replaceCallbackStrictGroups(string $pattern, callable $replacement, $subject, int $limit = -1, int &$count = null, int $flags = 0): string
+ public static function replaceCallbackStrictGroups(string $pattern, callable $replacement, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
{
return self::replaceCallback($pattern, function (array $matches) use ($pattern, $replacement) {
return $replacement(self::enforceNonNullMatches($pattern, $matches, 'replaceCallback'));
@@ -211,14 +211,14 @@ public static function replaceCallbackStrictGroups(string $pattern, callable $re
}
/**
- * @param array): string> $pattern
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern
* @param string $subject
* @param int $count Set by method
* @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*
* @param-out int<0, max> $count
*/
- public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, int &$count = null, int $flags = 0): string
+ public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
{
if (!is_scalar($subject)) {
if (is_array($subject)) {
@@ -291,7 +291,7 @@ public static function grep(string $pattern, array $array, int $flags = 0): arra
* Variant of match() which returns a bool instead of int
*
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
*
* @param-out array $matches
@@ -305,7 +305,7 @@ public static function isMatch(string $pattern, string $subject, ?array &$matche
* Variant of `isMatch()` which outputs non-null matches (or throws)
*
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
* @throws UnexpectedNullMatchException
*
@@ -320,7 +320,7 @@ public static function isMatchStrictGroups(string $pattern, string $subject, ?ar
* Variant of matchAll() which returns a bool instead of int
*
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
*
* @param-out array> $matches
@@ -334,7 +334,7 @@ public static function isMatchAll(string $pattern, string $subject, ?array &$mat
* Variant of `isMatchAll()` which outputs non-null matches (or throws)
*
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
*
* @param-out array> $matches
@@ -350,7 +350,7 @@ public static function isMatchAllStrictGroups(string $pattern, string $subject,
* Runs preg_match with PREG_OFFSET_CAPTURE
*
* @param non-empty-string $pattern
- * @param array $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
*
* @param-out array}> $matches
@@ -366,7 +366,7 @@ public static function isMatchWithOffsets(string $pattern, string $subject, ?arr
* Runs preg_match_all with PREG_OFFSET_CAPTURE
*
* @param non-empty-string $pattern
- * @param array> $matches Set by method
+ * @param array $matches Set by method
* @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
*
* @param-out array}>> $matches
@@ -391,16 +391,18 @@ private static function checkSetOrder(int $flags): void
}
/**
- * @param array $matches
+ * @param array $matches
* @return array
* @throws UnexpectedNullMatchException
*/
private static function enforceNonNullMatches(string $pattern, array $matches, string $variantMethod)
{
foreach ($matches as $group => $match) {
- if (null === $match) {
- throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.');
+ if (is_string($match) || (is_array($match) && is_string($match[0]))) {
+ continue;
}
+
+ throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.');
}
/** @var array */
diff --git a/tools/php-cs-fixer/vendor/composer/pcre/src/Regex.php b/tools/php-cs-fixer/vendor/composer/pcre/src/Regex.php
index 112fa325..038cf069 100644
--- a/tools/php-cs-fixer/vendor/composer/pcre/src/Regex.php
+++ b/tools/php-cs-fixer/vendor/composer/pcre/src/Regex.php
@@ -43,6 +43,7 @@ public static function match(string $pattern, string $subject, int $flags = 0, i
*/
public static function matchStrictGroups(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchStrictGroupsResult
{
+ // @phpstan-ignore composerPcre.maybeUnsafeStrictGroups
$count = Preg::matchStrictGroups($pattern, $subject, $matches, $flags, $offset);
return new MatchStrictGroupsResult($count, $matches);
@@ -87,6 +88,7 @@ public static function matchAllStrictGroups(string $pattern, string $subject, in
self::checkOffsetCapture($flags, 'matchAllWithOffsets');
self::checkSetOrder($flags);
+ // @phpstan-ignore composerPcre.maybeUnsafeStrictGroups
$count = Preg::matchAllStrictGroups($pattern, $subject, $matches, $flags, $offset);
return new MatchAllStrictGroupsResult($count, $matches);
@@ -120,7 +122,7 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1
/**
* @param string|string[] $pattern
- * @param callable(array): string $replacement
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement
* @param string $subject
* @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*/
@@ -135,9 +137,9 @@ public static function replaceCallback($pattern, callable $replacement, $subject
* Variant of `replaceCallback()` which outputs non-null matches (or throws)
*
* @param string $pattern
- * @param callable(array): string $replacement
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement
* @param string $subject
- * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+
+ * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*/
public static function replaceCallbackStrictGroups($pattern, callable $replacement, $subject, int $limit = -1, int $flags = 0): ReplaceResult
{
@@ -147,7 +149,7 @@ public static function replaceCallbackStrictGroups($pattern, callable $replaceme
}
/**
- * @param array): string> $pattern
+ * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern
* @param string $subject
* @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
*/
diff --git a/tools/php-cs-fixer/vendor/composer/platform_check.php b/tools/php-cs-fixer/vendor/composer/platform_check.php
index 4c3a5d68..d32d90c6 100644
--- a/tools/php-cs-fixer/vendor/composer/platform_check.php
+++ b/tools/php-cs-fixer/vendor/composer/platform_check.php
@@ -4,8 +4,8 @@
$issues = array();
-if (!(PHP_VERSION_ID >= 80100)) {
- $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
+if (!(PHP_VERSION_ID >= 80200)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.';
}
if ($issues) {
diff --git a/tools/php-cs-fixer/vendor/composer/semver/CHANGELOG.md b/tools/php-cs-fixer/vendor/composer/semver/CHANGELOG.md
index c9514773..bad46cd1 100644
--- a/tools/php-cs-fixer/vendor/composer/semver/CHANGELOG.md
+++ b/tools/php-cs-fixer/vendor/composer/semver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
+### [3.4.3] 2024-09-19
+
+ * Fixed some type annotations
+
+### [3.4.2] 2024-07-12
+
+ * Fixed PHP 5.3 syntax error
+
+### [3.4.1] 2024-07-12
+
+ * Fixed normalizeStability's return type to enforce valid stabilities
+
+### [3.4.0] 2023-08-31
+
+ * Support larger major version numbers (#149)
+
### [3.3.2] 2022-04-01
* Fixed handling of non-string values (#134)
@@ -175,6 +191,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint`
* Changed: code style using php-cs-fixer.
+[3.4.3]: https://github.com/composer/semver/compare/3.4.2...3.4.3
+[3.4.2]: https://github.com/composer/semver/compare/3.4.1...3.4.2
+[3.4.1]: https://github.com/composer/semver/compare/3.4.0...3.4.1
+[3.4.0]: https://github.com/composer/semver/compare/3.3.2...3.4.0
[3.3.2]: https://github.com/composer/semver/compare/3.3.1...3.3.2
[3.3.1]: https://github.com/composer/semver/compare/3.3.0...3.3.1
[3.3.0]: https://github.com/composer/semver/compare/3.2.9...3.3.0
diff --git a/tools/php-cs-fixer/vendor/composer/semver/README.md b/tools/php-cs-fixer/vendor/composer/semver/README.md
index 35db99a5..76778490 100644
--- a/tools/php-cs-fixer/vendor/composer/semver/README.md
+++ b/tools/php-cs-fixer/vendor/composer/semver/README.md
@@ -6,8 +6,9 @@ Semver (Semantic Versioning) library that offers utilities, version constraint p
Originally written as part of [composer/composer](https://github.com/composer/composer),
now extracted and made available as a stand-alone library.
-[](https://github.com/composer/semver/actions)
-
+[](https://github.com/composer/semver/actions/workflows/continuous-integration.yml)
+[](https://github.com/composer/semver/actions/workflows/lint.yml)
+[](https://github.com/composer/semver/actions/workflows/phpstan.yml)
Installation
------------
@@ -15,7 +16,7 @@ Installation
Install the latest version with:
```bash
-$ composer require composer/semver
+composer require composer/semver
```
diff --git a/tools/php-cs-fixer/vendor/composer/semver/composer.json b/tools/php-cs-fixer/vendor/composer/semver/composer.json
index ba78676d..1fad9e54 100644
--- a/tools/php-cs-fixer/vendor/composer/semver/composer.json
+++ b/tools/php-cs-fixer/vendor/composer/semver/composer.json
@@ -27,15 +27,15 @@
}
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues"
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.2 || ^5",
- "phpstan/phpstan": "^1.4"
+ "symfony/phpunit-bridge": "^3 || ^7",
+ "phpstan/phpstan": "^1.11"
},
"autoload": {
"psr-4": {
diff --git a/tools/php-cs-fixer/vendor/composer/semver/src/CompilingMatcher.php b/tools/php-cs-fixer/vendor/composer/semver/src/CompilingMatcher.php
index 45bce70a..aea1d3b9 100644
--- a/tools/php-cs-fixer/vendor/composer/semver/src/CompilingMatcher.php
+++ b/tools/php-cs-fixer/vendor/composer/semver/src/CompilingMatcher.php
@@ -64,7 +64,7 @@ public static function clear()
* @phpstan-param Constraint::OP_* $operator
* @param string $version
*
- * @return mixed
+ * @return bool
*/
public static function match(ConstraintInterface $constraint, $operator, $version)
{
diff --git a/tools/php-cs-fixer/vendor/composer/semver/src/VersionParser.php b/tools/php-cs-fixer/vendor/composer/semver/src/VersionParser.php
index 202ce247..305a0fae 100644
--- a/tools/php-cs-fixer/vendor/composer/semver/src/VersionParser.php
+++ b/tools/php-cs-fixer/vendor/composer/semver/src/VersionParser.php
@@ -82,11 +82,16 @@ public static function parseStability($version)
* @param string $stability
*
* @return string
+ * @phpstan-return 'stable'|'RC'|'beta'|'alpha'|'dev'
*/
public static function normalizeStability($stability)
{
$stability = strtolower((string) $stability);
+ if (!in_array($stability, array('stable', 'rc', 'beta', 'alpha', 'dev'), true)) {
+ throw new \InvalidArgumentException('Invalid stability string "'.$stability.'", expected one of stable, RC, beta, alpha or dev');
+ }
+
return $stability === 'rc' ? 'RC' : $stability;
}
@@ -134,15 +139,15 @@ public function normalize($version, $fullVersion = null)
}
// match classical versioning
- if (preg_match('{^v?(\d{1,5})(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) {
+ if (preg_match('{^v?(\d{1,5}+)(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) {
$version = $matches[1]
. (!empty($matches[2]) ? $matches[2] : '.0')
. (!empty($matches[3]) ? $matches[3] : '.0')
. (!empty($matches[4]) ? $matches[4] : '.0');
$index = 5;
// match date(time) based versioning
- } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3})?)' . self::$modifierRegex . '$}i', $version, $matches)) {
- $version = preg_replace('{\D}', '.', $matches[1]);
+ } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3}){0,2})' . self::$modifierRegex . '$}i', $version, $matches)) {
+ $version = (string) preg_replace('{\D}', '.', $matches[1]);
$index = 2;
}
@@ -260,16 +265,16 @@ public function parseConstraints($constraints)
}
$orGroups = array();
- foreach ($orConstraints as $constraints) {
- $andConstraints = preg_split('{(?< ,]) *(?< ,]) *(? 1) {
$constraintObjects = array();
- foreach ($andConstraints as $constraint) {
- foreach ($this->parseConstraint($constraint) as $parsedConstraint) {
- $constraintObjects[] = $parsedConstraint;
+ foreach ($andConstraints as $andConstraint) {
+ foreach ($this->parseConstraint($andConstraint) as $parsedAndConstraint) {
+ $constraintObjects[] = $parsedAndConstraint;
}
}
} else {
@@ -285,11 +290,11 @@ public function parseConstraints($constraints)
$orGroups[] = $constraint;
}
- $constraint = MultiConstraint::create($orGroups, false);
+ $parsedConstraint = MultiConstraint::create($orGroups, false);
- $constraint->setPrettyString($prettyConstraint);
+ $parsedConstraint->setPrettyString($prettyConstraint);
- return $constraint;
+ return $parsedConstraint;
}
/**
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/CHANGELOG.md b/tools/php-cs-fixer/vendor/composer/xdebug-handler/CHANGELOG.md
index c5b5bcf4..62ebe223 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/CHANGELOG.md
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/CHANGELOG.md
@@ -1,5 +1,12 @@
## [Unreleased]
+## [3.0.5] - 2024-05-06
+ * Fixed: fail restart if PHP_BINARY is not available
+
+## [3.0.4] - 2024-03-26
+ * Added: Functional tests.
+ * Fixed: Incompatibility with PHPUnit 10.
+
## [3.0.3] - 2022-02-25
* Added: support for composer/pcre versions 2 and 3.
@@ -108,8 +115,10 @@
* Break: the following class was renamed:
- `Composer\XdebugHandler` -> `Composer\XdebugHandler\XdebugHandler`
-[Unreleased]: https://github.com/composer/xdebug-handler/compare/3.0.3...HEAD
-[3.0.2]: https://github.com/composer/xdebug-handler/compare/3.0.2...3.0.3
+[Unreleased]: https://github.com/composer/xdebug-handler/compare/3.0.5...HEAD
+[3.0.5]: https://github.com/composer/xdebug-handler/compare/3.0.4...3.0.5
+[3.0.4]: https://github.com/composer/xdebug-handler/compare/3.0.3...3.0.4
+[3.0.3]: https://github.com/composer/xdebug-handler/compare/3.0.2...3.0.3
[3.0.2]: https://github.com/composer/xdebug-handler/compare/3.0.1...3.0.2
[3.0.1]: https://github.com/composer/xdebug-handler/compare/3.0.0...3.0.1
[3.0.0]: https://github.com/composer/xdebug-handler/compare/2.0.3...3.0.0
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/README.md b/tools/php-cs-fixer/vendor/composer/xdebug-handler/README.md
index 56618fc1..f7f581ac 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/README.md
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/README.md
@@ -51,6 +51,7 @@ The constructor takes a single parameter, `$envPrefix`, which is upper-cased and
* [Process configuration](#process-configuration)
* [Troubleshooting](#troubleshooting)
* [Extending the library](#extending-the-library)
+* [Examples](#examples)
### How it works
@@ -64,6 +65,8 @@ A temporary ini file is created from the loaded (and scanned) ini files, with an
* The application runs and exits.
* The main process exits with the exit code from the restarted process.
+See [Examples](#examples) for further information.
+
#### Signal handling
Asynchronous signal handling is automatically enabled if the pcntl extension is loaded. `SIGINT` is set to `SIG_IGN` in the parent
process and restored to `SIG_DFL` in the restarted process (if no other handler has been set).
@@ -74,7 +77,7 @@ From PHP 7.4 on Windows, `CTRL+C` and `CTRL+BREAK` handling is automatically ena
There are a few things to be aware of when running inside a restarted process.
* Extensions set on the command-line will not be loaded.
-* Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles).
+* Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles-array).
* Php sub-processes may be loaded with Xdebug enabled - see [Process configuration](#process-configuration).
### Helper methods
@@ -200,12 +203,12 @@ Uses environment variables to remove Xdebug from the new process and persist the
>_If the new process calls a PHP sub-process, Xdebug will not be loaded in that sub-process._
-This strategy can be used in the restart by calling [setPersistent()](#setpersistent).
+This strategy can be used in the restart by calling [setPersistent()](#setpersistent-self).
#### Sub-processes
The `PhpConfig` helper class makes it easy to invoke a PHP sub-process (with or without Xdebug loaded), regardless of whether there has been a restart.
-Each of its methods returns an array of PHP options (to add to the command-line) and sets up the environment for the required strategy. The [getRestartSettings()](#getrestartsettings) method is used internally.
+Each of its methods returns an array of PHP options (to add to the command-line) and sets up the environment for the required strategy. The [getRestartSettings()](#getrestartsettings-array) method is used internally.
* `useOriginal()` - Xdebug will be loaded in the new process.
* `useStandard()` - Xdebug will **not** be loaded in the new process - see [standard settings](#standard-settings).
@@ -245,7 +248,7 @@ The API is defined by classes and their accessible elements that are not annotat
By default the process will restart if Xdebug is loaded and not running with `xdebug.mode=off`. Extending this method allows an application to decide, by returning a boolean (or equivalent) value.
It is only called if `MYAPP_ALLOW_XDEBUG` is empty, so it will not be called in the restarted process (where this variable contains internal data), or if the restart has been overridden.
-Note that the [setMainScript()](#setmainscriptscript) and [setPersistent()](#setpersistent) setters can be used here, if required.
+Note that the [setMainScript()](#setmainscriptstring-script-self) and [setPersistent()](#setpersistent-self) setters can be used here, if required.
#### _restart(array $command): void_
An application can extend this to modify the temporary ini file, its location given in the `tmpIni` property. New settings can be safely appended to the end of the data, which is `PHP_EOL` terminated.
@@ -294,5 +297,9 @@ class MyRestarter extends XdebugHandler
}
```
+### Examples
+The `tests\App` directory contains command-line scripts that demonstrate the internal workings in a variety of scenarios.
+See [Functional Test Scripts](./tests/App/README.md).
+
## License
composer/xdebug-handler is licensed under the MIT License, see the LICENSE file for details.
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/composer.json b/tools/php-cs-fixer/vendor/composer/xdebug-handler/composer.json
index 6b649dab..d205dc10 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/composer.json
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/composer.json
@@ -14,7 +14,7 @@
}
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/xdebug-handler/issues"
},
"require": {
@@ -23,9 +23,9 @@
"composer/pcre": "^1 || ^2 || ^3"
},
"require-dev": {
- "symfony/phpunit-bridge": "^6.0",
"phpstan/phpstan": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.1"
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
"autoload": {
"psr-4": {
@@ -38,7 +38,7 @@
}
},
"scripts": {
- "test": "@php vendor/bin/simple-phpunit",
+ "test": "@php vendor/bin/phpunit",
"phpstan": "@php vendor/bin/phpstan analyse"
}
}
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Process.php b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Process.php
index c612200b..4e9f076b 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Process.php
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Process.php
@@ -41,6 +41,7 @@ public static function escape(string $arg, bool $meta = true, bool $module = fal
$quote = strpbrk($arg, " \t") !== false || $arg === '';
$arg = Preg::replace('/(\\\\*)"/', '$1$1\\"', $arg, -1, $dquotes);
+ $dquotes = (bool) $dquotes;
if ($meta) {
$meta = $dquotes || Preg::isMatch('/%[^%]+%/', $arg);
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Status.php b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Status.php
index b434f859..96c5944a 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Status.php
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/Status.php
@@ -82,14 +82,33 @@ public function setLogger(LoggerInterface $logger): void
public function report(string $op, ?string $data): void
{
if ($this->logger !== null || $this->debug) {
- $callable = [$this, 'report'.$op];
-
- if (!is_callable($callable)) {
- throw new \InvalidArgumentException('Unknown op handler: '.$op);
+ $param = (string) $data;
+
+ switch($op) {
+ case self::CHECK:
+ $this->reportCheck($param);
+ break;
+ case self::ERROR:
+ $this->reportError($param);
+ break;
+ case self::INFO:
+ $this->reportInfo($param);
+ break;
+ case self::NORESTART:
+ $this->reportNoRestart();
+ break;
+ case self::RESTART:
+ $this->reportRestart();
+ break;
+ case self::RESTARTED:
+ $this->reportRestarted();
+ break;
+ case self::RESTARTING:
+ $this->reportRestarting($param);
+ break;
+ default:
+ throw new \InvalidArgumentException('Unknown op handler: '.$op);
}
-
- $params = $data !== null ? [$data] : [];
- call_user_func_array($callable, $params);
}
}
@@ -180,7 +199,7 @@ private function reportRestarting(string $command): void
{
$text = sprintf('Process restarting (%s)', $this->getEnvAllow());
$this->output($text);
- $text = 'Running '.$command;
+ $text = 'Running: '.$command;
$this->output($text);
}
diff --git a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/XdebugHandler.php b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/XdebugHandler.php
index 9052bfa4..a665939d 100644
--- a/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/XdebugHandler.php
+++ b/tools/php-cs-fixer/vendor/composer/xdebug-handler/src/XdebugHandler.php
@@ -143,9 +143,9 @@ public function check(): void
if (!((bool) $envArgs[0]) && $this->requiresRestart(self::$xdebugActive)) {
// Restart required
$this->notify(Status::RESTART);
+ $command = $this->prepareRestart();
- if ($this->prepareRestart()) {
- $command = $this->getCommand();
+ if ($command !== null) {
$this->restart($command);
}
return;
@@ -183,9 +183,9 @@ public function check(): void
* Returns an array of php.ini locations with at least one entry
*
* The equivalent of calling php_ini_loaded_file then php_ini_scanned_files.
- * The loaded ini location is the first entry and may be empty.
+ * The loaded ini location is the first entry and may be an empty string.
*
- * @return string[]
+ * @return non-empty-list
*/
public static function getAllIniFiles(): array
{
@@ -267,7 +267,7 @@ protected function requiresRestart(bool $default): bool
/**
* Allows an extending class to access the tmpIni
*
- * @param string[] $command *
+ * @param non-empty-list $command
*/
protected function restart(array $command): void
{
@@ -277,24 +277,26 @@ protected function restart(array $command): void
/**
* Executes the restarted command then deletes the tmp ini
*
- * @param string[] $command
+ * @param non-empty-list $command
* @phpstan-return never
*/
private function doRestart(array $command): void
{
- $this->tryEnableSignals();
- $this->notify(Status::RESTARTING, implode(' ', $command));
-
if (PHP_VERSION_ID >= 70400) {
$cmd = $command;
+ $displayCmd = sprintf('[%s]', implode(', ', $cmd));
} else {
$cmd = Process::escapeShellCommand($command);
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
// Outer quotes required on cmd string below PHP 8
$cmd = '"'.$cmd.'"';
}
+ $displayCmd = $cmd;
}
+ $this->tryEnableSignals();
+ $this->notify(Status::RESTARTING, $displayCmd);
+
$process = proc_open($cmd, [], $pipes);
if (is_resource($process)) {
$exitCode = proc_close($process);
@@ -318,52 +320,74 @@ private function doRestart(array $command): void
}
/**
- * Returns true if everything was written for the restart
+ * Returns the command line array if everything was written for the restart
*
* If any of the following fails (however unlikely) we must return false to
* stop potential recursion:
* - tmp ini file creation
* - environment variable creation
+ *
+ * @return non-empty-list|null
*/
- private function prepareRestart(): bool
+ private function prepareRestart(): ?array
{
+ if (!$this->cli) {
+ $this->notify(Status::ERROR, 'Unsupported SAPI: '.PHP_SAPI);
+ return null;
+ }
+
+ if (($argv = $this->checkServerArgv()) === null) {
+ $this->notify(Status::ERROR, '$_SERVER[argv] is not as expected');
+ return null;
+ }
+
+ if (!$this->checkConfiguration($info)) {
+ $this->notify(Status::ERROR, $info);
+ return null;
+ }
+
+ $mainScript = (string) $this->script;
+ if (!$this->checkMainScript($mainScript, $argv)) {
+ $this->notify(Status::ERROR, 'Unable to access main script: '.$mainScript);
+ return null;
+ }
+
+ $tmpDir = sys_get_temp_dir();
+ $iniError = 'Unable to create temp ini file at: '.$tmpDir;
+
+ if (($tmpfile = @tempnam($tmpDir, '')) === false) {
+ $this->notify(Status::ERROR, $iniError);
+ return null;
+ }
+
$error = null;
$iniFiles = self::getAllIniFiles();
$scannedInis = count($iniFiles) > 1;
- $tmpDir = sys_get_temp_dir();
- if (!$this->cli) {
- $error = 'Unsupported SAPI: '.PHP_SAPI;
- } elseif (!$this->checkConfiguration($info)) {
- $error = $info;
- } elseif (!$this->checkMainScript()) {
- $error = 'Unable to access main script: '.$this->script;
- } elseif (!$this->writeTmpIni($iniFiles, $tmpDir, $error)) {
- $error = $error !== null ? $error : 'Unable to create temp ini file at: '.$tmpDir;
- } elseif (!$this->setEnvironment($scannedInis, $iniFiles)) {
- $error = 'Unable to set environment variables';
+ if (!$this->writeTmpIni($tmpfile, $iniFiles, $error)) {
+ $this->notify(Status::ERROR, $error ?? $iniError);
+ @unlink($tmpfile);
+ return null;
}
- if ($error !== null) {
- $this->notify(Status::ERROR, $error);
+ if (!$this->setEnvironment($scannedInis, $iniFiles, $tmpfile)) {
+ $this->notify(Status::ERROR, 'Unable to set environment variables');
+ @unlink($tmpfile);
+ return null;
}
- return $error === null;
+ $this->tmpIni = $tmpfile;
+
+ return $this->getCommand($argv, $tmpfile, $mainScript);
}
/**
* Returns true if the tmp ini file was written
*
- * @param string[] $iniFiles All ini files used in the current process
+ * @param non-empty-list $iniFiles All ini files used in the current process
*/
- private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error): bool
+ private function writeTmpIni(string $tmpFile, array $iniFiles, ?string &$error): bool
{
- if (($tmpfile = @tempnam($tmpDir, '')) === false) {
- return false;
- }
-
- $this->tmpIni = $tmpfile;
-
// $iniFiles has at least one item and it may be empty
if ($iniFiles[0] === '') {
array_shift($iniFiles);
@@ -380,7 +404,7 @@ private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error):
return false;
}
// Check and remove directives after HOST and PATH sections
- if (Preg::isMatchWithOffsets($sectionRegex, $data, $matches, PREG_OFFSET_CAPTURE)) {
+ if (Preg::isMatchWithOffsets($sectionRegex, $data, $matches)) {
$data = substr($data, 0, $matches[0][1]);
}
$content .= Preg::replace($xdebugRegex, ';$1', $data).PHP_EOL;
@@ -400,25 +424,26 @@ private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error):
// Work-around for https://bugs.php.net/bug.php?id=75932
$content .= 'opcache.enable_cli=0'.PHP_EOL;
- return (bool) @file_put_contents($this->tmpIni, $content);
+ return (bool) @file_put_contents($tmpFile, $content);
}
/**
* Returns the command line arguments for the restart
*
- * @return string[]
+ * @param non-empty-list $argv
+ * @return non-empty-list
*/
- private function getCommand(): array
+ private function getCommand(array $argv, string $tmpIni, string $mainScript): array
{
$php = [PHP_BINARY];
- $args = array_slice($_SERVER['argv'], 1);
+ $args = array_slice($argv, 1);
if (!$this->persistent) {
// Use command-line options
- array_push($php, '-n', '-c', $this->tmpIni);
+ array_push($php, '-n', '-c', $tmpIni);
}
- return array_merge($php, [$this->script], $args);
+ return array_merge($php, [$mainScript], $args);
}
/**
@@ -426,9 +451,9 @@ private function getCommand(): array
*
* No need to update $_SERVER since this is set in the restarted process.
*
- * @param string[] $iniFiles All ini files used in the current process
+ * @param non-empty-list $iniFiles All ini files used in the current process
*/
- private function setEnvironment(bool $scannedInis, array $iniFiles): bool
+ private function setEnvironment(bool $scannedInis, array $iniFiles, string $tmpIni): bool
{
$scanDir = getenv('PHP_INI_SCAN_DIR');
$phprc = getenv('PHPRC');
@@ -440,7 +465,7 @@ private function setEnvironment(bool $scannedInis, array $iniFiles): bool
if ($this->persistent) {
// Use the environment to persist the settings
- if (!putenv('PHP_INI_SCAN_DIR=') || !putenv('PHPRC='.$this->tmpIni)) {
+ if (!putenv('PHP_INI_SCAN_DIR=') || !putenv('PHPRC='.$tmpIni)) {
return false;
}
}
@@ -495,15 +520,17 @@ private function mergeLoadedConfig(array $loadedConfig, array $iniConfig): strin
/**
* Returns true if the script name can be used
+ *
+ * @param non-empty-list $argv
*/
- private function checkMainScript(): bool
+ private function checkMainScript(string &$mainScript, array $argv): bool
{
- if ($this->script !== null) {
+ if ($mainScript !== '') {
// Allow an application to set -- for standard input
- return file_exists($this->script) || '--' === $this->script;
+ return file_exists($mainScript) || '--' === $mainScript;
}
- if (file_exists($this->script = $_SERVER['argv'][0])) {
+ if (file_exists($mainScript = $argv[0])) {
return true;
}
@@ -512,7 +539,7 @@ private function checkMainScript(): bool
$main = end($trace);
if ($main !== false && isset($main['file'])) {
- return file_exists($this->script = $main['file']);
+ return file_exists($mainScript = $main['file']);
}
return false;
@@ -521,7 +548,7 @@ private function checkMainScript(): bool
/**
* Adds restart settings to the environment
*
- * @param string[] $envArgs
+ * @param non-empty-list $envArgs
*/
private function setEnvRestartSettings(array $envArgs): void
{
@@ -563,6 +590,11 @@ private function checkConfiguration(?string &$info): bool
return false;
}
+ if (!file_exists(PHP_BINARY)) {
+ $info = 'PHP_BINARY is not available';
+ return false;
+ }
+
if (extension_loaded('uopz') && !((bool) ini_get('uopz.disable'))) {
// uopz works at opcode level and disables exit calls
if (function_exists('uopz_allow_exit')) {
@@ -619,6 +651,28 @@ private function tryEnableSignals(): void
}
}
+ /**
+ * Returns $_SERVER['argv'] if it is as expected
+ *
+ * @return non-empty-list|null
+ */
+ private function checkServerArgv(): ?array
+ {
+ $result = [];
+
+ if (isset($_SERVER['argv']) && is_array($_SERVER['argv'])) {
+ foreach ($_SERVER['argv'] as $value) {
+ if (!is_string($value)) {
+ return null;
+ }
+
+ $result[] = $value;
+ }
+ }
+
+ return count($result) > 0 ? $result : null;
+ }
+
/**
* Sets static properties $xdebugActive, $xdebugVersion and $xdebugMode
*/
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/README.md b/tools/php-cs-fixer/vendor/doctrine/annotations/README.md
deleted file mode 100644
index 6b8c0359..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-⚠️ PHP 8 introduced
-[attributes](https://www.php.net/manual/en/language.attributes.overview.php),
-which are a native replacement for annotations. As such, this library is
-considered feature complete, and should receive exclusively bugfixes and
-security fixes.
-
-# Doctrine Annotations
-
-[](https://github.com/doctrine/persistence/actions)
-[](https://www.versioneye.com/package/php--doctrine--annotations)
-[](https://www.versioneye.com/php/doctrine:annotations/references)
-[](https://packagist.org/packages/doctrine/annotations)
-[](https://packagist.org/packages/doctrine/annotations)
-
-Docblock Annotations Parser library (extracted from [Doctrine Common](https://github.com/doctrine/common)).
-
-## Documentation
-
-See the [doctrine-project website](https://www.doctrine-project.org/projects/doctrine-annotations/en/latest/index.html).
-
-## Contributing
-
-When making a pull request, make sure your changes follow the
-[Coding Standard Guidelines](https://www.doctrine-project.org/projects/doctrine-coding-standard/en/current/reference/index.html#introduction).
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/UPGRADE.md b/tools/php-cs-fixer/vendor/doctrine/annotations/UPGRADE.md
deleted file mode 100644
index 4172708f..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/UPGRADE.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Upgrade from 1.0.x to 2.0.x
-
-- The `NamedArgumentConstructorAnnotation` has been removed. Use the `@NamedArgumentConstructor`
- annotation instead.
-- `SimpleAnnotationReader` has been removed.
-- `DocLexer::peek()` and `DocLexer::glimpse` now return
-`Doctrine\Common\Lexer\Token` objects. When using `doctrine/lexer` 2, these
-implement `ArrayAccess` as a way for you to still be able to treat them as
-arrays in some ways.
-- `CachedReader` and `FileCacheReader` have been removed.
-- `AnnotationRegistry` methods related to registering annotations instead of
- using autoloading have been removed.
-- Parameter type declarations have been added to all methods of all classes. If
-you have classes inheriting from classes inside this package, you should add
-parameter and return type declarations.
-- Support for PHP < 7.2 has been removed
-- `PhpParser::parseClass()` has been removed. Use
- `PhpParser::parseUseStatements()` instead.
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/composer.json b/tools/php-cs-fixer/vendor/doctrine/annotations/composer.json
deleted file mode 100644
index d1d3d8db..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/composer.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "name": "doctrine/annotations",
- "description": "Docblock Annotations Parser",
- "license": "MIT",
- "type": "library",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
- "require": {
- "php": "^7.2 || ^8.0",
- "ext-tokenizer": "*",
- "doctrine/lexer": "^2 || ^3",
- "psr/cache": "^1 || ^2 || ^3"
- },
- "require-dev": {
- "doctrine/cache": "^2.0",
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^5.4 || ^6",
- "vimeo/psalm": "^4.10"
- },
- "suggest": {
- "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "Doctrine\\Performance\\Common\\Annotations\\": "tests/Doctrine/Performance/Common/Annotations",
- "Doctrine\\Tests\\Common\\Annotations\\": "tests/Doctrine/Tests/Common/Annotations"
- },
- "files": [
- "tests/Doctrine/Tests/Common/Annotations/Fixtures/functions.php",
- "tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php"
- ]
- },
- "config": {
- "allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true
- },
- "sort-packages": true
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/annotations.rst b/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/annotations.rst
deleted file mode 100644
index d32b15d1..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/annotations.rst
+++ /dev/null
@@ -1,189 +0,0 @@
-Handling Annotations
-====================
-
-There are several different approaches to handling annotations in PHP.
-Doctrine Annotations maps docblock annotations to PHP classes. Because
-not all docblock annotations are used for metadata purposes a filter is
-applied to ignore or skip classes that are not Doctrine annotations.
-
-Take a look at the following code snippet:
-
-.. code-block:: php
-
- namespace MyProject\Entities;
-
- use Doctrine\ORM\Mapping AS ORM;
- use Symfony\Component\Validator\Constraints AS Assert;
-
- /**
- * @author Benjamin Eberlei
- * @ORM\Entity
- * @MyProject\Annotations\Foobarable
- */
- class User
- {
- /**
- * @ORM\Id @ORM\Column @ORM\GeneratedValue
- * @dummy
- * @var int
- */
- private $id;
-
- /**
- * @ORM\Column(type="string")
- * @Assert\NotEmpty
- * @Assert\Email
- * @var string
- */
- private $email;
- }
-
-In this snippet you can see a variety of different docblock annotations:
-
-- Documentation annotations such as ``@var`` and ``@author``. These
- annotations are ignored and never considered for throwing an
- exception due to wrongly used annotations.
-- Annotations imported through use statements. The statement ``use
- Doctrine\ORM\Mapping AS ORM`` makes all classes under that namespace
- available as ``@ORM\ClassName``. Same goes for the import of
- ``@Assert``.
-- The ``@dummy`` annotation. It is not a documentation annotation and
- not ignored. For Doctrine Annotations it is not entirely clear how
- to handle this annotation. Depending on the configuration an exception
- (unknown annotation) will be thrown when parsing this annotation.
-- The fully qualified annotation ``@MyProject\Annotations\Foobarable``.
- This is transformed directly into the given class name.
-
-How are these annotations loaded? From looking at the code you could
-guess that the ORM Mapping, Assert Validation and the fully qualified
-annotation can just be loaded using
-the defined PHP autoloaders. This is not the case however: For error
-handling reasons every check for class existence inside the
-``AnnotationReader`` sets the second parameter $autoload
-of ``class_exists($name, $autoload)`` to false. To work flawlessly the
-``AnnotationReader`` requires silent autoloaders which many autoloaders are
-not. Silent autoloading is NOT part of the `PSR-0 specification
-`_
-for autoloading.
-
-This is why Doctrine Annotations uses its own autoloading mechanism
-through a global registry. If you are wondering about the annotation
-registry being global, there is no other way to solve the architectural
-problems of autoloading annotation classes in a straightforward fashion.
-Additionally if you think about PHP autoloading then you recognize it is
-a global as well.
-
-To anticipate the configuration section, making the above PHP class work
-with Doctrine Annotations requires this setup:
-
-.. code-block:: php
-
- use Doctrine\Common\Annotations\AnnotationReader;
-
- $reader = new AnnotationReader();
- AnnotationReader::addGlobalIgnoredName('dummy');
-
-We create the actual ``AnnotationReader`` instance.
-Note that we also add ``dummy`` to the global list of ignored
-annotations for which we do not throw exceptions. Setting this is
-necessary in our example case, otherwise ``@dummy`` would trigger an
-exception to be thrown during the parsing of the docblock of
-``MyProject\Entities\User#id``.
-
-Setup and Configuration
------------------------
-
-To use the annotations library is simple, you just need to create a new
-``AnnotationReader`` instance:
-
-.. code-block:: php
-
- $reader = new \Doctrine\Common\Annotations\AnnotationReader();
-
-This creates a simple annotation reader with no caching other than in
-memory (in php arrays). Since parsing docblocks can be expensive you
-should cache this process by using a caching reader.
-
-To cache annotations, you can create a ``Doctrine\Common\Annotations\PsrCachedReader``.
-This reader decorates the original reader and stores all annotations in a PSR-6
-cache:
-
-.. code-block:: php
-
- use Doctrine\Common\Annotations\AnnotationReader;
- use Doctrine\Common\Annotations\PsrCachedReader;
-
- $cache = ... // instantiate a PSR-6 Cache pool
-
- $reader = new PsrCachedReader(
- new AnnotationReader(),
- $cache,
- $debug = true
- );
-
-The ``debug`` flag is used here as well to invalidate the cache files
-when the PHP class with annotations changed and should be used during
-development.
-
-.. warning ::
-
- The ``AnnotationReader`` works and caches under the
- assumption that all annotations of a doc-block are processed at
- once. That means that annotation classes that do not exist and
- aren't loaded and cannot be autoloaded (using the
- AnnotationRegistry) would never be visible and not accessible if a
- cache is used unless the cache is cleared and the annotations
- requested again, this time with all annotations defined.
-
-By default the annotation reader returns a list of annotations with
-numeric indexes. If you want your annotations to be indexed by their
-class name you can wrap the reader in an ``IndexedReader``:
-
-.. code-block:: php
-
- use Doctrine\Common\Annotations\AnnotationReader;
- use Doctrine\Common\Annotations\IndexedReader;
-
- $reader = new IndexedReader(new AnnotationReader());
-
-.. warning::
-
- You should never wrap the indexed reader inside a cached reader,
- only the other way around. This way you can re-use the cache with
- indexed or numeric keys, otherwise your code may experience failures
- due to caching in a numerical or indexed format.
-
-Ignoring missing exceptions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-By default an exception is thrown from the ``AnnotationReader`` if an
-annotation was found that:
-
-- is not part of the list of ignored "documentation annotations";
-- was not imported through a use statement;
-- is not a fully qualified class that exists.
-
-You can disable this behavior for specific names if your docblocks do
-not follow strict requirements:
-
-.. code-block:: php
-
- $reader = new \Doctrine\Common\Annotations\AnnotationReader();
- AnnotationReader::addGlobalIgnoredName('foo');
-
-PHP Imports
-~~~~~~~~~~~
-
-By default the annotation reader parses the use-statement of a php file
-to gain access to the import rules and register them for the annotation
-processing. Only if you are using PHP Imports can you validate the
-correct usage of annotations and throw exceptions if you misspelled an
-annotation. This mechanism is enabled by default.
-
-To ease the upgrade path, we still allow you to disable this mechanism.
-Note however that we will remove this in future versions:
-
-.. code-block:: php
-
- $reader = new \Doctrine\Common\Annotations\AnnotationReader();
- $reader->setEnabledPhpImports(false);
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/custom.rst b/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/custom.rst
deleted file mode 100644
index 30051662..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/custom.rst
+++ /dev/null
@@ -1,443 +0,0 @@
-Custom Annotation Classes
-=========================
-
-If you want to define your own annotations, you just have to group them
-in a namespace.
-Annotation classes have to contain a class-level docblock with the text
-``@Annotation``:
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /** @Annotation */
- class Bar
- {
- // some code
- }
-
-Inject annotation values
-------------------------
-
-The annotation parser checks if the annotation constructor has arguments,
-if so then it will pass the value array, otherwise it will try to inject
-values into public properties directly:
-
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /**
- * @Annotation
- *
- * Some Annotation using a constructor
- */
- class Bar
- {
- private $foo;
-
- public function __construct(array $values)
- {
- $this->foo = $values['foo'];
- }
- }
-
- /**
- * @Annotation
- *
- * Some Annotation without a constructor
- */
- class Foo
- {
- public $bar;
- }
-
-Optional: Constructors with Named Parameters
---------------------------------------------
-
-Starting with Annotations v1.11 a new annotation instantiation strategy
-is available that aims at compatibility of Annotation classes with the PHP 8
-attribute feature. You need to declare a constructor with regular parameter
-names that match the named arguments in the annotation syntax.
-
-To enable this feature, you can tag your annotation class with
-``@NamedArgumentConstructor`` (available from v1.12) or implement the
-``Doctrine\Common\Annotations\NamedArgumentConstructorAnnotation`` interface
-(available from v1.11 and deprecated as of v1.12).
-When using the ``@NamedArgumentConstructor`` tag, the first argument of the
-constructor is considered as the default one.
-
-
-Usage with the ``@NamedArgumentConstructor`` tag
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /**
- * @Annotation
- * @NamedArgumentConstructor
- */
- class Bar implements NamedArgumentConstructorAnnotation
- {
- private $foo;
-
- public function __construct(string $foo)
- {
- $this->foo = $foo;
- }
- }
-
- /** Usable with @Bar(foo="baz") */
- /** Usable with @Bar("baz") */
-
-In combination with PHP 8's constructor property promotion feature
-you can simplify this to:
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /**
- * @Annotation
- * @NamedArgumentConstructor
- */
- class Bar implements NamedArgumentConstructorAnnotation
- {
- public function __construct(private string $foo) {}
- }
-
-
-Usage with the
-``Doctrine\Common\Annotations\NamedArgumentConstructorAnnotation``
-interface (v1.11, deprecated as of v1.12):
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- use Doctrine\Common\Annotations\NamedArgumentConstructorAnnotation;
-
- /** @Annotation */
- class Bar implements NamedArgumentConstructorAnnotation
- {
- private $foo;
-
- public function __construct(private string $foo) {}
- }
-
- /** Usable with @Bar(foo="baz") */
-
-Annotation Target
------------------
-
-``@Target`` indicates the kinds of class elements to which an annotation
-type is applicable. Then you could define one or more targets:
-
-- ``CLASS`` Allowed in class docblocks
-- ``PROPERTY`` Allowed in property docblocks
-- ``METHOD`` Allowed in the method docblocks
-- ``FUNCTION`` Allowed in function dockblocks
-- ``ALL`` Allowed in class, property, method and function docblocks
-- ``ANNOTATION`` Allowed inside other annotations
-
-If the annotations is not allowed in the current context, an
-``AnnotationException`` is thrown.
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /**
- * @Annotation
- * @Target({"METHOD","PROPERTY"})
- */
- class Bar
- {
- // some code
- }
-
- /**
- * @Annotation
- * @Target("CLASS")
- */
- class Foo
- {
- // some code
- }
-
-Attribute types
----------------
-
-The annotation parser checks the given parameters using the phpdoc
-annotation ``@var``, The data type could be validated using the ``@var``
-annotation on the annotation properties or using the ``@Attributes`` and
-``@Attribute`` annotations.
-
-If the data type does not match you get an ``AnnotationException``
-
-.. code-block:: php
-
- namespace MyCompany\Annotations;
-
- /**
- * @Annotation
- * @Target({"METHOD","PROPERTY"})
- */
- class Bar
- {
- /** @var mixed */
- public $mixed;
-
- /** @var boolean */
- public $boolean;
-
- /** @var bool */
- public $bool;
-
- /** @var float */
- public $float;
-
- /** @var string */
- public $string;
-
- /** @var integer */
- public $integer;
-
- /** @var array */
- public $array;
-
- /** @var SomeAnnotationClass */
- public $annotation;
-
- /** @var array */
- public $arrayOfIntegers;
-
- /** @var array */
- public $arrayOfAnnotations;
- }
-
- /**
- * @Annotation
- * @Target({"METHOD","PROPERTY"})
- * @Attributes({
- * @Attribute("stringProperty", type = "string"),
- * @Attribute("annotProperty", type = "SomeAnnotationClass"),
- * })
- */
- class Foo
- {
- public function __construct(array $values)
- {
- $this->stringProperty = $values['stringProperty'];
- $this->annotProperty = $values['annotProperty'];
- }
-
- // some code
- }
-
-Annotation Required
--------------------
-
-``@Required`` indicates that the field must be specified when the
-annotation is used. If it is not used you get an ``AnnotationException``
-stating that this value can not be null.
-
-Declaring a required field:
-
-.. code-block:: php
-
- /**
- * @Annotation
- * @Target("ALL")
- */
- class Foo
- {
- /** @Required */
- public $requiredField;
- }
-
-Usage:
-
-.. code-block:: php
-
- /** @Foo(requiredField="value") */
- public $direction; // Valid
-
- /** @Foo */
- public $direction; // Required field missing, throws an AnnotationException
-
-
-Enumerated values
------------------
-
-- An annotation property marked with ``@Enum`` is a field that accepts a
- fixed set of scalar values.
-- You should use ``@Enum`` fields any time you need to represent fixed
- values.
-- The annotation parser checks the given value and throws an
- ``AnnotationException`` if the value does not match.
-
-
-Declaring an enumerated property:
-
-.. code-block:: php
-
- /**
- * @Annotation
- * @Target("ALL")
- */
- class Direction
- {
- /**
- * @Enum({"NORTH", "SOUTH", "EAST", "WEST"})
- */
- public $value;
- }
-
-Annotation usage:
-
-.. code-block:: php
-
- /** @Direction("NORTH") */
- public $direction; // Valid value
-
- /** @Direction("NORTHEAST") */
- public $direction; // Invalid value, throws an AnnotationException
-
-
-Constants
----------
-
-The use of constants and class constants is available on the annotations
-parser.
-
-The following usages are allowed:
-
-.. code-block:: php
-
- namespace MyCompany\Entity;
-
- use MyCompany\Annotations\Foo;
- use MyCompany\Annotations\Bar;
- use MyCompany\Entity\SomeClass;
-
- /**
- * @Foo(PHP_EOL)
- * @Bar(Bar::FOO)
- * @Foo({SomeClass::FOO, SomeClass::BAR})
- * @Bar({SomeClass::FOO_KEY = SomeClass::BAR_VALUE})
- */
- class User
- {
- }
-
-
-Be careful with constants and the cache !
-
-.. note::
-
- The cached reader will not re-evaluate each time an annotation is
- loaded from cache. When a constant is changed the cache must be
- cleaned.
-
-
-Usage
------
-
-Using the library API is simple. Using the annotations described in the
-previous section, you can now annotate other classes with your
-annotations:
-
-.. code-block:: php
-
- namespace MyCompany\Entity;
-
- use MyCompany\Annotations\Foo;
- use MyCompany\Annotations\Bar;
-
- /**
- * @Foo(bar="foo")
- * @Bar(foo="bar")
- */
- class User
- {
- }
-
-Now we can write a script to get the annotations above:
-
-.. code-block:: php
-
- $reflClass = new ReflectionClass('MyCompany\Entity\User');
- $classAnnotations = $reader->getClassAnnotations($reflClass);
-
- foreach ($classAnnotations AS $annot) {
- if ($annot instanceof \MyCompany\Annotations\Foo) {
- echo $annot->bar; // prints "foo";
- } else if ($annot instanceof \MyCompany\Annotations\Bar) {
- echo $annot->foo; // prints "bar";
- }
- }
-
-You have a complete API for retrieving annotation class instances from a
-class, property or method docblock:
-
-
-Reader API
-~~~~~~~~~~
-
-Access all annotations of a class
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getClassAnnotations(\ReflectionClass $class);
-
-Access one annotation of a class
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getClassAnnotation(\ReflectionClass $class, $annotationName);
-
-Access all annotations of a method
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getMethodAnnotations(\ReflectionMethod $method);
-
-Access one annotation of a method
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getMethodAnnotation(\ReflectionMethod $method, $annotationName);
-
-Access all annotations of a property
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getPropertyAnnotations(\ReflectionProperty $property);
-
-Access one annotation of a property
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName);
-
-Access all annotations of a function
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getFunctionAnnotations(\ReflectionFunction $property);
-
-Access one annotation of a function
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: php
-
- public function getFunctionAnnotation(\ReflectionFunction $property, $annotationName);
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/index.rst b/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/index.rst
deleted file mode 100644
index a6e33833..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/index.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-Deprecation notice
-==================
-
-PHP 8 introduced `attributes
-`_,
-which are a native replacement for annotations. As such, this library is
-considered feature complete, and should receive exclusively bugfixes and
-security fixes.
-
-Introduction
-============
-
-Doctrine Annotations allows to implement custom annotation
-functionality for PHP classes and functions.
-
-.. code-block:: php
-
- class Foo
- {
- /**
- * @MyAnnotation(myProperty="value")
- */
- private $bar;
- }
-
-Annotations aren't implemented in PHP itself which is why this component
-offers a way to use the PHP doc-blocks as a place for the well known
-annotation syntax using the ``@`` char.
-
-Annotations in Doctrine are used for the ORM configuration to build the
-class mapping, but it can be used in other projects for other purposes
-too.
-
-Installation
-============
-
-You can install the Annotation component with composer:
-
-.. code-block::
-
- $ composer require doctrine/annotations
-
-Create an annotation class
-==========================
-
-An annotation class is a representation of the later used annotation
-configuration in classes. The annotation class of the previous example
-looks like this:
-
-.. code-block:: php
-
- /**
- * @Annotation
- */
- final class MyAnnotation
- {
- public $myProperty;
- }
-
-The annotation class is declared as an annotation by ``@Annotation``.
-
-:ref:`Read more about custom annotations. `
-
-Reading annotations
-===================
-
-The access to the annotations happens by reflection of the class or function
-containing them. There are multiple reader-classes implementing the
-``Doctrine\Common\Annotations\Reader`` interface, that can access the
-annotations of a class. A common one is
-``Doctrine\Common\Annotations\AnnotationReader``:
-
-.. code-block:: php
-
- use Doctrine\Common\Annotations\AnnotationReader;
-
- $reflectionClass = new ReflectionClass(Foo::class);
- $property = $reflectionClass->getProperty('bar');
-
- $reader = new AnnotationReader();
- $myAnnotation = $reader->getPropertyAnnotation(
- $property,
- MyAnnotation::class
- );
-
- echo $myAnnotation->myProperty; // result: "value"
-
-A reader has multiple methods to access the annotations of a class or
-function.
-
-:ref:`Read more about handling annotations. `
-
-IDE Support
------------
-
-Some IDEs already provide support for annotations:
-
-- Eclipse via the `Symfony2 Plugin `_
-- PhpStorm via the `PHP Annotations Plugin `_ or the `Symfony Plugin `_
-
-.. _Read more about handling annotations.: annotations
-.. _Read more about custom annotations.: custom
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/sidebar.rst b/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/sidebar.rst
deleted file mode 100644
index 6f5d13c4..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/docs/en/sidebar.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. toctree::
- :depth: 3
-
- index
- annotations
- custom
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
deleted file mode 100644
index fba23e9f..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
+++ /dev/null
@@ -1,54 +0,0 @@
- $data Key-value for properties to be defined in this class. */
- final public function __construct(array $data)
- {
- foreach ($data as $key => $value) {
- $this->$key = $value;
- }
- }
-
- /**
- * Error handler for unknown property accessor in Annotation class.
- *
- * @throws BadMethodCallException
- */
- public function __get(string $name)
- {
- throw new BadMethodCallException(
- sprintf("Unknown property '%s' on annotation '%s'.", $name, static::class)
- );
- }
-
- /**
- * Error handler for unknown property mutator in Annotation class.
- *
- * @param mixed $value Property value.
- *
- * @throws BadMethodCallException
- */
- public function __set(string $name, $value)
- {
- throw new BadMethodCallException(
- sprintf("Unknown property '%s' on annotation '%s'.", $name, static::class)
- );
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
deleted file mode 100644
index b1f85140..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
+++ /dev/null
@@ -1,21 +0,0 @@
- */
- public $value;
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
deleted file mode 100644
index 6f24d9f1..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
+++ /dev/null
@@ -1,69 +0,0 @@
- */
- public $value;
-
- /**
- * Literal target declaration.
- *
- * @var mixed[]
- */
- public $literal;
-
- /**
- * @phpstan-param array{literal?: mixed[], value: list} $values
- *
- * @throws InvalidArgumentException
- */
- public function __construct(array $values)
- {
- if (! isset($values['literal'])) {
- $values['literal'] = [];
- }
-
- foreach ($values['value'] as $var) {
- if (! is_scalar($var)) {
- throw new InvalidArgumentException(sprintf(
- '@Enum supports only scalar values "%s" given.',
- is_object($var) ? get_class($var) : gettype($var)
- ));
- }
- }
-
- foreach ($values['literal'] as $key => $var) {
- if (! in_array($key, $values['value'])) {
- throw new InvalidArgumentException(sprintf(
- 'Undefined enumerator value "%s" for literal "%s".',
- $key,
- $var
- ));
- }
- }
-
- $this->value = $values['value'];
- $this->literal = $values['literal'];
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
deleted file mode 100644
index 97a15c25..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
+++ /dev/null
@@ -1,43 +0,0 @@
- */
- public $names;
-
- /**
- * @phpstan-param array{value: string|list} $values
- *
- * @throws RuntimeException
- */
- public function __construct(array $values)
- {
- if (is_string($values['value'])) {
- $values['value'] = [$values['value']];
- }
-
- if (! is_array($values['value'])) {
- throw new RuntimeException(sprintf(
- '@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.',
- json_encode($values['value'])
- ));
- }
-
- $this->names = $values['value'];
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/NamedArgumentConstructor.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/NamedArgumentConstructor.php
deleted file mode 100644
index 16906010..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/NamedArgumentConstructor.php
+++ /dev/null
@@ -1,13 +0,0 @@
- */
- private static $map = [
- 'ALL' => self::TARGET_ALL,
- 'CLASS' => self::TARGET_CLASS,
- 'METHOD' => self::TARGET_METHOD,
- 'PROPERTY' => self::TARGET_PROPERTY,
- 'FUNCTION' => self::TARGET_FUNCTION,
- 'ANNOTATION' => self::TARGET_ANNOTATION,
- ];
-
- /** @phpstan-var list */
- public $value;
-
- /**
- * Targets as bitmask.
- *
- * @var int
- */
- public $targets;
-
- /**
- * Literal target declaration.
- *
- * @var string
- */
- public $literal;
-
- /**
- * @phpstan-param array{value?: string|list} $values
- *
- * @throws InvalidArgumentException
- */
- public function __construct(array $values)
- {
- if (! isset($values['value'])) {
- $values['value'] = null;
- }
-
- if (is_string($values['value'])) {
- $values['value'] = [$values['value']];
- }
-
- if (! is_array($values['value'])) {
- throw new InvalidArgumentException(
- sprintf(
- '@Target expects either a string value, or an array of strings, "%s" given.',
- is_object($values['value']) ? get_class($values['value']) : gettype($values['value'])
- )
- );
- }
-
- $bitmask = 0;
- foreach ($values['value'] as $literal) {
- if (! isset(self::$map[$literal])) {
- throw new InvalidArgumentException(
- sprintf(
- 'Invalid Target "%s". Available targets: [%s]',
- $literal,
- implode(', ', array_keys(self::$map))
- )
- );
- }
-
- $bitmask |= self::$map[$literal];
- }
-
- $this->targets = $bitmask;
- $this->value = $values['value'];
- $this->literal = implode(', ', $this->value);
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
deleted file mode 100644
index 002ee049..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
+++ /dev/null
@@ -1,158 +0,0 @@
- $available
- *
- * @return AnnotationException
- */
- public static function enumeratorError(
- string $attributeName,
- string $annotationName,
- string $context,
- array $available,
- $given
- ) {
- return new self(sprintf(
- '[Enum Error] Attribute "%s" of @%s declared on %s accepts only [%s], but got %s.',
- $attributeName,
- $annotationName,
- $context,
- implode(', ', $available),
- is_object($given) ? get_class($given) : $given
- ));
- }
-
- /** @return AnnotationException */
- public static function optimizerPlusSaveComments()
- {
- return new self(
- 'You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1.'
- );
- }
-
- /** @return AnnotationException */
- public static function optimizerPlusLoadComments()
- {
- return new self(
- 'You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1.'
- );
- }
-}
diff --git a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
deleted file mode 100644
index 31f3777a..00000000
--- a/tools/php-cs-fixer/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
+++ /dev/null
@@ -1,385 +0,0 @@
-
- */
- private static $globalImports = [
- 'ignoreannotation' => Annotation\IgnoreAnnotation::class,
- ];
-
- /**
- * A list with annotations that are not causing exceptions when not resolved to an annotation class.
- *
- * The names are case sensitive.
- *
- * @var array
- */
- private static $globalIgnoredNames = ImplicitlyIgnoredAnnotationNames::LIST;
-
- /**
- * A list with annotations that are not causing exceptions when not resolved to an annotation class.
- *
- * The names are case sensitive.
- *
- * @var array
- */
- private static $globalIgnoredNamespaces = [];
-
- /**
- * Add a new annotation to the globally ignored annotation names with regard to exception handling.
- */
- public static function addGlobalIgnoredName(string $name)
- {
- self::$globalIgnoredNames[$name] = true;
- }
-
- /**
- * Add a new annotation to the globally ignored annotation namespaces with regard to exception handling.
- */
- public static function addGlobalIgnoredNamespace(string $namespace)
- {
- self::$globalIgnoredNamespaces[$namespace] = true;
- }
-
- /**
- * Annotations parser.
- *
- * @var DocParser
- */
- private $parser;
-
- /**
- * Annotations parser used to collect parsing metadata.
- *
- * @var DocParser
- */
- private $preParser;
-
- /**
- * PHP parser used to collect imports.
- *
- * @var PhpParser
- */
- private $phpParser;
-
- /**
- * In-memory cache mechanism to store imported annotations per class.
- *
- * @psalm-var array<'class'|'function', array>>
- */
- private $imports = [];
-
- /**
- * In-memory cache mechanism to store ignored annotations per class.
- *
- * @psalm-var array<'class'|'function', array>>
- */
- private $ignoredAnnotationNames = [];
-
- /**
- * Initializes a new AnnotationReader.
- *
- * @throws AnnotationException
- */
- public function __construct(?DocParser $parser = null)
- {
- if (
- extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === '0' ||
- ini_get('opcache.save_comments') === '0')
- ) {
- throw AnnotationException::optimizerPlusSaveComments();
- }
-
- if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') === 0) {
- throw AnnotationException::optimizerPlusSaveComments();
- }
-
- // Make sure that the IgnoreAnnotation annotation is loaded
- class_exists(IgnoreAnnotation::class);
-
- $this->parser = $parser ?: new DocParser();
-
- $this->preParser = new DocParser();
-
- $this->preParser->setImports(self::$globalImports);
- $this->preParser->setIgnoreNotImportedAnnotations(true);
- $this->preParser->setIgnoredAnnotationNames(self::$globalIgnoredNames);
-
- $this->phpParser = new PhpParser();
- }
-
- /**
- * {@inheritDoc}
- */
- public function getClassAnnotations(ReflectionClass $class)
- {
- $this->parser->setTarget(Target::TARGET_CLASS);
- $this->parser->setImports($this->getImports($class));
- $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
- $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
-
- return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName());
- }
-
- /**
- * {@inheritDoc}
- */
- public function getClassAnnotation(ReflectionClass $class, $annotationName)
- {
- $annotations = $this->getClassAnnotations($class);
-
- foreach ($annotations as $annotation) {
- if ($annotation instanceof $annotationName) {
- return $annotation;
- }
- }
-
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public function getPropertyAnnotations(ReflectionProperty $property)
- {
- $class = $property->getDeclaringClass();
- $context = 'property ' . $class->getName() . '::$' . $property->getName();
-
- $this->parser->setTarget(Target::TARGET_PROPERTY);
- $this->parser->setImports($this->getPropertyImports($property));
- $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
- $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
-
- return $this->parser->parse($property->getDocComment(), $context);
- }
-
- /**
- * {@inheritDoc}
- */
- public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)
- {
- $annotations = $this->getPropertyAnnotations($property);
-
- foreach ($annotations as $annotation) {
- if ($annotation instanceof $annotationName) {
- return $annotation;
- }
- }
-
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public function getMethodAnnotations(ReflectionMethod $method)
- {
- $class = $method->getDeclaringClass();
- $context = 'method ' . $class->getName() . '::' . $method->getName() . '()';
-
- $this->parser->setTarget(Target::TARGET_METHOD);
- $this->parser->setImports($this->getMethodImports($method));
- $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
- $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces);
-
- return $this->parser->parse($method->getDocComment(), $context);
- }
-
- /**
- * {@inheritDoc}
- */
- public function getMethodAnnotation(ReflectionMethod $method, $annotationName)
- {
- $annotations = $this->getMethodAnnotations($method);
-
- foreach ($annotations as $annotation) {
- if ($annotation instanceof $annotationName) {
- return $annotation;
- }
- }
-
- return null;
- }
-
- /**
- * Gets the annotations applied to a function.
- *
- * @phpstan-return list
-PHP Coding Standards Fixer
-==========================
+# PHP Coding Standards Fixer
The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards;
whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc.,
@@ -22,9 +21,10 @@ projects. This tool does not only detect them, but also fixes them for you.
## Supported PHP Versions
* PHP 7.4
-* PHP 8.0 (except PHP 8.0.0 due to [bug in PHP tokenizer](https://bugs.php.net/bug.php?id=80462))
+* PHP 8.0
* PHP 8.1
* PHP 8.2
+* PHP 8.3
> **Note**
> Each new PHP version requires a huge effort to support the new syntax.
@@ -38,25 +38,24 @@ projects. This tool does not only detect them, but also fixes them for you.
### Installation
-The recommended way to install PHP CS Fixer is to use [Composer](https://getcomposer.org/download/)
-in a dedicated `composer.json` file in your project, for example in the
-`tools/php-cs-fixer` directory:
+The recommended way to install PHP CS Fixer is to use [Composer](https://getcomposer.org/download/):
```console
-mkdir -p tools/php-cs-fixer
-composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
+composer require --dev friendsofphp/php-cs-fixer
+## or when facing conflicts in dependencies:
+composer require --dev php-cs-fixer/shim
```
-For more details and other installation methods, see
+For more details and other installation methods (also with Docker or behind CI), see
[installation instructions](./doc/installation.rst).
### Usage
Assuming you installed PHP CS Fixer as instructed above, you can run the
-following command to fix the files PHP files in the `src` directory:
+following command to fix the PHP files in the `src` directory:
```console
-tools/php-cs-fixer/vendor/bin/php-cs-fixer fix src
+./vendor/bin/php-cs-fixer fix src
```
See [usage](./doc/usage.rst), list of [built-in rules](./doc/rules/index.rst), list of [rule sets](./doc/ruleSets/index.rst)
@@ -77,11 +76,11 @@ Dedicated plugins exist for:
## Community
-The PHP CS Fixer is maintained on GitHub at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.
+The PHP CS Fixer is maintained on GitHub at .
Bug reports and ideas about new features are welcome there.
-You can reach us at https://gitter.im/PHP-CS-Fixer/Lobby about the project,
-configuration, possible improvements, ideas and questions, please visit us!
+You can reach us in the [GitHub Discussions](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/) regarding the
+project, configuration, possible improvements, ideas and questions. Please visit us there!
## Contribute
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/UPGRADE-v3.md b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/UPGRADE-v3.md
index 00e0a9c5..bea1ff4f 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/UPGRADE-v3.md
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/UPGRADE-v3.md
@@ -1,21 +1,18 @@
-UPGRADE GUIDE FROM 2.x to 3.0
-=============================
+# UPGRADE GUIDE FROM 2.x to 3.0
This is guide for upgrade from version 2.x to 3.0 for using the CLI tool.
*Before following this guide, install [v2.19](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v2.19.0) and run in verbose mode (`php-cs-fixer fix -v`) or in future mode (`PHP_CS_FIXER_FUTURE_MODE=1 php-cs-fixer fix`) to identify deprecations and fix them first.*
-Rename of files
----------------
+## Rename of files
| 2.x | 3.0 | Description |
-| ---------------- | ------------------------ | -------------------------------------- |
+|------------------|--------------------------|----------------------------------------|
| `.php_cs` | `.php-cs-fixer.php` | Configuration file (local) |
| `.php_cs.dist` | `.php-cs-fixer.dist.php` | Configuration file (to be distributed) |
| `.php_cs.cache` | `.php-cs-fixer.cache` | Cache file |
-CLI options
------------
+## CLI options
| 2.x | 3.0 | Description | Note |
| ---------------- | --------------- | ----------------------------------------------- | -------------------------------------- |
@@ -27,94 +24,93 @@ CLI options
| --rules | --rules | Default value changed from @PSR2 to @PSR12 | |
| --config --rules | | | No longer allowed to pass both |
-Changes to rules
-----------------
+## Changes to rules
### Renamed rules
-Old name | New name | Note
--------- | -------- | ----
-`blank_line_before_return` | `blank_line_before_statement` | use configuration `['statements' => ['return']]`
-`final_static_access` | `self_static_accessor` |
-`hash_to_slash_comment` | `single_line_comment_style` | use configuration `['comment_types' => ['hash']]`
-`lowercase_constants` | `constant_case` | use configuration `['case' => 'lower']`
-`method_separation` | `class_attributes_separation` | use configuration `['elements' => ['method']]`
-`no_extra_consecutive_blank_lines` | `no_extra_blank_lines` |
-`no_multiline_whitespace_before_semicolons` | `multiline_whitespace_before_semicolons` |
-`no_short_echo_tag` | `echo_tag_syntax` | use configuration `['format' => 'long']`
-`php_unit_ordered_covers` | `phpdoc_order_by_value` | use configuration `['annotations' => [ 'covers' ]]`
-`phpdoc_inline_tag` | `general_phpdoc_tag_rename`, `phpdoc_inline_tag_normalizer` and `phpdoc_tag_type` |
-`pre_increment` | `increment_style` | use configuration `['style' => 'pre']`
-`psr0` | `psr_autoloading` | use configuration `['dir' => x ]`
-`psr4` | `psr_autoloading` |
-`silenced_deprecation_error` | `error_suppression` |
-`trailing_comma_in_multiline_array` | `trailing_comma_in_multiline` | use configuration `['elements' => ['arrays']]`
+| Old name | New name | Note |
+|--------------------------------------------|-----------------------------------------------------------------------------------|------------------------------------------------------|
+|`blank_line_before_return` | `blank_line_before_statement` | use configuration `['statements' => ['return']]` |
+|`final_static_access` | `self_static_accessor` | |
+|`hash_to_slash_comment` | `single_line_comment_style` | use configuration `['comment_types' => ['hash']]` |
+|`lowercase_constants` | `constant_case` | use configuration `['case' => 'lower']` |
+|`method_separation` | `class_attributes_separation` | use configuration `['elements' => ['method']]` |
+|`no_extra_consecutive_blank_lines` | `no_extra_blank_lines` | |
+|`no_multiline_whitespace_before_semicolons` | `multiline_whitespace_before_semicolons` | |
+|`no_short_echo_tag` | `echo_tag_syntax` | use configuration `['format' => 'long']` |
+|`php_unit_ordered_covers` | `phpdoc_order_by_value` | use configuration `['annotations' => [ 'covers' ]]` |
+|`phpdoc_inline_tag` | `general_phpdoc_tag_rename`, `phpdoc_inline_tag_normalizer` and `phpdoc_tag_type` | |
+|`pre_increment` | `increment_style` | use configuration `['style' => 'pre']` |
+|`psr0` | `psr_autoloading` | use configuration `['dir' => x ]` |
+|`psr4` | `psr_autoloading` | |
+|`silenced_deprecation_error` | `error_suppression` | |
+|`trailing_comma_in_multiline_array` | `trailing_comma_in_multiline` | use configuration `['elements' => ['arrays']]` |
### Removed rootless configuration
-Rule | Root option | Note
------------------------------------- | -------------- | ----
-`general_phpdoc_annotation_remove` | `annotations`
-`no_extra_consecutive_blank_lines` | `tokens`
-`no_spaces_around_offset` | `positions`
-`no_unneeded_control_parentheses` | `statements`
-`ordered_class_elements` | `order`
-`php_unit_construct` | `assertions`
-`php_unit_dedicate_assert` | `target` | root option works differently than rootless configuration
-`php_unit_strict` | `assertions`
-`phpdoc_no_alias_tag` | `replacements`
-`phpdoc_return_self_reference` | `replacements`
-`random_api_migration` | `replacements`
-`single_class_element_per_statement` | `elements`
-`visibility_required` | `elements`
+| Rule | Root option | Note |
+|--------------------------------------| -------------- |-----------------------------------------------------------|
+| `general_phpdoc_annotation_remove` | `annotations` | |
+| `no_extra_consecutive_blank_lines` | `tokens` | |
+| `no_spaces_around_offset` | `positions` | |
+| `no_unneeded_control_parentheses` | `statements` | |
+| `ordered_class_elements` | `order` | |
+| `php_unit_construct` | `assertions` | |
+| `php_unit_dedicate_assert` | `target` | root option works differently than rootless configuration |
+| `php_unit_strict` | `assertions` | |
+| `phpdoc_no_alias_tag` | `replacements` | |
+| `phpdoc_return_self_reference` | `replacements` | |
+| `random_api_migration` | `replacements` | |
+| `single_class_element_per_statement` | `elements` | |
+| `visibility_required` | `elements` | |
### Changed options
-Rule | Option | Change
----- | ------ | ------
-`binary_operator_spaces` | `align_double_arrow` | option was removed, use `operators` instead
-`binary_operator_spaces` | `align_equals` | option was removed use `operators` instead
-`blank_line_before_statement` | `statements: die` | option `die` was removed from `statements`, use `exit` instead
-`class_attributes_separation` | `elements` | option does no longer accept flat array as a value, use map instead
-`class_definition` | `multiLineExtendsEachSingleLine` | option was renamed to `multi_line_extends_each_single_line`
-`class_definition` | `singleItemSingleLine` | option was renamed to `single_item_single_line`
-`class_definition` | `singleLine` | option was renamed to `single_line`
-`doctrine_annotation_spaces` | `around_argument_assignments` | option was removed, use `before_argument_assignments` and `after_argument_assignments` instead
-`doctrine_annotation_spaces` | `around_array_assignments` | option was removed, use `after_array_assignments_colon`, `after_array_assignments_equals`, `before_array_assignments_colon` and `before_array_assignments_equals` instead
-`final_internal_class` | `annotation-black-list` | option was renamed, use `annotation_exclude`
-`final_internal_class` | `annotation-white-list` | option was renamed, use `annotation_include`
-`final_internal_class` | `consider-absent-docblock-as-internal-class` | option was renamed, use `consider_absent_docblock_as_internal_class`
-`header_comment` | `commentType` | option was renamed to `comment_type`
-`is_null` | `use_yoda_style` | option was removed, use `yoda_style` rule instead
-`no_extra_consecutive_blank_lines` | `tokens` | one of possible values, `useTrait`, was renamed to `use_trait`
-`ordered_class_elements` | `sortAlgorithm` | option was renamed, use `sort_algorithm` instead
-`ordered_imports` | `importsOrder` | option was renamed, use `imports_order`
-`ordered_imports` | `sortAlgorithm` | option was renamed, use `sort_algorithm`
-`php_unit_dedicate_assert` | `functions` | option was removed, use `target` instead
-`php_unit_test_annotation` | `case` | option was removed, use `php_unit_method_casing` rule instead
+| Rule | Option | Change |
+|------------------------------------|----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `binary_operator_spaces` | `align_double_arrow` | option was removed, use `operators` instead |
+| `binary_operator_spaces` | `align_equals` | option was removed use `operators` instead |
+| `blank_line_before_statement` | `statements: die` | option `die` was removed from `statements`, use `exit` instead |
+| `class_attributes_separation` | `elements` | option does no longer accept flat array as a value, use map instead |
+| `class_definition` | `multiLineExtendsEachSingleLine` | option was renamed to `multi_line_extends_each_single_line` |
+| `class_definition` | `singleItemSingleLine` | option was renamed to `single_item_single_line` |
+| `class_definition` | `singleLine` | option was renamed to `single_line` |
+| `doctrine_annotation_spaces` | `around_argument_assignments` | option was removed, use `before_argument_assignments` and `after_argument_assignments` instead |
+| `doctrine_annotation_spaces` | `around_array_assignments` | option was removed, use `after_array_assignments_colon`, `after_array_assignments_equals`, `before_array_assignments_colon` and `before_array_assignments_equals` instead |
+| `final_internal_class` | `annotation-black-list` | option was renamed, use `annotation_exclude` |
+| `final_internal_class` | `annotation-white-list` | option was renamed, use `annotation_include` |
+| `final_internal_class` | `consider-absent-docblock-as-internal-class` | option was renamed, use `consider_absent_docblock_as_internal_class` |
+| `header_comment` | `commentType` | option was renamed to `comment_type` |
+| `is_null` | `use_yoda_style` | option was removed, use `yoda_style` rule instead |
+| `no_extra_consecutive_blank_lines` | `tokens` | one of possible values, `useTrait`, was renamed to `use_trait` |
+| `ordered_class_elements` | `sortAlgorithm` | option was renamed, use `sort_algorithm` instead |
+| `ordered_imports` | `importsOrder` | option was renamed, use `imports_order` |
+| `ordered_imports` | `sortAlgorithm` | option was renamed, use `sort_algorithm` |
+| `php_unit_dedicate_assert` | `functions` | option was removed, use `target` instead |
+| `php_unit_test_annotation` | `case` | option was removed, use `php_unit_method_casing` rule instead |
### Changed default values of options
-Rule | Option | Old value | New value
----- | ---- | ---- | ----
-`array_syntax` | `syntax` | `'long'` | `'short'`
-`function_to_constant` | `functions` | `['get_class', 'php_sapi_name', 'phpversion', 'pi']` | `['get_called_class', 'get_class', 'php_sapi_name', 'phpversion', 'pi']`
-`list_syntax` | `syntax` | `'long'` | `'short'`
-`method_argument_space` | `on_multiline` | `'ignore'` | `'ensure_fully_multiline'`
-`native_constant_invocation` | `strict` | `false` | `true`
-`native_function_casing` | `include` | `'@internal'` | `'@compiler_optimized'`
-`native_function_invocation` | `include` | `'@internal'` | `'@compiler_optimized'`
-`native_function_invocation` | `strict` | `false` | `true`
-`non_printable_character` | `use_escape_sequences_in_strings` | `false` | `true` (when running on PHP 7.0 and up)
-`php_unit_dedicate_assert` | `target` | `'5.0'` | `'newest'`
-`phpdoc_align` | `tags` | `['param', 'return', 'throws', 'type', 'var']` | `['method', 'param', 'property', 'return', 'throws', 'type', 'var']`
-`phpdoc_scalar` | `types` | `['boolean', 'double', 'integer', 'real', 'str']` | `['boolean', 'callback', 'double', 'integer', 'real', 'str']`
+| Rule | Option | Old value | New value |
+|------------------------------|-----------------------------------|------------------------------------------------------|--------------------------------------------------------------------------|
+| `array_syntax` | `syntax` | `'long'` | `'short'` |
+| `function_to_constant` | `functions` | `['get_class', 'php_sapi_name', 'phpversion', 'pi']` | `['get_called_class', 'get_class', 'php_sapi_name', 'phpversion', 'pi']` |
+| `list_syntax` | `syntax` | `'long'` | `'short'` |
+| `method_argument_space` | `on_multiline` | `'ignore'` | `'ensure_fully_multiline'` |
+| `native_constant_invocation` | `strict` | `false` | `true` |
+| `native_function_casing` | `include` | `'@internal'` | `'@compiler_optimized'` |
+| `native_function_invocation` | `include` | `'@internal'` | `'@compiler_optimized'` |
+| `native_function_invocation` | `strict` | `false` | `true` |
+| `non_printable_character` | `use_escape_sequences_in_strings` | `false` | `true` (when running on PHP 7.0 and up) |
+| `php_unit_dedicate_assert` | `target` | `'5.0'` | `'newest'` |
+| `phpdoc_align` | `tags` | `['param', 'return', 'throws', 'type', 'var']` | `['method', 'param', 'property', 'return', 'throws', 'type', 'var']` |
+| `phpdoc_scalar` | `types` | `['boolean', 'double', 'integer', 'real', 'str']` | `['boolean', 'callback', 'double', 'integer', 'real', 'str']` |
### Removed rule sets
-Rule set | Note
--------- | ----
-`@PHP56Migration` | was empty
+| Rule set | Note |
+|-------------------|------------|
+| `@PHP56Migration` | was empty |
### Rule behavior changes
@@ -124,8 +120,7 @@ Rule set | Note
- `udiff` output now includes the file name in the output (if applicable)
-Code BC changes
-===============
+## Code BC changes
### Removed; various
@@ -138,11 +133,11 @@ Code BC changes
- `MethodArgumentSpaceFixer` deprecated methods have been removed
- `NoMixedEchoPrintFixer` the property `$defaultConfig` has been removed
- class `Tokens`, the following methods has been removed:
- - `current()`
- - `key()`
- - `next()`
- - `rewind()`
- - `valid()`
+ - `current()`
+ - `key()`
+ - `next()`
+ - `rewind()`
+ - `valid()`
- namespace `PhpCsFixer\Test\` and each class in it has been removed, as it served pure development purpose and should not be part of production code - reach out to community if you are willing to help building dev package
### Interface changes
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/ci-integration.sh b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/ci-integration.sh
index 2521e249..39d99955 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/ci-integration.sh
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/ci-integration.sh
@@ -5,4 +5,4 @@ IFS='
'
CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRTUXB "${COMMIT_RANGE}")
if ! echo "${CHANGED_FILES}" | grep -qE "^(\\.php-cs-fixer(\\.dist)?\\.php|composer\\.lock)$"; then EXTRA_ARGS=$(printf -- '--path-mode=intersection\n--\n%s' "${CHANGED_FILES}"); else EXTRA_ARGS=''; fi
-vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --dry-run --stop-on-violation --using-cache=no ${EXTRA_ARGS}
+vendor/bin/php-cs-fixer check --config=.php-cs-fixer.dist.php -v --show-progress=dots --stop-on-violation --using-cache=no ${EXTRA_ARGS}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/composer.json b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/composer.json
index e3ea370f..a3f667e6 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/composer.json
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/composer.json
@@ -21,39 +21,43 @@
],
"require": {
"php": "^7.4 || ^8.0",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
- "composer/semver": "^3.3",
+ "clue/ndjson-react": "^1.0",
+ "composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
- "doctrine/annotations": "^2",
- "doctrine/lexer": "^2 || ^3",
- "sebastian/diff": "^4.0 || ^5.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/event-dispatcher": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/options-resolver": "^5.4 || ^6.0",
- "symfony/polyfill-mbstring": "^1.27",
- "symfony/polyfill-php80": "^1.27",
- "symfony/polyfill-php81": "^1.27",
- "symfony/process": "^5.4 || ^6.0",
- "symfony/stopwatch": "^5.4 || ^6.0"
+ "fidry/cpu-core-counter": "^1.2",
+ "react/child-process": "^0.6.5",
+ "react/event-loop": "^1.0",
+ "react/promise": "^2.0 || ^3.0",
+ "react/socket": "^1.0",
+ "react/stream": "^1.0",
+ "sebastian/diff": "^4.0 || ^5.1 || ^6.0",
+ "symfony/console": "^5.4 || ^6.4 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.4 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.4 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.31",
+ "symfony/polyfill-php80": "^1.31",
+ "symfony/polyfill-php81": "^1.31",
+ "symfony/process": "^5.4 || ^6.4 || ^7.2",
+ "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0"
},
"require-dev": {
- "justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^2.0",
- "mikey179/vfsstream": "^1.6.11",
- "php-coveralls/php-coveralls": "^2.5.3",
+ "facile-it/paraunit": "^1.3.1 || ^2.4",
+ "infection/infection": "^0.29.8",
+ "justinrainbow/json-schema": "^5.3 || ^6.0",
+ "keradus/cli-executor": "^2.1",
+ "mikey179/vfsstream": "^1.6.12",
+ "php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.16",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5",
- "phpunitgoodpractices/polyfill": "^1.6",
- "phpunitgoodpractices/traits": "^1.9.2",
- "symfony/phpunit-bridge": "^6.2.3",
- "symfony/yaml": "^5.4 || ^6.0"
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
+ "phpunit/phpunit": "^9.6.22 || ^10.5.40 || ^11.5.2",
+ "symfony/var-dumper": "^5.4.48 || ^6.4.15 || ^7.2.0",
+ "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.2.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@@ -62,20 +66,144 @@
"autoload": {
"psr-4": {
"PhpCsFixer\\": "src/"
- }
+ },
+ "exclude-from-classmap": [
+ "src/Fixer/Internal/*"
+ ]
},
"autoload-dev": {
"psr-4": {
+ "PhpCsFixer\\PHPStan\\": "dev-tools/phpstan/src/",
"PhpCsFixer\\Tests\\": "tests/"
- }
+ },
+ "exclude-from-classmap": [
+ "tests/Fixtures/"
+ ]
},
"bin": [
"php-cs-fixer"
],
"config": {
"allow-plugins": {
- "ergebnis/composer-normalize": true
+ "ergebnis/composer-normalize": true,
+ "infection/extension-installer": false
},
+ "prefer-stable": true,
"sort-packages": true
+ },
+ "scripts": {
+ "post-autoload-dump": [
+ "@install-tools"
+ ],
+ "auto-review": [
+ "Composer\\Config::disableProcessTimeout",
+ "paraunit run --testsuite auto-review"
+ ],
+ "cs:check": "@php php-cs-fixer check --verbose --diff",
+ "cs:fix": "@php php-cs-fixer fix",
+ "cs:fix:parallel": [
+ "echo '⚠️ This script is deprecated! Utilise built-in parallelisation instead.';",
+ "@cs:fix"
+ ],
+ "docs": "@php dev-tools/doc.php",
+ "infection": "@test:mutation",
+ "install-tools": "@composer --working-dir=dev-tools install",
+ "mess-detector": "@php dev-tools/vendor/bin/phpmd . ansi dev-tools/mess-detector/phpmd.xml --exclude vendor/*,dev-tools/vendor/*,dev-tools/phpstan/*,tests/Fixtures/*",
+ "normalize": [
+ "@composer normalize --working-dir=dev-tools --dry-run ../composer.json",
+ "@composer normalize --working-dir=dev-tools --dry-run composer.json"
+ ],
+ "normalize:fix": [
+ "@composer normalize --working-dir=dev-tools ../composer.json",
+ "@composer normalize --working-dir=dev-tools composer.json"
+ ],
+ "php-compatibility": "@php dev-tools/vendor/bin/phpcs -p --standard=dev-tools/php-compatibility/phpcs-php-compatibility.xml",
+ "phpstan": "@php -d memory_limit=512M dev-tools/vendor/bin/phpstan analyse",
+ "phpstan:baseline": "@php -d memory_limit=512M dev-tools/vendor/bin/phpstan analyse --generate-baseline=./dev-tools/phpstan/baseline.php",
+ "qa": "@quality-assurance",
+ "quality-assurance": [
+ "Composer\\Config::disableProcessTimeout",
+ "@install-tools --quiet",
+ "@self-check",
+ "@static-analysis",
+ "@test"
+ ],
+ "require-checker": "@php dev-tools/vendor/bin/composer-require-checker check composer.json --config-file .composer-require-checker.json",
+ "sa": "@static-analysis",
+ "self-check": [
+ "./dev-tools/check_file_permissions.sh",
+ "./dev-tools/check_trailing_spaces.sh",
+ "@composer dump-autoload --dry-run --optimize --strict-psr",
+ "@normalize",
+ "@unused-deps",
+ "@require-checker",
+ "@auto-review"
+ ],
+ "static-analysis": [
+ "@cs:check",
+ "@phpstan",
+ "@mess-detector"
+ ],
+ "test": "@test:all",
+ "test:all": [
+ "@test:unit",
+ "@test:integration"
+ ],
+ "test:coverage": [
+ "Composer\\Config::disableProcessTimeout",
+ "@composer show facile-it/paraunit ^2 && (paraunit coverage --testsuite unit --pass-through=--exclude-group=covers-nothing) || (paraunit coverage --testsuite unit --exclude-group covers-nothing)"
+ ],
+ "test:integration": [
+ "Composer\\Config::disableProcessTimeout",
+ "paraunit run --testsuite integration"
+ ],
+ "test:mutation": [
+ "Composer\\Config::disableProcessTimeout",
+ "infection --threads=max --only-covered --min-covered-msi=80"
+ ],
+ "test:short-open-tag": [
+ "Composer\\Config::disableProcessTimeout",
+ "@php -d short_open_tag=1 ./vendor/bin/phpunit --do-not-cache-result --testsuite short-open-tag"
+ ],
+ "test:smoke": [
+ "Composer\\Config::disableProcessTimeout",
+ "paraunit run --testsuite smoke"
+ ],
+ "test:unit": [
+ "Composer\\Config::disableProcessTimeout",
+ "paraunit run --testsuite unit"
+ ],
+ "unused-deps": "@php dev-tools/vendor/bin/composer-unused --excludePackage=composer/xdebug-handler"
+ },
+ "scripts-descriptions": {
+ "auto-review": "Execute Auto-review",
+ "cs:check": "Check coding standards",
+ "cs:fix": "Fix coding standards",
+ "cs:fix:parallel": "⚠️DEPRECATED! Use cs:fix with proper parallel config",
+ "docs": "Regenerate docs",
+ "infection": "Alias for 'test:mutation'",
+ "install-tools": "Install DEV tools",
+ "mess-detector": "Analyse code with Mess Detector",
+ "normalize": "Check normalization for composer.json files",
+ "normalize:fix": "Run normalization for composer.json files",
+ "php-compatibility": "Check compatibility with all supported PHP versions",
+ "phpstan": "Run PHPStan analysis",
+ "phpstan:baseline": "Dump PHPStan baseline file - use only for updating, do not add new errors when possible",
+ "post-autoload-dump": "Run additional tasks after installing/updating main dependencies",
+ "qa": "Alias for 'quality-assurance'",
+ "quality-assurance": "Run QA suite",
+ "require-checker": "Verifies if codebase does not contain soft dependencies",
+ "sa": "Alias for 'static-analysis'",
+ "self-check": "Run set of self-checks ensuring repository's validity",
+ "static-analysis": "Run static analysis",
+ "test": "Alias for 'test:all'",
+ "test:all": "Run Unit and Integration tests (but *NOT* Smoke tests)",
+ "test:coverage": "Run tests that provide code coverage",
+ "test:integration": "Run Integration tests",
+ "test:mutation": "Run mutation tests",
+ "test:short-open-tag": "Run tests with \"short_open_tag\" enabled",
+ "test:smoke": "Run Smoke tests",
+ "test:unit": "Run Unit tests",
+ "unused-deps": "Verifies if app has dependencies that are not used"
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.md b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.md
index c2877f71..68e03a58 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.md
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.md
@@ -1,3 +1,3 @@
The logo is © 2010+ Sensio Labs.
-Original resolution can be found at https://github.com/PHP-CS-Fixer/logo .
+Original resolution can be found at .
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer
index e29468be..f00964cd 100755
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer
@@ -1,6 +1,8 @@
#!/usr/bin/env php
= 80300) {
- fwrite(STDERR, "PHP needs to be a minimum version of PHP 7.4.0 and maximum version of PHP 8.2.*.\n");
+ if (\PHP_VERSION_ID < (int) '70400' || \PHP_VERSION_ID >= (int) '80400') {
+ fwrite(STDERR, "PHP needs to be a minimum version of PHP 7.4.0 and maximum version of PHP 8.3.*.\n");
fwrite(STDERR, 'Current PHP version: '.PHP_VERSION.".\n");
- if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
+ if (filter_var(getenv('PHP_CS_FIXER_IGNORE_ENV'), FILTER_VALIDATE_BOOLEAN)) {
fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
} else {
fwrite(STDERR, "To ignore this requirement please set `PHP_CS_FIXER_IGNORE_ENV`.\n");
@@ -47,7 +54,7 @@ set_error_handler(static function ($severity, $message, $file, $line) {
if (!extension_loaded($extension)) {
fwrite(STDERR, sprintf("PHP extension ext-%s is missing from your system. Install or enable it.\n", $extension));
- if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {
+ if (filter_var(getenv('PHP_CS_FIXER_IGNORE_ENV'), FILTER_VALIDATE_BOOLEAN)) {
fwrite(STDERR, "Ignoring environment requirements because `PHP_CS_FIXER_IGNORE_ENV` is set. Execution may be unstable.\n");
} else {
exit(1);
@@ -57,14 +64,16 @@ set_error_handler(static function ($severity, $message, $file, $line) {
})();
// load dependencies
-(function () {
+(static function (): void {
$require = true;
if (class_exists('Phar')) {
// Maybe this file is used as phar-stub? Let's try!
try {
Phar::mapPhar('php-cs-fixer.phar');
+ /** @phpstan-ignore requireOnce.fileNotFound */
require_once 'phar://php-cs-fixer.phar/vendor/autoload.php';
+
$require = false;
} catch (PharException $e) {
}
@@ -90,9 +99,6 @@ set_error_handler(static function ($severity, $message, $file, $line) {
}
})();
-use Composer\XdebugHandler\XdebugHandler;
-use PhpCsFixer\Console\Application;
-
// Restart if xdebug is loaded, unless the environment variable PHP_CS_FIXER_ALLOW_XDEBUG is set.
$xdebug = new XdebugHandler('PHP_CS_FIXER');
$xdebug->check();
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php
index dd7ad5ac..6a2be5f9 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php
@@ -26,6 +26,15 @@
/**
* @internal
+ *
+ * @phpstan-type _AutogeneratedInputConfiguration array{
+ * ignored_tags?: list
+ * }
+ * @phpstan-type _AutogeneratedComputedConfiguration array{
+ * ignored_tags: list
+ * }
+ *
+ * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration>
*/
abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements ConfigurableFixerInterface
{
@@ -34,17 +43,11 @@ abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements
*/
private array $classyElements;
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_DOC_COMMENT);
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
// fetch indices one time, this is safe as we never add or remove a token during fixing
@@ -59,7 +62,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
$doctrineAnnotationTokens = DoctrineAnnotationTokens::createFromDocComment(
$docCommentToken,
- $this->configuration['ignored_tags']
+ $this->configuration['ignored_tags'] // @phpstan-ignore-line
);
$this->fixAnnotations($doctrineAnnotationTokens);
@@ -72,23 +75,11 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
*/
abstract protected function fixAnnotations(DoctrineAnnotationTokens $doctrineAnnotationTokens): void;
- /**
- * {@inheritdoc}
- */
protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
{
return new FixerConfigurationResolver([
(new FixerOptionBuilder('ignored_tags', 'List of tags that must not be treated as Doctrine Annotations.'))
- ->setAllowedTypes(['array'])
- ->setAllowedValues([static function (array $values): bool {
- foreach ($values as $value) {
- if (!\is_string($value)) {
- return false;
- }
- }
-
- return true;
- }])
+ ->setAllowedTypes(['string[]'])
->setDefault([
// PHPDocumentor 1
'abstract',
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php
index cdb46059..878ac3d6 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php
@@ -14,19 +14,11 @@
namespace PhpCsFixer;
-use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
-use PhpCsFixer\ConfigurationException\InvalidForEnvFixerConfigurationException;
use PhpCsFixer\ConfigurationException\RequiredFixerConfigurationException;
-use PhpCsFixer\Console\Application;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
-use PhpCsFixer\FixerConfiguration\DeprecatedFixerOption;
-use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
-use PhpCsFixer\FixerConfiguration\InvalidOptionsForEnvException;
use PhpCsFixer\Tokenizer\Tokens;
-use Symfony\Component\OptionsResolver\Exception\ExceptionInterface;
-use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
/**
* @author Dariusz Rumiński
@@ -35,20 +27,7 @@
*/
abstract class AbstractFixer implements FixerInterface
{
- /**
- * @var null|array
- */
- protected $configuration;
-
- /**
- * @var WhitespacesFixerConfig
- */
- protected $whitespacesConfig;
-
- /**
- * @var null|FixerConfigurationResolverInterface
- */
- private $configurationDefinition;
+ protected WhitespacesFixerConfig $whitespacesConfig;
public function __construct()
{
@@ -67,7 +46,7 @@ public function __construct()
final public function fix(\SplFileInfo $file, Tokens $tokens): void
{
- if ($this instanceof ConfigurableFixerInterface && null === $this->configuration) {
+ if ($this instanceof ConfigurableFixerInterface && property_exists($this, 'configuration') && null === $this->configuration) {
throw new RequiredFixerConfigurationException($this->getName(), 'Configuration is required.');
}
@@ -76,17 +55,11 @@ final public function fix(\SplFileInfo $file, Tokens $tokens): void
}
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return false;
}
- /**
- * {@inheritdoc}
- */
public function getName(): string
{
$nameParts = explode('\\', static::class);
@@ -95,84 +68,16 @@ public function getName(): string
return Utils::camelCaseToUnderscore($name);
}
- /**
- * {@inheritdoc}
- */
public function getPriority(): int
{
return 0;
}
- /**
- * {@inheritdoc}
- */
public function supports(\SplFileInfo $file): bool
{
return true;
}
- /**
- * @param array $configuration
- */
- public function configure(array $configuration): void
- {
- if (!$this instanceof ConfigurableFixerInterface) {
- throw new \LogicException('Cannot configure using Abstract parent, child not implementing "PhpCsFixer\Fixer\ConfigurableFixerInterface".');
- }
-
- foreach ($this->getConfigurationDefinition()->getOptions() as $option) {
- if (!$option instanceof DeprecatedFixerOption) {
- continue;
- }
-
- $name = $option->getName();
- if (\array_key_exists($name, $configuration)) {
- Utils::triggerDeprecation(new \InvalidArgumentException(sprintf(
- 'Option "%s" for rule "%s" is deprecated and will be removed in version %d.0. %s',
- $name,
- $this->getName(),
- Application::getMajorVersion() + 1,
- str_replace('`', '"', $option->getDeprecationMessage())
- )));
- }
- }
-
- try {
- $this->configuration = $this->getConfigurationDefinition()->resolve($configuration);
- } catch (MissingOptionsException $exception) {
- throw new RequiredFixerConfigurationException(
- $this->getName(),
- sprintf('Missing required configuration: %s', $exception->getMessage()),
- $exception
- );
- } catch (InvalidOptionsForEnvException $exception) {
- throw new InvalidForEnvFixerConfigurationException(
- $this->getName(),
- sprintf('Invalid configuration for env: %s', $exception->getMessage()),
- $exception
- );
- } catch (ExceptionInterface $exception) {
- throw new InvalidFixerConfigurationException(
- $this->getName(),
- sprintf('Invalid configuration: %s', $exception->getMessage()),
- $exception
- );
- }
- }
-
- public function getConfigurationDefinition(): FixerConfigurationResolverInterface
- {
- if (!$this instanceof ConfigurableFixerInterface) {
- throw new \LogicException(sprintf('Cannot get configuration definition using Abstract parent, child "%s" not implementing "PhpCsFixer\Fixer\ConfigurableFixerInterface".', static::class));
- }
-
- if (null === $this->configurationDefinition) {
- $this->configurationDefinition = $this->createConfigurationDefinition();
- }
-
- return $this->configurationDefinition;
- }
-
public function setWhitespacesConfig(WhitespacesFixerConfig $config): void
{
if (!$this instanceof WhitespacesAwareFixerInterface) {
@@ -184,15 +89,6 @@ public function setWhitespacesConfig(WhitespacesFixerConfig $config): void
abstract protected function applyFix(\SplFileInfo $file, Tokens $tokens): void;
- protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
- {
- if (!$this instanceof ConfigurableFixerInterface) {
- throw new \LogicException('Cannot create configuration definition using Abstract parent, child not implementing "PhpCsFixer\Fixer\ConfigurableFixerInterface".');
- }
-
- throw new \LogicException('Not implemented.');
- }
-
private function getDefaultWhitespacesFixerConfig(): WhitespacesFixerConfig
{
static $defaultWhitespacesFixerConfig = null;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFopenFlagFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFopenFlagFixer.php
index e9d7a120..da862da7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFopenFlagFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFopenFlagFixer.php
@@ -22,17 +22,11 @@
*/
abstract class AbstractFopenFlagFixer extends AbstractFunctionReferenceFixer
{
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isAllTokenKindsFound([T_STRING, T_CONSTANT_ENCAPSED_STRING]);
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$argumentsAnalyzer = new ArgumentsAnalyzer();
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFunctionReferenceFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFunctionReferenceFixer.php
index 350b87cf..b919b217 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFunctionReferenceFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractFunctionReferenceFixer.php
@@ -24,22 +24,13 @@
*/
abstract class AbstractFunctionReferenceFixer extends AbstractFixer
{
- /**
- * @var null|FunctionsAnalyzer
- */
- private $functionsAnalyzer;
+ private ?FunctionsAnalyzer $functionsAnalyzer = null;
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_STRING);
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return true;
@@ -49,7 +40,7 @@ public function isRisky(): bool
* Looks up Tokens sequence for suitable candidates and delivers boundaries information,
* which can be supplied by other methods in this abstract class.
*
- * @return null|int[] returns $functionName, $openParenthesis, $closeParenthesis packed into array
+ * @return ?array{int, int, int} returns $functionName, $openParenthesis, $closeParenthesis packed into array
*/
protected function find(string $functionNameToSearch, Tokens $tokens, int $start = 0, ?int $end = null): ?array
{
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractLinesBeforeNamespaceFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractLinesBeforeNamespaceFixer.php
deleted file mode 100644
index f574b970..00000000
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractLinesBeforeNamespaceFixer.php
+++ /dev/null
@@ -1,120 +0,0 @@
-
- * Dariusz Rumiński
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
-
-namespace PhpCsFixer;
-
-use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
-use PhpCsFixer\Tokenizer\Token;
-use PhpCsFixer\Tokenizer\Tokens;
-
-/**
- * This abstract fixer is responsible for ensuring that a certain number of
- * lines prefix a namespace declaration.
- *
- * @author Graham Campbell
- *
- * @internal
- */
-abstract class AbstractLinesBeforeNamespaceFixer extends AbstractFixer implements WhitespacesAwareFixerInterface
-{
- /**
- * Make sure # of line breaks prefixing namespace is within given range.
- *
- * @param int $expectedMin min. # of line breaks
- * @param int $expectedMax max. # of line breaks
- */
- protected function fixLinesBeforeNamespace(Tokens $tokens, int $index, int $expectedMin, int $expectedMax): void
- {
- // Let's determine the total numbers of new lines before the namespace
- // and the opening token
- $openingTokenIndex = null;
- $precedingNewlines = 0;
- $newlineInOpening = false;
- $openingToken = null;
-
- for ($i = 1; $i <= 2; ++$i) {
- if (isset($tokens[$index - $i])) {
- $token = $tokens[$index - $i];
-
- if ($token->isGivenKind(T_OPEN_TAG)) {
- $openingToken = $token;
- $openingTokenIndex = $index - $i;
- $newlineInOpening = str_contains($token->getContent(), "\n");
-
- if ($newlineInOpening) {
- ++$precedingNewlines;
- }
-
- break;
- }
-
- if (false === $token->isGivenKind(T_WHITESPACE)) {
- break;
- }
-
- $precedingNewlines += substr_count($token->getContent(), "\n");
- }
- }
-
- if ($precedingNewlines >= $expectedMin && $precedingNewlines <= $expectedMax) {
- return;
- }
-
- $previousIndex = $index - 1;
- $previous = $tokens[$previousIndex];
-
- if (0 === $expectedMax) {
- // Remove all the previous new lines
- if ($previous->isWhitespace()) {
- $tokens->clearAt($previousIndex);
- }
-
- // Remove new lines in opening token
- if ($newlineInOpening) {
- $tokens[$openingTokenIndex] = new Token([T_OPEN_TAG, rtrim($openingToken->getContent()).' ']);
- }
-
- return;
- }
-
- $lineEnding = $this->whitespacesConfig->getLineEnding();
- $newlinesForWhitespaceToken = $expectedMax;
-
- if (null !== $openingToken) {
- // Use the configured line ending for the PHP opening tag
- $content = rtrim($openingToken->getContent());
- $newContent = $content.$lineEnding;
- $tokens[$openingTokenIndex] = new Token([T_OPEN_TAG, $newContent]);
- --$newlinesForWhitespaceToken;
- }
-
- if (0 === $newlinesForWhitespaceToken) {
- // We have all the needed new lines in the opening tag
- if ($previous->isWhitespace()) {
- // Let's remove the previous token containing extra new lines
- $tokens->clearAt($previousIndex);
- }
-
- return;
- }
-
- if ($previous->isWhitespace()) {
- // Fix the previous whitespace token
- $tokens[$previousIndex] = new Token([T_WHITESPACE, str_repeat($lineEnding, $newlinesForWhitespaceToken).substr($previous->getContent(), strrpos($previous->getContent(), "\n") + 1)]);
- } else {
- // Add a new whitespace token
- $tokens->insertAt($index, new Token([T_WHITESPACE, str_repeat($lineEnding, $newlinesForWhitespaceToken)]));
- }
- }
-}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractNoUselessElseFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractNoUselessElseFixer.php
index 96f6bb09..b45be5ac 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractNoUselessElseFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractNoUselessElseFixer.php
@@ -18,9 +18,6 @@
abstract class AbstractNoUselessElseFixer extends AbstractFixer
{
- /**
- * {@inheritdoc}
- */
public function getPriority(): int
{
// should be run before NoWhitespaceInBlankLineFixer, NoExtraBlankLinesFixer, BracesFixer and after NoEmptyStatementFixer.
@@ -96,7 +93,7 @@ protected function isSuperfluousElse(Tokens $tokens, int $index): bool
*
* @param int $index T_IF, T_ELSE, T_ELSEIF
*
- * @return int[]
+ * @return array{int, int}
*/
private function getPreviousBlock(Tokens $tokens, int $index): array
{
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php
index 5dfc6a59..47dcf2f7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php
@@ -16,7 +16,9 @@
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
+use PhpCsFixer\DocBlock\TypeExpression;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
+use PhpCsFixer\Fixer\ConfigurableFixerTrait;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
@@ -28,10 +30,28 @@
/**
* @internal
+ *
+ * @phpstan-type _CommonTypeInfo array{commonType: string, isNullable: bool}
+ * @phpstan-type _AutogeneratedInputConfiguration array{
+ * scalar_types?: bool,
+ * types_map?: array,
+ * union_types?: bool
+ * }
+ * @phpstan-type _AutogeneratedComputedConfiguration array{
+ * scalar_types: bool,
+ * types_map: array,
+ * union_types: bool
+ * }
+ *
+ * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration>
*/
abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implements ConfigurableFixerInterface
{
- private const CLASS_REGEX = '/^\\\\?[a-zA-Z_\\x7f-\\xff](?:\\\\?[a-zA-Z0-9_\\x7f-\\xff]+)*$/';
+ /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */
+ use ConfigurableFixerTrait;
+
+ private const REGEX_CLASS = '(?:\\\?+'.TypeExpression::REGEX_IDENTIFIER
+ .'(\\\\'.TypeExpression::REGEX_IDENTIFIER.')*+)';
/**
* @var array
@@ -41,6 +61,7 @@ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implem
'iterable' => 7_01_00,
'object' => 7_02_00,
'mixed' => 8_00_00,
+ 'never' => 8_01_00,
];
/**
@@ -58,9 +79,6 @@ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implem
*/
private static array $syntaxValidationCache = [];
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return true;
@@ -68,9 +86,6 @@ public function isRisky(): bool
abstract protected function isSkippedType(string $type): bool;
- /**
- * {@inheritdoc}
- */
protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
{
return new FixerConfigurationResolver([
@@ -78,6 +93,14 @@ protected function createConfigurationDefinition(): FixerConfigurationResolverIn
->setAllowedTypes(['bool'])
->setDefault(true)
->getOption(),
+ (new FixerOptionBuilder('union_types', 'Fix also union types; turned on by default on PHP >= 8.0.0.'))
+ ->setAllowedTypes(['bool'])
+ ->setDefault(\PHP_VERSION_ID >= 8_00_00)
+ ->getOption(),
+ (new FixerOptionBuilder('types_map', 'Map of custom types, e.g. template types from PHPStan.'))
+ ->setAllowedTypes(['array'])
+ ->setDefault([])
+ ->getOption(),
]);
}
@@ -106,7 +129,7 @@ protected function findFunctionDocComment(Tokens $tokens, int $index): ?int
}
/**
- * @return Annotation[]
+ * @return list
*/
protected function getAnnotationsFromDocComment(string $name, Tokens $tokens, int $docCommentIndex): array
{
@@ -126,55 +149,53 @@ protected function getAnnotationsFromDocComment(string $name, Tokens $tokens, in
}
/**
- * @return Token[]
+ * @return list
*/
protected function createTypeDeclarationTokens(string $type, bool $isNullable): array
{
- static $specialTypes = [
- 'array' => [CT::T_ARRAY_TYPEHINT, 'array'],
- 'callable' => [T_CALLABLE, 'callable'],
- 'static' => [T_STATIC, 'static'],
- ];
-
$newTokens = [];
if (true === $isNullable && 'mixed' !== $type) {
$newTokens[] = new Token([CT::T_NULLABLE_TYPE, '?']);
}
- if (isset($specialTypes[$type])) {
- $newTokens[] = new Token($specialTypes[$type]);
- } else {
- $typeUnqualified = ltrim($type, '\\');
-
- if (isset($this->scalarTypes[$typeUnqualified]) || isset($this->versionSpecificTypes[$typeUnqualified])) {
- // 'scalar's, 'void', 'iterable' and 'object' must be unqualified
- $newTokens[] = new Token([T_STRING, $typeUnqualified]);
- } else {
- foreach (explode('\\', $type) as $nsIndex => $value) {
- if (0 === $nsIndex && '' === $value) {
- continue;
- }
-
- if (0 < $nsIndex) {
- $newTokens[] = new Token([T_NS_SEPARATOR, '\\']);
- }
+ $newTokens = array_merge(
+ $newTokens,
+ $this->createTokensFromRawType($type)->toArray()
+ );
- $newTokens[] = new Token([T_STRING, $value]);
+ // 'scalar's, 'void', 'iterable' and 'object' must be unqualified
+ foreach ($newTokens as $i => $token) {
+ if ($token->isGivenKind(T_STRING)) {
+ $typeUnqualified = $token->getContent();
+
+ if (
+ (isset($this->scalarTypes[$typeUnqualified]) || isset($this->versionSpecificTypes[$typeUnqualified]))
+ && isset($newTokens[$i - 1])
+ && '\\' === $newTokens[$i - 1]->getContent()
+ ) {
+ unset($newTokens[$i - 1]);
}
}
}
- return $newTokens;
+ return array_values($newTokens);
}
/**
- * @return null|array{string, bool}
+ * Each fixer inheriting from this class must define a way of creating token collection representing type
+ * gathered from phpDoc, e.g. `Foo|Bar` should be transformed into 3 tokens (`Foo`, `|` and `Bar`).
+ * This can't be standardised, because some types may be allowed in one place, and invalid in others.
+ *
+ * @param string $type Type determined (and simplified) from phpDoc
*/
- protected function getCommonTypeFromAnnotation(Annotation $annotation, bool $isReturnType): ?array
- {
- $typesExpression = $annotation->getTypeExpression();
+ abstract protected function createTokensFromRawType(string $type): Tokens;
+ /**
+ * @return ?_CommonTypeInfo
+ */
+ protected function getCommonTypeInfo(TypeExpression $typesExpression, bool $isReturnType): ?array
+ {
$commonType = $typesExpression->getCommonType();
$isNullable = $typesExpression->allowsNull();
@@ -198,15 +219,83 @@ protected function getCommonTypeFromAnnotation(Annotation $annotation, bool $isR
return null;
}
+ if (\array_key_exists($commonType, $this->configuration['types_map'])) {
+ $commonType = $this->configuration['types_map'][$commonType];
+ }
+
if (isset($this->scalarTypes[$commonType])) {
if (false === $this->configuration['scalar_types']) {
return null;
}
- } elseif (1 !== Preg::match(self::CLASS_REGEX, $commonType)) {
+ } elseif (!Preg::match('/^'.self::REGEX_CLASS.'$/', $commonType)) {
+ return null;
+ }
+
+ return ['commonType' => $commonType, 'isNullable' => $isNullable];
+ }
+
+ protected function getUnionTypes(TypeExpression $typesExpression, bool $isReturnType): ?string
+ {
+ if (\PHP_VERSION_ID < 8_00_00) {
+ return null;
+ }
+
+ if (!$typesExpression->isUnionType()) {
return null;
}
- return [$commonType, $isNullable];
+ if (false === $this->configuration['union_types']) {
+ return null;
+ }
+
+ $types = $typesExpression->getTypes();
+ $isNullable = $typesExpression->allowsNull();
+ $unionTypes = [];
+ $containsOtherThanIterableType = false;
+ $containsOtherThanEmptyType = false;
+
+ foreach ($types as $type) {
+ if ('null' === $type) {
+ continue;
+ }
+
+ if ($this->isSkippedType($type)) {
+ return null;
+ }
+
+ if (isset($this->versionSpecificTypes[$type]) && \PHP_VERSION_ID < $this->versionSpecificTypes[$type]) {
+ return null;
+ }
+
+ $typeExpression = new TypeExpression($type, null, []);
+ $commonType = $typeExpression->getCommonType();
+
+ if (!$containsOtherThanIterableType && !\in_array($commonType, ['array', \Traversable::class, 'iterable'], true)) {
+ $containsOtherThanIterableType = true;
+ }
+ if ($isReturnType && !$containsOtherThanEmptyType && !\in_array($commonType, ['null', 'void', 'never'], true)) {
+ $containsOtherThanEmptyType = true;
+ }
+
+ if (!$isNullable && $typesExpression->allowsNull()) {
+ $isNullable = true;
+ }
+
+ $unionTypes[] = $commonType;
+ }
+
+ if (!$containsOtherThanIterableType) {
+ return null;
+ }
+ if ($isReturnType && !$containsOtherThanEmptyType) {
+ return null;
+ }
+
+ if ($isNullable) {
+ $unionTypes[] = 'null';
+ }
+
+ return implode($typesExpression->getTypesGlue(), array_unique($unionTypes));
}
final protected function isValidSyntax(string $code): bool
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocTypesFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocTypesFixer.php
index bff21d10..fe9ff4e6 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocTypesFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocTypesFixer.php
@@ -16,6 +16,7 @@
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\DocBlock\DocBlock;
+use PhpCsFixer\DocBlock\TypeExpression;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
@@ -31,13 +32,10 @@ abstract class AbstractPhpdocTypesFixer extends AbstractFixer
/**
* The annotation tags search inside.
*
- * @var string[]
+ * @var list
*/
protected array $tags;
- /**
- * {@inheritdoc}
- */
public function __construct()
{
parent::__construct();
@@ -45,17 +43,11 @@ public function __construct()
$this->tags = Annotation::getTagsWithTypes();
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_DOC_COMMENT);
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
foreach ($tokens as $index => $token) {
@@ -71,7 +63,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
}
foreach ($annotations as $annotation) {
- $this->fixTypes($annotation);
+ $this->fixType($annotation);
}
$tokens[$index] = new Token([T_DOC_COMMENT, $doc->getContent()]);
@@ -84,44 +76,30 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
abstract protected function normalize(string $type): string;
/**
- * Fix the types at the given line.
+ * Fix the type at the given line.
*
* We must be super careful not to modify parts of words.
*
* This will be nicely handled behind the scenes for us by the annotation class.
*/
- private function fixTypes(Annotation $annotation): void
+ private function fixType(Annotation $annotation): void
{
- $types = $annotation->getTypes();
-
- $new = $this->normalizeTypes($types);
+ $typeExpression = $annotation->getTypeExpression();
- if ($types !== $new) {
- $annotation->setTypes($new);
+ if (null === $typeExpression) {
+ return;
}
- }
- /**
- * @param string[] $types
- *
- * @return string[]
- */
- private function normalizeTypes(array $types): array
- {
- foreach ($types as $index => $type) {
- $types[$index] = $this->normalizeType($type);
- }
+ $newTypeExpression = $typeExpression->mapTypes(function (TypeExpression $type) {
+ if (!$type->isCompositeType()) {
+ $value = $this->normalize($type->toString());
- return $types;
- }
+ return new TypeExpression($value, null, []);
+ }
- /**
- * Prepare the type and normalize it.
- */
- private function normalizeType(string $type): string
- {
- return str_ends_with($type, '[]')
- ? $this->normalizeType(substr($type, 0, -2)).'[]'
- : $this->normalize($type);
+ return $type;
+ });
+
+ $annotation->setTypes([$newTypeExpression->toString()]);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractProxyFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractProxyFixer.php
index 97a86d1d..96eab156 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractProxyFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/AbstractProxyFixer.php
@@ -39,9 +39,6 @@ public function __construct()
parent::__construct();
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
foreach ($this->proxyFixers as $fixer) {
@@ -53,9 +50,6 @@ public function isCandidate(Tokens $tokens): bool
return false;
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
foreach ($this->proxyFixers as $fixer) {
@@ -67,9 +61,6 @@ public function isRisky(): bool
return false;
}
- /**
- * {@inheritdoc}
- */
public function getPriority(): int
{
if (\count($this->proxyFixers) > 1) {
@@ -79,9 +70,6 @@ public function getPriority(): int
return reset($this->proxyFixers)->getPriority();
}
- /**
- * {@inheritdoc}
- */
public function supports(\SplFileInfo $file): bool
{
foreach ($this->proxyFixers as $fixer) {
@@ -93,9 +81,6 @@ public function supports(\SplFileInfo $file): bool
return false;
}
- /**
- * {@inheritdoc}
- */
public function setWhitespacesConfig(WhitespacesFixerConfig $config): void
{
parent::setWhitespacesConfig($config);
@@ -107,9 +92,6 @@ public function setWhitespacesConfig(WhitespacesFixerConfig $config): void
}
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
foreach ($this->proxyFixers as $fixer) {
@@ -118,7 +100,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
}
/**
- * @return FixerInterface[]
+ * @return list
*/
abstract protected function createProxyFixers(): array;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Cache.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Cache.php
index 8793630b..29976749 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Cache.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Cache.php
@@ -14,6 +14,8 @@
namespace PhpCsFixer\Cache;
+use PhpCsFixer\Utils;
+
/**
* @author Andreas Möller
*
@@ -73,8 +75,8 @@ public function toJson(): string
'hashes' => $this->hashes,
]);
- if (JSON_ERROR_NONE !== json_last_error()) {
- throw new \UnexpectedValueException(sprintf(
+ if (JSON_ERROR_NONE !== json_last_error() || false === $json) {
+ throw new \UnexpectedValueException(\sprintf(
'Cannot encode cache signature to JSON, error: "%s". If you have non-UTF8 chars in your signature, like in license for `header_comment`, consider enabling `ext-mbstring` or install `symfony/polyfill-mbstring`.',
json_last_error_msg()
));
@@ -91,7 +93,7 @@ public static function fromJson(string $json): self
$data = json_decode($json, true);
if (null === $data && JSON_ERROR_NONE !== json_last_error()) {
- throw new \InvalidArgumentException(sprintf(
+ throw new \InvalidArgumentException(\sprintf(
'Value needs to be a valid JSON string, got "%s", error: "%s".',
$json,
json_last_error_msg()
@@ -110,9 +112,9 @@ public static function fromJson(string $json): self
$missingKeys = array_diff_key(array_flip($requiredKeys), $data);
if (\count($missingKeys) > 0) {
- throw new \InvalidArgumentException(sprintf(
- 'JSON data is missing keys "%s"',
- implode('", "', $missingKeys)
+ throw new \InvalidArgumentException(\sprintf(
+ 'JSON data is missing keys %s',
+ Utils::naturalLanguageJoin(array_keys($missingKeys))
));
}
@@ -126,12 +128,24 @@ public static function fromJson(string $json): self
$cache = new self($signature);
- $cache->hashes = array_map(function ($v): string {
- // before v3.11.1 the hashes were crc32 encoded and saved as integers
- // @TODO: remove the to string cast/array_map in v4.0
- return \is_int($v) ? (string) $v : $v;
- }, $data['hashes']);
+ // before v3.11.1 the hashes were crc32 encoded and saved as integers
+ // @TODO: remove the to string cast/array_map in v4.0
+ $cache->hashes = array_map(static fn ($v): string => \is_int($v) ? (string) $v : $v, $data['hashes']);
return $cache;
}
+
+ /**
+ * @internal
+ */
+ public function backfillHashes(self $oldCache): bool
+ {
+ if (!$this->getSignature()->equals($oldCache->getSignature())) {
+ return false;
+ }
+
+ $this->hashes = array_merge($oldCache->hashes, $this->hashes);
+
+ return true;
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/CacheManagerInterface.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/CacheManagerInterface.php
index 4e82d0c9..b9fb2ff6 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/CacheManagerInterface.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/CacheManagerInterface.php
@@ -24,4 +24,6 @@ interface CacheManagerInterface
public function needFixing(string $file, string $fileContent): bool;
public function setFile(string $file, string $fileContent): void;
+
+ public function setFileHash(string $file, string $hash): void;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Directory.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Directory.php
index 90882af0..396137d9 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Directory.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Directory.php
@@ -17,6 +17,8 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class Directory implements DirectoryInterface
@@ -28,9 +30,6 @@ public function __construct(string $directoryName)
$this->directoryName = $directoryName;
}
- /**
- * {@inheritdoc}
- */
public function getRelativePathTo(string $file): string
{
$file = $this->normalizePath($file);
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileCacheManager.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileCacheManager.php
index d17afb8c..57b9f3b6 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileCacheManager.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileCacheManager.php
@@ -14,6 +14,8 @@
namespace PhpCsFixer\Cache;
+use PhpCsFixer\Tokenizer\CodeHasher;
+
/**
* Class supports caching information about state of fixing files.
*
@@ -32,6 +34,8 @@
*/
final class FileCacheManager implements CacheManagerInterface
{
+ public const WRITE_FREQUENCY = 10;
+
private FileHandlerInterface $handler;
private SignatureInterface $signature;
@@ -40,10 +44,11 @@ final class FileCacheManager implements CacheManagerInterface
private DirectoryInterface $cacheDirectory;
- /**
- * @var CacheInterface
- */
- private $cache;
+ private int $writeCounter = 0;
+
+ private bool $signatureWasUpdated = false;
+
+ private CacheInterface $cache;
public function __construct(
FileHandlerInterface $handler,
@@ -61,7 +66,9 @@ public function __construct(
public function __destruct()
{
- $this->writeCache();
+ if (true === $this->signatureWasUpdated || 0 !== $this->writeCounter) {
+ $this->writeCache();
+ }
}
/**
@@ -93,17 +100,23 @@ public function needFixing(string $file, string $fileContent): bool
public function setFile(string $file, string $fileContent): void
{
- $file = $this->cacheDirectory->getRelativePathTo($file);
+ $this->setFileHash($file, $this->calcHash($fileContent));
+ }
- $hash = $this->calcHash($fileContent);
+ public function setFileHash(string $file, string $hash): void
+ {
+ $file = $this->cacheDirectory->getRelativePathTo($file);
if ($this->isDryRun && $this->cache->has($file) && $this->cache->get($file) !== $hash) {
$this->cache->clear($file);
-
- return;
+ } else {
+ $this->cache->set($file, $hash);
}
- $this->cache->set($file, $hash);
+ if (self::WRITE_FREQUENCY === ++$this->writeCounter) {
+ $this->writeCounter = 0;
+ $this->writeCache();
+ }
}
private function readCache(): void
@@ -112,6 +125,7 @@ private function readCache(): void
if (null === $cache || !$this->signature->equals($cache->getSignature())) {
$cache = new Cache($this->signature);
+ $this->signatureWasUpdated = true;
}
$this->cache = $cache;
@@ -124,6 +138,6 @@ private function writeCache(): void
private function calcHash(string $content): string
{
- return md5($content);
+ return CodeHasher::calculateCodeHash($content);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandler.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandler.php
index 059e6b42..a1b83ed7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandler.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/FileHandler.php
@@ -18,89 +18,167 @@
/**
* @author Andreas Möller
+ * @author Dariusz Rumiński
*
* @internal
*/
final class FileHandler implements FileHandlerInterface
{
- private string $file;
+ private \SplFileInfo $fileInfo;
+
+ private int $fileMTime = 0;
public function __construct(string $file)
{
- $this->file = $file;
+ $this->fileInfo = new \SplFileInfo($file);
}
public function getFile(): string
{
- return $this->file;
+ return $this->fileInfo->getPathname();
}
public function read(): ?CacheInterface
{
- if (!file_exists($this->file)) {
+ if (!$this->fileInfo->isFile() || !$this->fileInfo->isReadable()) {
return null;
}
- $content = file_get_contents($this->file);
+ $fileObject = $this->fileInfo->openFile('r');
- try {
- $cache = Cache::fromJson($content);
- } catch (\InvalidArgumentException $exception) {
- return null;
- }
+ $cache = $this->readFromHandle($fileObject);
+ $this->fileMTime = $this->getFileCurrentMTime();
+
+ unset($fileObject); // explicitly close file handler
return $cache;
}
public function write(CacheInterface $cache): void
{
- $content = $cache->toJson();
-
- if (file_exists($this->file)) {
- if (is_dir($this->file)) {
- throw new IOException(
- sprintf('Cannot write cache file "%s" as the location exists as directory.', realpath($this->file)),
- 0,
- null,
- $this->file
- );
+ $this->ensureFileIsWriteable();
+
+ $fileObject = $this->fileInfo->openFile('r+');
+
+ if (method_exists($cache, 'backfillHashes') && $this->fileMTime < $this->getFileCurrentMTime()) {
+ $resultOfFlock = $fileObject->flock(LOCK_EX);
+ if (false === $resultOfFlock) {
+ // Lock failed, OK - we continue without the lock.
+ // noop
}
- if (!is_writable($this->file)) {
- throw new IOException(
- sprintf('Cannot write to file "%s" as it is not writable.', realpath($this->file)),
- 0,
- null,
- $this->file
- );
+ $oldCache = $this->readFromHandle($fileObject);
+
+ $fileObject->rewind();
+
+ if (null !== $oldCache) {
+ $cache->backfillHashes($oldCache);
}
- } else {
- $dir = \dirname($this->file);
-
- if (!is_dir($dir)) {
- throw new IOException(
- sprintf('Directory of cache file "%s" does not exists.', $this->file),
- 0,
- null,
- $this->file
- );
+ }
+
+ $resultOfTruncate = $fileObject->ftruncate(0);
+ if (false === $resultOfTruncate) {
+ // Truncate failed. OK - we do not save the cache.
+ return;
+ }
+
+ $resultOfWrite = $fileObject->fwrite($cache->toJson());
+ if (false === $resultOfWrite) {
+ // Write failed. OK - we did not save the cache.
+ return;
+ }
+
+ $resultOfFlush = $fileObject->fflush();
+ if (false === $resultOfFlush) {
+ // Flush failed. OK - part of cache can be missing, in case this was last chunk in this pid.
+ // noop
+ }
+
+ $this->fileMTime = time(); // we could take the fresh `mtime` of file that we just modified with `$this->getFileCurrentMTime()`, but `time()` should be good enough here and reduce IO operation
+ }
+
+ private function getFileCurrentMTime(): int
+ {
+ clearstatcache(true, $this->fileInfo->getPathname());
+
+ $mtime = $this->fileInfo->getMTime();
+
+ if (false === $mtime) {
+ // cannot check mtime? OK - let's pretend file is old.
+ $mtime = 0;
+ }
+
+ return $mtime;
+ }
+
+ private function readFromHandle(\SplFileObject $fileObject): ?CacheInterface
+ {
+ try {
+ $size = $fileObject->getSize();
+ if (false === $size || 0 === $size) {
+ return null;
+ }
+
+ $content = $fileObject->fread($size);
+
+ if (false === $content) {
+ return null;
}
- @touch($this->file);
- @chmod($this->file, 0666);
+ return Cache::fromJson($content);
+ } catch (\InvalidArgumentException $exception) {
+ return null;
}
+ }
- $bytesWritten = @file_put_contents($this->file, $content);
+ private function ensureFileIsWriteable(): void
+ {
+ if ($this->fileInfo->isFile() && $this->fileInfo->isWritable()) {
+ // all good
+ return;
+ }
- if (false === $bytesWritten) {
- $error = error_get_last();
+ if ($this->fileInfo->isDir()) {
+ throw new IOException(
+ \sprintf('Cannot write cache file "%s" as the location exists as directory.', $this->fileInfo->getRealPath()),
+ 0,
+ null,
+ $this->fileInfo->getPathname()
+ );
+ }
+ if ($this->fileInfo->isFile() && !$this->fileInfo->isWritable()) {
throw new IOException(
- sprintf('Failed to write file "%s", "%s".', $this->file, $error['message'] ?? 'no reason available'),
+ \sprintf('Cannot write to file "%s" as it is not writable.', $this->fileInfo->getRealPath()),
0,
null,
- $this->file
+ $this->fileInfo->getPathname()
);
}
+
+ $this->createFile($this->fileInfo->getPathname());
+ }
+
+ private function createFile(string $file): void
+ {
+ $dir = \dirname($file);
+
+ // Ensure path is created, but ignore if already exists. FYI: ignore EA suggestion in IDE,
+ // `mkdir()` returns `false` for existing paths, so we can't mix it with `is_dir()` in one condition.
+ if (!@is_dir($dir)) {
+ @mkdir($dir, 0777, true);
+ }
+
+ if (!@is_dir($dir)) {
+ throw new IOException(
+ \sprintf('Directory of cache file "%s" does not exists and couldn\'t be created.', $file),
+ 0,
+ null,
+ $file
+ );
+ }
+
+ @touch($file);
+ @chmod($file, 0666);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/NullCacheManager.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/NullCacheManager.php
index 63094804..3a5fe991 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/NullCacheManager.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/NullCacheManager.php
@@ -16,6 +16,7 @@
/**
* @author Andreas Möller
+ * @author Dariusz Rumiński
*
* @internal
*/
@@ -26,7 +27,7 @@ public function needFixing(string $file, string $fileContent): bool
return true;
}
- public function setFile(string $file, string $fileContent): void
- {
- }
+ public function setFile(string $file, string $fileContent): void {}
+
+ public function setFileHash(string $file, string $hash): void {}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Signature.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Signature.php
index 48c96289..17be5de0 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Signature.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Cache/Signature.php
@@ -17,6 +17,8 @@
/**
* @author Andreas Möller
*
+ * @readonly
+ *
* @internal
*/
final class Signature implements SignatureInterface
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Config.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Config.php
index 856f88b7..ac59e143 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Config.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Config.php
@@ -15,18 +15,23 @@
namespace PhpCsFixer;
use PhpCsFixer\Fixer\FixerInterface;
+use PhpCsFixer\Runner\Parallel\ParallelConfig;
+use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
/**
* @author Fabien Potencier
* @author Katsuhiro Ogawa
* @author Dariusz Rumiński
*/
-class Config implements ConfigInterface
+class Config implements ConfigInterface, ParallelAwareConfigInterface
{
+ /**
+ * @var non-empty-string
+ */
private string $cacheFile = '.php-cs-fixer.cache';
/**
- * @var FixerInterface[]
+ * @var list
*/
private array $customFixers = [];
@@ -39,44 +44,60 @@ class Config implements ConfigInterface
private bool $hideProgress = false;
+ /**
+ * @var non-empty-string
+ */
private string $indent = ' ';
private bool $isRiskyAllowed = false;
+ /**
+ * @var non-empty-string
+ */
private string $lineEnding = "\n";
private string $name;
- /**
- * @var null|string
- */
- private $phpExecutable;
+ private ParallelConfig $parallelConfig;
+
+ private ?string $phpExecutable = null;
/**
* @TODO: 4.0 - update to @PER
*
* @var array|bool>
*/
- private array $rules = ['@PSR12' => true];
+ private array $rules;
private bool $usingCache = true;
public function __construct(string $name = 'default')
{
- $this->name = $name;
+ // @TODO 4.0 cleanup
+ if (Utils::isFutureModeEnabled()) {
+ $this->name = $name.' (future mode)';
+ $this->rules = ['@PER-CS' => true];
+ } else {
+ $this->name = $name;
+ $this->rules = ['@PSR12' => true];
+ }
+
+ // @TODO 4.0 cleanup
+ if (Utils::isFutureModeEnabled() || filter_var(getenv('PHP_CS_FIXER_PARALLEL'), FILTER_VALIDATE_BOOL)) {
+ $this->parallelConfig = ParallelConfigFactory::detect();
+ } else {
+ $this->parallelConfig = ParallelConfigFactory::sequential();
+ }
}
/**
- * {@inheritdoc}
+ * @return non-empty-string
*/
public function getCacheFile(): string
{
return $this->cacheFile;
}
- /**
- * {@inheritdoc}
- */
public function getCustomFixers(): array
{
return $this->customFixers;
@@ -87,88 +108,61 @@ public function getCustomFixers(): array
*/
public function getFinder(): iterable
{
- if (null === $this->finder) {
- $this->finder = new Finder();
- }
+ $this->finder ??= new Finder();
return $this->finder;
}
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return $this->format;
}
- /**
- * {@inheritdoc}
- */
public function getHideProgress(): bool
{
return $this->hideProgress;
}
- /**
- * {@inheritdoc}
- */
public function getIndent(): string
{
return $this->indent;
}
- /**
- * {@inheritdoc}
- */
public function getLineEnding(): string
{
return $this->lineEnding;
}
- /**
- * {@inheritdoc}
- */
public function getName(): string
{
return $this->name;
}
- /**
- * {@inheritdoc}
- */
+ public function getParallelConfig(): ParallelConfig
+ {
+ return $this->parallelConfig;
+ }
+
public function getPhpExecutable(): ?string
{
return $this->phpExecutable;
}
- /**
- * {@inheritdoc}
- */
public function getRiskyAllowed(): bool
{
return $this->isRiskyAllowed;
}
- /**
- * {@inheritdoc}
- */
public function getRules(): array
{
return $this->rules;
}
- /**
- * {@inheritdoc}
- */
public function getUsingCache(): bool
{
return $this->usingCache;
}
- /**
- * {@inheritdoc}
- */
public function registerCustomFixers(iterable $fixers): ConfigInterface
{
foreach ($fixers as $fixer) {
@@ -179,7 +173,7 @@ public function registerCustomFixers(iterable $fixers): ConfigInterface
}
/**
- * {@inheritdoc}
+ * @param non-empty-string $cacheFile
*/
public function setCacheFile(string $cacheFile): ConfigInterface
{
@@ -188,9 +182,6 @@ public function setCacheFile(string $cacheFile): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setFinder(iterable $finder): ConfigInterface
{
$this->finder = $finder;
@@ -198,9 +189,6 @@ public function setFinder(iterable $finder): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setFormat(string $format): ConfigInterface
{
$this->format = $format;
@@ -208,9 +196,6 @@ public function setFormat(string $format): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setHideProgress(bool $hideProgress): ConfigInterface
{
$this->hideProgress = $hideProgress;
@@ -219,7 +204,7 @@ public function setHideProgress(bool $hideProgress): ConfigInterface
}
/**
- * {@inheritdoc}
+ * @param non-empty-string $indent
*/
public function setIndent(string $indent): ConfigInterface
{
@@ -229,7 +214,7 @@ public function setIndent(string $indent): ConfigInterface
}
/**
- * {@inheritdoc}
+ * @param non-empty-string $lineEnding
*/
public function setLineEnding(string $lineEnding): ConfigInterface
{
@@ -238,9 +223,13 @@ public function setLineEnding(string $lineEnding): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
+ public function setParallelConfig(ParallelConfig $config): ConfigInterface
+ {
+ $this->parallelConfig = $config;
+
+ return $this;
+ }
+
public function setPhpExecutable(?string $phpExecutable): ConfigInterface
{
$this->phpExecutable = $phpExecutable;
@@ -248,9 +237,6 @@ public function setPhpExecutable(?string $phpExecutable): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setRiskyAllowed(bool $isRiskyAllowed): ConfigInterface
{
$this->isRiskyAllowed = $isRiskyAllowed;
@@ -258,9 +244,6 @@ public function setRiskyAllowed(bool $isRiskyAllowed): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setRules(array $rules): ConfigInterface
{
$this->rules = $rules;
@@ -268,9 +251,6 @@ public function setRules(array $rules): ConfigInterface
return $this;
}
- /**
- * {@inheritdoc}
- */
public function setUsingCache(bool $usingCache): ConfigInterface
{
$this->usingCache = $usingCache;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php
index b46b191b..c097a582 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php
@@ -25,14 +25,14 @@ interface ConfigInterface
/**
* Returns the path to the cache file.
*
- * @return null|string Returns null if not using cache
+ * @return null|non-empty-string Returns null if not using cache
*/
public function getCacheFile(): ?string;
/**
* Returns the custom fixers to use.
*
- * @return FixerInterface[]
+ * @return list
*/
public function getCustomFixers(): array;
@@ -50,8 +50,14 @@ public function getFormat(): string;
*/
public function getHideProgress(): bool;
+ /**
+ * @return non-empty-string
+ */
public function getIndent(): string;
+ /**
+ * @return non-empty-string
+ */
public function getLineEnding(): string;
/**
@@ -65,6 +71,10 @@ public function getName(): string;
/**
* Get configured PHP executable, if any.
+ *
+ * @deprecated
+ *
+ * @TODO 4.0 remove me
*/
public function getPhpExecutable(): ?string;
@@ -92,12 +102,14 @@ public function getUsingCache(): bool;
*
* Name of custom fixer should follow `VendorName/rule_name` convention.
*
- * @param FixerInterface[]|iterable|\Traversable $fixers
+ * @param iterable $fixers
*/
public function registerCustomFixers(iterable $fixers): self;
/**
* Sets the path to the cache file.
+ *
+ * @param non-empty-string $cacheFile
*/
public function setCacheFile(string $cacheFile): self;
@@ -110,12 +122,22 @@ public function setFormat(string $format): self;
public function setHideProgress(bool $hideProgress): self;
+ /**
+ * @param non-empty-string $indent
+ */
public function setIndent(string $indent): self;
+ /**
+ * @param non-empty-string $lineEnding
+ */
public function setLineEnding(string $lineEnding): self;
/**
* Set PHP executable.
+ *
+ * @deprecated
+ *
+ * @TODO 4.0 remove me
*/
public function setPhpExecutable(?string $phpExecutable): self;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidFixerConfigurationException.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidFixerConfigurationException.php
index 140385c3..8607bbfa 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidFixerConfigurationException.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidFixerConfigurationException.php
@@ -30,7 +30,7 @@ class InvalidFixerConfigurationException extends InvalidConfigurationException
public function __construct(string $fixerName, string $message, ?\Throwable $previous = null)
{
parent::__construct(
- sprintf('[%s] %s', $fixerName, $message),
+ \sprintf('[%s] %s', $fixerName, $message),
FixCommandExitStatusCalculator::EXIT_STATUS_FLAG_HAS_INVALID_FIXER_CONFIG,
$previous
);
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php
index 6e4dcd4b..440b2470 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php
@@ -19,6 +19,4 @@
*
* @internal
*/
-final class InvalidForEnvFixerConfigurationException extends InvalidFixerConfigurationException
-{
-}
+final class InvalidForEnvFixerConfigurationException extends InvalidFixerConfigurationException {}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php
index d229cda3..bcc07bdf 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php
@@ -19,6 +19,4 @@
*
* @internal
*/
-final class RequiredFixerConfigurationException extends InvalidFixerConfigurationException
-{
-}
+final class RequiredFixerConfigurationException extends InvalidFixerConfigurationException {}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php
index 8705dec6..635d7986 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php
@@ -14,18 +14,22 @@
namespace PhpCsFixer\Console;
+use PhpCsFixer\Console\Command\CheckCommand;
use PhpCsFixer\Console\Command\DescribeCommand;
use PhpCsFixer\Console\Command\FixCommand;
use PhpCsFixer\Console\Command\HelpCommand;
use PhpCsFixer\Console\Command\ListFilesCommand;
use PhpCsFixer\Console\Command\ListSetsCommand;
use PhpCsFixer\Console\Command\SelfUpdateCommand;
+use PhpCsFixer\Console\Command\WorkerCommand;
use PhpCsFixer\Console\SelfUpdate\GithubClient;
use PhpCsFixer\Console\SelfUpdate\NewVersionChecker;
use PhpCsFixer\PharChecker;
+use PhpCsFixer\Runner\Parallel\WorkerException;
use PhpCsFixer\ToolInfo;
use PhpCsFixer\Utils;
use Symfony\Component\Console\Application as BaseApplication;
+use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Command\ListCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
@@ -39,19 +43,25 @@
*/
final class Application extends BaseApplication
{
- public const VERSION = '3.16.0';
- public const VERSION_CODENAME = 'BoY42';
+ public const NAME = 'PHP CS Fixer';
+ public const VERSION = '3.68.1';
+ public const VERSION_CODENAME = 'Persian Successor';
+ /**
+ * @readonly
+ */
private ToolInfo $toolInfo;
+ private ?Command $executedCommand = null;
public function __construct()
{
- parent::__construct('PHP CS Fixer', self::VERSION);
+ parent::__construct(self::NAME, self::VERSION);
$this->toolInfo = new ToolInfo();
// in alphabetical order
$this->add(new DescribeCommand());
+ $this->add(new CheckCommand($this->toolInfo));
$this->add(new FixCommand($this->toolInfo));
$this->add(new ListFilesCommand($this->toolInfo));
$this->add(new ListSetsCommand());
@@ -60,6 +70,7 @@ public function __construct()
$this->toolInfo,
new PharChecker()
));
+ $this->add(new WorkerCommand($this->toolInfo));
}
public static function getMajorVersion(): int
@@ -67,9 +78,6 @@ public static function getMajorVersion(): int
return (int) explode('.', self::VERSION)[0];
}
- /**
- * {@inheritdoc}
- */
public function doRun(InputInterface $input, OutputInterface $output): int
{
$stdErr = $output instanceof ConsoleOutputInterface
@@ -84,7 +92,7 @@ public function doRun(InputInterface $input, OutputInterface $output): int
if (\count($warnings) > 0) {
foreach ($warnings as $warning) {
- $stdErr->writeln(sprintf($stdErr->isDecorated() ? '%s>' : '%s', $warning));
+ $stdErr->writeln(\sprintf($stdErr->isDecorated() ? '%s>' : '%s', $warning));
}
$stdErr->writeln('');
}
@@ -102,7 +110,7 @@ public function doRun(InputInterface $input, OutputInterface $output): int
$stdErr->writeln('');
$stdErr->writeln($stdErr->isDecorated() ? 'Detected deprecations in use:>' : 'Detected deprecations in use:');
foreach ($triggeredDeprecations as $deprecation) {
- $stdErr->writeln(sprintf('- %s', $deprecation));
+ $stdErr->writeln(\sprintf('- %s', $deprecation));
}
}
}
@@ -111,10 +119,12 @@ public function doRun(InputInterface $input, OutputInterface $output): int
}
/**
- * {@inheritdoc}
+ * @internal
*/
- public function getLongVersion(): string
+ public static function getAbout(bool $decorated = false): string
{
+ $longVersion = \sprintf('%s %s', self::NAME, self::VERSION);
+
$commit = '@git-commit@';
$versionCommit = '';
@@ -122,20 +132,81 @@ public function getLongVersion(): string
$versionCommit = substr($commit, 0, 7);
}
- return implode('', [
- parent::getLongVersion(),
- $versionCommit ? sprintf(' (%s)', $versionCommit) : '', // @phpstan-ignore-line to avoid `Ternary operator condition is always true|false.`
- self::VERSION_CODENAME ? sprintf(' %s', self::VERSION_CODENAME) : '', // @phpstan-ignore-line to avoid `Ternary operator condition is always true|false.`
- ' by Fabien Potencier and Dariusz Ruminski.',
- "\nPHP runtime: ".PHP_VERSION.'',
+ $about = implode('', [
+ $longVersion,
+ $versionCommit ? \sprintf(' (%s)', $versionCommit) : '', // @phpstan-ignore-line to avoid `Ternary operator condition is always true|false.`
+ self::VERSION_CODENAME ? \sprintf(' %s', self::VERSION_CODENAME) : '', // @phpstan-ignore-line to avoid `Ternary operator condition is always true|false.`
+ ' by Fabien Potencier, Dariusz Ruminski and contributors.',
]);
+
+ if (false === $decorated) {
+ return strip_tags($about);
+ }
+
+ return $about;
}
/**
- * {@inheritdoc}
+ * @internal
*/
+ public static function getAboutWithRuntime(bool $decorated = false): string
+ {
+ $about = self::getAbout(true)."\nPHP runtime: ".PHP_VERSION.'';
+ if (false === $decorated) {
+ return strip_tags($about);
+ }
+
+ return $about;
+ }
+
+ public function getLongVersion(): string
+ {
+ return self::getAboutWithRuntime(true);
+ }
+
protected function getDefaultCommands(): array
{
return [new HelpCommand(), new ListCommand()];
}
+
+ /**
+ * @throws \Throwable
+ */
+ protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output): int
+ {
+ $this->executedCommand = $command;
+
+ return parent::doRunCommand($command, $input, $output);
+ }
+
+ protected function doRenderThrowable(\Throwable $e, OutputInterface $output): void
+ {
+ // Since parallel analysis utilises child processes, and they have their own output,
+ // we need to capture the output of the child process to determine it there was an exception.
+ // Default render format is not machine-friendly, so we need to override it for `worker` command,
+ // in order to be able to easily parse exception data for further displaying on main process' side.
+ if ($this->executedCommand instanceof WorkerCommand) {
+ $output->writeln(WorkerCommand::ERROR_PREFIX.json_encode(
+ [
+ 'class' => \get_class($e),
+ 'message' => $e->getMessage(),
+ 'file' => $e->getFile(),
+ 'line' => $e->getLine(),
+ 'code' => $e->getCode(),
+ 'trace' => $e->getTraceAsString(),
+ ]
+ ));
+
+ return;
+ }
+
+ parent::doRenderThrowable($e, $output);
+
+ if ($output->isVeryVerbose() && $e instanceof WorkerException) {
+ $output->writeln('Original trace from worker:');
+ $output->writeln('');
+ $output->writeln($e->getOriginalTraceAsString());
+ $output->writeln('');
+ }
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php
new file mode 100644
index 00000000..cb261916
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php
@@ -0,0 +1,64 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Command;
+
+use PhpCsFixer\ToolInfoInterface;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+
+/**
+ * @author Greg Korba
+ *
+ * @internal
+ */
+#[AsCommand(name: 'check', description: 'Checks if configured files/directories comply with configured rules.')]
+final class CheckCommand extends FixCommand
+{
+ protected static $defaultName = 'check';
+
+ protected static $defaultDescription = 'Checks if configured files/directories comply with configured rules.';
+
+ public function __construct(ToolInfoInterface $toolInfo)
+ {
+ parent::__construct($toolInfo);
+ }
+
+ public function getHelp(): string
+ {
+ $help = explode('--dry-run', parent::getHelp());
+
+ return substr($help[0], 0, strrpos($help[0], "\n") - 1)
+ .substr($help[1], strpos($help[1], "\n"));
+ }
+
+ protected function configure(): void
+ {
+ parent::configure();
+
+ $this->setDefinition([
+ ...array_values($this->getDefinition()->getArguments()),
+ ...array_values(array_filter(
+ $this->getDefinition()->getOptions(),
+ static fn (InputOption $option): bool => 'dry-run' !== $option->getName()
+ )),
+ ]);
+ }
+
+ protected function isDryRun(InputInterface $input): bool
+ {
+ return true;
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php
index 3410794b..f3ae6569 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php
@@ -14,11 +14,17 @@
namespace PhpCsFixer\Console\Command;
+use PhpCsFixer\Config;
+use PhpCsFixer\Console\Application;
+use PhpCsFixer\Console\ConfigurationResolver;
use PhpCsFixer\Differ\DiffConsoleFormatter;
use PhpCsFixer\Differ\FullDiffer;
+use PhpCsFixer\Documentation\FixerDocumentGenerator;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
+use PhpCsFixer\Fixer\ExperimentalFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
+use PhpCsFixer\Fixer\InternalFixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\DeprecatedFixerOption;
@@ -30,6 +36,7 @@
use PhpCsFixer\RuleSet\RuleSets;
use PhpCsFixer\StdinFileInfo;
use PhpCsFixer\Tokenizer\Tokens;
+use PhpCsFixer\ToolInfo;
use PhpCsFixer\Utils;
use PhpCsFixer\WordMatcher;
use Symfony\Component\Console\Attribute\AsCommand;
@@ -37,6 +44,7 @@
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -48,22 +56,19 @@
#[AsCommand(name: 'describe')]
final class DescribeCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'describe';
/**
- * @var string[]
+ * @var ?list
*/
- private $setNames;
+ private ?array $setNames = null;
private FixerFactory $fixerFactory;
/**
- * @var array
+ * @var null|array
*/
- private $fixers;
+ private ?array $fixers = null;
public function __construct(?FixerFactory $fixerFactory = null)
{
@@ -77,31 +82,35 @@ public function __construct(?FixerFactory $fixerFactory = null)
$this->fixerFactory = $fixerFactory;
}
- /**
- * {@inheritdoc}
- */
protected function configure(): void
{
$this
->setDefinition(
[
new InputArgument('name', InputArgument::REQUIRED, 'Name of rule / set.'),
+ new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a .php-cs-fixer.php file.'),
]
)
->setDescription('Describe rule / ruleset.')
;
}
- /**
- * {@inheritdoc}
- */
protected function execute(InputInterface $input, OutputInterface $output): int
{
- if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity() && $output instanceof ConsoleOutputInterface) {
+ if ($output instanceof ConsoleOutputInterface) {
$stdErr = $output->getErrorOutput();
- $stdErr->writeln($this->getApplication()->getLongVersion());
+ $stdErr->writeln(Application::getAboutWithRuntime(true));
}
+ $resolver = new ConfigurationResolver(
+ new Config(),
+ ['config' => $input->getOption('config')],
+ getcwd(),
+ new ToolInfo()
+ );
+
+ $this->fixerFactory->registerCustomFixers($resolver->getConfig()->getCustomFixers());
+
$name = $input->getArgument('name');
try {
@@ -121,7 +130,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$this->describeList($output, $e->getType());
- throw new \InvalidArgumentException(sprintf(
+ throw new \InvalidArgumentException(\sprintf(
'%s "%s" not found.%s',
ucfirst($e->getType()),
$name,
@@ -145,24 +154,28 @@ private function describeRule(OutputInterface $output, string $name): void
$definition = $fixer->getDefinition();
- $summary = $definition->getSummary();
+ $output->writeln(\sprintf('Description of the `%s` rule.>', $name));
+ $output->writeln('');
+
+ if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
+ $output->writeln(\sprintf('Fixer class: %s.', \get_class($fixer)));
+ $output->writeln('');
+ }
if ($fixer instanceof DeprecatedFixerInterface) {
$successors = $fixer->getSuccessorsNames();
$message = [] === $successors
- ? 'will be removed on next major version'
- : sprintf('use %s instead', Utils::naturalLanguageJoinWithBackticks($successors));
- $message = Preg::replace('/(`.+?`)/', '$1', $message);
- $summary .= sprintf(' DEPRECATED: %s.', $message);
- }
-
- $output->writeln(sprintf('Description of %s rule.', $name));
+ ? \sprintf('it will be removed in version %d.0', Application::getMajorVersion() + 1)
+ : \sprintf('use %s instead', Utils::naturalLanguageJoinWithBackticks($successors));
- if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
- $output->writeln(sprintf('Fixer class: %s.', \get_class($fixer)));
+ $endMessage = '. '.ucfirst($message);
+ Utils::triggerDeprecation(new \RuntimeException(str_replace('`', '"', "Rule \"{$name}\" is deprecated{$endMessage}.")));
+ $message = Preg::replace('/(`[^`]+`)/', '$1', $message);
+ $output->writeln(\sprintf('DEPRECATED: %s.', $message));
+ $output->writeln('');
}
- $output->writeln($summary);
+ $output->writeln($definition->getSummary());
$description = $definition->getDescription();
@@ -172,8 +185,22 @@ private function describeRule(OutputInterface $output, string $name): void
$output->writeln('');
+ if ($fixer instanceof ExperimentalFixerInterface) {
+ $output->writeln('Fixer applying this rule is EXPERIMENTAL..');
+ $output->writeln('It is not covered with backward compatibility promise and may produce unstable or unexpected results.');
+
+ $output->writeln('');
+ }
+
+ if ($fixer instanceof InternalFixerInterface) {
+ $output->writeln('Fixer applying this rule is INTERNAL..');
+ $output->writeln('It is expected to be used only on PHP CS Fixer project itself.');
+
+ $output->writeln('');
+ }
+
if ($fixer->isRisky()) {
- $output->writeln('Fixer applying this rule is risky.');
+ $output->writeln('Fixer applying this rule is RISKY.');
$riskyDescription = $definition->getRiskyDescription();
@@ -188,7 +215,7 @@ private function describeRule(OutputInterface $output, string $name): void
$configurationDefinition = $fixer->getConfigurationDefinition();
$options = $configurationDefinition->getOptions();
- $output->writeln(sprintf('Fixer is configurable using following option%s:', 1 === \count($options) ? '' : 's'));
+ $output->writeln(\sprintf('Fixer is configurable using following option%s:', 1 === \count($options) ? '' : 's'));
foreach ($options as $option) {
$line = '* '.OutputFormatter::escape($option->getName()).'';
@@ -200,22 +227,20 @@ private function describeRule(OutputInterface $output, string $name): void
$option->getAllowedTypes(),
);
} else {
- $allowed = array_map(static function ($value): string {
- return $value instanceof AllowedValueSubset
- ? 'a subset of '.HelpCommand::toString($value->getAllowedValues()).''
- : ''.HelpCommand::toString($value).'';
- }, $allowed);
+ $allowed = array_map(static fn ($value): string => $value instanceof AllowedValueSubset
+ ? 'a subset of '.Utils::toString($value->getAllowedValues()).''
+ : ''.Utils::toString($value).'', $allowed);
}
- $line .= ' ('.implode(', ', $allowed).')';
+ $line .= ' ('.Utils::naturalLanguageJoin($allowed, '').')';
$description = Preg::replace('/(`.+?`)/', '$1', OutputFormatter::escape($option->getDescription()));
$line .= ': '.lcfirst(Preg::replace('/\.$/', '', $description)).'; ';
if ($option->hasDefault()) {
- $line .= sprintf(
+ $line .= \sprintf(
'defaults to %s',
- HelpCommand::toString($option->getDefault())
+ Utils::toString($option->getDefault())
);
} else {
$line .= 'required';
@@ -239,7 +264,7 @@ private function describeRule(OutputInterface $output, string $name): void
$output->writeln('');
}
- /** @var CodeSampleInterface[] $codeSamples */
+ /** @var list $codeSamples */
$codeSamples = array_filter($definition->getCodeSamples(), static function (CodeSampleInterface $codeSample): bool {
if ($codeSample instanceof VersionSpecificCodeSampleInterface) {
return $codeSample->isSuitableFor(\PHP_VERSION_ID);
@@ -248,9 +273,14 @@ private function describeRule(OutputInterface $output, string $name): void
return true;
});
- if (0 === \count($codeSamples)) {
+ if (0 === \count($definition->getCodeSamples())) {
+ $output->writeln([
+ 'Fixing examples are not available for this rule.',
+ '',
+ ]);
+ } elseif (0 === \count($codeSamples)) {
$output->writeln([
- 'Fixing examples cannot be demonstrated on the current PHP version.',
+ 'Fixing examples cannot be demonstrated on the current PHP version.',
'',
]);
} else {
@@ -259,7 +289,7 @@ private function describeRule(OutputInterface $output, string $name): void
$differ = new FullDiffer();
$diffFormatter = new DiffConsoleFormatter(
$output->isDecorated(),
- sprintf(
+ \sprintf(
' ---------- begin diff ----------%s%%s%s ----------- end diff -----------',
PHP_EOL,
PHP_EOL
@@ -286,17 +316,35 @@ private function describeRule(OutputInterface $output, string $name): void
if ($fixer instanceof ConfigurableFixerInterface) {
if (null === $configuration) {
- $output->writeln(sprintf(' * Example #%d. Fixing with the default configuration.', $index + 1));
+ $output->writeln(\sprintf(' * Example #%d. Fixing with the default configuration.', $index + 1));
} else {
- $output->writeln(sprintf(' * Example #%d. Fixing with configuration: %s.', $index + 1, HelpCommand::toString($codeSample->getConfiguration())));
+ $output->writeln(\sprintf(' * Example #%d. Fixing with configuration: %s.', $index + 1, Utils::toString($codeSample->getConfiguration())));
}
} else {
- $output->writeln(sprintf(' * Example #%d.', $index + 1));
+ $output->writeln(\sprintf(' * Example #%d.', $index + 1));
}
$output->writeln([$diffFormatter->format($diff, ' %s'), '']);
}
}
+
+ $ruleSetConfigs = FixerDocumentGenerator::getSetsOfRule($name);
+
+ if ([] !== $ruleSetConfigs) {
+ ksort($ruleSetConfigs);
+ $plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
+ $output->writeln("Fixer is part of the following rule set{$plural}:");
+
+ foreach ($ruleSetConfigs as $set => $config) {
+ if (null !== $config) {
+ $output->writeln(\sprintf('* %s with config: %s', $set, Utils::toString($config)));
+ } else {
+ $output->writeln(\sprintf('* %s with default config', $set));
+ }
+ }
+
+ $output->writeln('');
+ }
}
private function describeSet(OutputInterface $output, string $name): void
@@ -308,21 +356,23 @@ private function describeSet(OutputInterface $output, string $name): void
$ruleSetDefinitions = RuleSets::getSetDefinitions();
$fixers = $this->getFixers();
- $output->writeln(sprintf('Description of the %s set.', $ruleSetDefinitions[$name]->getName()));
+ $output->writeln(\sprintf('Description of the `%s` set.>', $ruleSetDefinitions[$name]->getName()));
+ $output->writeln('');
+
$output->writeln($this->replaceRstLinks($ruleSetDefinitions[$name]->getDescription()));
+ $output->writeln('');
if ($ruleSetDefinitions[$name]->isRisky()) {
- $output->writeln('This set contains risky rules.');
+ $output->writeln('This set contains risky rules.');
+ $output->writeln('');
}
- $output->writeln('');
-
$help = '';
foreach ($ruleSetDefinitions[$name]->getRules() as $rule => $config) {
if (str_starts_with($rule, '@')) {
$set = $ruleSetDefinitions[$rule];
- $help .= sprintf(
+ $help .= \sprintf(
" * %s%s\n | %s\n\n",
$rule,
$set->isRisky() ? ' risky' : '',
@@ -336,12 +386,12 @@ private function describeSet(OutputInterface $output, string $name): void
$fixer = $fixers[$rule];
$definition = $fixer->getDefinition();
- $help .= sprintf(
+ $help .= \sprintf(
" * %s%s\n | %s\n%s\n",
$rule,
$fixer->isRisky() ? ' risky' : '',
$definition->getSummary(),
- true !== $config ? sprintf(" | Configuration: %s\n", HelpCommand::toString($config)) : ''
+ true !== $config ? \sprintf(" | Configuration: %s\n", Utils::toString($config)) : ''
);
}
@@ -370,7 +420,7 @@ private function getFixers(): array
}
/**
- * @return string[]
+ * @return list
*/
private function getSetNames(): array
{
@@ -388,23 +438,25 @@ private function getSetNames(): array
*/
private function describeList(OutputInterface $output, string $type): void
{
- if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) {
- $describe = [
- 'sets' => $this->getSetNames(),
- 'rules' => $this->getFixers(),
- ];
- } elseif ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
- $describe = 'set' === $type ? ['sets' => $this->getSetNames()] : ['rules' => $this->getFixers()];
- } else {
+ if ($output->getVerbosity() < OutputInterface::VERBOSITY_VERBOSE) {
return;
}
- /** @var string[] $items */
- foreach ($describe as $list => $items) {
- $output->writeln(sprintf('Defined %s:', $list));
+ if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE || 'set' === $type) {
+ $output->writeln('Defined sets:');
+
+ $items = $this->getSetNames();
+ foreach ($items as $item) {
+ $output->writeln(\sprintf('* %s', $item));
+ }
+ }
+
+ if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE || 'rule' === $type) {
+ $output->writeln('Defined rules:');
- foreach ($items as $name => $item) {
- $output->writeln(sprintf('* %s', \is_string($name) ? $name : $item));
+ $items = array_keys($this->getFixers());
+ foreach ($items as $item) {
+ $output->writeln(\sprintf('* %s', $item));
}
}
}
@@ -413,15 +465,11 @@ private function replaceRstLinks(string $content): string
{
return Preg::replaceCallback(
'/(`[^<]+<[^>]+>`_)/',
- static function (array $matches) {
- return Preg::replaceCallback(
- '/`(.*)<(.*)>`_/',
- static function (array $matches): string {
- return $matches[1].'('.$matches[2].')';
- },
- $matches[1]
- );
- },
+ static fn (array $matches) => Preg::replaceCallback(
+ '/`(.*)<(.*)>`_/',
+ static fn (array $matches): string => $matches[1].'('.$matches[2].')',
+ $matches[1]
+ ),
$content
);
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php
index 95a7f57b..a2e34695 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php
@@ -16,7 +16,6 @@
use PhpCsFixer\Documentation\DocumentationLocator;
use PhpCsFixer\Documentation\FixerDocumentGenerator;
-use PhpCsFixer\Documentation\ListDocumentGenerator;
use PhpCsFixer\Documentation\RuleSetDocumentationGenerator;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\RuleSet\RuleSets;
@@ -34,11 +33,16 @@
#[AsCommand(name: 'documentation')]
final class DocumentationCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'documentation';
+ private Filesystem $filesystem;
+
+ public function __construct(Filesystem $filesystem)
+ {
+ parent::__construct();
+ $this->filesystem = $filesystem;
+ }
+
protected function configure(): void
{
$this
@@ -49,7 +53,6 @@ protected function configure(): void
protected function execute(InputInterface $input, OutputInterface $output): int
{
- $filesystem = new Filesystem();
$locator = new DocumentationLocator();
$fixerFactory = new FixerFactory();
@@ -60,7 +63,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$fixerDocumentGenerator = new FixerDocumentGenerator($locator);
$ruleSetDocumentationGenerator = new RuleSetDocumentationGenerator($locator);
- $listDocumentGenerator = new ListDocumentGenerator($locator);
// Array of existing fixer docs.
// We first override existing files, and then we will delete files that are no longer needed.
@@ -70,7 +72,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
foreach ($fixers as $fixer) {
$docForFixerRelativePaths[] = $locator->getFixerDocumentationFileRelativePath($fixer);
- $filesystem->dumpFile(
+ $this->filesystem->dumpFile(
$locator->getFixerDocumentationFilePath($fixer),
$fixerDocumentGenerator->generateFixerDocumentation($fixer)
);
@@ -82,12 +84,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int
->in($locator->getFixersDocumentationDirectoryPath())
->notPath($docForFixerRelativePaths) as $file
) {
- $filesystem->remove($file->getPathname());
+ $this->filesystem->remove($file->getPathname());
}
// Fixer doc. index
- $filesystem->dumpFile(
+ $this->filesystem->dumpFile(
$locator->getFixersDocumentationIndexFilePath(),
$fixerDocumentGenerator->generateFixersDocumentationIndex($fixers)
);
@@ -96,31 +98,24 @@ protected function execute(InputInterface $input, OutputInterface $output): int
/** @var SplFileInfo $file */
foreach ((new Finder())->files()->in($locator->getRuleSetsDocumentationDirectoryPath()) as $file) {
- $filesystem->remove($file->getPathname());
+ $this->filesystem->remove($file->getPathname());
}
$paths = [];
foreach ($setDefinitions as $name => $definition) {
$path = $locator->getRuleSetsDocumentationFilePath($name);
- $paths[$name] = $path;
- $filesystem->dumpFile($path, $ruleSetDocumentationGenerator->generateRuleSetsDocumentation($definition, $fixers));
+ $paths[$path] = $definition;
+ $this->filesystem->dumpFile($path, $ruleSetDocumentationGenerator->generateRuleSetsDocumentation($definition, $fixers));
}
// RuleSet doc. index
- $filesystem->dumpFile(
+ $this->filesystem->dumpFile(
$locator->getRuleSetsDocumentationIndexFilePath(),
$ruleSetDocumentationGenerator->generateRuleSetsDocumentationIndex($paths)
);
- // List file / Appendix
-
- $filesystem->dumpFile(
- $locator->getListingFilePath(),
- $listDocumentGenerator->generateListingDocumentation($fixers)
- );
-
$output->writeln('Docs updated.');
return 0;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommand.php
index 0d8de7f5..7c157f95 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommand.php
@@ -17,16 +17,20 @@
use PhpCsFixer\Config;
use PhpCsFixer\ConfigInterface;
use PhpCsFixer\ConfigurationException\InvalidConfigurationException;
+use PhpCsFixer\Console\Application;
use PhpCsFixer\Console\ConfigurationResolver;
use PhpCsFixer\Console\Output\ErrorOutput;
-use PhpCsFixer\Console\Output\NullOutput;
-use PhpCsFixer\Console\Output\ProcessOutput;
+use PhpCsFixer\Console\Output\OutputContext;
+use PhpCsFixer\Console\Output\Progress\ProgressOutputFactory;
+use PhpCsFixer\Console\Output\Progress\ProgressOutputType;
use PhpCsFixer\Console\Report\FixReport\ReportSummary;
use PhpCsFixer\Error\ErrorsManager;
+use PhpCsFixer\Runner\Event\FileProcessed;
use PhpCsFixer\Runner\Runner;
use PhpCsFixer\ToolInfoInterface;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@@ -41,16 +45,17 @@
* @author Fabien Potencier
* @author Dariusz Rumiński
*
+ * @final
+ *
* @internal
*/
-#[AsCommand(name: 'fix')]
-final class FixCommand extends Command
+#[AsCommand(name: 'fix', description: 'Fixes a directory or a file.')]
+/* final */ class FixCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'fix';
+ protected static $defaultDescription = 'Fixes a directory or a file.';
+
private EventDispatcherInterface $eventDispatcher;
private ErrorsManager $errorsManager;
@@ -61,6 +66,8 @@ final class FixCommand extends Command
private ToolInfoInterface $toolInfo;
+ private ProgressOutputFactory $progressOutputFactory;
+
public function __construct(ToolInfoInterface $toolInfo)
{
parent::__construct();
@@ -70,6 +77,7 @@ public function __construct(ToolInfoInterface $toolInfo)
$this->stopwatch = new Stopwatch();
$this->defaultConfig = new Config();
$this->toolInfo = $toolInfo;
+ $this->progressOutputFactory = new ProgressOutputFactory();
}
/**
@@ -80,140 +88,136 @@ public function __construct(ToolInfoInterface $toolInfo)
public function getHelp(): string
{
return <<<'EOF'
-The %command.name% command tries to fix as much coding standards
-problems as possible on a given file or files in a given directory and its subdirectories:
+ The %command.name% command tries to %command.name% as much coding standards
+ problems as possible on a given file or files in a given directory and its subdirectories:
+
+ $ php %command.full_name% /path/to/dir
+ $ php %command.full_name% /path/to/file
- $ php %command.full_name% /path/to/dir
- $ php %command.full_name% /path/to/file
+ By default --path-mode is set to `override`, which means, that if you specify the path to a file or a directory via
+ command arguments, then the paths provided to a `Finder` in config file will be ignored. You can use --path-mode=intersection
+ to merge paths from the config file and from the argument:
-By default --path-mode is set to `override`, which means, that if you specify the path to a file or a directory via
-command arguments, then the paths provided to a `Finder` in config file will be ignored. You can use --path-mode=intersection
-to merge paths from the config file and from the argument:
+ $ php %command.full_name% --path-mode=intersection /path/to/dir
- $ php %command.full_name% --path-mode=intersection /path/to/dir
+ The --format option for the output format. Supported formats are `txt` (default one), `json`, `xml`, `checkstyle`, `junit` and `gitlab`.
-The --format option for the output format. Supported formats are `txt` (default one), `json`, `xml`, `checkstyle`, `junit` and `gitlab`.
+ NOTE: the output for the following formats are generated in accordance with schemas
-NOTE: the output for the following formats are generated in accordance with schemas
+ * `checkstyle` follows the common `"checkstyle" XML schema `_
+ * `gitlab` follows the `codeclimate JSON schema `_
+ * `json` follows the `own JSON schema `_
+ * `junit` follows the `JUnit XML schema from Jenkins `_
+ * `xml` follows the `own XML schema `_
-* `checkstyle` follows the common `"checkstyle" XML schema `_
-* `json` follows the `own JSON schema `_
-* `junit` follows the `JUnit XML schema from Jenkins `_
-* `xml` follows the `own XML schema `_
+ The --quiet Do not output any message.
-The --quiet Do not output any message.
+ The --verbose option will show the applied rules. When using the `txt` format it will also display progress notifications.
-The --verbose option will show the applied rules. When using the `txt` format it will also display progress notifications.
+ NOTE: if there is an error like "errors reported during linting after fixing", you can use this to be even more verbose for debugging purpose
-NOTE: if there is an error like "errors reported during linting after fixing", you can use this to be even more verbose for debugging purpose
+ * `-v`: verbose
+ * `-vv`: very verbose
+ * `-vvv`: debug
-* `-v`: verbose
-* `-vv`: very verbose
-* `-vvv`: debug
+ The --rules option limits the rules to apply to the
+ project:
-The --rules option limits the rules to apply to the
-project:
+ EOF. /* @TODO: 4.0 - change to @PER */ <<<'EOF'
-EOF. /* @TODO: 4.0 - change to @PER */ <<<'EOF'
+ $ php %command.full_name% /path/to/project --rules=@PSR12
- $ php %command.full_name% /path/to/project --rules=@PSR12
+ By default the PSR-12 rules are used.
-By default the PSR-12 rules are used.
+ The --rules option lets you choose the exact rules to
+ apply (the rule names must be separated by a comma):
-The --rules option lets you choose the exact rules to
-apply (the rule names must be separated by a comma):
+ $ php %command.full_name% /path/to/dir --rules=line_ending,full_opening_tag,indentation_type
- $ php %command.full_name% /path/to/dir --rules=line_ending,full_opening_tag,indentation_type
+ You can also exclude the rules you don't want by placing a dash in front of the rule name, if this is more convenient,
+ using -name_of_fixer:
-You can also exclude the rules you don't want by placing a dash in front of the rule name, if this is more convenient,
-using -name_of_fixer:
+ $ php %command.full_name% /path/to/dir --rules=-full_opening_tag,-indentation_type
- $ php %command.full_name% /path/to/dir --rules=-full_opening_tag,-indentation_type
+ When using combinations of exact and exclude rules, applying exact rules along with above excluded results:
-When using combinations of exact and exclude rules, applying exact rules along with above excluded results:
+ $ php %command.full_name% /path/to/project --rules=@Symfony,-@PSR1,-blank_line_before_statement,strict_comparison
- $ php %command.full_name% /path/to/project --rules=@Symfony,-@PSR1,-blank_line_before_statement,strict_comparison
+ Complete configuration for rules can be supplied using a `json` formatted string.
-Complete configuration for rules can be supplied using a `json` formatted string.
+ $ php %command.full_name% /path/to/project --rules='{"concat_space": {"spacing": "none"}}'
- $ php %command.full_name% /path/to/project --rules='{"concat_space": {"spacing": "none"}}'
+ The --dry-run flag will run the fixer without making changes to your files.
-The --dry-run flag will run the fixer without making changes to your files.
+ The --sequential flag will enforce sequential analysis even if parallel config is provided.
-The --diff flag can be used to let the fixer output all the changes it makes.
+ The --diff flag can be used to let the fixer output all the changes it makes.
-The --allow-risky option (pass `yes` or `no`) allows you to set whether risky rules may run. Default value is taken from config file.
-A rule is considered risky if it could change code behaviour. By default no risky rules are run.
+ The --allow-risky option (pass `yes` or `no`) allows you to set whether risky rules may run. Default value is taken from config file.
+ A rule is considered risky if it could change code behaviour. By default no risky rules are run.
-The --stop-on-violation flag stops the execution upon first file that needs to be fixed.
+ The --stop-on-violation flag stops the execution upon first file that needs to be fixed.
-The --show-progress option allows you to choose the way process progress is rendered:
+ The --show-progress option allows you to choose the way process progress is rendered:
-* none: disables progress output;
-* dots: multiline progress output with number of files and percentage on each line.
+ * none: disables progress output;
+ * dots: multiline progress output with number of files and percentage on each line.
+ * bar: single line progress output with number of files and calculated percentage.
-If the option is not provided, it defaults to dots unless a config file that disables output is used, in which case it defaults to none. This option has no effect if the verbosity of the command is less than verbose.
+ If the option is not provided, it defaults to bar unless a config file that disables output is used, in which case it defaults to none. This option has no effect if the verbosity of the command is less than verbose.
- $ php %command.full_name% --verbose --show-progress=dots
+ $ php %command.full_name% --verbose --show-progress=dots
-By using --using-cache option with `yes` or `no` you can set if the caching
-mechanism should be used.
+ By using --using-cache option with `yes` or `no` you can set if the caching
+ mechanism should be used.
-The command can also read from standard input, in which case it won't
-automatically fix anything:
+ The command can also read from standard input, in which case it won't
+ automatically fix anything:
- $ cat foo.php | php %command.full_name% --diff -
+ $ cat foo.php | php %command.full_name% --diff -
-Finally, if you don't need BC kept on CLI level, you might use `PHP_CS_FIXER_FUTURE_MODE` to start using options that
-would be default in next MAJOR release and to forbid using deprecated configuration:
+ Finally, if you don't need BC kept on CLI level, you might use `PHP_CS_FIXER_FUTURE_MODE` to start using options that
+ would be default in next MAJOR release and to forbid using deprecated configuration:
- $ PHP_CS_FIXER_FUTURE_MODE=1 php %command.full_name% -v --diff
+ $ PHP_CS_FIXER_FUTURE_MODE=1 php %command.full_name% -v --diff
-Exit code
----------
+ Exit code
+ ---------
-Exit code of the fix command is built using following bit flags:
+ Exit code of the `%command.name%` command is built using following bit flags:
-* 0 - OK.
-* 1 - General error (or PHP minimal requirement not matched).
-* 4 - Some files have invalid syntax (only in dry-run mode).
-* 8 - Some files need fixing (only in dry-run mode).
-* 16 - Configuration error of the application.
-* 32 - Configuration error of a Fixer.
-* 64 - Exception raised within the application.
+ * 0 - OK.
+ * 1 - General error (or PHP minimal requirement not matched).
+ * 4 - Some files have invalid syntax (only in dry-run mode).
+ * 8 - Some files need fixing (only in dry-run mode).
+ * 16 - Configuration error of the application.
+ * 32 - Configuration error of a Fixer.
+ * 64 - Exception raised within the application.
-EOF;
+ EOF;
}
- /**
- * {@inheritdoc}
- */
protected function configure(): void
{
- $this
- ->setDefinition(
- [
- new InputArgument('path', InputArgument::IS_ARRAY, 'The path.'),
- new InputOption('path-mode', '', InputOption::VALUE_REQUIRED, 'Specify path mode (can be override or intersection).', ConfigurationResolver::PATH_MODE_OVERRIDE),
- new InputOption('allow-risky', '', InputOption::VALUE_REQUIRED, 'Are risky fixers allowed (can be yes or no).'),
- new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a .php-cs-fixer.php file.'),
- new InputOption('dry-run', '', InputOption::VALUE_NONE, 'Only shows which files would have been modified.'),
- new InputOption('rules', '', InputOption::VALUE_REQUIRED, 'The rules.'),
- new InputOption('using-cache', '', InputOption::VALUE_REQUIRED, 'Does cache should be used (can be yes or no).'),
- new InputOption('cache-file', '', InputOption::VALUE_REQUIRED, 'The path to the cache file.'),
- new InputOption('diff', '', InputOption::VALUE_NONE, 'Also produce diff for each file.'),
- new InputOption('format', '', InputOption::VALUE_REQUIRED, 'To output results in other formats.'),
- new InputOption('stop-on-violation', '', InputOption::VALUE_NONE, 'Stop execution on first violation.'),
- new InputOption('show-progress', '', InputOption::VALUE_REQUIRED, 'Type of progress indicator (none, dots).'),
- ]
- )
- ->setDescription('Fixes a directory or a file.')
- ;
+ $this->setDefinition(
+ [
+ new InputArgument('path', InputArgument::IS_ARRAY, 'The path(s) that rules will be run against (each path can be a file or directory).'),
+ new InputOption('path-mode', '', InputOption::VALUE_REQUIRED, 'Specify path mode (can be `override` or `intersection`).', ConfigurationResolver::PATH_MODE_OVERRIDE),
+ new InputOption('allow-risky', '', InputOption::VALUE_REQUIRED, 'Are risky fixers allowed (can be `yes` or `no`).'),
+ new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a config file.'),
+ new InputOption('dry-run', '', InputOption::VALUE_NONE, 'Only shows which files would have been modified.'),
+ new InputOption('rules', '', InputOption::VALUE_REQUIRED, 'List of rules that should be run against configured paths.'),
+ new InputOption('using-cache', '', InputOption::VALUE_REQUIRED, 'Should cache be used (can be `yes` or `no`).'),
+ new InputOption('cache-file', '', InputOption::VALUE_REQUIRED, 'The path to the cache file.'),
+ new InputOption('diff', '', InputOption::VALUE_NONE, 'Prints diff for each file.'),
+ new InputOption('format', '', InputOption::VALUE_REQUIRED, 'To output results in other formats.'),
+ new InputOption('stop-on-violation', '', InputOption::VALUE_NONE, 'Stop execution on first violation.'),
+ new InputOption('show-progress', '', InputOption::VALUE_REQUIRED, 'Type of progress indicator (none, dots).'),
+ new InputOption('sequential', '', InputOption::VALUE_NONE, 'Enforce sequential analysis.'),
+ ]
+ );
}
- /**
- * {@inheritdoc}
- */
protected function execute(InputInterface $input, OutputInterface $output): int
{
$verbosity = $output->getVerbosity();
@@ -230,7 +234,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
[
'allow-risky' => $input->getOption('allow-risky'),
'config' => $passedConfig,
- 'dry-run' => $input->getOption('dry-run'),
+ 'dry-run' => $this->isDryRun($input),
'rules' => $passedRules,
'path' => $input->getArgument('path'),
'path-mode' => $input->getOption('path-mode'),
@@ -241,6 +245,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
'stop-on-violation' => $input->getOption('stop-on-violation'),
'verbosity' => $verbosity,
'show-progress' => $input->getOption('show-progress'),
+ 'sequential' => $input->getOption('sequential'),
],
getcwd(),
$this->toolInfo
@@ -253,58 +258,84 @@ protected function execute(InputInterface $input, OutputInterface $output): int
: ('txt' === $reporter->getFormat() ? $output : null);
if (null !== $stdErr) {
- if (OutputInterface::VERBOSITY_VERBOSE <= $verbosity) {
- $stdErr->writeln($this->getApplication()->getLongVersion());
- }
+ $stdErr->writeln(Application::getAboutWithRuntime(true));
+ $isParallel = $resolver->getParallelConfig()->getMaxProcesses() > 1;
+
+ $stdErr->writeln(\sprintf(
+ 'Running analysis on %d core%s.',
+ $resolver->getParallelConfig()->getMaxProcesses(),
+ $isParallel ? \sprintf(
+ 's with %d file%s per process',
+ $resolver->getParallelConfig()->getFilesPerProcess(),
+ $resolver->getParallelConfig()->getFilesPerProcess() > 1 ? 's' : ''
+ ) : ' sequentially'
+ ));
+
+ /** @TODO v4 remove warnings related to parallel runner */
+ $usageDocs = 'https://cs.symfony.com/doc/usage.html';
+ $stdErr->writeln(\sprintf(
+ $stdErr->isDecorated() ? '%s>' : '%s',
+ $isParallel
+ ? 'Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!'
+ : \sprintf(
+ 'You can enable parallel runner and speed up the analysis! Please see %s for more information.',
+ $stdErr->isDecorated()
+ ? \sprintf('usage docs>', OutputFormatter::escape($usageDocs))
+ : $usageDocs
+ )
+ ));
$configFile = $resolver->getConfigFile();
- $stdErr->writeln(sprintf('Loaded config %s%s.', $resolver->getConfig()->getName(), null === $configFile ? '' : ' from "'.$configFile.'"'));
+ $stdErr->writeln(\sprintf('Loaded config %s%s.', $resolver->getConfig()->getName(), null === $configFile ? '' : ' from "'.$configFile.'"'));
if ($resolver->getUsingCache()) {
$cacheFile = $resolver->getCacheFile();
if (is_file($cacheFile)) {
- $stdErr->writeln(sprintf('Using cache file "%s".', $cacheFile));
+ $stdErr->writeln(\sprintf('Using cache file "%s".', $cacheFile));
}
}
}
- $progressType = $resolver->getProgress();
$finder = new \ArrayIterator(iterator_to_array($resolver->getFinder()));
if (null !== $stdErr && $resolver->configFinderIsOverridden()) {
$stdErr->writeln(
- sprintf($stdErr->isDecorated() ? '%s>' : '%s', 'Paths from configuration file have been overridden by paths provided as command arguments.')
+ \sprintf($stdErr->isDecorated() ? '%s>' : '%s', 'Paths from configuration file have been overridden by paths provided as command arguments.')
);
}
- if ('none' === $progressType || null === $stdErr) {
- $progressOutput = new NullOutput();
- } else {
- $progressOutput = new ProcessOutput(
+ $progressType = $resolver->getProgressType();
+ $progressOutput = $this->progressOutputFactory->create(
+ $progressType,
+ new OutputContext(
$stdErr,
- $this->eventDispatcher,
(new Terminal())->getWidth(),
\count($finder)
- );
- }
+ )
+ );
$runner = new Runner(
$finder,
$resolver->getFixers(),
$resolver->getDiffer(),
- 'none' !== $progressType ? $this->eventDispatcher : null,
+ ProgressOutputType::NONE !== $progressType ? $this->eventDispatcher : null,
$this->errorsManager,
$resolver->getLinter(),
$resolver->isDryRun(),
$resolver->getCacheManager(),
$resolver->getDirectory(),
- $resolver->shouldStopOnViolation()
+ $resolver->shouldStopOnViolation(),
+ $resolver->getParallelConfig(),
+ $input,
+ $resolver->getConfigFile()
);
+ $this->eventDispatcher->addListener(FileProcessed::NAME, [$progressOutput, 'onFixerFileProcessed']);
$this->stopwatch->start('fixFiles');
$changed = $runner->fix();
$this->stopwatch->stop('fixFiles');
+ $this->eventDispatcher->removeListener(FileProcessed::NAME, [$progressOutput, 'onFixerFileProcessed']);
$progressOutput->printLegend();
@@ -354,4 +385,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int
\count($lintErrors) > 0
);
}
+
+ protected function isDryRun(InputInterface $input): bool
+ {
+ return $input->getOption('dry-run');
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommandExitStatusCalculator.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommandExitStatusCalculator.php
index 727dfff5..28d6b258 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommandExitStatusCalculator.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/FixCommandExitStatusCalculator.php
@@ -28,8 +28,13 @@ final class FixCommandExitStatusCalculator
public const EXIT_STATUS_FLAG_HAS_INVALID_FIXER_CONFIG = 32;
public const EXIT_STATUS_FLAG_EXCEPTION_IN_APP = 64;
- public function calculate(bool $isDryRun, bool $hasChangedFiles, bool $hasInvalidErrors, bool $hasExceptionErrors, bool $hasLintErrorsAfterFixing): int
- {
+ public function calculate(
+ bool $isDryRun,
+ bool $hasChangedFiles,
+ bool $hasInvalidErrors,
+ bool $hasExceptionErrors,
+ bool $hasLintErrorsAfterFixing
+ ): int {
$exitStatus = 0;
if ($isDryRun) {
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/HelpCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/HelpCommand.php
index c945a629..6dace362 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/HelpCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/HelpCommand.php
@@ -16,7 +16,7 @@
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerOptionInterface;
-use PhpCsFixer\Preg;
+use PhpCsFixer\Utils;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\HelpCommand as BaseHelpCommand;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
@@ -32,21 +32,8 @@
#[AsCommand(name: 'help')]
final class HelpCommand extends BaseHelpCommand
{
- /**
- * @var string
- */
protected static $defaultName = 'help';
- /**
- * @param mixed $value
- */
- public static function toString($value): string
- {
- return \is_array($value)
- ? static::arrayToString($value)
- : static::scalarToString($value);
- }
-
/**
* Returns the allowed values of the given option that can be converted to a string.
*
@@ -57,9 +44,7 @@ public static function getDisplayableAllowedValues(FixerOptionInterface $option)
$allowed = $option->getAllowedValues();
if (null !== $allowed) {
- $allowed = array_filter($allowed, static function ($value): bool {
- return !$value instanceof \Closure;
- });
+ $allowed = array_filter($allowed, static fn ($value): bool => !$value instanceof \Closure);
usort($allowed, static function ($valueA, $valueB): int {
if ($valueA instanceof AllowedValueSubset) {
@@ -71,8 +56,8 @@ public static function getDisplayableAllowedValues(FixerOptionInterface $option)
}
return strcasecmp(
- self::toString($valueA),
- self::toString($valueB)
+ Utils::toString($valueA),
+ Utils::toString($valueB)
);
});
@@ -84,46 +69,8 @@ public static function getDisplayableAllowedValues(FixerOptionInterface $option)
return $allowed;
}
- /**
- * {@inheritdoc}
- */
protected function initialize(InputInterface $input, OutputInterface $output): void
{
$output->getFormatter()->setStyle('url', new OutputFormatterStyle('blue'));
}
-
- /**
- * @param mixed $value
- */
- private static function scalarToString($value): string
- {
- $str = var_export($value, true);
-
- return Preg::replace('/\bNULL\b/', 'null', $str);
- }
-
- /**
- * @param array $value
- */
- private static function arrayToString(array $value): string
- {
- if (0 === \count($value)) {
- return '[]';
- }
-
- $isHash = !array_is_list($value);
- $str = '[';
-
- foreach ($value as $k => $v) {
- if ($isHash) {
- $str .= static::scalarToString($k).' => ';
- }
-
- $str .= \is_array($v)
- ? static::arrayToString($v).', '
- : static::scalarToString($v).', ';
- }
-
- return substr($str, 0, -2).']';
- }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListFilesCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListFilesCommand.php
index b92dae77..93549116 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListFilesCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListFilesCommand.php
@@ -23,6 +23,7 @@
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Filesystem\Path;
/**
* @author Markus Staab
@@ -32,9 +33,6 @@
#[AsCommand(name: 'list-files')]
final class ListFilesCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'list-files';
private ConfigInterface $defaultConfig;
@@ -49,9 +47,6 @@ public function __construct(ToolInfoInterface $toolInfo)
$this->toolInfo = $toolInfo;
}
- /**
- * {@inheritdoc}
- */
protected function configure(): void
{
$this
@@ -83,7 +78,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
/** @var \SplFileInfo $file */
foreach ($finder as $file) {
if ($file->isFile()) {
- $relativePath = str_replace($cwd, '.', $file->getRealPath());
+ $relativePath = './'.Path::makeRelative($file->getRealPath(), $cwd);
// unify directory separators across operating system
$relativePath = str_replace('/', \DIRECTORY_SEPARATOR, $relativePath);
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListSetsCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListSetsCommand.php
index 8807f135..97737a79 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListSetsCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/ListSetsCommand.php
@@ -20,6 +20,7 @@
use PhpCsFixer\Console\Report\ListSetsReport\ReportSummary;
use PhpCsFixer\Console\Report\ListSetsReport\TextReporter;
use PhpCsFixer\RuleSet\RuleSets;
+use PhpCsFixer\Utils;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Formatter\OutputFormatter;
@@ -35,14 +36,8 @@
#[AsCommand(name: 'list-sets')]
final class ListSetsCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'list-sets';
- /**
- * {@inheritdoc}
- */
protected function configure(): void
{
$this
@@ -55,7 +50,7 @@ protected function configure(): void
;
}
- protected function execute(InputInterface $input, OutputInterface $output)
+ protected function execute(InputInterface $input, OutputInterface $output): int
{
$reporter = $this->resolveReporterWithFactory(
$input->getOption('format'),
@@ -84,7 +79,7 @@ private function resolveReporterWithFactory(string $format, ReporterFactory $fac
$formats = $factory->getFormats();
sort($formats);
- throw new InvalidConfigurationException(sprintf('The format "%s" is not defined, supported are "%s".', $format, implode('", "', $formats)));
+ throw new InvalidConfigurationException(\sprintf('The format "%s" is not defined, supported are %s.', $format, Utils::naturalLanguageJoin($formats)));
}
return $reporter;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/SelfUpdateCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/SelfUpdateCommand.php
index 947cd5b5..ab2b9049 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/SelfUpdateCommand.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/SelfUpdateCommand.php
@@ -14,6 +14,7 @@
namespace PhpCsFixer\Console\Command;
+use PhpCsFixer\Console\Application;
use PhpCsFixer\Console\SelfUpdate\NewVersionCheckerInterface;
use PhpCsFixer\PharCheckerInterface;
use PhpCsFixer\Preg;
@@ -36,9 +37,6 @@
#[AsCommand(name: 'self-update')]
final class SelfUpdateCommand extends Command
{
- /**
- * @var string
- */
protected static $defaultName = 'self-update';
private NewVersionCheckerInterface $versionChecker;
@@ -59,9 +57,6 @@ public function __construct(
$this->pharChecker = $pharChecker;
}
- /**
- * {@inheritdoc}
- */
protected function configure(): void
{
$this
@@ -74,25 +69,22 @@ protected function configure(): void
->setDescription('Update php-cs-fixer.phar to the latest stable version.')
->setHelp(
<<<'EOT'
-The %command.name% command replace your php-cs-fixer.phar by the
-latest version released on:
-https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases
+ The %command.name% command replace your php-cs-fixer.phar by the
+ latest version released on:
+ https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases
-$ php php-cs-fixer.phar %command.name%
+ $ php php-cs-fixer.phar %command.name%
-EOT
+ EOT
)
;
}
- /**
- * {@inheritdoc}
- */
protected function execute(InputInterface $input, OutputInterface $output): int
{
- if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity() && $output instanceof ConsoleOutputInterface) {
+ if ($output instanceof ConsoleOutputInterface) {
$stdErr = $output->getErrorOutput();
- $stdErr->writeln($this->getApplication()->getLongVersion());
+ $stdErr->writeln(Application::getAboutWithRuntime(true));
}
if (!$this->toolInfo->isInstalledAsPhar()) {
@@ -109,7 +101,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$latestVersion = $this->versionChecker->getLatestVersion();
$latestVersionOfCurrentMajor = $this->versionChecker->getLatestVersionOfMajor($currentMajor);
} catch (\Exception $exception) {
- $output->writeln(sprintf(
+ $output->writeln(\sprintf(
'Unable to determine newest version: %s',
$exception->getMessage()
));
@@ -129,8 +121,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
0 !== $this->versionChecker->compareVersions($latestVersionOfCurrentMajor, $latestVersion)
&& true !== $input->getOption('force')
) {
- $output->writeln(sprintf('A new major version of PHP CS Fixer is available (%s)', $latestVersion));
- $output->writeln(sprintf('Before upgrading please read https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/%s/UPGRADE-v%s.md', $latestVersion, $currentMajor + 1));
+ $output->writeln(\sprintf('A new major version of PHP CS Fixer is available (%s)', $latestVersion));
+ $output->writeln(\sprintf('Before upgrading please read https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/%s/UPGRADE-v%s.md', $latestVersion, $currentMajor + 1));
$output->writeln('If you are ready to upgrade run this command with -f');
$output->writeln('Checking for new minor/patch version...');
@@ -143,10 +135,14 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$remoteTag = $latestVersionOfCurrentMajor;
}
- $localFilename = realpath($_SERVER['argv'][0]) ?: $_SERVER['argv'][0];
+ $localFilename = $_SERVER['argv'][0];
+ $realPath = realpath($localFilename);
+ if (false !== $realPath) {
+ $localFilename = $realPath;
+ }
if (!is_writable($localFilename)) {
- $output->writeln(sprintf('No permission to update "%s" file.', $localFilename));
+ $output->writeln(\sprintf('No permission to update "%s" file.', $localFilename));
return 1;
}
@@ -155,7 +151,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$remoteFilename = $this->toolInfo->getPharDownloadUri($remoteTag);
if (false === @copy($remoteFilename, $tempFilename)) {
- $output->writeln(sprintf('Unable to download new version %s from the server.', $remoteTag));
+ $output->writeln(\sprintf('Unable to download new version %s from the server.', $remoteTag));
return 1;
}
@@ -165,7 +161,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$pharInvalidityReason = $this->pharChecker->checkFileValidity($tempFilename);
if (null !== $pharInvalidityReason) {
unlink($tempFilename);
- $output->writeln(sprintf('The download of %s is corrupt (%s).', $remoteTag, $pharInvalidityReason));
+ $output->writeln(\sprintf('The download of %s is corrupt (%s).', $remoteTag, $pharInvalidityReason));
$output->writeln('Please re-run the "self-update" command to try again.');
return 1;
@@ -173,7 +169,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
rename($tempFilename, $localFilename);
- $output->writeln(sprintf('PHP CS Fixer updated (%s -> %s)', $currentVersion, $remoteTag));
+ $output->writeln(\sprintf('PHP CS Fixer updated (%s -> %s)', $currentVersion, $remoteTag));
return 0;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/WorkerCommand.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/WorkerCommand.php
new file mode 100644
index 00000000..92f03bf9
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Command/WorkerCommand.php
@@ -0,0 +1,243 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Command;
+
+use Clue\React\NDJson\Decoder;
+use Clue\React\NDJson\Encoder;
+use PhpCsFixer\Cache\NullCacheManager;
+use PhpCsFixer\Config;
+use PhpCsFixer\Console\ConfigurationResolver;
+use PhpCsFixer\Error\ErrorsManager;
+use PhpCsFixer\Runner\Event\FileProcessed;
+use PhpCsFixer\Runner\Parallel\ParallelAction;
+use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
+use PhpCsFixer\Runner\Parallel\ParallelisationException;
+use PhpCsFixer\Runner\Runner;
+use PhpCsFixer\ToolInfoInterface;
+use React\EventLoop\StreamSelectLoop;
+use React\Socket\ConnectionInterface;
+use React\Socket\TcpConnector;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\ConsoleOutputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+
+/**
+ * @author Greg Korba
+ *
+ * @internal
+ */
+#[AsCommand(name: 'worker', description: 'Internal command for running fixers in parallel', hidden: true)]
+final class WorkerCommand extends Command
+{
+ /** @var string Prefix used before JSON-encoded error printed in the worker's process */
+ public const ERROR_PREFIX = 'WORKER_ERROR::';
+
+ protected static $defaultName = 'worker';
+
+ protected static $defaultDescription = 'Internal command for running fixers in parallel';
+
+ private ToolInfoInterface $toolInfo;
+ private ConfigurationResolver $configurationResolver;
+ private ErrorsManager $errorsManager;
+ private EventDispatcherInterface $eventDispatcher;
+
+ /** @var list */
+ private array $events;
+
+ public function __construct(ToolInfoInterface $toolInfo)
+ {
+ parent::__construct();
+
+ $this->setHidden(true);
+ $this->toolInfo = $toolInfo;
+ $this->errorsManager = new ErrorsManager();
+ $this->eventDispatcher = new EventDispatcher();
+ }
+
+ protected function configure(): void
+ {
+ $this->setDefinition(
+ [
+ new InputOption('port', null, InputOption::VALUE_REQUIRED, 'Specifies parallelisation server\'s port.'),
+ new InputOption('identifier', null, InputOption::VALUE_REQUIRED, 'Specifies parallelisation process\' identifier.'),
+ new InputOption('allow-risky', '', InputOption::VALUE_REQUIRED, 'Are risky fixers allowed (can be `yes` or `no`).'),
+ new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a config file.'),
+ new InputOption('dry-run', '', InputOption::VALUE_NONE, 'Only shows which files would have been modified.'),
+ new InputOption('rules', '', InputOption::VALUE_REQUIRED, 'List of rules that should be run against configured paths.'),
+ new InputOption('using-cache', '', InputOption::VALUE_REQUIRED, 'Should cache be used (can be `yes` or `no`).'),
+ new InputOption('cache-file', '', InputOption::VALUE_REQUIRED, 'The path to the cache file.'),
+ new InputOption('diff', '', InputOption::VALUE_NONE, 'Prints diff for each file.'),
+ new InputOption('stop-on-violation', '', InputOption::VALUE_NONE, 'Stop execution on first violation.'),
+ ]
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int
+ {
+ $errorOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output;
+ $identifier = $input->getOption('identifier');
+ $port = $input->getOption('port');
+
+ if (null === $identifier || !is_numeric($port)) {
+ throw new ParallelisationException('Missing parallelisation options');
+ }
+
+ try {
+ $runner = $this->createRunner($input);
+ } catch (\Throwable $e) {
+ throw new ParallelisationException('Unable to create runner: '.$e->getMessage(), 0, $e);
+ }
+
+ $loop = new StreamSelectLoop();
+ $tcpConnector = new TcpConnector($loop);
+ $tcpConnector
+ ->connect(\sprintf('127.0.0.1:%d', $port))
+ ->then(
+ /** @codeCoverageIgnore */
+ function (ConnectionInterface $connection) use ($loop, $runner, $identifier): void {
+ $jsonInvalidUtf8Ignore = \defined('JSON_INVALID_UTF8_IGNORE') ? JSON_INVALID_UTF8_IGNORE : 0;
+ $out = new Encoder($connection, $jsonInvalidUtf8Ignore);
+ $in = new Decoder($connection, true, 512, $jsonInvalidUtf8Ignore);
+
+ // [REACT] Initialise connection with the parallelisation operator
+ $out->write(['action' => ParallelAction::WORKER_HELLO, 'identifier' => $identifier]);
+
+ $handleError = static function (\Throwable $error) use ($out): void {
+ $out->write([
+ 'action' => ParallelAction::WORKER_ERROR_REPORT,
+ 'class' => \get_class($error),
+ 'message' => $error->getMessage(),
+ 'file' => $error->getFile(),
+ 'line' => $error->getLine(),
+ 'code' => $error->getCode(),
+ 'trace' => $error->getTraceAsString(),
+ ]);
+ };
+ $out->on('error', $handleError);
+ $in->on('error', $handleError);
+
+ // [REACT] Listen for messages from the parallelisation operator (analysis requests)
+ $in->on('data', function (array $json) use ($loop, $runner, $out): void {
+ $action = $json['action'] ?? null;
+
+ // Parallelisation operator does not have more to do, let's close the connection
+ if (ParallelAction::RUNNER_THANK_YOU === $action) {
+ $loop->stop();
+
+ return;
+ }
+
+ if (ParallelAction::RUNNER_REQUEST_ANALYSIS !== $action) {
+ // At this point we only expect analysis requests, if any other action happen, we need to fix the code.
+ throw new \LogicException(\sprintf('Unexpected action ParallelAction::%s.', $action));
+ }
+
+ /** @var iterable $files */
+ $files = $json['files'];
+
+ foreach ($files as $absolutePath) {
+ // Reset events because we want to collect only those coming from analysed files chunk
+ $this->events = [];
+ $runner->setFileIterator(new \ArrayIterator([new \SplFileInfo($absolutePath)]));
+ $analysisResult = $runner->fix();
+
+ if (1 !== \count($this->events)) {
+ throw new ParallelisationException('Runner did not report a fixing event or reported too many.');
+ }
+
+ if (1 < \count($analysisResult)) {
+ throw new ParallelisationException('Runner returned more analysis results than expected.');
+ }
+
+ $out->write([
+ 'action' => ParallelAction::WORKER_RESULT,
+ 'file' => $absolutePath,
+ 'fileHash' => $this->events[0]->getFileHash(),
+ 'status' => $this->events[0]->getStatus(),
+ 'fixInfo' => array_pop($analysisResult),
+ 'errors' => $this->errorsManager->forPath($absolutePath),
+ ]);
+ }
+
+ // Request another file chunk (if available, the parallelisation operator will request new "run" action)
+ $out->write(['action' => ParallelAction::WORKER_GET_FILE_CHUNK]);
+ });
+ },
+ static function (\Throwable $error) use ($errorOutput): void {
+ // @TODO Verify onRejected behaviour → https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7777#discussion_r1590399285
+ $errorOutput->writeln($error->getMessage());
+ }
+ )
+ ;
+
+ $loop->run();
+
+ return Command::SUCCESS;
+ }
+
+ private function createRunner(InputInterface $input): Runner
+ {
+ $passedConfig = $input->getOption('config');
+ $passedRules = $input->getOption('rules');
+
+ if (null !== $passedConfig && null !== $passedRules) {
+ throw new \RuntimeException('Passing both `--config` and `--rules` options is not allowed');
+ }
+
+ // There's no one single source of truth when it comes to fixing single file, we need to collect statuses from events.
+ $this->eventDispatcher->addListener(FileProcessed::NAME, function (FileProcessed $event): void {
+ $this->events[] = $event;
+ });
+
+ $this->configurationResolver = new ConfigurationResolver(
+ new Config(),
+ [
+ 'allow-risky' => $input->getOption('allow-risky'),
+ 'config' => $passedConfig,
+ 'dry-run' => $input->getOption('dry-run'),
+ 'rules' => $passedRules,
+ 'path' => [],
+ 'path-mode' => ConfigurationResolver::PATH_MODE_OVERRIDE, // IMPORTANT! WorkerCommand is called with file that already passed filtering, so here we can rely on PATH_MODE_OVERRIDE.
+ 'using-cache' => $input->getOption('using-cache'),
+ 'cache-file' => $input->getOption('cache-file'),
+ 'diff' => $input->getOption('diff'),
+ 'stop-on-violation' => $input->getOption('stop-on-violation'),
+ ],
+ getcwd(), // @phpstan-ignore-line
+ $this->toolInfo
+ );
+
+ return new Runner(
+ null, // Paths are known when parallelisation server requests new chunk, not now
+ $this->configurationResolver->getFixers(),
+ $this->configurationResolver->getDiffer(),
+ $this->eventDispatcher,
+ $this->errorsManager,
+ $this->configurationResolver->getLinter(),
+ $this->configurationResolver->isDryRun(),
+ new NullCacheManager(), // IMPORTANT! We pass null cache, as cache is read&write in main process and we do not need to do it again.
+ $this->configurationResolver->getDirectory(),
+ $this->configurationResolver->shouldStopOnViolation(),
+ ParallelConfigFactory::sequential(), // IMPORTANT! Worker must run in sequential mode.
+ null,
+ $this->configurationResolver->getConfigFile()
+ );
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/ConfigurationResolver.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/ConfigurationResolver.php
index 5494fda1..496948af 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/ConfigurationResolver.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/ConfigurationResolver.php
@@ -23,7 +23,7 @@
use PhpCsFixer\Cache\Signature;
use PhpCsFixer\ConfigInterface;
use PhpCsFixer\ConfigurationException\InvalidConfigurationException;
-use PhpCsFixer\Console\Command\HelpCommand;
+use PhpCsFixer\Console\Output\Progress\ProgressOutputType;
use PhpCsFixer\Console\Report\FixReport\ReporterFactory;
use PhpCsFixer\Console\Report\FixReport\ReporterInterface;
use PhpCsFixer\Differ\DifferInterface;
@@ -35,14 +35,16 @@
use PhpCsFixer\FixerFactory;
use PhpCsFixer\Linter\Linter;
use PhpCsFixer\Linter\LinterInterface;
+use PhpCsFixer\ParallelAwareConfigInterface;
use PhpCsFixer\RuleSet\RuleSet;
use PhpCsFixer\RuleSet\RuleSetInterface;
+use PhpCsFixer\Runner\Parallel\ParallelConfig;
+use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
use PhpCsFixer\StdinFileInfo;
use PhpCsFixer\ToolInfoInterface;
use PhpCsFixer\Utils;
use PhpCsFixer\WhitespacesFixerConfig;
use PhpCsFixer\WordMatcher;
-use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder as SymfonyFinder;
@@ -60,49 +62,28 @@ final class ConfigurationResolver
public const PATH_MODE_OVERRIDE = 'override';
public const PATH_MODE_INTERSECTION = 'intersection';
- /**
- * @var null|bool
- */
- private $allowRisky;
+ private ?bool $allowRisky = null;
- /**
- * @var null|ConfigInterface
- */
- private $config;
+ private ?ConfigInterface $config = null;
- /**
- * @var null|string
- */
- private $configFile;
+ private ?string $configFile = null;
private string $cwd;
private ConfigInterface $defaultConfig;
- /**
- * @var null|ReporterInterface
- */
- private $reporter;
+ private ?ReporterInterface $reporter = null;
- /**
- * @var null|bool
- */
- private $isStdIn;
+ private ?bool $isStdIn = null;
- /**
- * @var null|bool
- */
- private $isDryRun;
+ private ?bool $isDryRun = null;
/**
- * @var null|FixerInterface[]
+ * @var null|list
*/
- private $fixers;
+ private ?array $fixers = null;
- /**
- * @var null|bool
- */
- private $configFinderIsOverridden;
+ private ?bool $configFinderIsOverridden = null;
private ToolInfoInterface $toolInfo;
@@ -119,31 +100,20 @@ final class ConfigurationResolver
'path' => [],
'path-mode' => self::PATH_MODE_OVERRIDE,
'rules' => null,
+ 'sequential' => null,
'show-progress' => null,
'stop-on-violation' => null,
'using-cache' => null,
'verbosity' => null,
];
- /**
- * @var null|string
- */
- private $cacheFile;
+ private ?string $cacheFile = null;
- /**
- * @var null|CacheManagerInterface
- */
- private $cacheManager;
+ private ?CacheManagerInterface $cacheManager = null;
- /**
- * @var null|DifferInterface
- */
- private $differ;
+ private ?DifferInterface $differ = null;
- /**
- * @var null|Directory
- */
- private $directory;
+ private ?Directory $directory = null;
/**
* @var null|iterable<\SplFileInfo>
@@ -152,10 +122,7 @@ final class ConfigurationResolver
private ?string $format = null;
- /**
- * @var null|Linter
- */
- private $linter;
+ private ?Linter $linter = null;
/**
* @var null|list
@@ -163,24 +130,15 @@ final class ConfigurationResolver
private ?array $path = null;
/**
- * @var null|string
+ * @var null|ProgressOutputType::*
*/
private $progress;
- /**
- * @var null|RuleSet
- */
- private $ruleSet;
+ private ?RuleSet $ruleSet = null;
- /**
- * @var null|bool
- */
- private $usingCache;
+ private ?bool $usingCache = null;
- /**
- * @var FixerFactory
- */
- private $fixerFactory;
+ private ?FixerFactory $fixerFactory = null;
/**
* @param array $options
@@ -275,6 +233,15 @@ public function getConfig(): ConfigInterface
return $this->config;
}
+ public function getParallelConfig(): ParallelConfig
+ {
+ $config = $this->getConfig();
+
+ return true !== $this->options['sequential'] && $config instanceof ParallelAwareConfigInterface
+ ? $config->getParallelConfig()
+ : ParallelConfigFactory::sequential();
+ }
+
public function getConfigFile(): ?string
{
if (null === $this->configFile) {
@@ -287,11 +254,7 @@ public function getConfigFile(): ?string
public function getDiffer(): DifferInterface
{
if (null === $this->differ) {
- if ($this->options['diff']) {
- $this->differ = new UnifiedDiffer();
- } else {
- $this->differ = new NullDiffer();
- }
+ $this->differ = (true === $this->options['diff']) ? new UnifiedDiffer() : new NullDiffer();
}
return $this->differ;
@@ -309,16 +272,17 @@ public function getDirectory(): DirectoryInterface
$absolutePath = $filesystem->isAbsolutePath($path)
? $path
: $this->cwd.\DIRECTORY_SEPARATOR.$path;
+ $absolutePath = \dirname($absolutePath);
}
- $this->directory = new Directory(\dirname($absolutePath));
+ $this->directory = new Directory($absolutePath);
}
return $this->directory;
}
/**
- * @return FixerInterface[] An array of FixerInterface
+ * @return list
*/
public function getFixers(): array
{
@@ -331,19 +295,15 @@ public function getFixers(): array
if (false === $this->getRiskyAllowed()) {
$riskyFixers = array_map(
- static function (FixerInterface $fixer): string {
- return $fixer->getName();
- },
+ static fn (FixerInterface $fixer): string => $fixer->getName(),
array_filter(
$this->fixers,
- static function (FixerInterface $fixer): bool {
- return $fixer->isRisky();
- }
+ static fn (FixerInterface $fixer): bool => $fixer->isRisky()
)
);
if (\count($riskyFixers) > 0) {
- throw new InvalidConfigurationException(sprintf('The rules contain risky fixers ("%s"), but they are not allowed to run. Perhaps you forget to use --allow-risky=yes option?', implode('", "', $riskyFixers)));
+ throw new InvalidConfigurationException(\sprintf('The rules contain risky fixers (%s), but they are not allowed to run. Perhaps you forget to use --allow-risky=yes option?', Utils::naturalLanguageJoin($riskyFixers)));
}
}
}
@@ -363,7 +323,7 @@ public function getLinter(): LinterInterface
/**
* Returns path.
*
- * @return string[]
+ * @return list
*/
public function getPath(): array
{
@@ -387,7 +347,7 @@ static function (string $rawPath) use ($cwd, $filesystem): string {
: $cwd.\DIRECTORY_SEPARATOR.$path;
if (!file_exists($absolutePath)) {
- throw new InvalidConfigurationException(sprintf(
+ throw new InvalidConfigurationException(\sprintf(
'The path "%s" is not readable.',
$path
));
@@ -404,28 +364,31 @@ static function (string $rawPath) use ($cwd, $filesystem): string {
}
/**
+ * @return ProgressOutputType::*
+ *
* @throws InvalidConfigurationException
*/
- public function getProgress(): string
+ public function getProgressType(): string
{
if (null === $this->progress) {
- if (OutputInterface::VERBOSITY_VERBOSE <= $this->options['verbosity'] && 'txt' === $this->getFormat()) {
+ if ('txt' === $this->getFormat()) {
$progressType = $this->options['show-progress'];
- $progressTypes = ['none', 'dots'];
if (null === $progressType) {
- $progressType = $this->getConfig()->getHideProgress() ? 'none' : 'dots';
- } elseif (!\in_array($progressType, $progressTypes, true)) {
- throw new InvalidConfigurationException(sprintf(
- 'The progress type "%s" is not defined, supported are "%s".',
+ $progressType = $this->getConfig()->getHideProgress()
+ ? ProgressOutputType::NONE
+ : ProgressOutputType::BAR;
+ } elseif (!\in_array($progressType, ProgressOutputType::all(), true)) {
+ throw new InvalidConfigurationException(\sprintf(
+ 'The progress type "%s" is not defined, supported are %s.',
$progressType,
- implode('", "', $progressTypes)
+ Utils::naturalLanguageJoin(ProgressOutputType::all())
));
}
$this->progress = $progressType;
} else {
- $this->progress = 'none';
+ $this->progress = ProgressOutputType::NONE;
}
}
@@ -446,7 +409,7 @@ public function getReporter(): ReporterInterface
$formats = $reporterFactory->getFormats();
sort($formats);
- throw new InvalidConfigurationException(sprintf('The format "%s" is not defined, supported are "%s".', $format, implode('", "', $formats)));
+ throw new InvalidConfigurationException(\sprintf('The format "%s" is not defined, supported are %s.', $format, Utils::naturalLanguageJoin($formats)));
}
}
@@ -486,7 +449,7 @@ public function getUsingCache(): bool
}
}
- $this->usingCache = $this->usingCache && ($this->toolInfo->isInstalledAsPhar() || $this->toolInfo->isInstalledByComposer());
+ $this->usingCache = $this->usingCache && $this->isCachingAllowedForRuntime();
return $this->usingCache;
}
@@ -537,7 +500,7 @@ public function configFinderIsOverridden(): bool
/**
* Compute file candidates for config file.
*
- * @return string[]
+ * @return list
*/
private function computeConfigFiles(): array
{
@@ -545,7 +508,7 @@ private function computeConfigFiles(): array
if (null !== $configFile) {
if (false === file_exists($configFile) || false === is_readable($configFile)) {
- throw new InvalidConfigurationException(sprintf('Cannot read config file "%s".', $configFile));
+ throw new InvalidConfigurationException(\sprintf('Cannot read config file "%s".', $configFile));
}
return [$configFile];
@@ -561,7 +524,7 @@ private function computeConfigFiles(): array
$configDir = $path[0];
} else {
$dirName = pathinfo($path[0], PATHINFO_DIRNAME);
- $configDir = $dirName ?: $path[0];
+ $configDir = is_dir($dirName) ? $dirName : $path[0];
}
$candidates = [
@@ -637,7 +600,7 @@ private function iterableToTraversable(iterable $iterable): \Traversable
}
/**
- * @return array
+ * @return array
*/
private function parseRules(): array
{
@@ -654,7 +617,7 @@ private function parseRules(): array
$rules = json_decode($rules, true);
if (JSON_ERROR_NONE !== json_last_error()) {
- throw new InvalidConfigurationException(sprintf('Invalid JSON rules input: "%s".', json_last_error_msg()));
+ throw new InvalidConfigurationException(\sprintf('Invalid JSON rules input: "%s".', json_last_error_msg()));
}
return $rules;
@@ -680,7 +643,7 @@ private function parseRules(): array
}
/**
- * @param array $rules
+ * @param array $rules
*
* @throws InvalidConfigurationException
*/
@@ -695,7 +658,7 @@ private function validateRules(array $rules): void
foreach ($rules as $key => $value) {
if (\is_int($key)) {
- throw new InvalidConfigurationException(sprintf('Missing value for "%s" rule/set.', $value));
+ throw new InvalidConfigurationException(\sprintf('Missing value for "%s" rule/set.', $value));
}
$ruleSet[$key] = true;
@@ -771,16 +734,16 @@ private function validateRules(array $rules): void
foreach ($unknownFixers as $unknownFixer) {
if (isset($renamedRules[$unknownFixer])) { // Check if present as old renamed rule
$hasOldRule = true;
- $message .= sprintf(
+ $message .= \sprintf(
'"%s" is renamed (did you mean "%s"?%s), ',
$unknownFixer,
$renamedRules[$unknownFixer]['new_name'],
- isset($renamedRules[$unknownFixer]['config']) ? ' (note: use configuration "'.HelpCommand::toString($renamedRules[$unknownFixer]['config']).'")' : ''
+ isset($renamedRules[$unknownFixer]['config']) ? ' (note: use configuration "'.Utils::toString($renamedRules[$unknownFixer]['config']).'")' : ''
);
} else { // Go to normal matcher if it is not a renamed rule
$matcher = new WordMatcher($availableFixers);
$alternative = $matcher->match($unknownFixer);
- $message .= sprintf(
+ $message .= \sprintf(
'"%s"%s, ',
$unknownFixer,
null === $alternative ? '' : ' (did you mean "'.$alternative.'"?)'
@@ -802,8 +765,8 @@ private function validateRules(array $rules): void
if (isset($rules[$fixerName]) && $fixer instanceof DeprecatedFixerInterface) {
$successors = $fixer->getSuccessorsNames();
$messageEnd = [] === $successors
- ? sprintf(' and will be removed in version %d.0.', Application::getMajorVersion() + 1)
- : sprintf('. Use %s instead.', str_replace('`', '"', Utils::naturalLanguageJoinWithBackticks($successors)));
+ ? \sprintf(' and will be removed in version %d.0.', Application::getMajorVersion() + 1)
+ : \sprintf('. Use %s instead.', str_replace('`', '"', Utils::naturalLanguageJoinWithBackticks($successors)));
Utils::triggerDeprecation(new \RuntimeException("Rule \"{$fixerName}\" is deprecated{$messageEnd}"));
}
@@ -830,21 +793,19 @@ private function resolveFinder(): iterable
$modes,
true
)) {
- throw new InvalidConfigurationException(sprintf(
- 'The path-mode "%s" is not defined, supported are "%s".',
+ throw new InvalidConfigurationException(\sprintf(
+ 'The path-mode "%s" is not defined, supported are %s.',
$this->options['path-mode'],
- implode('", "', $modes)
+ Utils::naturalLanguageJoin($modes)
));
}
$isIntersectionPathMode = self::PATH_MODE_INTERSECTION === $this->options['path-mode'];
- $paths = array_filter(array_map(
- static function (string $path) {
- return realpath($path);
- },
+ $paths = array_map(
+ static fn (string $path) => realpath($path),
$this->getPath()
- ));
+ );
if (0 === \count($paths)) {
if ($isIntersectionPathMode) {
@@ -922,7 +883,7 @@ static function (\SplFileInfo $current) use ($pathsByType): bool {
private function setOption(string $name, $value): void
{
if (!\array_key_exists($name, $this->options)) {
- throw new InvalidConfigurationException(sprintf('Unknown option name: "%s".', $name));
+ throw new InvalidConfigurationException(\sprintf('Unknown option name: "%s".', $name));
}
$this->options[$name] = $value;
@@ -933,7 +894,7 @@ private function resolveOptionBooleanValue(string $optionName): bool
$value = $this->options[$optionName];
if (!\is_string($value)) {
- throw new InvalidConfigurationException(sprintf('Expected boolean or string value for option "%s".', $optionName));
+ throw new InvalidConfigurationException(\sprintf('Expected boolean or string value for option "%s".', $optionName));
}
if ('yes' === $value) {
@@ -944,7 +905,7 @@ private function resolveOptionBooleanValue(string $optionName): bool
return false;
}
- throw new InvalidConfigurationException(sprintf('Expected "yes" or "no" for option "%s", got "%s".', $optionName, $value));
+ throw new InvalidConfigurationException(\sprintf('Expected "yes" or "no" for option "%s", got "%s".', $optionName, $value));
}
private static function separatedContextLessInclude(string $path): ConfigInterface
@@ -953,9 +914,17 @@ private static function separatedContextLessInclude(string $path): ConfigInterfa
// verify that the config has an instance of Config
if (!$config instanceof ConfigInterface) {
- throw new InvalidConfigurationException(sprintf('The config file: "%s" does not return a "PhpCsFixer\ConfigInterface" instance. Got: "%s".', $path, \is_object($config) ? \get_class($config) : \gettype($config)));
+ throw new InvalidConfigurationException(\sprintf('The config file: "%s" does not return a "PhpCsFixer\ConfigInterface" instance. Got: "%s".', $path, \is_object($config) ? \get_class($config) : \gettype($config)));
}
return $config;
}
+
+ private function isCachingAllowedForRuntime(): bool
+ {
+ return $this->toolInfo->isInstalledAsPhar()
+ || $this->toolInfo->isInstalledByComposer()
+ || $this->toolInfo->isRunInsideDocker()
+ || filter_var(getenv('PHP_CS_FIXER_ENFORCE_CACHE'), FILTER_VALIDATE_BOOL);
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ErrorOutput.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ErrorOutput.php
index 926872af..b51c8ae5 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ErrorOutput.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ErrorOutput.php
@@ -17,20 +17,20 @@
use PhpCsFixer\Differ\DiffConsoleFormatter;
use PhpCsFixer\Error\Error;
use PhpCsFixer\Linter\LintingException;
+use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Output\OutputInterface;
/**
+ * @readonly
+ *
* @internal
*/
final class ErrorOutput
{
private OutputInterface $output;
- /**
- * @var bool
- */
- private $isDecorated;
+ private bool $isDecorated;
public function __construct(OutputInterface $output)
{
@@ -39,11 +39,11 @@ public function __construct(OutputInterface $output)
}
/**
- * @param Error[] $errors
+ * @param list $errors
*/
public function listErrors(string $process, array $errors): void
{
- $this->output->writeln(['', sprintf(
+ $this->output->writeln(['', \sprintf(
'Files that were not fixed due to errors reported during %s:',
$process
)]);
@@ -51,13 +51,13 @@ public function listErrors(string $process, array $errors): void
$showDetails = $this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE;
$showTrace = $this->output->getVerbosity() >= OutputInterface::VERBOSITY_DEBUG;
foreach ($errors as $i => $error) {
- $this->output->writeln(sprintf('%4d) %s', $i + 1, $error->getFilePath()));
+ $this->output->writeln(\sprintf('%4d) %s', $i + 1, $error->getFilePath()));
$e = $error->getSource();
if (!$showDetails || null === $e) {
continue;
}
- $class = sprintf('[%s]', \get_class($e));
+ $class = \sprintf('[%s]', \get_class($e));
$message = $e->getMessage();
$code = $e->getCode();
if (0 !== $code) {
@@ -79,14 +79,14 @@ public function listErrors(string $process, array $errors): void
$line .= str_repeat(' ', $length - \strlen($line));
}
- $this->output->writeln(sprintf(' %s ', $this->prepareOutput($line)));
+ $this->output->writeln(\sprintf(' %s ', $this->prepareOutput($line)));
}
if ($showTrace && !$e instanceof LintingException) { // stack trace of lint exception is of no interest
$this->output->writeln('');
$stackTrace = $e->getTrace();
foreach ($stackTrace as $trace) {
- if (isset($trace['class']) && \Symfony\Component\Console\Command\Command::class === $trace['class'] && 'run' === $trace['function']) {
+ if (isset($trace['class']) && Command::class === $trace['class'] && 'run' === $trace['function']) {
$this->output->writeln(' [ ... ]');
break;
@@ -98,13 +98,13 @@ public function listErrors(string $process, array $errors): void
if (Error::TYPE_LINT === $error->getType() && 0 < \count($error->getAppliedFixers())) {
$this->output->writeln('');
- $this->output->writeln(sprintf(' Applied fixers: %s', implode(', ', $error->getAppliedFixers())));
+ $this->output->writeln(\sprintf(' Applied fixers: %s', implode(', ', $error->getAppliedFixers())));
$diff = $error->getDiff();
- if (!empty($diff)) {
+ if (null !== $diff) {
$diffFormatter = new DiffConsoleFormatter(
$this->isDecorated,
- sprintf(
+ \sprintf(
' ---------- begin diff ----------%s%%s%s ----------- end diff -----------',
PHP_EOL,
PHP_EOL
@@ -131,18 +131,18 @@ public function listErrors(string $process, array $errors): void
private function outputTrace(array $trace): void
{
if (isset($trace['class'], $trace['type'], $trace['function'])) {
- $this->output->writeln(sprintf(
+ $this->output->writeln(\sprintf(
' %s%s%s()',
$this->prepareOutput($trace['class']),
$this->prepareOutput($trace['type']),
$this->prepareOutput($trace['function'])
));
} elseif (isset($trace['function'])) {
- $this->output->writeln(sprintf(' %s()', $this->prepareOutput($trace['function'])));
+ $this->output->writeln(\sprintf(' %s()', $this->prepareOutput($trace['function'])));
}
if (isset($trace['file'])) {
- $this->output->writeln(sprintf(' in %s at line %d', $this->prepareOutput($trace['file']), $trace['line']));
+ $this->output->writeln(\sprintf(' in %s at line %d', $this->prepareOutput($trace['file']), $trace['line']));
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/OutputContext.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/OutputContext.php
new file mode 100644
index 00000000..60ff2611
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/OutputContext.php
@@ -0,0 +1,54 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output;
+
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * @readonly
+ *
+ * @internal
+ */
+final class OutputContext
+{
+ private ?OutputInterface $output;
+ private int $terminalWidth;
+ private int $filesCount;
+
+ public function __construct(
+ ?OutputInterface $output,
+ int $terminalWidth,
+ int $filesCount
+ ) {
+ $this->output = $output;
+ $this->terminalWidth = $terminalWidth;
+ $this->filesCount = $filesCount;
+ }
+
+ public function getOutput(): ?OutputInterface
+ {
+ return $this->output;
+ }
+
+ public function getTerminalWidth(): int
+ {
+ return $this->terminalWidth;
+ }
+
+ public function getFilesCount(): int
+ {
+ return $this->filesCount;
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutput.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutput.php
deleted file mode 100644
index 6d504b8e..00000000
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/ProcessOutput.php
+++ /dev/null
@@ -1,133 +0,0 @@
-
- * Dariusz Rumiński
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
-
-namespace PhpCsFixer\Console\Output;
-
-use PhpCsFixer\FixerFileProcessedEvent;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * Output writer to show the process of a FixCommand.
- *
- * @internal
- */
-final class ProcessOutput implements ProcessOutputInterface
-{
- /**
- * File statuses map.
- *
- * @var array
- */
- private static array $eventStatusMap = [
- FixerFileProcessedEvent::STATUS_NO_CHANGES => ['symbol' => '.', 'format' => '%s', 'description' => 'no changes'],
- FixerFileProcessedEvent::STATUS_FIXED => ['symbol' => 'F', 'format' => '%s', 'description' => 'fixed'],
- FixerFileProcessedEvent::STATUS_SKIPPED => ['symbol' => 'S', 'format' => '%s', 'description' => 'skipped (cached or empty file)'],
- FixerFileProcessedEvent::STATUS_INVALID => ['symbol' => 'I', 'format' => '%s', 'description' => 'invalid file syntax (file ignored)'],
- FixerFileProcessedEvent::STATUS_EXCEPTION => ['symbol' => 'E', 'format' => '%s', 'description' => 'error'],
- FixerFileProcessedEvent::STATUS_LINT => ['symbol' => 'E', 'format' => '%s', 'description' => 'error'],
- ];
-
- private OutputInterface $output;
-
- private EventDispatcherInterface $eventDispatcher;
-
- private int $files;
-
- private int $processedFiles = 0;
-
- /**
- * @var int
- */
- private $symbolsPerLine;
-
- public function __construct(OutputInterface $output, EventDispatcherInterface $dispatcher, int $width, int $nbFiles)
- {
- $this->output = $output;
- $this->eventDispatcher = $dispatcher;
- $this->eventDispatcher->addListener(FixerFileProcessedEvent::NAME, [$this, 'onFixerFileProcessed']);
- $this->files = $nbFiles;
-
- // max number of characters per line
- // - total length x 2 (e.g. " 1 / 123" => 6 digits and padding spaces)
- // - 11 (extra spaces, parentheses and percentage characters, e.g. " x / x (100%)")
- $this->symbolsPerLine = max(1, $width - \strlen((string) $this->files) * 2 - 11);
- }
-
- public function __destruct()
- {
- $this->eventDispatcher->removeListener(FixerFileProcessedEvent::NAME, [$this, 'onFixerFileProcessed']);
- }
-
- /**
- * This class is not intended to be serialized,
- * and cannot be deserialized (see __wakeup method).
- */
- public function __sleep(): array
- {
- throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
- }
-
- /**
- * Disable the deserialization of the class to prevent attacker executing
- * code by leveraging the __destruct method.
- *
- * @see https://owasp.org/www-community/vulnerabilities/PHP_Object_Injection
- */
- public function __wakeup(): void
- {
- throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
- }
-
- public function onFixerFileProcessed(FixerFileProcessedEvent $event): void
- {
- $status = self::$eventStatusMap[$event->getStatus()];
- $this->output->write($this->output->isDecorated() ? sprintf($status['format'], $status['symbol']) : $status['symbol']);
-
- ++$this->processedFiles;
-
- $symbolsOnCurrentLine = $this->processedFiles % $this->symbolsPerLine;
- $isLast = $this->processedFiles === $this->files;
-
- if (0 === $symbolsOnCurrentLine || $isLast) {
- $this->output->write(sprintf(
- '%s %'.\strlen((string) $this->files).'d / %d (%3d%%)',
- $isLast && 0 !== $symbolsOnCurrentLine ? str_repeat(' ', $this->symbolsPerLine - $symbolsOnCurrentLine) : '',
- $this->processedFiles,
- $this->files,
- round($this->processedFiles / $this->files * 100)
- ));
-
- if (!$isLast) {
- $this->output->writeln('');
- }
- }
- }
-
- public function printLegend(): void
- {
- $symbols = [];
-
- foreach (self::$eventStatusMap as $status) {
- $symbol = $status['symbol'];
- if ('' === $symbol || isset($symbols[$symbol])) {
- continue;
- }
-
- $symbols[$symbol] = sprintf('%s-%s', $this->output->isDecorated() ? sprintf($status['format'], $symbol) : $symbol, $status['description']);
- }
-
- $this->output->write(sprintf("\nLegend: %s\n", implode(', ', $symbols)));
- }
-}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/DotsOutput.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/DotsOutput.php
new file mode 100644
index 00000000..e2821146
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/DotsOutput.php
@@ -0,0 +1,124 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+use PhpCsFixer\Console\Output\OutputContext;
+use PhpCsFixer\Runner\Event\FileProcessed;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Output writer to show the progress of a FixCommand using dots and meaningful letters.
+ *
+ * @internal
+ */
+final class DotsOutput implements ProgressOutputInterface
+{
+ /**
+ * File statuses map.
+ *
+ * @var array
+ */
+ private const EVENT_STATUS_MAP = [
+ FileProcessed::STATUS_NO_CHANGES => ['symbol' => '.', 'format' => '%s', 'description' => 'no changes'],
+ FileProcessed::STATUS_FIXED => ['symbol' => 'F', 'format' => '%s', 'description' => 'fixed'],
+ FileProcessed::STATUS_SKIPPED => ['symbol' => 'S', 'format' => '%s', 'description' => 'skipped (cached or empty file)'],
+ FileProcessed::STATUS_INVALID => ['symbol' => 'I', 'format' => '%s', 'description' => 'invalid file syntax (file ignored)'],
+ FileProcessed::STATUS_EXCEPTION => ['symbol' => 'E', 'format' => '%s', 'description' => 'error'],
+ FileProcessed::STATUS_LINT => ['symbol' => 'E', 'format' => '%s', 'description' => 'error'],
+ ];
+
+ /** @readonly */
+ private OutputContext $context;
+
+ private int $processedFiles = 0;
+
+ private int $symbolsPerLine;
+
+ public function __construct(OutputContext $context)
+ {
+ $this->context = $context;
+
+ // max number of characters per line
+ // - total length x 2 (e.g. " 1 / 123" => 6 digits and padding spaces)
+ // - 11 (extra spaces, parentheses and percentage characters, e.g. " x / x (100%)")
+ $this->symbolsPerLine = max(1, $context->getTerminalWidth() - \strlen((string) $context->getFilesCount()) * 2 - 11);
+ }
+
+ /**
+ * This class is not intended to be serialized,
+ * and cannot be deserialized (see __wakeup method).
+ */
+ public function __sleep(): array
+ {
+ throw new \BadMethodCallException('Cannot serialize '.self::class);
+ }
+
+ /**
+ * Disable the deserialization of the class to prevent attacker executing
+ * code by leveraging the __destruct method.
+ *
+ * @see https://owasp.org/www-community/vulnerabilities/PHP_Object_Injection
+ */
+ public function __wakeup(): void
+ {
+ throw new \BadMethodCallException('Cannot unserialize '.self::class);
+ }
+
+ public function onFixerFileProcessed(FileProcessed $event): void
+ {
+ $status = self::EVENT_STATUS_MAP[$event->getStatus()];
+ $this->getOutput()->write($this->getOutput()->isDecorated() ? \sprintf($status['format'], $status['symbol']) : $status['symbol']);
+
+ ++$this->processedFiles;
+
+ $symbolsOnCurrentLine = $this->processedFiles % $this->symbolsPerLine;
+ $isLast = $this->processedFiles === $this->context->getFilesCount();
+
+ if (0 === $symbolsOnCurrentLine || $isLast) {
+ $this->getOutput()->write(\sprintf(
+ '%s %'.\strlen((string) $this->context->getFilesCount()).'d / %d (%3d%%)',
+ $isLast && 0 !== $symbolsOnCurrentLine ? str_repeat(' ', $this->symbolsPerLine - $symbolsOnCurrentLine) : '',
+ $this->processedFiles,
+ $this->context->getFilesCount(),
+ round($this->processedFiles / $this->context->getFilesCount() * 100)
+ ));
+
+ if (!$isLast) {
+ $this->getOutput()->writeln('');
+ }
+ }
+ }
+
+ public function printLegend(): void
+ {
+ $symbols = [];
+
+ foreach (self::EVENT_STATUS_MAP as $status) {
+ $symbol = $status['symbol'];
+ if (isset($symbols[$symbol])) {
+ continue;
+ }
+
+ $symbols[$symbol] = \sprintf('%s-%s', $this->getOutput()->isDecorated() ? \sprintf($status['format'], $symbol) : $symbol, $status['description']);
+ }
+
+ $this->getOutput()->write(\sprintf("\nLegend: %s\n", implode(', ', $symbols)));
+ }
+
+ private function getOutput(): OutputInterface
+ {
+ return $this->context->getOutput();
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/NullOutput.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/NullOutput.php
new file mode 100644
index 00000000..497ea8b0
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/NullOutput.php
@@ -0,0 +1,29 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+use PhpCsFixer\Runner\Event\FileProcessed;
+
+/**
+ * @readonly
+ *
+ * @internal
+ */
+final class NullOutput implements ProgressOutputInterface
+{
+ public function printLegend(): void {}
+
+ public function onFixerFileProcessed(FileProcessed $event): void {}
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/PercentageBarOutput.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/PercentageBarOutput.php
new file mode 100644
index 00000000..fc320fa2
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/PercentageBarOutput.php
@@ -0,0 +1,78 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+use PhpCsFixer\Console\Output\OutputContext;
+use PhpCsFixer\Runner\Event\FileProcessed;
+use Symfony\Component\Console\Helper\ProgressBar;
+
+/**
+ * Output writer to show the progress of a FixCommand using progress bar (percentage).
+ *
+ * @readonly
+ *
+ * @internal
+ */
+final class PercentageBarOutput implements ProgressOutputInterface
+{
+ /** @readonly */
+ private OutputContext $context;
+
+ private ProgressBar $progressBar;
+
+ public function __construct(OutputContext $context)
+ {
+ $this->context = $context;
+
+ $this->progressBar = new ProgressBar($context->getOutput(), $this->context->getFilesCount());
+ $this->progressBar->setBarCharacter('▓'); // dark shade character \u2593
+ $this->progressBar->setEmptyBarCharacter('░'); // light shade character \u2591
+ $this->progressBar->setProgressCharacter('');
+ $this->progressBar->setFormat('normal');
+
+ $this->progressBar->start();
+ }
+
+ /**
+ * This class is not intended to be serialized,
+ * and cannot be deserialized (see __wakeup method).
+ */
+ public function __sleep(): array
+ {
+ throw new \BadMethodCallException('Cannot serialize '.self::class);
+ }
+
+ /**
+ * Disable the deserialization of the class to prevent attacker executing
+ * code by leveraging the __destruct method.
+ *
+ * @see https://owasp.org/www-community/vulnerabilities/PHP_Object_Injection
+ */
+ public function __wakeup(): void
+ {
+ throw new \BadMethodCallException('Cannot unserialize '.self::class);
+ }
+
+ public function onFixerFileProcessed(FileProcessed $event): void
+ {
+ $this->progressBar->advance(1);
+
+ if ($this->progressBar->getProgress() === $this->progressBar->getMaxSteps()) {
+ $this->context->getOutput()->write("\n\n");
+ }
+ }
+
+ public function printLegend(): void {}
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputFactory.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputFactory.php
new file mode 100644
index 00000000..a1474aea
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputFactory.php
@@ -0,0 +1,63 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+use PhpCsFixer\Console\Output\OutputContext;
+
+/**
+ * @readonly
+ *
+ * @internal
+ */
+final class ProgressOutputFactory
+{
+ /**
+ * @var array>
+ */
+ private const OUTPUT_TYPE_MAP = [
+ ProgressOutputType::NONE => NullOutput::class,
+ ProgressOutputType::DOTS => DotsOutput::class,
+ ProgressOutputType::BAR => PercentageBarOutput::class,
+ ];
+
+ /**
+ * @param ProgressOutputType::* $outputType
+ */
+ public function create(string $outputType, OutputContext $context): ProgressOutputInterface
+ {
+ if (null === $context->getOutput()) {
+ $outputType = ProgressOutputType::NONE;
+ }
+
+ if (!$this->isBuiltInType($outputType)) {
+ throw new \InvalidArgumentException(
+ \sprintf(
+ 'Something went wrong, "%s" output type is not supported',
+ $outputType
+ )
+ );
+ }
+
+ $outputClass = self::OUTPUT_TYPE_MAP[$outputType];
+
+ // @phpstan-ignore-next-line new.noConstructor
+ return new $outputClass($context);
+ }
+
+ private function isBuiltInType(string $outputType): bool
+ {
+ return \in_array($outputType, ProgressOutputType::all(), true);
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputInterface.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputInterface.php
new file mode 100644
index 00000000..48881e65
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputInterface.php
@@ -0,0 +1,27 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+use PhpCsFixer\Runner\Event\FileProcessed;
+
+/**
+ * @internal
+ */
+interface ProgressOutputInterface
+{
+ public function printLegend(): void;
+
+ public function onFixerFileProcessed(FileProcessed $event): void;
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputType.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputType.php
new file mode 100644
index 00000000..6f427a46
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Output/Progress/ProgressOutputType.php
@@ -0,0 +1,37 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Console\Output\Progress;
+
+/**
+ * @internal
+ */
+final class ProgressOutputType
+{
+ public const NONE = 'none';
+ public const DOTS = 'dots';
+ public const BAR = 'bar';
+
+ /**
+ * @return list
+ */
+ public static function all(): array
+ {
+ return [
+ self::BAR,
+ self::DOTS,
+ self::NONE,
+ ];
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/CheckstyleReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/CheckstyleReporter.php
index c283b238..79806d1f 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/CheckstyleReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/CheckstyleReporter.php
@@ -14,26 +14,23 @@
namespace PhpCsFixer\Console\Report\FixReport;
+use PhpCsFixer\Console\Application;
use Symfony\Component\Console\Formatter\OutputFormatter;
/**
* @author Kévin Gomez
*
+ * @readonly
+ *
* @internal
*/
final class CheckstyleReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'checkstyle';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
if (!\extension_loaded('dom')) {
@@ -41,7 +38,10 @@ public function generate(ReportSummary $reportSummary): string
}
$dom = new \DOMDocument('1.0', 'UTF-8');
+
+ /** @var \DOMElement $checkstyles */
$checkstyles = $dom->appendChild($dom->createElement('checkstyle'));
+ $checkstyles->setAttribute('version', Application::getAbout());
foreach ($reportSummary->getChanged() as $filePath => $fixResult) {
/** @var \DOMElement $file */
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/GitlabReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/GitlabReporter.php
index 974d66d1..3061b6fc 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/GitlabReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/GitlabReporter.php
@@ -14,6 +14,10 @@
namespace PhpCsFixer\Console\Report\FixReport;
+use PhpCsFixer\Console\Application;
+use SebastianBergmann\Diff\Chunk;
+use SebastianBergmann\Diff\Diff;
+use SebastianBergmann\Diff\Parser;
use Symfony\Component\Console\Formatter\OutputFormatter;
/**
@@ -23,10 +27,19 @@
*
* @author Hans-Christian Otto
*
+ * @readonly
+ *
* @internal
*/
final class GitlabReporter implements ReporterInterface
{
+ private Parser $diffParser;
+
+ public function __construct()
+ {
+ $this->diffParser = new Parser();
+ }
+
public function getFormat(): string
{
return 'gitlab';
@@ -37,25 +50,47 @@ public function getFormat(): string
*/
public function generate(ReportSummary $reportSummary): string
{
+ $about = Application::getAbout();
+
$report = [];
foreach ($reportSummary->getChanged() as $fileName => $change) {
foreach ($change['appliedFixers'] as $fixerName) {
$report[] = [
- 'description' => $fixerName,
+ 'check_name' => 'PHP-CS-Fixer.'.$fixerName,
+ 'description' => 'PHP-CS-Fixer.'.$fixerName.' by '.$about,
+ 'categories' => ['Style'],
'fingerprint' => md5($fileName.$fixerName),
'severity' => 'minor',
'location' => [
'path' => $fileName,
- 'lines' => [
- 'begin' => 0, // line numbers are required in the format, but not available to reports
- ],
+ 'lines' => self::getLines($this->diffParser->parse($change['diff'])),
],
];
}
}
- $jsonString = json_encode($report);
+ $jsonString = json_encode($report, JSON_THROW_ON_ERROR);
return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($jsonString) : $jsonString;
}
+
+ /**
+ * @param list $diffs
+ *
+ * @return array{begin: int, end: int}
+ */
+ private static function getLines(array $diffs): array
+ {
+ if (isset($diffs[0])) {
+ $firstDiff = $diffs[0];
+
+ $firstChunk = \Closure::bind(static fn (Diff $diff) => array_shift($diff->chunks), null, $firstDiff)($firstDiff);
+
+ if ($firstChunk instanceof Chunk) {
+ return \Closure::bind(static fn (Chunk $chunk): array => ['begin' => $chunk->start, 'end' => $chunk->startRange], null, $firstChunk)($firstChunk);
+ }
+ }
+
+ return ['begin' => 0, 'end' => 0];
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JsonReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JsonReporter.php
index 4e170e4b..49ea9e30 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JsonReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JsonReporter.php
@@ -14,26 +14,23 @@
namespace PhpCsFixer\Console\Report\FixReport;
+use PhpCsFixer\Console\Application;
use Symfony\Component\Console\Formatter\OutputFormatter;
/**
* @author Boris Gorbylev
*
+ * @readonly
+ *
* @internal
*/
final class JsonReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'json';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
$jsonFiles = [];
@@ -53,14 +50,15 @@ public function generate(ReportSummary $reportSummary): string
}
$json = [
+ 'about' => Application::getAbout(),
'files' => $jsonFiles,
'time' => [
- 'total' => round($reportSummary->getTime() / 1000, 3),
+ 'total' => round($reportSummary->getTime() / 1_000, 3),
],
- 'memory' => round($reportSummary->getMemory() / 1024 / 1024, 3),
+ 'memory' => round($reportSummary->getMemory() / 1_024 / 1_024, 3),
];
- $json = json_encode($json);
+ $json = json_encode($json, JSON_THROW_ON_ERROR);
return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($json) : $json;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JunitReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JunitReporter.php
index 9cf9c6df..2017a0d7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JunitReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/JunitReporter.php
@@ -14,27 +14,24 @@
namespace PhpCsFixer\Console\Report\FixReport;
+use PhpCsFixer\Console\Application;
use PhpCsFixer\Preg;
use Symfony\Component\Console\Formatter\OutputFormatter;
/**
* @author Boris Gorbylev
*
+ * @readonly
+ *
* @internal
*/
final class JunitReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'junit';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
if (!\extension_loaded('dom')) {
@@ -44,10 +41,17 @@ public function generate(ReportSummary $reportSummary): string
$dom = new \DOMDocument('1.0', 'UTF-8');
$testsuites = $dom->appendChild($dom->createElement('testsuites'));
- /** @var \DomElement $testsuite */
+ /** @var \DOMElement $testsuite */
$testsuite = $testsuites->appendChild($dom->createElement('testsuite'));
$testsuite->setAttribute('name', 'PHP CS Fixer');
+ $properties = $dom->createElement('properties');
+ $property = $dom->createElement('property');
+ $property->setAttribute('name', 'about');
+ $property->setAttribute('value', Application::getAbout());
+ $properties->appendChild($property);
+ $testsuite->appendChild($properties);
+
if (\count($reportSummary->getChanged()) > 0) {
$this->createFailedTestCases($dom, $testsuite, $reportSummary);
} else {
@@ -57,9 +61,9 @@ public function generate(ReportSummary $reportSummary): string
if ($reportSummary->getTime() > 0) {
$testsuite->setAttribute(
'time',
- sprintf(
+ \sprintf(
'%.3f',
- $reportSummary->getTime() / 1000
+ $reportSummary->getTime() / 1_000
)
);
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReportSummary.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReportSummary.php
index ccdfefb3..231ddeae 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReportSummary.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReportSummary.php
@@ -17,6 +17,8 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class ReportSummary
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReporterFactory.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReporterFactory.php
index d091f441..1b2d8122 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReporterFactory.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/ReporterFactory.php
@@ -23,9 +23,7 @@
*/
final class ReporterFactory
{
- /**
- * @var array
- */
+ /** @var array */
private array $reporters = [];
public function registerBuiltInReporters(): self
@@ -38,10 +36,10 @@ public function registerBuiltInReporters(): self
foreach (SymfonyFinder::create()->files()->name('*Reporter.php')->in(__DIR__) as $file) {
$relativeNamespace = $file->getRelativePath();
- $builtInReporters[] = sprintf(
- '%s\\%s%s',
+ $builtInReporters[] = \sprintf(
+ '%s\%s%s',
__NAMESPACE__,
- $relativeNamespace ? $relativeNamespace.'\\' : '',
+ '' !== $relativeNamespace ? $relativeNamespace.'\\' : '',
$file->getBasename('.php')
);
}
@@ -62,7 +60,7 @@ public function registerReporter(ReporterInterface $reporter): self
$format = $reporter->getFormat();
if (isset($this->reporters[$format])) {
- throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is already registered.', $format));
+ throw new \UnexpectedValueException(\sprintf('Reporter for format "%s" is already registered.', $format));
}
$this->reporters[$format] = $reporter;
@@ -84,7 +82,7 @@ public function getFormats(): array
public function getReporter(string $format): ReporterInterface
{
if (!isset($this->reporters[$format])) {
- throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is not registered.', $format));
+ throw new \UnexpectedValueException(\sprintf('Reporter for format "%s" is not registered.', $format));
}
return $this->reporters[$format];
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/TextReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/TextReporter.php
index 6de741bc..ccdeeabb 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/TextReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/TextReporter.php
@@ -19,21 +19,17 @@
/**
* @author Boris Gorbylev
*
+ * @readonly
+ *
* @internal
*/
final class TextReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'txt';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
$output = '';
@@ -41,7 +37,7 @@ public function generate(ReportSummary $reportSummary): string
$identifiedFiles = 0;
foreach ($reportSummary->getChanged() as $file => $fixResult) {
++$identifiedFiles;
- $output .= sprintf('%4d) %s', $identifiedFiles, $file);
+ $output .= \sprintf('%4d) %s', $identifiedFiles, $file);
if ($reportSummary->shouldAddAppliedFixers()) {
$output .= $this->getAppliedFixers(
@@ -68,7 +64,7 @@ public function generate(ReportSummary $reportSummary): string
*/
private function getAppliedFixers(bool $isDecoratedOutput, array $appliedFixers): string
{
- return sprintf(
+ return \sprintf(
$isDecoratedOutput ? ' (%s)' : ' (%s)',
implode(', ', $appliedFixers)
);
@@ -80,7 +76,7 @@ private function getDiff(bool $isDecoratedOutput, string $diff): string
return '';
}
- $diffFormatter = new DiffConsoleFormatter($isDecoratedOutput, sprintf(
+ $diffFormatter = new DiffConsoleFormatter($isDecoratedOutput, \sprintf(
' ---------- begin diff ----------%s%%s%s ----------- end diff -----------',
PHP_EOL,
PHP_EOL
@@ -95,14 +91,14 @@ private function getFooter(int $time, int $identifiedFiles, int $files, int $mem
return '';
}
- return PHP_EOL.sprintf(
- '%s %d of %d %s in %.3f seconds, %.3f MB memory used'.PHP_EOL,
+ return PHP_EOL.\sprintf(
+ '%s %d of %d %s in %.3f seconds, %.2f MB memory used'.PHP_EOL,
$isDryRun ? 'Found' : 'Fixed',
$identifiedFiles,
$files,
$isDryRun ? 'files that can be fixed' : 'files',
- $time / 1000,
- $memory / 1024 / 1024
+ $time / 1_000,
+ $memory / 1_024 / 1_024
);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/XmlReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/XmlReporter.php
index d487a189..3914377d 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/XmlReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/FixReport/XmlReporter.php
@@ -14,26 +14,23 @@
namespace PhpCsFixer\Console\Report\FixReport;
+use PhpCsFixer\Console\Application;
use Symfony\Component\Console\Formatter\OutputFormatter;
/**
* @author Boris Gorbylev
*
+ * @readonly
+ *
* @internal
*/
final class XmlReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'xml';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
if (!\extension_loaded('dom')) {
@@ -45,6 +42,8 @@ public function generate(ReportSummary $reportSummary): string
$root = $dom->createElement('report');
$dom->appendChild($root);
+ $root->appendChild($this->createAboutElement($dom, Application::getAbout()));
+
$filesXML = $dom->createElement('files');
$root->appendChild($filesXML);
@@ -105,7 +104,7 @@ private function createDiffElement(\DOMDocument $dom, string $diff): \DOMElement
private function createTimeElement(float $time, \DOMDocument $dom): \DOMElement
{
- $time = round($time / 1000, 3);
+ $time = round($time / 1_000, 3);
$timeXML = $dom->createElement('time');
$timeXML->setAttribute('unit', 's');
@@ -118,7 +117,7 @@ private function createTimeElement(float $time, \DOMDocument $dom): \DOMElement
private function createMemoryElement(float $memory, \DOMDocument $dom): \DOMElement
{
- $memory = round($memory / 1024 / 1024, 3);
+ $memory = round($memory / 1_024 / 1_024, 3);
$memoryXML = $dom->createElement('memory');
$memoryXML->setAttribute('value', (string) $memory);
@@ -126,4 +125,12 @@ private function createMemoryElement(float $memory, \DOMDocument $dom): \DOMElem
return $memoryXML;
}
+
+ private function createAboutElement(\DOMDocument $dom, string $about): \DOMElement
+ {
+ $xml = $dom->createElement('about');
+ $xml->setAttribute('value', $about);
+
+ return $xml;
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/JsonReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/JsonReporter.php
index 20469397..9cc1602e 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/JsonReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/JsonReporter.php
@@ -19,28 +19,22 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class JsonReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'json';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
$sets = $reportSummary->getSets();
- usort($sets, static function (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int {
- return strcmp($a->getName(), $b->getName());
- });
+ usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => $a->getName() <=> $b->getName());
$json = ['sets' => []];
@@ -53,6 +47,6 @@ public function generate(ReportSummary $reportSummary): string
];
}
- return json_encode($json, JSON_PRETTY_PRINT);
+ return json_encode($json, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReportSummary.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReportSummary.php
index c7d66e71..e6ced136 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReportSummary.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReportSummary.php
@@ -19,6 +19,8 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class ReportSummary
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReporterFactory.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReporterFactory.php
index cbbb7f4e..ad963f6d 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReporterFactory.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/ReporterFactory.php
@@ -38,10 +38,10 @@ public function registerBuiltInReporters(): self
foreach (SymfonyFinder::create()->files()->name('*Reporter.php')->in(__DIR__) as $file) {
$relativeNamespace = $file->getRelativePath();
- $builtInReporters[] = sprintf(
- '%s\\%s%s',
+ $builtInReporters[] = \sprintf(
+ '%s\%s%s',
__NAMESPACE__,
- $relativeNamespace ? $relativeNamespace.'\\' : '',
+ '' !== $relativeNamespace ? $relativeNamespace.'\\' : '',
$file->getBasename('.php')
);
}
@@ -59,7 +59,7 @@ public function registerReporter(ReporterInterface $reporter): self
$format = $reporter->getFormat();
if (isset($this->reporters[$format])) {
- throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is already registered.', $format));
+ throw new \UnexpectedValueException(\sprintf('Reporter for format "%s" is already registered.', $format));
}
$this->reporters[$format] = $reporter;
@@ -81,7 +81,7 @@ public function getFormats(): array
public function getReporter(string $format): ReporterInterface
{
if (!isset($this->reporters[$format])) {
- throw new \UnexpectedValueException(sprintf('Reporter for format "%s" is not registered.', $format));
+ throw new \UnexpectedValueException(\sprintf('Reporter for format "%s" is not registered.', $format));
}
return $this->reporters[$format];
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/TextReporter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/TextReporter.php
index 0caddef5..62b338df 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/TextReporter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/Report/ListSetsReport/TextReporter.php
@@ -19,33 +19,27 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class TextReporter implements ReporterInterface
{
- /**
- * {@inheritdoc}
- */
public function getFormat(): string
{
return 'txt';
}
- /**
- * {@inheritdoc}
- */
public function generate(ReportSummary $reportSummary): string
{
$sets = $reportSummary->getSets();
- usort($sets, static function (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int {
- return strcmp($a->getName(), $b->getName());
- });
+ usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => $a->getName() <=> $b->getName());
$output = '';
foreach ($sets as $i => $set) {
- $output .= sprintf('%2d) %s', $i + 1, $set->getName()).PHP_EOL.' '.$set->getDescription().PHP_EOL;
+ $output .= \sprintf('%2d) %s', $i + 1, $set->getName()).PHP_EOL.' '.$set->getDescription().PHP_EOL;
if ($set->isRisky()) {
$output .= ' Set contains risky rules.'.PHP_EOL;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClient.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClient.php
index 26d669ac..b6a0a279 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClient.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClient.php
@@ -15,19 +15,23 @@
namespace PhpCsFixer\Console\SelfUpdate;
/**
+ * @readonly
+ *
* @internal
*/
final class GithubClient implements GithubClientInterface
{
- /**
- * {@inheritdoc}
- */
- public function getTags(): array
+ private string $url;
+
+ public function __construct(string $url = 'https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/tags')
{
- $url = 'https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/tags';
+ $this->url = $url;
+ }
+ public function getTags(): array
+ {
$result = @file_get_contents(
- $url,
+ $this->url,
false,
stream_context_create([
'http' => [
@@ -37,18 +41,29 @@ public function getTags(): array
);
if (false === $result) {
- throw new \RuntimeException(sprintf('Failed to load tags at "%s".', $url));
+ throw new \RuntimeException(\sprintf('Failed to load tags at "%s".', $this->url));
}
+ /**
+ * @var list
+ */
$result = json_decode($result, true);
if (JSON_ERROR_NONE !== json_last_error()) {
- throw new \RuntimeException(sprintf(
+ throw new \RuntimeException(\sprintf(
'Failed to read response from "%s" as JSON: %s.',
- $url,
+ $this->url,
json_last_error_msg()
));
}
- return $result;
+ return array_map(
+ static fn (array $tagData): string => $tagData['name'],
+ $result
+ );
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClientInterface.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClientInterface.php
index 38178a22..27728327 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClientInterface.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/GithubClientInterface.php
@@ -20,12 +20,7 @@
interface GithubClientInterface
{
/**
- * @return list
+ * @return list
*/
public function getTags(): array;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionChecker.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionChecker.php
index 54ec34dd..67ed6e66 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionChecker.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/SelfUpdate/NewVersionChecker.php
@@ -28,9 +28,9 @@ final class NewVersionChecker implements NewVersionCheckerInterface
private VersionParser $versionParser;
/**
- * @var null|string[]
+ * @var null|list
*/
- private $availableVersions;
+ private ?array $availableVersions = null;
public function __construct(GithubClientInterface $githubClient)
{
@@ -38,9 +38,6 @@ public function __construct(GithubClientInterface $githubClient)
$this->versionParser = new VersionParser();
}
- /**
- * {@inheritdoc}
- */
public function getLatestVersion(): string
{
$this->retrieveAvailableVersions();
@@ -48,9 +45,6 @@ public function getLatestVersion(): string
return $this->availableVersions[0];
}
- /**
- * {@inheritdoc}
- */
public function getLatestVersionOfMajor(int $majorVersion): ?string
{
$this->retrieveAvailableVersions();
@@ -66,9 +60,6 @@ public function getLatestVersionOfMajor(int $majorVersion): ?string
return null;
}
- /**
- * {@inheritdoc}
- */
public function compareVersions(string $versionA, string $versionB): int
{
$versionA = $this->versionParser->normalize($versionA);
@@ -91,9 +82,7 @@ private function retrieveAvailableVersions(): void
return;
}
- foreach ($this->githubClient->getTags() as $tag) {
- $version = $tag['name'];
-
+ foreach ($this->githubClient->getTags() as $version) {
try {
$this->versionParser->normalize($version);
@@ -105,6 +94,9 @@ private function retrieveAvailableVersions(): void
}
}
- $this->availableVersions = Semver::rsort($this->availableVersions);
+ $versions = Semver::rsort($this->availableVersions);
+ \assert(array_is_list($versions)); // Semver::rsort provides soft `array` type, let's validate and ensure proper type for SCA
+
+ $this->availableVersions = $versions;
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/WarningsDetector.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/WarningsDetector.php
index dac182b8..7465c2a4 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/WarningsDetector.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Console/WarningsDetector.php
@@ -27,7 +27,7 @@ final class WarningsDetector
private ToolInfoInterface $toolInfo;
/**
- * @var string[]
+ * @var list
*/
private array $warnings = [];
@@ -50,7 +50,7 @@ public function detectOldVendor(): void
if ($this->toolInfo->isInstalledByComposer()) {
$details = $this->toolInfo->getComposerInstallationDetails();
if (ToolInfo::COMPOSER_LEGACY_PACKAGE_NAME === $details['name']) {
- $this->warnings[] = sprintf(
+ $this->warnings[] = \sprintf(
'You are running PHP CS Fixer installed with old vendor `%s`. Please update to `%s`.',
ToolInfo::COMPOSER_LEGACY_PACKAGE_NAME,
ToolInfo::COMPOSER_PACKAGE_NAME
@@ -60,7 +60,7 @@ public function detectOldVendor(): void
}
/**
- * @return string[]
+ * @return list
*/
public function getWarnings(): array
{
@@ -68,9 +68,9 @@ public function getWarnings(): array
return [];
}
- return array_unique(array_merge(
+ return array_values(array_unique(array_merge(
$this->warnings,
- ['If you need help while solving warnings, ask at https://gitter.im/PHP-CS-Fixer, we will help you!']
- ));
+ ['If you need help while solving warnings, ask at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/, we will help you!']
+ )));
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/DiffConsoleFormatter.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/DiffConsoleFormatter.php
index f2896253..79385bc3 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/DiffConsoleFormatter.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/DiffConsoleFormatter.php
@@ -20,6 +20,8 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class DiffConsoleFormatter
@@ -42,7 +44,7 @@ public function format(string $diff, string $lineTemplate = '%s'): string
? $this->template
: Preg::replace('/<[^<>]+>/', '', $this->template);
- return sprintf(
+ return \sprintf(
$template,
implode(
PHP_EOL,
@@ -61,7 +63,7 @@ static function (array $matches): string {
$colour = 'cyan';
}
- return sprintf('%s', $colour, OutputFormatter::escape($matches[0]), $colour);
+ return \sprintf('%s', $colour, OutputFormatter::escape($matches[0]), $colour);
},
$line,
1,
@@ -73,7 +75,7 @@ static function (array $matches): string {
}
}
- return sprintf($lineTemplate, $line);
+ return \sprintf($lineTemplate, $line);
},
Preg::split('#\R#u', $diff)
)
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/FullDiffer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/FullDiffer.php
index 4509ea99..7749866c 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/FullDiffer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/FullDiffer.php
@@ -20,6 +20,8 @@
/**
* @author Dariusz Rumiński
*
+ * @readonly
+ *
* @internal
*/
final class FullDiffer implements DifferInterface
@@ -37,9 +39,6 @@ public function __construct()
]));
}
- /**
- * {@inheritdoc}
- */
public function diff(string $old, string $new, ?\SplFileInfo $file = null): string
{
return $this->differ->diff($old, $new);
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/NullDiffer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/NullDiffer.php
index 8ef968ee..cf07f9e7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/NullDiffer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/NullDiffer.php
@@ -19,9 +19,6 @@
*/
final class NullDiffer implements DifferInterface
{
- /**
- * {@inheritdoc}
- */
public function diff(string $old, string $new, ?\SplFileInfo $file = null): string
{
return '';
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/UnifiedDiffer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/UnifiedDiffer.php
index ad668608..36663aa1 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/UnifiedDiffer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Differ/UnifiedDiffer.php
@@ -20,9 +20,6 @@
final class UnifiedDiffer implements DifferInterface
{
- /**
- * {@inheritdoc}
- */
public function diff(string $old, string $new, ?\SplFileInfo $file = null): string
{
if (null === $file) {
@@ -33,7 +30,7 @@ public function diff(string $old, string $new, ?\SplFileInfo $file = null): stri
} else {
$filePath = $file->getRealPath();
- if (1 === Preg::match('/\s/', $filePath)) {
+ if (Preg::match('/\s/', $filePath)) {
$filePath = '"'.$filePath.'"';
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php
index 629f04c7..c3af8adf 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php
@@ -29,9 +29,9 @@ final class Annotation
/**
* All the annotation tag names with types.
*
- * @var string[]
+ * @var list
*/
- private static array $tags = [
+ private const TAGS = [
'method',
'param',
'property',
@@ -46,61 +46,50 @@ final class Annotation
/**
* The lines that make up the annotation.
*
- * @var Line[]
+ * @var array
*/
private array $lines;
/**
* The position of the first line of the annotation in the docblock.
- *
- * @var int
*/
- private $start;
+ private int $start;
/**
* The position of the last line of the annotation in the docblock.
- *
- * @var int
*/
- private $end;
+ private int $end;
/**
* The associated tag.
- *
- * @var null|Tag
*/
- private $tag;
+ private ?Tag $tag = null;
/**
* Lazy loaded, cached types content.
- *
- * @var null|string
*/
- private $typesContent;
+ private ?string $typesContent = null;
/**
* The cached types.
*
- * @var null|string[]
+ * @var null|list
*/
- private $types;
+ private ?array $types = null;
- /**
- * @var null|NamespaceAnalysis
- */
- private $namespace;
+ private ?NamespaceAnalysis $namespace = null;
/**
- * @var NamespaceUseAnalysis[]
+ * @var list
*/
private array $namespaceUses;
/**
* Create a new line instance.
*
- * @param Line[] $lines
- * @param null|NamespaceAnalysis $namespace
- * @param NamespaceUseAnalysis[] $namespaceUses
+ * @param array $lines
+ * @param null|NamespaceAnalysis $namespace
+ * @param list $namespaceUses
*/
public function __construct(array $lines, $namespace = null, array $namespaceUses = [])
{
@@ -108,10 +97,8 @@ public function __construct(array $lines, $namespace = null, array $namespaceUse
$this->namespace = $namespace;
$this->namespaceUses = $namespaceUses;
- $keys = array_keys($lines);
-
- $this->start = $keys[0];
- $this->end = end($keys);
+ $this->start = array_key_first($lines);
+ $this->end = array_key_last($lines);
}
/**
@@ -125,11 +112,11 @@ public function __toString(): string
/**
* Get all the annotation tag names with types.
*
- * @return string[]
+ * @return list
*/
public static function getTagsWithTypes(): array
{
- return self::$tags;
+ return self::TAGS;
}
/**
@@ -163,20 +150,27 @@ public function getTag(): Tag
/**
* @internal
*/
- public function getTypeExpression(): TypeExpression
+ public function getTypeExpression(): ?TypeExpression
{
- return new TypeExpression($this->getTypesContent(), $this->namespace, $this->namespaceUses);
+ $typesContent = $this->getTypesContent();
+
+ return null === $typesContent
+ ? null
+ : new TypeExpression($typesContent, $this->namespace, $this->namespaceUses);
}
/**
- * @return null|string
- *
* @internal
*/
- public function getVariableName()
+ public function getVariableName(): ?string
{
- $type = preg_quote($this->getTypesContent(), '/');
- $regex = "/@{$this->tag->getName()}\\s+({$type}\\s*)?(&\\s*)?(\\.{3}\\s*)?(?\\$.+?)(?:[\\s*]|$)/";
+ $type = preg_quote($this->getTypesContent() ?? '', '/');
+ $regex = \sprintf(
+ '/@%s\s+(%s\s*)?(&\s*)?(\.{3}\s*)?(?\$%s)(?:.*|$)/',
+ $this->tag->getName(),
+ $type,
+ TypeExpression::REGEX_IDENTIFIER
+ );
if (Preg::match($regex, $this->lines[0]->getContent(), $matches)) {
return $matches['variable'];
@@ -188,12 +182,15 @@ public function getVariableName()
/**
* Get the types associated with this annotation.
*
- * @return string[]
+ * @return list
*/
public function getTypes(): array
{
if (null === $this->types) {
- $this->types = $this->getTypeExpression()->getTypes();
+ $typeExpression = $this->getTypeExpression();
+ $this->types = null === $typeExpression
+ ? []
+ : $typeExpression->getTypes();
}
return $this->types;
@@ -202,13 +199,25 @@ public function getTypes(): array
/**
* Set the types associated with this annotation.
*
- * @param string[] $types
+ * @param list $types
*/
public function setTypes(array $types): void
{
- $pattern = '/'.preg_quote($this->getTypesContent(), '/').'/';
+ $origTypesContent = $this->getTypesContent();
+ $newTypesContent = implode(
+ // Fallback to union type is provided for backward compatibility (previously glue was set to `|` by default even when type was not composite)
+ // @TODO Better handling for cases where type is fixed (original type is not composite, but was made composite during fix)
+ $this->getTypeExpression()->getTypesGlue() ?? '|',
+ $types
+ );
+
+ if ($origTypesContent === $newTypesContent) {
+ return;
+ }
+
+ $pattern = '/'.preg_quote($origTypesContent, '/').'/';
- $this->lines[0]->setContent(Preg::replace($pattern, implode($this->getTypeExpression()->getTypesGlue(), $types), $this->lines[0]->getContent(), 1));
+ $this->lines[0]->setContent(Preg::replace($pattern, $newTypesContent, $this->lines[0]->getContent(), 1));
$this->clearCache();
}
@@ -216,17 +225,21 @@ public function setTypes(array $types): void
/**
* Get the normalized types associated with this annotation, so they can easily be compared.
*
- * @return string[]
+ * @return list
*/
public function getNormalizedTypes(): array
{
- $normalized = array_map(static function (string $type): string {
- return strtolower($type);
- }, $this->getTypes());
+ $typeExpression = $this->getTypeExpression();
+ if (null === $typeExpression) {
+ return [];
+ }
- sort($normalized);
+ $normalizedTypeExpression = $typeExpression
+ ->mapTypes(static fn (TypeExpression $v) => new TypeExpression(strtolower($v->toString()), null, []))
+ ->sortTypes(static fn (TypeExpression $a, TypeExpression $b) => $a->toString() <=> $b->toString())
+ ;
- return $normalized;
+ return $normalizedTypeExpression->getTypes();
}
/**
@@ -267,7 +280,7 @@ public function getContent(): string
public function supportTypes(): bool
{
- return \in_array($this->getTag()->getName(), self::$tags, true);
+ return \in_array($this->getTag()->getName(), self::TAGS, true);
}
/**
@@ -275,7 +288,7 @@ public function supportTypes(): bool
*
* Be careful modifying the underlying line as that won't flush the cache.
*/
- private function getTypesContent(): string
+ private function getTypesContent(): ?string
{
if (null === $this->typesContent) {
$name = $this->getTag()->getName();
@@ -285,14 +298,14 @@ private function getTypesContent(): string
}
$matchingResult = Preg::match(
- '{^(?:\s*\*|/\*\*)\s*@'.$name.'\s+'.TypeExpression::REGEX_TYPES.'(?:(?:[*\h\v]|\&[\.\$]).*)?\r?$}isx',
+ '{^(?:\h*\*|/\*\*)[\h*]*@'.$name.'\h+'.TypeExpression::REGEX_TYPES.'(?:(?:[*\h\v]|\&?[\.\$]).*)?\r?$}is',
$this->lines[0]->getContent(),
$matches
);
- $this->typesContent = 1 === $matchingResult
+ $this->typesContent = $matchingResult
? $matches['types']
- : '';
+ : null;
}
return $this->typesContent;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/DocBlock.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/DocBlock.php
index 5a0b2f40..b4ae53e2 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/DocBlock.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/DocBlock.php
@@ -152,9 +152,7 @@ public function makeSingleLine(): void
$usefulLines = array_filter(
$this->lines,
- static function (Line $line): bool {
- return $line->containsUsefulContent();
- }
+ static fn (Line $line): bool => $line->containsUsefulContent()
);
if (1 < \count($usefulLines)) {
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php
index 0db50e82..9ef4a087 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php
@@ -59,7 +59,7 @@ public function getContent(): string
*/
public function containsUsefulContent(): bool
{
- return 0 !== Preg::match('/\\*\s*\S+/', $this->content) && '' !== trim(str_replace(['/', '*'], ' ', $this->content));
+ return Preg::match('/\*\s*\S+/', $this->content) && '' !== trim(str_replace(['/', '*'], ' ', $this->content));
}
/**
@@ -69,7 +69,7 @@ public function containsUsefulContent(): bool
*/
public function containsATag(): bool
{
- return 0 !== Preg::match('/\\*\s*@/', $this->content);
+ return Preg::match('/\*\s*@/', $this->content);
}
/**
@@ -119,7 +119,7 @@ public function addBlank(): void
{
$matched = Preg::match('/^(\h*\*)[^\r\n]*(\r?\n)$/', $this->content, $matches);
- if (1 !== $matched) {
+ if (!$matched) {
return;
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/ShortDescription.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/ShortDescription.php
index dbd9e5da..d053bc44 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/ShortDescription.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/ShortDescription.php
@@ -17,6 +17,8 @@
/**
* This class represents a short description (aka summary) of a docblock.
*
+ * @readonly
+ *
* @internal
*/
final class ShortDescription
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TagComparator.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TagComparator.php
index 578fd3a7..c5a3a896 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TagComparator.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TagComparator.php
@@ -28,6 +28,8 @@ final class TagComparator
/**
* Groups of tags that should be allowed to immediately follow each other.
*
+ * @var list>
+ *
* @internal
*/
public const DEFAULT_GROUPS = [
@@ -40,7 +42,7 @@ final class TagComparator
/**
* Should the given tags be kept together, or kept apart?
*
- * @param string[][] $groups
+ * @param list> $groups
*/
public static function shouldBeTogether(Tag $first, Tag $second, array $groups = self::DEFAULT_GROUPS): bool
{
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TypeExpression.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TypeExpression.php
index 783d4a79..39e68686 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TypeExpression.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/DocBlock/TypeExpression.php
@@ -20,111 +20,212 @@
use PhpCsFixer\Utils;
/**
+ * @author Michael Vorisek
+ *
* @internal
*/
final class TypeExpression
{
/**
- * Regex to match any types, shall be used with `x` modifier.
+ * Regex to match any PHP identifier.
+ *
+ * @internal
+ */
+ public const REGEX_IDENTIFIER = '(?:(?!(? # several types separated by `|` or `&`
- (? # single type
- (?\??)
+ public const REGEX_TYPES = '(?(?x) # one or several types separated by `|` or `&`
+'.self::REGEX_TYPE.'
+ (?:
+ \h*(?[|&])\h*
+ (?&type)
+ )*+
+ )';
+
+ /**
+ * Based on:
+ * - https://github.com/phpstan/phpdoc-parser/blob/1.26.0/doc/grammars/type.abnf fuzzing grammar
+ * - and https://github.com/phpstan/phpdoc-parser/blob/1.26.0/src/Parser/PhpDocParser.php parser impl.
+ */
+ private const REGEX_TYPE = '(?(?x) # single type
+ (?\??\h*)
(?:
- (?
- (?array\h*\{)
- (?
- (?
- \h*[^?:\h]+\h*\??\h*:\h*(?&types)
- )
- (?:\h*,(?&object_like_array_key))*
+ (?
+ (?(?i)(?:array|list|object)(?-i))
+ (?\h*\{\h*)
+ (?
+ (?
+ (?(?:(?&constant)|(?&identifier)|(?&name))\h*\??\h*:\h*|)
+ (?(?&types_inner))
)
+ (?:
+ \h*,\h*
+ (?&array_shape_inner)
+ )*+
+ (?:\h*,\h*)?
+ |)
\h*\}
)
|
- (? # callable syntax, e.g. `callable(string): bool`
- (?(?:callable|\\\\?Closure)\h*\(\h*)
- (?
- (?&types)
+ (? # callable syntax, e.g. `callable(string, int...): bool`, `\Closure(T, int): T`
+ (?(?&name))
+ (?
+ (?\h*<\h*)
+ (?
+ (?
+ (?
+ (?&identifier)
+ )
+ (? # template bound
+ \h+(?i)(?of|as)(?-i)\h+
+ (?(?&types_inner))
+ |)
+ (? # template default
+ \h*=\h*
+ (?(?&types_inner))
+ |)
+ )
(?:
\h*,\h*
- (?&types)
- )*
- )?
+ (?&callable_template_inner)
+ )*+
+ )
+ \h*>
+ (?=\h*\()
+ |)
+ (?\h*\(\h*)
+ (?
+ (?
+ (?(?&types_inner))
+ (?\h*&|)
+ (?\h*\.\.\.|)
+ (?\h*\$(?&identifier)|)
+ (?\h*=|)
+ )
+ (?:
+ \h*,\h*
+ (?&callable_argument)
+ )*+
+ (?:\h*,\h*)?
+ |)
\h*\)
(?:
\h*\:\h*
- (?(?&types))
+ (?(?&type))
)?
)
|
(? # generic syntax, e.g.: `array`
- (?
- (?&name)+
- \h*<\h*
+ (?(?&name))
+ (?\h*<\h*)
+ (?
+ (?&types_inner)
+ (?:
+ \h*,\h*
+ (?&types_inner)
+ )*+
+ (?:\h*,\h*)?
)
- (?
- (?&types)
- (?:
- \h*,\h*
- (?&types)
- )*
- )
\h*>
)
|
(? # class constants with optional wildcard, e.g.: `Foo::*`, `Foo::CONST_A`, `FOO::CONST_*`
- (?&name)::(\*|\w+\*?)
+ (?(?&name))
+ ::\*?(?:(?&identifier)\*?)*
)
|
- (? # array expression, e.g.: `string[]`, `string[][]`
- (?&name)(\[\])+
+ (? # single constant value (case insensitive), e.g.: 1, -1.8E+6, `\'a\'`
+ (?i)
+ # all sorts of numbers: with or without sign, supports literal separator and several numeric systems,
+ # e.g.: 1, +1.1, 1., .1, -1, 123E+8, 123_456_789, 0x7Fb4, 0b0110, 0o777
+ [+-]?(?:
+ (?:0b[01]++(?:_[01]++)*+)
+ | (?:0o[0-7]++(?:_[0-7]++)*+)
+ | (?:0x[\da-f]++(?:_[\da-f]++)*+)
+ | (?:(?\d++(?:_\d++)*+)|(?=\.\d))
+ (?:\.(?&constant_digits)|(?<=\d)\.)?+
+ (?:e[+-]?(?&constant_digits))?+
+ )
+ | \'(?:[^\'\\\]|\\\.)*+\'
+ | "(?:[^"\\\]|\\\.)*+"
+ (?-i)
)
|
- (? # single constant value (case insensitive), e.g.: 1, `\'a\'`
+ (? # self reference, e.g.: $this, $self, @static
(?i)
- null | true | false
- | -?(?:\d+(?:\.\d*)?|\.\d+) # all sorts of numbers with or without minus, e.g.: 1, 1.1, 1., .1, -1
- | \'[^\']+?\' | "[^"]+?"
- | [@$]?(?:this | self | static)
+ [@$](?:this | self | static)
(?-i)
)
|
- (? # single type, e.g.: `null`, `int`, `\Foo\Bar`
- [\\\\\w-]++
+ (? # full name, e.g.: `int`, `\DateTime`, `\Foo\Bar`, `positive-int`
+ \\\?+
+ (?'.self::REGEX_IDENTIFIER.')
+ (?:[\\\\\-](?&identifier))*+
+ )
+ |
+ (? # parenthesized type, e.g.: `(int)`, `(int|\stdClass)`
+ (?
+ \(\h*
+ )
+ (?:
+ (?
+ (?&types_inner)
+ )
+ |
+ (? # conditional type, e.g.: `$foo is \Throwable ? false : $foo`
+ (?
+ (?:\$(?&identifier))
+ |
+ (?(?&types_inner))
+ )
+ (?
+ \h+(?i)is(?:\h+not)?(?-i)\h+
+ )
+ (?(?&types_inner))
+ (?\h*\?\h*)
+ (?(?&types_inner))
+ (?\h*:\h*)
+ (?(?&types_inner))
+ )
+ )
+ \h*\)
)
)
- )
- (?:
- \h*(?[|&])\h*
- (?&type)
- )*
- )
- ';
+ (? # array, e.g.: `string[]`, `array[][]`
+ (\h*\[\h*\])*
+ )
+ (?:(?=1)0
+ (?(?>
+ (?&type)
+ (?:
+ \h*[|&]\h*
+ (?&type)
+ )*+
+ ))
+ |)
+ )';
private string $value;
- private bool $isUnionType = false;
+ private bool $isCompositeType;
- /**
- * @var list
- */
- private array $innerTypeExpressions = [];
+ /** @var null|'&'|'|' */
+ private ?string $typesGlue = null;
- private string $typesGlue = '|';
+ /** @var list */
+ private array $innerTypeExpressions = [];
private ?NamespaceAnalysis $namespace;
- /**
- * @var NamespaceUseAnalysis[]
- */
+ /** @var list */
private array $namespaceUses;
/**
- * @param NamespaceUseAnalysis[] $namespaceUses
+ * @param list $namespaceUses
*/
public function __construct(string $value, ?NamespaceAnalysis $namespace, array $namespaceUses)
{
@@ -141,11 +242,11 @@ public function toString(): string
}
/**
- * @return string[]
+ * @return list
*/
public function getTypes(): array
{
- if ($this->isUnionType) {
+ if ($this->isCompositeType) {
return array_map(
static fn (array $type) => $type['expression']->toString(),
$this->innerTypeExpressions,
@@ -156,40 +257,105 @@ public function getTypes(): array
}
/**
- * @param callable(self $a, self $b): int $compareCallback
+ * Determines if type expression is a composite type (union or intersection).
+ */
+ public function isCompositeType(): bool
+ {
+ return $this->isCompositeType;
+ }
+
+ public function isUnionType(): bool
+ {
+ return $this->isCompositeType && '|' === $this->typesGlue;
+ }
+
+ public function isIntersectionType(): bool
+ {
+ return $this->isCompositeType && '&' === $this->typesGlue;
+ }
+
+ /**
+ * @return null|'&'|'|'
+ */
+ public function getTypesGlue(): ?string
+ {
+ return $this->typesGlue;
+ }
+
+ /**
+ * @param \Closure(self): self $callback
*/
- public function sortTypes(callable $compareCallback): void
+ public function mapTypes(\Closure $callback): self
{
- foreach (array_reverse($this->innerTypeExpressions) as [
- 'start_index' => $startIndex,
+ $value = $this->value;
+ $startIndexOffset = 0;
+
+ foreach ($this->innerTypeExpressions as [
+ 'start_index' => $startIndexOrig,
'expression' => $inner,
]) {
- $initialValueLength = \strlen($inner->toString());
+ $innerValueOrig = $inner->value;
- $inner->sortTypes($compareCallback);
+ $inner = $inner->mapTypes($callback);
- $this->value = substr_replace(
- $this->value,
- $inner->toString(),
- $startIndex,
- $initialValueLength
- );
+ if ($inner->value !== $innerValueOrig) {
+ $value = substr_replace(
+ $value,
+ $inner->value,
+ $startIndexOrig + $startIndexOffset,
+ \strlen($innerValueOrig)
+ );
+
+ $startIndexOffset += \strlen($inner->value) - \strlen($innerValueOrig);
+ }
}
- if ($this->isUnionType) {
- $this->innerTypeExpressions = Utils::stableSort(
- $this->innerTypeExpressions,
- static fn (array $type): self => $type['expression'],
- $compareCallback,
- );
+ $type = $value === $this->value
+ ? $this
+ : $this->inner($value);
- $this->value = implode($this->getTypesGlue(), $this->getTypes());
- }
+ return $callback($type);
}
- public function getTypesGlue(): string
+ /**
+ * @param \Closure(self): void $callback
+ */
+ public function walkTypes(\Closure $callback): void
{
- return $this->typesGlue;
+ $this->mapTypes(static function (self $type) use ($callback) {
+ $valueOrig = $type->value;
+ $callback($type);
+ \assert($type->value === $valueOrig);
+
+ return $type;
+ });
+ }
+
+ /**
+ * @param \Closure(self, self): (-1|0|1) $compareCallback
+ */
+ public function sortTypes(\Closure $compareCallback): self
+ {
+ return $this->mapTypes(function (self $type) use ($compareCallback): self {
+ if ($type->isCompositeType) {
+ $innerTypeExpressions = Utils::stableSort(
+ $type->innerTypeExpressions,
+ static fn (array $v): self => $v['expression'],
+ $compareCallback,
+ );
+
+ if ($innerTypeExpressions !== $type->innerTypeExpressions) {
+ $value = implode(
+ $type->getTypesGlue(),
+ array_map(static fn (array $v): string => $v['expression']->toString(), $innerTypeExpressions)
+ );
+
+ return $this->inner($value);
+ }
+ }
+
+ return $type;
+ });
}
public function getCommonType(): ?string
@@ -203,14 +369,20 @@ public function getCommonType(): ?string
continue;
}
- if (isset($aliases[$type])) {
- $type = $aliases[$type];
- } elseif (1 === Preg::match('/\[\]$/', $type)) {
+ if (str_starts_with($type, '?')) {
+ $type = substr($type, 1);
+ }
+
+ if (Preg::match('/\[\h*\]$/', $type)) {
$type = 'array';
- } elseif (1 === Preg::match('/^(.+?)', $type, $matches)) {
+ } elseif (Preg::match('/^(.+?)\h*[<{(]/', $type, $matches)) {
$type = $matches[1];
}
+ if (isset($aliases[$type])) {
+ $type = $aliases[$type];
+ }
+
if (null === $mainType || $type === $mainType) {
$mainType = $type;
@@ -230,7 +402,7 @@ public function getCommonType(): ?string
public function allowsNull(): bool
{
foreach ($this->getTypes() as $type) {
- if (\in_array($type, ['null', 'mixed'], true)) {
+ if (\in_array($type, ['null', 'mixed'], true) || str_starts_with($type, '?')) {
return true;
}
}
@@ -240,135 +412,317 @@ public function allowsNull(): bool
private function parse(): void
{
- $value = $this->value;
-
- Preg::match(
- '{^'.self::REGEX_TYPES.'$}x',
- $value,
- $matches
- );
-
- if ([] === $matches) {
- return;
- }
+ $seenGlues = null;
+ $innerValues = [];
- $this->typesGlue = $matches['glue'] ?? $this->typesGlue;
+ $index = 0;
+ while (true) {
+ Preg::match(
+ '{\G'.self::REGEX_TYPE.'(?\h*(?[|&])\h*(?!$)|$)}',
+ $this->value,
+ $matches,
+ PREG_OFFSET_CAPTURE,
+ $index
+ );
- $index = '' !== $matches['nullable'] ? 1 : 0;
+ if ([] === $matches) {
+ throw new \Exception('Unable to parse phpdoc type '.var_export($this->value, true));
+ }
- if ($matches['type'] !== $matches['types']) {
- $this->isUnionType = true;
+ if (null === $seenGlues) {
+ if (($matches['glue'][0] ?? '') === '') {
+ break;
+ }
- while (true) {
- $innerType = $matches['type'];
+ $seenGlues = ['|' => false, '&' => false];
+ }
- $newValue = Preg::replace(
- '/^'.preg_quote($innerType, '/').'(\h*[|&]\h*)?/',
- '',
- $value
- );
+ if (($matches['glue'][0] ?? '') !== '') {
+ \assert(isset($seenGlues[$matches['glue'][0]]));
+ $seenGlues[$matches['glue'][0]] = true;
+ }
- $this->innerTypeExpressions[] = [
- 'start_index' => $index,
- 'expression' => $this->inner($innerType),
- ];
+ $innerValues[] = [
+ 'start_index' => $index,
+ 'value' => $matches['type'][0],
+ 'next_glue' => $matches['glue'][0] ?? null,
+ 'next_glue_raw' => $matches['glue_raw'][0] ?? null,
+ ];
- if ('' === $newValue) {
- return;
+ $consumedValueLength = \strlen($matches[0][0]);
+ $index += $consumedValueLength;
+
+ if (\strlen($this->value) <= $index) {
+ \assert(\strlen($this->value) === $index);
+
+ $seenGlues = array_filter($seenGlues);
+ \assert([] !== $seenGlues);
+
+ $this->isCompositeType = true;
+ $this->typesGlue = array_key_first($seenGlues);
+
+ if (1 === \count($seenGlues)) {
+ foreach ($innerValues as $innerValue) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $innerValue['start_index'],
+ 'expression' => $this->inner($innerValue['value']),
+ ];
+ }
+ } else {
+ for ($i = 0; $i < \count($innerValues); ++$i) {
+ $innerStartIndex = $innerValues[$i]['start_index'];
+ $innerValue = '';
+ while (true) {
+ $innerValue .= $innerValues[$i]['value'];
+
+ if (($innerValues[$i]['next_glue'] ?? $this->typesGlue) === $this->typesGlue) {
+ break;
+ }
+
+ $innerValue .= $innerValues[$i]['next_glue_raw'];
+
+ ++$i;
+ }
+
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $innerStartIndex,
+ 'expression' => $this->inner($innerValue),
+ ];
+ }
}
- $index += \strlen($value) - \strlen($newValue);
- $value = $newValue;
-
- Preg::match(
- '{^'.self::REGEX_TYPES.'$}x',
- $value,
- $matches
- );
+ return;
}
}
- if ('' !== ($matches['generic'] ?? '')) {
+ $this->isCompositeType = false;
+
+ if ('' !== $matches['nullable'][0]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => \strlen($matches['nullable'][0]),
+ 'expression' => $this->inner(substr($matches['type'][0], \strlen($matches['nullable'][0]))),
+ ];
+ } elseif ('' !== $matches['array'][0]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => 0,
+ 'expression' => $this->inner(substr($matches['type'][0], 0, -\strlen($matches['array'][0]))),
+ ];
+ } elseif ('' !== ($matches['generic'][0] ?? '') && 0 === $matches['generic'][1]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => 0,
+ 'expression' => $this->inner($matches['generic_name'][0]),
+ ];
+
$this->parseCommaSeparatedInnerTypes(
- $index + \strlen($matches['generic_start']),
- $matches['generic_types']
+ \strlen($matches['generic_name'][0]) + \strlen($matches['generic_start'][0]),
+ $matches['generic_types'][0]
);
+ } elseif ('' !== ($matches['callable'][0] ?? '') && 0 === $matches['callable'][1]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => 0,
+ 'expression' => $this->inner($matches['callable_name'][0]),
+ ];
- return;
- }
+ $this->parseCallableTemplateInnerTypes(
+ \strlen($matches['callable_name'][0])
+ + \strlen($matches['callable_template_start'][0]),
+ $matches['callable_template_inners'][0]
+ );
- if ('' !== ($matches['callable'] ?? '')) {
- $this->parseCommaSeparatedInnerTypes(
- $index + \strlen($matches['callable_start']),
- $matches['callable_arguments'] ?? ''
+ $this->parseCallableArgumentTypes(
+ \strlen($matches['callable_name'][0])
+ + \strlen($matches['callable_template'][0])
+ + \strlen($matches['callable_start'][0]),
+ $matches['callable_arguments'][0]
);
- $return = $matches['callable_return'] ?? null;
- if (null !== $return) {
+ if ('' !== ($matches['callable_return'][0] ?? '')) {
$this->innerTypeExpressions[] = [
- 'start_index' => \strlen($this->value) - \strlen($matches['callable_return']),
- 'expression' => $this->inner($matches['callable_return']),
+ 'start_index' => \strlen($this->value) - \strlen($matches['callable_return'][0]),
+ 'expression' => $this->inner($matches['callable_return'][0]),
];
}
+ } elseif ('' !== ($matches['array_shape'][0] ?? '') && 0 === $matches['array_shape'][1]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => 0,
+ 'expression' => $this->inner($matches['array_shape_name'][0]),
+ ];
- return;
- }
-
- if ('' !== ($matches['object_like_array'] ?? '')) {
- $this->parseObjectLikeArrayKeys(
- $index + \strlen($matches['object_like_array_start']),
- $matches['object_like_array_keys']
+ $this->parseArrayShapeInnerTypes(
+ \strlen($matches['array_shape_name'][0]) + \strlen($matches['array_shape_start'][0]),
+ $matches['array_shape_inners'][0]
);
+ } elseif ('' !== ($matches['parenthesized'][0] ?? '') && 0 === $matches['parenthesized'][1]) {
+ $index = \strlen($matches['parenthesized_start'][0]);
+
+ if ('' !== ($matches['conditional'][0] ?? '')) {
+ if ('' !== ($matches['conditional_cond_left_types'][0] ?? '')) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $index,
+ 'expression' => $this->inner($matches['conditional_cond_left_types'][0]),
+ ];
+ }
+
+ $index += \strlen($matches['conditional_cond_left'][0]) + \strlen($matches['conditional_cond_middle'][0]);
+
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $index,
+ 'expression' => $this->inner($matches['conditional_cond_right_types'][0]),
+ ];
+
+ $index += \strlen($matches['conditional_cond_right_types'][0]) + \strlen($matches['conditional_true_start'][0]);
+
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $index,
+ 'expression' => $this->inner($matches['conditional_true_types'][0]),
+ ];
+
+ $index += \strlen($matches['conditional_true_types'][0]) + \strlen($matches['conditional_false_start'][0]);
+
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $index,
+ 'expression' => $this->inner($matches['conditional_false_types'][0]),
+ ];
+ } else {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $index,
+ 'expression' => $this->inner($matches['parenthesized_types'][0]),
+ ];
+ }
+ } elseif ('' !== $matches['class_constant'][0]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => 0,
+ 'expression' => $this->inner($matches['class_constant_name'][0]),
+ ];
}
}
private function parseCommaSeparatedInnerTypes(int $startIndex, string $value): void
{
- while ('' !== $value) {
+ $index = 0;
+ while (\strlen($value) !== $index) {
Preg::match(
- '{^'.self::REGEX_TYPES.'\h*(?:,|$)}x',
+ '{\G'.self::REGEX_TYPES.'(?:\h*,\h*|$)}',
$value,
- $matches
+ $matches,
+ 0,
+ $index
);
$this->innerTypeExpressions[] = [
- 'start_index' => $startIndex,
+ 'start_index' => $startIndex + $index,
'expression' => $this->inner($matches['types']),
];
- $newValue = Preg::replace(
- '/^'.preg_quote($matches['types'], '/').'(\h*\,\h*)?/',
- '',
- $value
+ $index += \strlen($matches[0]);
+ }
+ }
+
+ private function parseCallableTemplateInnerTypes(int $startIndex, string $value): void
+ {
+ $index = 0;
+ while (\strlen($value) !== $index) {
+ Preg::match(
+ '{\G(?:(?=1)0'.self::REGEX_TYPES.'|(?<_callable_template_inner>(?&callable_template_inner))(?:\h*,\h*|$))}',
+ $value,
+ $prematches,
+ 0,
+ $index
);
+ $consumedValue = $prematches['_callable_template_inner'];
+ $consumedValueLength = \strlen($consumedValue);
+ $consumedCommaLength = \strlen($prematches[0]) - $consumedValueLength;
+
+ $addedPrefix = 'Closure<';
+ Preg::match(
+ '{^'.self::REGEX_TYPES.'$}',
+ $addedPrefix.$consumedValue.'>(): void',
+ $matches,
+ PREG_OFFSET_CAPTURE
+ );
+
+ if ('' !== $matches['callable_template_inner_b'][0]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $startIndex + $index + $matches['callable_template_inner_b_types'][1]
+ - \strlen($addedPrefix),
+ 'expression' => $this->inner($matches['callable_template_inner_b_types'][0]),
+ ];
+ }
+
+ if ('' !== $matches['callable_template_inner_d'][0]) {
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $startIndex + $index + $matches['callable_template_inner_d_types'][1]
+ - \strlen($addedPrefix),
+ 'expression' => $this->inner($matches['callable_template_inner_d_types'][0]),
+ ];
+ }
- $startIndex += \strlen($value) - \strlen($newValue);
- $value = $newValue;
+ $index += $consumedValueLength + $consumedCommaLength;
}
}
- private function parseObjectLikeArrayKeys(int $startIndex, string $value): void
+ private function parseCallableArgumentTypes(int $startIndex, string $value): void
{
- while ('' !== $value) {
+ $index = 0;
+ while (\strlen($value) !== $index) {
Preg::match(
- '{(?<_start>^.+?:\h*)'.self::REGEX_TYPES.'\h*(?:,|$)}x',
+ '{\G(?:(?=1)0'.self::REGEX_TYPES.'|(?<_callable_argument>(?&callable_argument))(?:\h*,\h*|$))}',
$value,
- $matches
+ $prematches,
+ 0,
+ $index
+ );
+ $consumedValue = $prematches['_callable_argument'];
+ $consumedValueLength = \strlen($consumedValue);
+ $consumedCommaLength = \strlen($prematches[0]) - $consumedValueLength;
+
+ $addedPrefix = 'Closure(';
+ Preg::match(
+ '{^'.self::REGEX_TYPES.'$}',
+ $addedPrefix.$consumedValue.'): void',
+ $matches,
+ PREG_OFFSET_CAPTURE
);
$this->innerTypeExpressions[] = [
- 'start_index' => $startIndex + \strlen($matches['_start']),
- 'expression' => $this->inner($matches['types']),
+ 'start_index' => $startIndex + $index,
+ 'expression' => $this->inner($matches['callable_argument_type'][0]),
];
- $newValue = Preg::replace(
- '/^.+?:\h*'.preg_quote($matches['types'], '/').'(\h*\,\h*)?/',
- '',
- $value
+ $index += $consumedValueLength + $consumedCommaLength;
+ }
+ }
+
+ private function parseArrayShapeInnerTypes(int $startIndex, string $value): void
+ {
+ $index = 0;
+ while (\strlen($value) !== $index) {
+ Preg::match(
+ '{\G(?:(?=1)0'.self::REGEX_TYPES.'|(?<_array_shape_inner>(?&array_shape_inner))(?:\h*,\h*|$))}',
+ $value,
+ $prematches,
+ 0,
+ $index
);
+ $consumedValue = $prematches['_array_shape_inner'];
+ $consumedValueLength = \strlen($consumedValue);
+ $consumedCommaLength = \strlen($prematches[0]) - $consumedValueLength;
+
+ $addedPrefix = 'array{';
+ Preg::match(
+ '{^'.self::REGEX_TYPES.'$}',
+ $addedPrefix.$consumedValue.'}',
+ $matches,
+ PREG_OFFSET_CAPTURE
+ );
+
+ $this->innerTypeExpressions[] = [
+ 'start_index' => $startIndex + $index + $matches['array_shape_inner_value'][1]
+ - \strlen($addedPrefix),
+ 'expression' => $this->inner($matches['array_shape_inner_value'][0]),
+ ];
- $startIndex += \strlen($value) - \strlen($newValue);
- $value = $newValue;
+ $index += $consumedValueLength + $consumedCommaLength;
}
}
@@ -408,6 +762,7 @@ private function normalize(string $type): string
'array',
'bool',
'callable',
+ 'false',
'float',
'int',
'iterable',
@@ -417,16 +772,17 @@ private function normalize(string $type): string
'object',
'resource',
'string',
+ 'true',
'void',
], true)) {
return $type;
}
- if (1 === Preg::match('/\[\]$/', $type)) {
+ if (Preg::match('/\[\]$/', $type)) {
return 'array';
}
- if (1 === Preg::match('/^(.+?)', $type, $matches)) {
+ if (Preg::match('/^(.+?)', $type, $matches)) {
return $matches[1];
}
@@ -448,7 +804,7 @@ private function normalize(string $type): string
}
/**
- * @return array
+ * @return array
*/
private function getAliases(): array
{
@@ -458,6 +814,7 @@ private function getAliases(): array
'double' => 'float',
'false' => 'bool',
'integer' => 'int',
+ 'list' => 'array',
'real' => 'float',
'true' => 'bool',
];
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/DocLexer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/DocLexer.php
new file mode 100644
index 00000000..af64205b
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/DocLexer.php
@@ -0,0 +1,171 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Doctrine\Annotation;
+
+use PhpCsFixer\Preg;
+
+/**
+ * Copyright (c) 2006-2013 Doctrine Project.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * @internal
+ */
+final class DocLexer
+{
+ public const T_NONE = 1;
+ public const T_INTEGER = 2;
+ public const T_STRING = 3;
+ public const T_FLOAT = 4;
+
+ // All tokens that are also identifiers should be >= 100
+ public const T_IDENTIFIER = 100;
+ public const T_AT = 101;
+ public const T_CLOSE_CURLY_BRACES = 102;
+ public const T_CLOSE_PARENTHESIS = 103;
+ public const T_COMMA = 104;
+ public const T_EQUALS = 105;
+ public const T_FALSE = 106;
+ public const T_NAMESPACE_SEPARATOR = 107;
+ public const T_OPEN_CURLY_BRACES = 108;
+ public const T_OPEN_PARENTHESIS = 109;
+ public const T_TRUE = 110;
+ public const T_NULL = 111;
+ public const T_COLON = 112;
+ public const T_MINUS = 113;
+
+ /** @var array */
+ private array $noCase = [
+ '@' => self::T_AT,
+ ',' => self::T_COMMA,
+ '(' => self::T_OPEN_PARENTHESIS,
+ ')' => self::T_CLOSE_PARENTHESIS,
+ '{' => self::T_OPEN_CURLY_BRACES,
+ '}' => self::T_CLOSE_CURLY_BRACES,
+ '=' => self::T_EQUALS,
+ ':' => self::T_COLON,
+ '-' => self::T_MINUS,
+ '\\' => self::T_NAMESPACE_SEPARATOR,
+ ];
+
+ /** @var list */
+ private array $tokens = [];
+
+ private int $position = 0;
+
+ private int $peek = 0;
+
+ private ?string $regex = null;
+
+ public function setInput(string $input): void
+ {
+ $this->tokens = [];
+ $this->reset();
+ $this->scan($input);
+ }
+
+ public function reset(): void
+ {
+ $this->peek = 0;
+ $this->position = 0;
+ }
+
+ public function peek(): ?Token
+ {
+ if (isset($this->tokens[$this->position + $this->peek])) {
+ return $this->tokens[$this->position + $this->peek++];
+ }
+
+ return null;
+ }
+
+ /**
+ * @return list
+ */
+ private function getCatchablePatterns(): array
+ {
+ return [
+ '[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*',
+ '(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?',
+ '"(?:""|[^"])*+"',
+ ];
+ }
+
+ /**
+ * @return list
+ */
+ private function getNonCatchablePatterns(): array
+ {
+ return ['\s+', '\*+', '(.)'];
+ }
+
+ /**
+ * @return self::T_*
+ */
+ private function getType(string &$value): int
+ {
+ $type = self::T_NONE;
+
+ if ('"' === $value[0]) {
+ $value = str_replace('""', '"', substr($value, 1, \strlen($value) - 2));
+
+ return self::T_STRING;
+ }
+
+ if (isset($this->noCase[$value])) {
+ return $this->noCase[$value];
+ }
+
+ if ('_' === $value[0] || '\\' === $value[0] || !Preg::match('/[^A-Za-z]/', $value[0])) {
+ return self::T_IDENTIFIER;
+ }
+
+ if (is_numeric($value)) {
+ return str_contains($value, '.') || false !== stripos($value, 'e')
+ ? self::T_FLOAT : self::T_INTEGER;
+ }
+
+ return $type;
+ }
+
+ private function scan(string $input): void
+ {
+ $this->regex ??= \sprintf(
+ '/(%s)|%s/%s',
+ implode(')|(', $this->getCatchablePatterns()),
+ implode('|', $this->getNonCatchablePatterns()),
+ 'iu'
+ );
+
+ $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;
+ $matches = Preg::split($this->regex, $input, -1, $flags);
+
+ foreach ($matches as $match) {
+ // Must remain before 'value' assignment since it can change content
+ $firstMatch = $match[0];
+ $type = $this->getType($firstMatch);
+
+ $this->tokens[] = new Token($type, $firstMatch, (int) $match[1]);
+ }
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Token.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Token.php
index 4e5a4a5d..56cb83e4 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Token.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Token.php
@@ -14,8 +14,6 @@
namespace PhpCsFixer\Doctrine\Annotation;
-use Doctrine\Common\Annotations\DocLexer;
-
/**
* A Doctrine annotation token.
*
@@ -27,14 +25,17 @@ final class Token
private string $content;
+ private int $position;
+
/**
* @param int $type The type
* @param string $content The content
*/
- public function __construct(int $type = DocLexer::T_NONE, string $content = '')
+ public function __construct(int $type = DocLexer::T_NONE, string $content = '', int $position = 0)
{
$this->type = $type;
$this->content = $content;
+ $this->position = $position;
}
public function getType(): int
@@ -57,10 +58,15 @@ public function setContent(string $content): void
$this->content = $content;
}
+ public function getPosition(): int
+ {
+ return $this->position;
+ }
+
/**
* Returns whether the token type is one of the given types.
*
- * @param int|int[] $types
+ * @param int|list $types
*/
public function isType($types): bool
{
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php
index 9817f256..b73d14a4 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php
@@ -14,8 +14,6 @@
namespace PhpCsFixer\Doctrine\Annotation;
-use Doctrine\Common\Annotations\DocLexer;
-use Doctrine\Common\Lexer\Token as LexerToken;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Token as PhpToken;
@@ -29,7 +27,7 @@
final class Tokens extends \SplFixedArray
{
/**
- * @param string[] $ignoredTags
+ * @param list $ignoredTags
*
* @throws \InvalidArgumentException
*/
@@ -60,27 +58,27 @@ public static function createFromDocComment(PhpToken $input, array $ignoredTags
$nbScannedTokensToUse = 0;
$nbScopes = 0;
while (null !== $token = $lexer->peek()) {
- if (0 === $index && !$token->isA(DocLexer::T_AT)) {
+ if (0 === $index && !$token->isType(DocLexer::T_AT)) {
break;
}
if (1 === $index) {
- if (!$token->isA(DocLexer::T_IDENTIFIER) || \in_array($token->value, $ignoredTags, true)) {
+ if (!$token->isType(DocLexer::T_IDENTIFIER) || \in_array($token->getContent(), $ignoredTags, true)) {
break;
}
$nbScannedTokensToUse = 2;
}
- if ($index >= 2 && 0 === $nbScopes && !$token->isA(DocLexer::T_NONE, DocLexer::T_OPEN_PARENTHESIS)) {
+ if ($index >= 2 && 0 === $nbScopes && !$token->isType([DocLexer::T_NONE, DocLexer::T_OPEN_PARENTHESIS])) {
break;
}
$scannedTokens[] = $token;
- if ($token->isA(DocLexer::T_OPEN_PARENTHESIS)) {
+ if ($token->isType(DocLexer::T_OPEN_PARENTHESIS)) {
++$nbScopes;
- } elseif ($token->isA(DocLexer::T_CLOSE_PARENTHESIS)) {
+ } elseif ($token->isType(DocLexer::T_CLOSE_PARENTHESIS)) {
if (0 === --$nbScopes) {
$nbScannedTokensToUse = \count($scannedTokens);
@@ -102,16 +100,16 @@ public static function createFromDocComment(PhpToken $input, array $ignoredTags
}
$lastTokenEndIndex = 0;
- foreach (\array_slice($scannedTokens, 0, $nbScannedTokensToUse) as $token) {
- if ($token->isA(DocLexer::T_STRING)) {
- $token = new LexerToken(
- '"'.str_replace('"', '""', $token->value).'"',
- $token->type,
- $token->position
- );
- }
-
- $missingTextLength = $token->position - $lastTokenEndIndex;
+ foreach (\array_slice($scannedTokens, 0, $nbScannedTokensToUse) as $scannedToken) {
+ $token = $scannedToken->isType(DocLexer::T_STRING)
+ ? new Token(
+ $scannedToken->getType(),
+ '"'.str_replace('"', '""', $scannedToken->getContent()).'"',
+ $scannedToken->getPosition()
+ )
+ : $scannedToken;
+
+ $missingTextLength = $token->getPosition() - $lastTokenEndIndex;
if ($missingTextLength > 0) {
$tokens[] = new Token(DocLexer::T_NONE, substr(
$content,
@@ -120,11 +118,11 @@ public static function createFromDocComment(PhpToken $input, array $ignoredTags
));
}
- $tokens[] = new Token($token->type, $token->value);
- $lastTokenEndIndex = $token->position + \strlen($token->value);
+ $tokens[] = new Token($token->getType(), $token->getContent());
+ $lastTokenEndIndex = $token->getPosition() + \strlen($token->getContent());
}
- $currentPosition = $ignoredTextPosition = $nextAtPosition + $token->position + \strlen($token->value);
+ $currentPosition = $ignoredTextPosition = $nextAtPosition + $token->getPosition() + \strlen($token->getContent());
} else {
$currentPosition = $nextAtPosition + 1;
}
@@ -140,8 +138,8 @@ public static function createFromDocComment(PhpToken $input, array $ignoredTags
/**
* Create token collection from array.
*
- * @param Token[] $array the array to import
- * @param ?bool $saveIndices save the numeric indices used in the original array, default is yes
+ * @param array $array the array to import
+ * @param ?bool $saveIndices save the numeric indices used in the original array, default is yes
*/
public static function fromArray($array, $saveIndices = null): self
{
@@ -248,7 +246,7 @@ public function insertAt(int $index, Token $token): void
public function offsetSet($index, $token): void
{
if (null === $token) {
- throw new \InvalidArgumentException('Token must be an instance of PhpCsFixer\\Doctrine\\Annotation\\Token, "null" given.');
+ throw new \InvalidArgumentException('Token must be an instance of PhpCsFixer\Doctrine\Annotation\Token, "null" given.');
}
if (!$token instanceof Token) {
@@ -258,21 +256,21 @@ public function offsetSet($index, $token): void
$type = \get_class($token);
}
- throw new \InvalidArgumentException(sprintf('Token must be an instance of PhpCsFixer\\Doctrine\\Annotation\\Token, "%s" given.', $type));
+ throw new \InvalidArgumentException(\sprintf('Token must be an instance of PhpCsFixer\Doctrine\Annotation\Token, "%s" given.', $type));
}
parent::offsetSet($index, $token);
}
/**
- * {@inheritdoc}
+ * @param mixed $index
*
* @throws \OutOfBoundsException
*/
public function offsetUnset($index): void
{
if (!isset($this[$index])) {
- throw new \OutOfBoundsException(sprintf('Index "%s" is invalid or does not exist.', $index));
+ throw new \OutOfBoundsException(\sprintf('Index "%s" is invalid or does not exist.', $index));
}
$max = \count($this) - 1;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php
index 73544963..5da0e31c 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php
@@ -19,6 +19,8 @@
use PhpCsFixer\Utils;
/**
+ * @readonly
+ *
* @internal
*/
final class DocumentationLocator
@@ -43,10 +45,8 @@ public function getFixersDocumentationIndexFilePath(): string
public function getFixerDocumentationFilePath(FixerInterface $fixer): string
{
return $this->getFixersDocumentationDirectoryPath().'/'.Preg::replaceCallback(
- '/^.*\\\\(.+)\\\\(.+)Fixer$/',
- static function (array $matches): string {
- return Utils::camelCaseToUnderscore($matches[1]).'/'.Utils::camelCaseToUnderscore($matches[2]);
- },
+ '/^.*\\\(.+)\\\(.+)Fixer$/',
+ static fn (array $matches): string => Utils::camelCaseToUnderscore($matches[1]).'/'.Utils::camelCaseToUnderscore($matches[2]),
\get_class($fixer)
).'.rst';
}
@@ -75,8 +75,8 @@ public function getRuleSetsDocumentationFilePath(string $name): string
return $this->getRuleSetsDocumentationDirectoryPath().'/'.str_replace(':risky', 'Risky', ucfirst(substr($name, 1))).'.rst';
}
- public function getListingFilePath(): string
+ public function getUsageFilePath(): string
{
- return $this->path.'/list.rst';
+ return $this->path.'/usage.rst';
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php
index fcfd0fdc..34ae74a7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php
@@ -18,6 +18,7 @@
use PhpCsFixer\Differ\FullDiffer;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
+use PhpCsFixer\Fixer\ExperimentalFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
@@ -33,6 +34,8 @@
use PhpCsFixer\Utils;
/**
+ * @readonly
+ *
* @internal
*/
final class FixerDocumentGenerator
@@ -64,11 +67,11 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
$doc .= <<getSuccessorsNames();
if (0 !== \count($alternatives)) {
- $deprecationDescription .= RstUtils::toRst(sprintf(
+ $deprecationDescription .= RstUtils::toRst(\sprintf(
"\n\nYou should use %s instead.",
Utils::naturalLanguageJoinWithBackticks($alternatives)
), 0);
}
}
+ $experimentalDescription = '';
+
+ if ($fixer instanceof ExperimentalFixerInterface) {
+ $experimentalDescriptionRaw = RstUtils::toRst('Rule is not covered with backward compatibility promise, use it at your own risk. Rule\'s behaviour may be changed at any point, including rule\'s name; its options\' names, availability and allowed values; its default configuration. Rule may be even removed without prior notice. Feel free to provide feedback and help with determining final state of the rule.', 0);
+ $experimentalDescription = <<getRiskyDescription();
@@ -96,36 +112,40 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
$riskyDescriptionRaw = RstUtils::toRst($riskyDescriptionRaw, 0);
$riskyDescription = << '' !== $text
+ ));
}
if ($fixer instanceof ConfigurableFixerInterface) {
$doc .= <<<'RST'
-Configuration
--------------
-RST;
+ Configuration
+ -------------
+ RST;
$configurationDefinition = $fixer->getConfigurationDefinition();
@@ -135,13 +155,13 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
if ($option instanceof DeprecatedFixerOptionInterface) {
$deprecationMessage = RstUtils::toRst($option->getDeprecationMessage());
- $optionInfo .= "\n\n.. warning:: This option is deprecated and will be removed on next major version. {$deprecationMessage}";
+ $optionInfo .= "\n\n.. warning:: This option is deprecated and will be removed in the next major version. {$deprecationMessage}";
}
$optionInfo .= "\n\n".RstUtils::toRst($option->getDescription());
if ($option instanceof AliasedFixerOption) {
- $optionInfo .= "\n\n.. note:: The previous name of this option was ``{$option->getAlias()}`` but it is now deprecated and will be removed on next major version.";
+ $optionInfo .= "\n\n.. note:: The previous name of this option was ``{$option->getAlias()}`` but it is now deprecated and will be removed in the next major version.";
}
$allowed = HelpCommand::getDisplayableAllowedValues($option);
@@ -149,23 +169,21 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
if (null === $allowed) {
$allowedKind = 'Allowed types';
$allowed = array_map(
- static fn ($value): string => '``'.$value.'``',
+ static fn (string $value): string => '``'.Utils::convertArrayTypeToList($value).'``',
$option->getAllowedTypes(),
);
} else {
$allowedKind = 'Allowed values';
- $allowed = array_map(static function ($value): string {
- return $value instanceof AllowedValueSubset
- ? 'a subset of ``'.HelpCommand::toString($value->getAllowedValues()).'``'
- : '``'.HelpCommand::toString($value).'``';
- }, $allowed);
+ $allowed = array_map(static fn ($value): string => $value instanceof AllowedValueSubset
+ ? 'a subset of ``'.Utils::toString($value->getAllowedValues()).'``'
+ : '``'.Utils::toString($value).'``', $allowed);
}
- $allowed = implode(', ', $allowed);
+ $allowed = Utils::naturalLanguageJoin($allowed, '');
$optionInfo .= "\n\n{$allowedKind}: {$allowed}";
if ($option->hasDefault()) {
- $default = HelpCommand::toString($option->getDefault());
+ $default = Utils::toString($option->getDefault());
$optionInfo .= "\n\nDefault value: ``{$default}``";
} else {
$optionInfo .= "\n\nThis option is required.";
@@ -181,12 +199,12 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
$doc .= <<<'RST'
-Examples
---------
-RST;
+ Examples
+ --------
+ RST;
foreach ($samples as $index => $sample) {
- $title = sprintf('Example #%d', $index + 1);
+ $title = \sprintf('Example #%d', $index + 1);
$titleLine = str_repeat('~', \strlen($title));
$doc .= "\n\n{$title}\n{$titleLine}";
@@ -194,9 +212,9 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
if (null === $sample->getConfiguration()) {
$doc .= "\n\n*Default* configuration.";
} else {
- $doc .= sprintf(
+ $doc .= \sprintf(
"\n\nWith configuration: ``%s``.",
- HelpCommand::toString($sample->getConfiguration())
+ Utils::toString($sample->getConfiguration())
);
}
}
@@ -205,53 +223,82 @@ public function generateFixerDocumentation(FixerInterface $fixer): string
}
}
- $ruleSetConfigs = [];
-
- foreach (RuleSets::getSetDefinitionNames() as $set) {
- $ruleSet = new RuleSet([$set => true]);
-
- if ($ruleSet->hasRule($name)) {
- $ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($name);
- }
- }
+ $ruleSetConfigs = self::getSetsOfRule($name);
if ([] !== $ruleSetConfigs) {
$plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
$doc .= << $config) {
$ruleSetPath = $this->locator->getRuleSetsDocumentationFilePath($set);
$ruleSetPath = substr($ruleSetPath, strrpos($ruleSetPath, '/'));
+ $configInfo = (null !== $config)
+ ? " with config:\n\n ``".Utils::toString($config)."``\n"
+ : '';
+
$doc .= <<`_{$configInfo}\n
+ RST;
+ }
+ }
+ $reflectionObject = new \ReflectionObject($fixer);
+ $className = str_replace('\\', '\\\\', $reflectionObject->getName());
+ $fileName = $reflectionObject->getFileName();
+ $fileName = str_replace('\\', '/', $fileName);
+ $fileName = substr($fileName, strrpos($fileName, '/src/Fixer/') + 1);
+ $fileName = "`{$className} <./../../../{$fileName}>`_";
-{$set}
- Using the `{$set} <./../../ruleSets{$ruleSetPath}>`_ rule set will enable the ``{$name}`` rule
-RST;
+ $testFileName = Preg::replace('~.*\K/src/(?=Fixer/)~', '/tests/', $fileName);
+ $testFileName = Preg::replace('~PhpCsFixer\\\\\\\\\K(?=Fixer\\\\\\\)~', 'Tests\\\\\\\\', $testFileName);
+ $testFileName = Preg::replace('~(?= <|\.php>)~', 'Test', $testFileName);
- if (null !== $config) {
- $doc .= " with the config below:\n\n ``".HelpCommand::toString($config).'``';
- } elseif ($fixer instanceof ConfigurableFixerInterface) {
- $doc .= ' with the default config.';
- } else {
- $doc .= '.';
- }
+ $doc .= <<', $doc);
+
+ return "{$doc}\n";
+ }
+
+ /**
+ * @internal
+ *
+ * @return array>
+ */
+ public static function getSetsOfRule(string $ruleName): array
+ {
+ $ruleSetConfigs = [];
+
+ foreach (RuleSets::getSetDefinitionNames() as $set) {
+ $ruleSet = new RuleSet([$set => true]);
+
+ if ($ruleSet->hasRule($ruleName)) {
+ $ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($ruleName);
}
}
- return "{$doc}\n";
+ return $ruleSetConfigs;
}
/**
- * @param FixerInterface[] $fixers
+ * @param list $fixers
*/
public function generateFixersDocumentationIndex(array $fixers): string
{
@@ -261,20 +308,18 @@ public function generateFixersDocumentationIndex(array $fixers): string
'Phpdoc' => 'PHPDoc',
];
- usort($fixers, static function (FixerInterface $a, FixerInterface $b): int {
- return strcmp(\get_class($a), \get_class($b));
- });
+ usort($fixers, static fn (FixerInterface $a, FixerInterface $b): int => \get_class($a) <=> \get_class($b));
$documentation = <<<'RST'
-=======================
-List of Available Rules
-=======================
-RST;
+ =======================
+ List of Available Rules
+ =======================
+ RST;
$currentGroup = null;
foreach ($fixers as $fixer) {
- $namespace = Preg::replace('/^.*\\\\(.+)\\\\.+Fixer$/', '$1', \get_class($fixer));
+ $namespace = Preg::replace('/^.*\\\(.+)\\\.+Fixer$/', '$1', \get_class($fixer));
$group = $overrideGroups[$namespace] ?? Preg::replace('/(?<=[[:lower:]])(?=[[:upper:]])/', ' ', $namespace);
if ($group !== $currentGroup) {
@@ -292,6 +337,10 @@ public function generateFixersDocumentationIndex(array $fixers): string
$attributes[] = 'deprecated';
}
+ if ($fixer instanceof ExperimentalFixerInterface) {
+ $attributes[] = 'experimental';
+ }
+
if ($fixer->isRisky()) {
$attributes[] = 'risky';
}
@@ -304,10 +353,10 @@ public function generateFixersDocumentationIndex(array $fixers): string
$documentation .= <<getName()} <{$path}>`_{$attributes}
+ - `{$fixer->getName()} <{$path}>`_{$attributes}
- {$summary}
-RST;
+ {$summary}
+ RST;
}
return "{$documentation}\n";
@@ -328,12 +377,12 @@ private function generateSampleDiff(FixerInterface $fixer, CodeSampleInterface $
$error = <<getCode();
@@ -358,9 +407,9 @@ private function generateSampleDiff(FixerInterface $fixer, CodeSampleInterface $
return <<
- * Dariusz Rumiński
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
-
-namespace PhpCsFixer\Documentation;
-
-use PhpCsFixer\Console\Command\HelpCommand;
-use PhpCsFixer\Fixer\ConfigurableFixerInterface;
-use PhpCsFixer\Fixer\DeprecatedFixerInterface;
-use PhpCsFixer\Fixer\FixerInterface;
-use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
-use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
-use PhpCsFixer\FixerConfiguration\DeprecatedFixerOptionInterface;
-use PhpCsFixer\RuleSet\RuleSet;
-use PhpCsFixer\RuleSet\RuleSets;
-use PhpCsFixer\Utils;
-
-/**
- * @internal
- */
-final class ListDocumentGenerator
-{
- private DocumentationLocator $locator;
-
- public function __construct(DocumentationLocator $locator)
- {
- $this->locator = $locator;
- }
-
- /**
- * @param FixerInterface[] $fixers
- */
- public function generateListingDocumentation(array $fixers): string
- {
- usort(
- $fixers,
- static function (FixerInterface $fixer1, FixerInterface $fixer2): int {
- return strnatcasecmp($fixer1->getName(), $fixer2->getName());
- }
- );
-
- $documentation = <<<'RST'
-=======================
-List of Available Rules
-=======================
-
-RST;
- foreach ($fixers as $fixer) {
- $name = $fixer->getName();
- $definition = $fixer->getDefinition();
- $path = './rules/'.$this->locator->getFixerDocumentationFileRelativePath($fixer);
-
- $documentation .= "\n- `{$name} <{$path}>`_\n";
- $documentation .= "\n ".str_replace('`', '``', $definition->getSummary())."\n";
-
- $description = $definition->getDescription();
-
- if (null !== $description) {
- $documentation .= "\n ".RstUtils::toRst($description, 3)."\n";
- }
-
- if ($fixer instanceof DeprecatedFixerInterface) {
- $documentation .= "\n *warning deprecated*";
- $alternatives = $fixer->getSuccessorsNames();
-
- if (0 !== \count($alternatives)) {
- $documentation .= RstUtils::toRst(sprintf(
- ' Use %s instead.',
- Utils::naturalLanguageJoinWithBackticks($alternatives)
- ), 3);
- }
-
- $documentation .= "\n";
- }
-
- if ($fixer->isRisky()) {
- $documentation .= "\n *warning risky* ".RstUtils::toRst($definition->getRiskyDescription(), 3)."\n";
- }
-
- if ($fixer instanceof ConfigurableFixerInterface) {
- $documentation .= "\n Configuration options:\n";
- $configurationDefinition = $fixer->getConfigurationDefinition();
-
- foreach ($configurationDefinition->getOptions() as $option) {
- $documentation .= "\n - | ``{$option->getName()}``";
- $documentation .= "\n | {$option->getDescription()}";
-
- if ($option instanceof DeprecatedFixerOptionInterface) {
- $deprecationMessage = RstUtils::toRst($option->getDeprecationMessage(), 3);
- $documentation .= "\n | warning:: This option is deprecated and will be removed on next major version. {$deprecationMessage}";
- }
-
- if ($option instanceof AliasedFixerOption) {
- $documentation .= "\n | note:: The previous name of this option was ``{$option->getAlias()}`` but it is now deprecated and will be removed on next major version.";
- }
-
- $allowed = HelpCommand::getDisplayableAllowedValues($option);
-
- if (null === $allowed) {
- $allowedKind = 'Allowed types';
- $allowed = array_map(
- static fn ($value): string => '``'.$value.'``',
- $option->getAllowedTypes(),
- );
- } else {
- $allowedKind = 'Allowed values';
- $allowed = array_map(static function ($value): string {
- return $value instanceof AllowedValueSubset
- ? 'a subset of ``'.HelpCommand::toString($value->getAllowedValues()).'``'
- : '``'.HelpCommand::toString($value).'``';
- }, $allowed);
- }
-
- $allowed = implode(', ', $allowed);
- $documentation .= "\n | {$allowedKind}: {$allowed}";
-
- if ($option->hasDefault()) {
- $default = HelpCommand::toString($option->getDefault());
- $documentation .= "\n | Default value: ``{$default}``";
- } else {
- $documentation .= "\n | This option is required.";
- }
- }
-
- $documentation .= "\n\n";
- }
-
- $ruleSetConfigs = [];
-
- foreach (RuleSets::getSetDefinitionNames() as $set) {
- $ruleSet = new RuleSet([$set => true]);
-
- if ($ruleSet->hasRule($name)) {
- $ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($name);
- }
- }
-
- if ([] !== $ruleSetConfigs) {
- $plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
-
- $documentation .= "\n Part of rule set{$plural} ";
-
- foreach ($ruleSetConfigs as $set => $config) {
- $ruleSetPath = $this->locator->getRuleSetsDocumentationFilePath($set);
- $ruleSetPath = substr($ruleSetPath, strrpos($ruleSetPath, '/'));
-
- $documentation .= "`{$set} <./ruleSets{$ruleSetPath}>`_ ";
- }
-
- $documentation = rtrim($documentation)."\n";
- }
-
- $reflectionObject = new \ReflectionObject($fixer);
- $className = str_replace('\\', '\\\\', $reflectionObject->getName());
- $fileName = $reflectionObject->getFileName();
- $fileName = str_replace('\\', '/', $fileName);
- $fileName = substr($fileName, strrpos($fileName, '/src/Fixer/') + 1);
- $fileName = "`Source {$className} <./../{$fileName}>`_";
- $documentation .= "\n ".$fileName;
- }
-
- return $documentation."\n";
- }
-}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php
index b7b5c51c..129bc5d0 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php
@@ -28,11 +28,16 @@ private function __construct()
public static function toRst(string $string, int $indent = 0): string
{
- $string = wordwrap(Preg::replace('/(? $fixers
*/
public function generateRuleSetsDocumentation(RuleSetDescriptionInterface $definition, array $fixers): string
{
@@ -46,8 +49,52 @@ public function generateRuleSetsDocumentation(RuleSetDescriptionInterface $defin
$titleLine = str_repeat('=', \strlen($title));
$doc = "{$titleLine}\n{$title}\n{$titleLine}\n\n".$definition->getDescription();
+ $warnings = [];
+ if ($definition instanceof DeprecatedRuleSetDescriptionInterface) {
+ $deprecationDescription = <<<'RST'
+
+ This rule set is deprecated and will be removed in the next major version
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ RST;
+ $alternatives = $definition->getSuccessorsNames();
+
+ if (0 !== \count($alternatives)) {
+ $deprecationDescription .= RstUtils::toRst(
+ \sprintf(
+ "\n\nYou should use %s instead.",
+ Utils::naturalLanguageJoinWithBackticks($alternatives)
+ ),
+ 0
+ );
+ } else {
+ $deprecationDescription .= 'No replacement available.';
+ }
+
+ $warnings[] = $deprecationDescription;
+ }
+
if ($definition->isRisky()) {
- $doc .= ' This set contains rules that are risky.';
+ $warnings[] = <<<'RST'
+
+ This set contains rules that are risky
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Using this rule set may lead to changes in your code's logic and behaviour. Use it with caution and review changes before incorporating them into your code base.
+ RST;
+ }
+
+ if ([] !== $warnings) {
+ $warningsHeader = 1 === \count($warnings) ? 'Warning' : 'Warnings';
+
+ $warningsHeaderLine = str_repeat('-', \strlen($warningsHeader));
+ $doc .= "\n\n".implode(
+ "\n",
+ [
+ $warningsHeader,
+ $warningsHeaderLine,
+ ...$warnings,
+ ]
+ );
}
$rules = $definition->getRules();
@@ -76,7 +123,7 @@ public function generateRuleSetsDocumentation(RuleSetDescriptionInterface $defin
}
if (!\is_bool($config)) {
- $doc .= "\n config:\n ``".HelpCommand::toString($config).'``';
+ $doc .= " with config:\n\n ``".Utils::toString($config)."``\n";
}
}
};
@@ -96,18 +143,30 @@ public function generateRuleSetsDocumentation(RuleSetDescriptionInterface $defin
}
/**
- * @param array $setDefinitions
+ * @param array $setDefinitions
*/
public function generateRuleSetsDocumentationIndex(array $setDefinitions): string
{
$documentation = <<<'RST'
-===========================
-List of Available Rule sets
-===========================
-RST;
- foreach ($setDefinitions as $name => $path) {
+ ===========================
+ List of Available Rule sets
+ ===========================
+ RST;
+
+ foreach ($setDefinitions as $path => $definition) {
$path = substr($path, strrpos($path, '/'));
- $documentation .= "\n- `{$name} <.{$path}>`_";
+
+ $attributes = [];
+
+ if ($definition instanceof DeprecatedRuleSetDescriptionInterface) {
+ $attributes[] = 'deprecated';
+ }
+
+ $attributes = 0 === \count($attributes)
+ ? ''
+ : ' *('.implode(', ', $attributes).')*';
+
+ $documentation .= "\n- `{$definition->getName()} <.{$path}>`_{$attributes}";
}
return $documentation."\n";
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/Error.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/Error.php
index 1f14ed9f..e20ff2f7 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/Error.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/Error.php
@@ -19,9 +19,11 @@
*
* @author Andreas Möller
*
+ * @readonly
+ *
* @internal
*/
-final class Error
+final class Error implements \JsonSerializable
{
/**
* Error which has occurred in linting phase, before applying any fixers.
@@ -38,6 +40,7 @@ final class Error
*/
public const TYPE_LINT = 3;
+ /** @var self::TYPE_* */
private int $type;
private string $filePath;
@@ -52,6 +55,7 @@ final class Error
private ?string $diff;
/**
+ * @param self::TYPE_* $type
* @param list $appliedFixers
*/
public function __construct(int $type, string $filePath, ?\Throwable $source = null, array $appliedFixers = [], ?string $diff = null)
@@ -90,4 +94,32 @@ public function getDiff(): ?string
{
return $this->diff;
}
+
+ /**
+ * @return array{
+ * type: self::TYPE_*,
+ * filePath: string,
+ * source: null|array{class: class-string, message: string, code: int, file: string, line: int},
+ * appliedFixers: list,
+ * diff: null|string
+ * }
+ */
+ public function jsonSerialize(): array
+ {
+ return [
+ 'type' => $this->type,
+ 'filePath' => $this->filePath,
+ 'source' => null !== $this->source
+ ? [
+ 'class' => \get_class($this->source),
+ 'message' => $this->source->getMessage(),
+ 'code' => $this->source->getCode(),
+ 'file' => $this->source->getFile(),
+ 'line' => $this->source->getLine(),
+ ]
+ : null,
+ 'appliedFixers' => $this->appliedFixers,
+ 'diff' => $this->diff,
+ ];
+ }
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/ErrorsManager.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/ErrorsManager.php
index 01006673..e6333db8 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/ErrorsManager.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/ErrorsManager.php
@@ -24,44 +24,48 @@
final class ErrorsManager
{
/**
- * @var Error[]
+ * @var list
*/
private array $errors = [];
/**
* Returns errors reported during linting before fixing.
*
- * @return Error[]
+ * @return list
*/
public function getInvalidErrors(): array
{
- return array_filter($this->errors, static function (Error $error): bool {
- return Error::TYPE_INVALID === $error->getType();
- });
+ return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_INVALID === $error->getType());
}
/**
* Returns errors reported during fixing.
*
- * @return Error[]
+ * @return list
*/
public function getExceptionErrors(): array
{
- return array_filter($this->errors, static function (Error $error): bool {
- return Error::TYPE_EXCEPTION === $error->getType();
- });
+ return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_EXCEPTION === $error->getType());
}
/**
* Returns errors reported during linting after fixing.
*
- * @return Error[]
+ * @return list
*/
public function getLintErrors(): array
{
- return array_filter($this->errors, static function (Error $error): bool {
- return Error::TYPE_LINT === $error->getType();
- });
+ return array_filter($this->errors, static fn (Error $error): bool => Error::TYPE_LINT === $error->getType());
+ }
+
+ /**
+ * Returns errors reported for specified path.
+ *
+ * @return list
+ */
+ public function forPath(string $path): array
+ {
+ return array_values(array_filter($this->errors, static fn (Error $error): bool => $path === $error->getFilePath()));
}
/**
@@ -69,7 +73,7 @@ public function getLintErrors(): array
*/
public function isEmpty(): bool
{
- return empty($this->errors);
+ return [] === $this->errors;
}
public function report(Error $error): void
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/SourceExceptionFactory.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/SourceExceptionFactory.php
new file mode 100644
index 00000000..03773861
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Error/SourceExceptionFactory.php
@@ -0,0 +1,62 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Error;
+
+/**
+ * @readonly
+ *
+ * @internal
+ */
+final class SourceExceptionFactory
+{
+ /**
+ * @param array{class: class-string<\Throwable>, message: string, code: int, file: string, line: int} $error
+ */
+ public static function fromArray(array $error): \Throwable
+ {
+ $exceptionClass = $error['class'];
+
+ try {
+ $exception = new $exceptionClass($error['message'], $error['code']);
+
+ if (
+ $exception->getMessage() !== $error['message']
+ || $exception->getCode() !== $error['code']
+ ) {
+ throw new \RuntimeException('Failed to create exception from array. Message and code are not the same.');
+ }
+ } catch (\Throwable $e) {
+ $exception = new \RuntimeException(
+ \sprintf('[%s] %s', $exceptionClass, $error['message']),
+ $error['code']
+ );
+ }
+
+ try {
+ $exceptionReflection = new \ReflectionClass($exception);
+ foreach (['file', 'line'] as $property) {
+ $propertyReflection = $exceptionReflection->getProperty($property);
+ $propertyReflection->setAccessible(true);
+ $propertyReflection->setValue($exception, $error[$property]);
+ $propertyReflection->setAccessible(false);
+ }
+ } catch (\Throwable $reflectionException) {
+ // Ignore if we were not able to set file/line properties. In most cases it should be fine,
+ // we just need to make sure nothing is broken when we recreate errors from raw data passed from worker.
+ }
+
+ return $exception;
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandler.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandler.php
new file mode 100644
index 00000000..003398e4
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandler.php
@@ -0,0 +1,58 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer;
+
+/**
+ * @author Dariusz Rumiński
+ *
+ * @internal
+ */
+final class ExecutorWithoutErrorHandler
+{
+ private function __construct() {}
+
+ /**
+ * @template T
+ *
+ * @param callable(): T $callback
+ *
+ * @return T
+ *
+ * @throws ExecutorWithoutErrorHandlerException
+ */
+ public static function execute(callable $callback)
+ {
+ /** @var ?string */
+ $error = null;
+
+ set_error_handler(static function (int $errorNumber, string $errorString, string $errorFile, int $errorLine) use (&$error): bool {
+ $error = $errorString;
+
+ return true;
+ });
+
+ try {
+ $result = $callback();
+ } finally {
+ restore_error_handler();
+ }
+
+ if (null !== $error) {
+ throw new ExecutorWithoutErrorHandlerException($error);
+ }
+
+ return $result;
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandlerException.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandlerException.php
new file mode 100644
index 00000000..750352a2
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/ExecutorWithoutErrorHandlerException.php
@@ -0,0 +1,22 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer;
+
+/**
+ * @author Dariusz Rumiński
+ *
+ * @internal
+ */
+final class ExecutorWithoutErrorHandlerException extends \RuntimeException {}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileReader.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileReader.php
index d71f5f76..30eeabef 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileReader.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileReader.php
@@ -25,10 +25,7 @@
*/
final class FileReader
{
- /**
- * @var null|string
- */
- private $stdinContent;
+ private ?string $stdinContent = null;
public static function createSingleton(): self
{
@@ -61,10 +58,10 @@ private function readRaw(string $realPath): string
if (false === $content) {
$error = error_get_last();
- throw new \RuntimeException(sprintf(
+ throw new \RuntimeException(\sprintf(
'Failed to read content from "%s".%s',
$realPath,
- $error ? ' '.$error['message'] : ''
+ null !== $error ? ' '.$error['message'] : ''
));
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileRemoval.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileRemoval.php
index dce4d924..148a4c5e 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileRemoval.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/FileRemoval.php
@@ -47,7 +47,7 @@ public function __destruct()
*/
public function __sleep(): array
{
- throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
+ throw new \BadMethodCallException('Cannot serialize '.self::class);
}
/**
@@ -58,7 +58,7 @@ public function __sleep(): array
*/
public function __wakeup(): void
{
- throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
+ throw new \BadMethodCallException('Cannot unserialize '.self::class);
}
/**
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php
index a9517f30..b6a8660c 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php
@@ -18,6 +18,9 @@
use PhpCsFixer\DocBlock\DocBlock;
use PhpCsFixer\DocBlock\Line;
use PhpCsFixer\Indicator\PhpUnitTestCaseIndicator;
+use PhpCsFixer\Tokenizer\Analyzer\AttributeAnalyzer;
+use PhpCsFixer\Tokenizer\Analyzer\FunctionsAnalyzer;
+use PhpCsFixer\Tokenizer\Analyzer\NamespaceUsesAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\WhitespacesAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
@@ -28,10 +31,7 @@
*/
abstract class AbstractPhpUnitFixer extends AbstractFixer
{
- /**
- * {@inheritdoc}
- */
- final public function isCandidate(Tokens $tokens): bool
+ public function isCandidate(Tokens $tokens): bool
{
return $tokens->isAllTokenKindsFound([T_CLASS, T_STRING]);
}
@@ -71,22 +71,26 @@ final protected function getDocBlockIndex(Tokens $tokens, int $index): int
}
/**
- * @param array $preventingAnnotations
+ * @param list $preventingAnnotations
+ * @param list $preventingAttributes
*/
- final protected function ensureIsDockBlockWithAnnotation(
+ final protected function ensureIsDocBlockWithAnnotation(
Tokens $tokens,
int $index,
string $annotation,
- bool $addWithEmptyLineBeforePhpdoc,
- bool $addWithEmptyLineBeforeAnnotation,
- array $preventingAnnotations
+ array $preventingAnnotations,
+ array $preventingAttributes
): void {
$docBlockIndex = $this->getDocBlockIndex($tokens, $index);
+ if (self::isPreventedByAttribute($tokens, $index, $preventingAttributes)) {
+ return;
+ }
+
if ($this->isPHPDoc($tokens, $docBlockIndex)) {
- $this->updateDocBlockIfNeeded($tokens, $docBlockIndex, $annotation, $addWithEmptyLineBeforeAnnotation, $preventingAnnotations);
+ $this->updateDocBlockIfNeeded($tokens, $docBlockIndex, $annotation, $preventingAnnotations);
} else {
- $this->createDocBlock($tokens, $docBlockIndex, $annotation, $addWithEmptyLineBeforePhpdoc);
+ $this->createDocBlock($tokens, $docBlockIndex, $annotation);
}
}
@@ -95,7 +99,53 @@ final protected function isPHPDoc(Tokens $tokens, int $index): bool
return $tokens[$index]->isGivenKind(T_DOC_COMMENT);
}
- private function createDocBlock(Tokens $tokens, int $docBlockIndex, string $annotation, bool $addWithEmptyLineBeforePhpdoc): void
+ /**
+ * @return iterable
+ */
+ protected function getPreviousAssertCall(Tokens $tokens, int $startIndex, int $endIndex): iterable
+ {
+ $functionsAnalyzer = new FunctionsAnalyzer();
+
+ for ($index = $endIndex; $index > $startIndex; --$index) {
+ $index = $tokens->getPrevTokenOfKind($index, [[T_STRING]]);
+
+ if (null === $index) {
+ return;
+ }
+
+ // test if "assert" something call
+ $loweredContent = strtolower($tokens[$index]->getContent());
+
+ if (!str_starts_with($loweredContent, 'assert')) {
+ continue;
+ }
+
+ // test candidate for simple calls like: ([\]+'some fixable call'(...))
+ $openBraceIndex = $tokens->getNextMeaningfulToken($index);
+
+ if (!$tokens[$openBraceIndex]->equals('(')) {
+ continue;
+ }
+
+ if (!$functionsAnalyzer->isTheSameClassCall($tokens, $index)) {
+ continue;
+ }
+
+ yield [
+ 'index' => $index,
+ 'loweredName' => $loweredContent,
+ 'openBraceIndex' => $openBraceIndex,
+ 'closeBraceIndex' => $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openBraceIndex),
+ ];
+ }
+ }
+
+ private function createDocBlock(Tokens $tokens, int $docBlockIndex, string $annotation): void
{
$lineEnd = $this->whitespacesConfig->getLineEnding();
$originalIndent = WhitespacesAnalyzer::detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
@@ -106,7 +156,7 @@ private function createDocBlock(Tokens $tokens, int $docBlockIndex, string $anno
$index = $tokens->getNextMeaningfulToken($docBlockIndex);
$tokens->insertAt($index, $toInsert);
- if ($addWithEmptyLineBeforePhpdoc && !$tokens[$index - 1]->isGivenKind(T_WHITESPACE)) {
+ if (!$tokens[$index - 1]->isGivenKind(T_WHITESPACE)) {
$extraNewLines = $this->whitespacesConfig->getLineEnding();
if (!$tokens[$index - 1]->isGivenKind(T_OPEN_TAG)) {
@@ -120,13 +170,12 @@ private function createDocBlock(Tokens $tokens, int $docBlockIndex, string $anno
}
/**
- * @param array $preventingAnnotations
+ * @param list $preventingAnnotations
*/
private function updateDocBlockIfNeeded(
Tokens $tokens,
int $docBlockIndex,
string $annotation,
- bool $addWithEmptyLineBeforeAnnotation,
array $preventingAnnotations
): void {
$doc = new DocBlock($tokens[$docBlockIndex]->getContent());
@@ -136,22 +185,79 @@ private function updateDocBlockIfNeeded(
}
}
$doc = $this->makeDocBlockMultiLineIfNeeded($doc, $tokens, $docBlockIndex, $annotation);
- $lines = $this->addInternalAnnotation($doc, $tokens, $docBlockIndex, $annotation, $addWithEmptyLineBeforeAnnotation);
+
+ $lines = $this->addInternalAnnotation($doc, $tokens, $docBlockIndex, $annotation);
$lines = implode('', $lines);
$tokens[$docBlockIndex] = new Token([T_DOC_COMMENT, $lines]);
}
/**
- * @return array
+ * @param list $preventingAttributes
+ */
+ private static function isPreventedByAttribute(Tokens $tokens, int $index, array $preventingAttributes): bool
+ {
+ if ([] === $preventingAttributes) {
+ return false;
+ }
+
+ $modifiers = [T_FINAL];
+ if (\defined('T_READONLY')) { // @TODO: drop condition when PHP 8.2+ is required
+ $modifiers[] = T_READONLY;
+ }
+
+ do {
+ $index = $tokens->getPrevMeaningfulToken($index);
+ } while ($tokens[$index]->isGivenKind($modifiers));
+ if (!$tokens[$index]->isGivenKind(CT::T_ATTRIBUTE_CLOSE)) {
+ return false;
+ }
+ $index = $tokens->findBlockStart(Tokens::BLOCK_TYPE_ATTRIBUTE, $index);
+
+ foreach (AttributeAnalyzer::collect($tokens, $index) as $attributeAnalysis) {
+ foreach ($attributeAnalysis->getAttributes() as $attribute) {
+ if (\in_array(ltrim(self::getFullyQualifiedName($tokens, $attribute['name']), '\\'), $preventingAttributes, true)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ private static function getFullyQualifiedName(Tokens $tokens, string $name): string
+ {
+ $name = strtolower($name);
+
+ $names = [];
+ foreach ((new NamespaceUsesAnalyzer())->getDeclarationsFromTokens($tokens) as $namespaceUseAnalysis) {
+ $names[strtolower($namespaceUseAnalysis->getShortName())] = strtolower($namespaceUseAnalysis->getFullName());
+ }
+
+ foreach ($names as $shortName => $fullName) {
+ if ($name === $shortName) {
+ return $fullName;
+ }
+
+ if (!str_starts_with($name, $shortName.'\\')) {
+ continue;
+ }
+
+ return $fullName.substr($name, \strlen($shortName));
+ }
+
+ return $name;
+ }
+
+ /**
+ * @return list
*/
- private function addInternalAnnotation(DocBlock $docBlock, Tokens $tokens, int $docBlockIndex, string $annotation, bool $addWithEmptyLineBeforeAnnotation): array
+ private function addInternalAnnotation(DocBlock $docBlock, Tokens $tokens, int $docBlockIndex, string $annotation): array
{
$lines = $docBlock->getLines();
$originalIndent = WhitespacesAnalyzer::detectIndent($tokens, $docBlockIndex);
$lineEnd = $this->whitespacesConfig->getLineEnding();
- $extraLine = $addWithEmptyLineBeforeAnnotation ? $lineEnd.$originalIndent.' *' : '';
- array_splice($lines, -1, 0, $originalIndent.' *'.$extraLine.' @'.$annotation.$lineEnd);
+ array_splice($lines, -1, 0, $originalIndent.' * @'.$annotation.$lineEnd);
return $lines;
}
@@ -159,7 +265,7 @@ private function addInternalAnnotation(DocBlock $docBlock, Tokens $tokens, int $
private function makeDocBlockMultiLineIfNeeded(DocBlock $doc, Tokens $tokens, int $docBlockIndex, string $annotation): DocBlock
{
$lines = $doc->getLines();
- if (1 === \count($lines) && empty($doc->getAnnotationsOfType($annotation))) {
+ if (1 === \count($lines) && [] === $doc->getAnnotationsOfType($annotation)) {
$indent = WhitespacesAnalyzer::detectIndent($tokens, $tokens->getNextNonWhitespace($docBlockIndex));
$doc->makeMultiLine($indent, $this->whitespacesConfig->getLineEnding());
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php
new file mode 100644
index 00000000..1897e042
--- /dev/null
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php
@@ -0,0 +1,264 @@
+
+ * Dariusz Rumiński
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace PhpCsFixer\Fixer;
+
+use PhpCsFixer\AbstractFixer;
+use PhpCsFixer\Tokenizer\Analyzer\AlternativeSyntaxAnalyzer;
+use PhpCsFixer\Tokenizer\Analyzer\RangeAnalyzer;
+use PhpCsFixer\Tokenizer\CT;
+use PhpCsFixer\Tokenizer\Token;
+use PhpCsFixer\Tokenizer\Tokens;
+
+/**
+ * @internal
+ */
+abstract class AbstractShortOperatorFixer extends AbstractFixer
+{
+ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
+ {
+ $alternativeSyntaxAnalyzer = new AlternativeSyntaxAnalyzer();
+
+ for ($index = \count($tokens) - 1; $index > 3; --$index) {
+ if (!$this->isOperatorTokenCandidate($tokens, $index)) {
+ continue;
+ }
+
+ // get what is before the operator
+
+ $beforeRange = $this->getBeforeOperatorRange($tokens, $index);
+ $equalsIndex = $tokens->getPrevMeaningfulToken($beforeRange['start']);
+
+ // make sure that before that is '='
+
+ if (!$tokens[$equalsIndex]->equals('=')) {
+ continue;
+ }
+
+ // get and check what is before '='
+
+ $assignRange = $this->getBeforeOperatorRange($tokens, $equalsIndex);
+ $beforeAssignmentIndex = $tokens->getPrevMeaningfulToken($assignRange['start']);
+
+ if ($tokens[$beforeAssignmentIndex]->equals(':')) {
+ if (!$this->belongsToSwitchOrAlternativeSyntax($alternativeSyntaxAnalyzer, $tokens, $beforeAssignmentIndex)) {
+ continue;
+ }
+ } elseif (!$tokens[$beforeAssignmentIndex]->equalsAny([';', '{', '}', '(', ')', ',', [T_OPEN_TAG], [T_RETURN]])) {
+ continue;
+ }
+
+ // check if "assign" and "before" the operator are (functionally) the same
+
+ if (RangeAnalyzer::rangeEqualsRange($tokens, $assignRange, $beforeRange)) {
+ $this->shortenOperation($tokens, $equalsIndex, $index, $assignRange, $beforeRange);
+
+ continue;
+ }
+
+ if (!$this->isOperatorCommutative($tokens[$index])) {
+ continue;
+ }
+
+ $afterRange = $this->getAfterOperatorRange($tokens, $index);
+
+ // check if "assign" and "after" the operator are (functionally) the same
+ if (!RangeAnalyzer::rangeEqualsRange($tokens, $assignRange, $afterRange)) {
+ continue;
+ }
+
+ $this->shortenOperation($tokens, $equalsIndex, $index, $assignRange, $afterRange);
+ }
+ }
+
+ abstract protected function getReplacementToken(Token $token): Token;
+
+ abstract protected function isOperatorTokenCandidate(Tokens $tokens, int $index): bool;
+
+ /**
+ * @param array{start: int, end: int} $assignRange
+ * @param array{start: int, end: int} $operatorRange
+ */
+ private function shortenOperation(
+ Tokens $tokens,
+ int $equalsIndex,
+ int $operatorIndex,
+ array $assignRange,
+ array $operatorRange
+ ): void {
+ $tokens[$equalsIndex] = $this->getReplacementToken($tokens[$operatorIndex]);
+ $tokens->clearTokenAndMergeSurroundingWhitespace($operatorIndex);
+ $this->clearMeaningfulFromRange($tokens, $operatorRange);
+
+ foreach ([$equalsIndex, $assignRange['end']] as $i) {
+ $i = $tokens->getNonEmptySibling($i, 1);
+
+ if ($tokens[$i]->isWhitespace(" \t")) {
+ $tokens[$i] = new Token([T_WHITESPACE, ' ']);
+ } elseif (!$tokens[$i]->isWhitespace()) {
+ $tokens->insertAt($i, new Token([T_WHITESPACE, ' ']));
+ }
+ }
+ }
+
+ /**
+ * @return array{start: int, end: int}
+ */
+ private function getAfterOperatorRange(Tokens $tokens, int $index): array
+ {
+ $index = $tokens->getNextMeaningfulToken($index);
+ $range = ['start' => $index];
+
+ while (true) {
+ $nextIndex = $tokens->getNextMeaningfulToken($index);
+
+ if (null === $nextIndex || $tokens[$nextIndex]->equalsAny([';', ',', [T_CLOSE_TAG]])) {
+ break;
+ }
+
+ $blockType = Tokens::detectBlockType($tokens[$nextIndex]);
+
+ if (null === $blockType) {
+ $index = $nextIndex;
+
+ continue;
+ }
+
+ if (false === $blockType['isStart']) {
+ break;
+ }
+
+ $index = $tokens->findBlockEnd($blockType['type'], $nextIndex);
+ }
+
+ $range['end'] = $index;
+
+ return $range;
+ }
+
+ /**
+ * @return array{start: int, end: int}
+ */
+ private function getBeforeOperatorRange(Tokens $tokens, int $index): array
+ {
+ static $blockOpenTypes;
+
+ if (null === $blockOpenTypes) {
+ $blockOpenTypes = [',']; // not a true "block type", but speeds up things
+
+ foreach (Tokens::getBlockEdgeDefinitions() as $definition) {
+ $blockOpenTypes[] = $definition['start'];
+ }
+ }
+
+ $controlStructureWithoutBracesTypes = [T_IF, T_ELSE, T_ELSEIF, T_FOR, T_FOREACH, T_WHILE];
+
+ $previousIndex = $tokens->getPrevMeaningfulToken($index);
+ $previousToken = $tokens[$previousIndex];
+
+ if ($tokens[$previousIndex]->equalsAny($blockOpenTypes)) {
+ return ['start' => $index, 'end' => $index];
+ }
+
+ $range = ['end' => $previousIndex];
+ $index = $previousIndex;
+
+ while ($previousToken->equalsAny([
+ '$',
+ ']',
+ ')',
+ [CT::T_ARRAY_INDEX_CURLY_BRACE_CLOSE],
+ [CT::T_DYNAMIC_PROP_BRACE_CLOSE],
+ [CT::T_DYNAMIC_VAR_BRACE_CLOSE],
+ [T_NS_SEPARATOR],
+ [T_STRING],
+ [T_VARIABLE],
+ ])) {
+ $blockType = Tokens::detectBlockType($previousToken);
+
+ if (null !== $blockType) {
+ $blockStart = $tokens->findBlockStart($blockType['type'], $previousIndex);
+
+ if ($tokens[$previousIndex]->equals(')') && $tokens[$tokens->getPrevMeaningfulToken($blockStart)]->isGivenKind($controlStructureWithoutBracesTypes)) {
+ break; // we went too far back
+ }
+
+ $previousIndex = $blockStart;
+ }
+
+ $index = $previousIndex;
+ $previousIndex = $tokens->getPrevMeaningfulToken($previousIndex);
+ $previousToken = $tokens[$previousIndex];
+ }
+
+ if ($previousToken->isGivenKind(T_OBJECT_OPERATOR)) {
+ $index = $this->getBeforeOperatorRange($tokens, $previousIndex)['start'];
+ } elseif ($previousToken->isGivenKind(T_PAAMAYIM_NEKUDOTAYIM)) {
+ $index = $this->getBeforeOperatorRange($tokens, $tokens->getPrevMeaningfulToken($previousIndex))['start'];
+ }
+
+ $range['start'] = $index;
+
+ return $range;
+ }
+
+ /**
+ * @param array{start: int, end: int} $range
+ */
+ private function clearMeaningfulFromRange(Tokens $tokens, array $range): void
+ {
+ // $range['end'] must be meaningful!
+ for ($i = $range['end']; $i >= $range['start']; $i = $tokens->getPrevMeaningfulToken($i)) {
+ $tokens->clearTokenAndMergeSurroundingWhitespace($i);
+ }
+ }
+
+ private function isOperatorCommutative(Token $operatorToken): bool
+ {
+ static $commutativeKinds = ['*', '|', '&', '^']; // note that for arrays in PHP `+` is not commutative
+ static $nonCommutativeKinds = ['-', '/', '.', '%', '+'];
+
+ if ($operatorToken->isGivenKind(T_COALESCE)) {
+ return false;
+ }
+
+ if ($operatorToken->equalsAny($commutativeKinds)) {
+ return true;
+ }
+
+ if ($operatorToken->equalsAny($nonCommutativeKinds)) {
+ return false;
+ }
+
+ throw new \InvalidArgumentException(\sprintf('Not supported operator "%s".', $operatorToken->toJson()));
+ }
+
+ private function belongsToSwitchOrAlternativeSyntax(AlternativeSyntaxAnalyzer $alternativeSyntaxAnalyzer, Tokens $tokens, int $index): bool
+ {
+ $candidate = $index;
+ $index = $tokens->getPrevMeaningfulToken($candidate);
+
+ if ($tokens[$index]->isGivenKind(T_DEFAULT)) {
+ return true;
+ }
+
+ $index = $tokens->getPrevMeaningfulToken($index);
+
+ if ($tokens[$index]->isGivenKind(T_CASE)) {
+ return true;
+ }
+
+ return $alternativeSyntaxAnalyzer->belongsToAlternativeSyntax($tokens, $candidate);
+ }
+}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php
index 9f4c05d4..9023bbd3 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php
@@ -25,9 +25,6 @@
final class ArrayPushFixer extends AbstractFixer
{
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -38,17 +35,11 @@ public function getDefinition(): FixerDefinitionInterface
);
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_STRING) && $tokens->count() > 7;
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return true;
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php
index eca32ba6..70865e6c 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php
@@ -27,17 +27,11 @@
*/
final class BacktickToShellExecFixer extends AbstractFixer
{
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound('`');
}
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -45,11 +39,11 @@ public function getDefinition(): FixerDefinitionInterface
[
new CodeSample(
<<<'EOT'
-call()}`;
+ call()}`;
-EOT
+ EOT
),
],
'Conversion is done only when it is non risky, so when special chars like single-quotes, double-quotes and backticks are not used inside the command.'
@@ -59,16 +53,13 @@ public function getDefinition(): FixerDefinitionInterface
/**
* {@inheritdoc}
*
- * Must run before EscapeImplicitBackslashesFixer, ExplicitStringVariableFixer, NativeFunctionInvocationFixer, SingleQuoteFixer.
+ * Must run before ExplicitStringVariableFixer, NativeFunctionInvocationFixer, SingleQuoteFixer.
*/
public function getPriority(): int
{
return 17;
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$backtickStarted = false;
@@ -104,9 +95,8 @@ private function fixBackticks(Tokens $tokens, array $backtickTokens): void
{
// Track indices for final override
ksort($backtickTokens);
- $openingBacktickIndex = key($backtickTokens);
- end($backtickTokens);
- $closingBacktickIndex = key($backtickTokens);
+ $openingBacktickIndex = array_key_first($backtickTokens);
+ $closingBacktickIndex = array_key_last($backtickTokens);
// Strip enclosing backticks
array_shift($backtickTokens);
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php
index 7058032b..f7579861 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php
@@ -33,7 +33,7 @@ final class EregToPregFixer extends AbstractFixer
* @var list> the list of the ext/ereg function names, their preg equivalent and the preg modifier(s), if any
* all condensed in an array of arrays
*/
- private static array $functions = [
+ private const FUNCTIONS = [
['ereg', 'preg_match', ''],
['eregi', 'preg_match', 'i'],
['ereg_replace', 'preg_replace', ''],
@@ -47,9 +47,6 @@ final class EregToPregFixer extends AbstractFixer
*/
private static array $delimiters = ['/', '#', '!'];
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -70,31 +67,22 @@ public function getPriority(): int
return 0;
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_STRING);
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return true;
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$end = $tokens->count() - 1;
$functionsAnalyzer = new FunctionsAnalyzer();
- foreach (self::$functions as $map) {
+ foreach (self::FUNCTIONS as $map) {
// the sequence is the function name, followed by "(" and a quoted string
$seq = [[T_STRING, $map[0]], '(', [T_CONSTANT_ENCAPSED_STRING]];
$currIndex = 0;
@@ -109,7 +97,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
// findSequence also returns the tokens, but we're only interested in the indices, i.e.:
// 0 => function name,
- // 1 => bracket "("
+ // 1 => parenthesis "("
// 2 => quoted string passed as 1st parameter
$match = array_keys($match);
@@ -200,6 +188,6 @@ private function getBestDelimiter(string $pattern): string
return $a[0] <=> $b[0];
});
- return key($delimiters);
+ return array_key_first($delimiters);
}
}
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/MbStrFunctionsFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/MbStrFunctionsFixer.php
index 514352aa..1cbbd874 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/MbStrFunctionsFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/MbStrFunctionsFixer.php
@@ -69,17 +69,22 @@ public function __construct()
{
parent::__construct();
+ if (\PHP_VERSION_ID >= 8_03_00) {
+ self::$functionsMap['str_pad'] = ['alternativeName' => 'mb_str_pad', 'argumentCount' => [1, 2, 3, 4]];
+ }
+
+ if (\PHP_VERSION_ID >= 8_04_00) {
+ self::$functionsMap['trim'] = ['alternativeName' => 'mb_trim', 'argumentCount' => [1, 2]];
+ self::$functionsMap['ltrim'] = ['alternativeName' => 'mb_ltrim', 'argumentCount' => [1, 2]];
+ self::$functionsMap['rtrim'] = ['alternativeName' => 'mb_rtrim', 'argumentCount' => [1, 2]];
+ }
+
$this->functions = array_filter(
self::$functionsMap,
- static function (array $mapping): bool {
- return (new \ReflectionFunction($mapping['alternativeName']))->isInternal();
- }
+ static fn (array $mapping): bool => (new \ReflectionFunction($mapping['alternativeName']))->isInternal()
);
}
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -107,9 +112,6 @@ public function getDefinition(): FixerDefinitionInterface
);
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$argumentsAnalyzer = new ArgumentsAnalyzer();
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ModernizeStrposFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ModernizeStrposFixer.php
index 3ec0ec64..7842f541 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ModernizeStrposFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/ModernizeStrposFixer.php
@@ -15,6 +15,11 @@
namespace PhpCsFixer\Fixer\Alias;
use PhpCsFixer\AbstractFixer;
+use PhpCsFixer\Fixer\ConfigurableFixerInterface;
+use PhpCsFixer\Fixer\ConfigurableFixerTrait;
+use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
+use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
+use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;
@@ -25,9 +30,21 @@
/**
* @author Alexander M. Turek
+ *
+ * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration>
+ *
+ * @phpstan-type _AutogeneratedInputConfiguration array{
+ * modernize_stripos?: bool
+ * }
+ * @phpstan-type _AutogeneratedComputedConfiguration array{
+ * modernize_stripos: bool
+ * }
*/
-final class ModernizeStrposFixer extends AbstractFixer
+final class ModernizeStrposFixer extends AbstractFixer implements ConfigurableFixerInterface
{
+ /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */
+ use ConfigurableFixerTrait;
+
private const REPLACEMENTS = [
[
'operator' => [T_IS_IDENTICAL, '==='],
@@ -55,10 +72,12 @@ final class ModernizeStrposFixer extends AbstractFixer
],
];
+ private bool $modernizeStripos = false;
+
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
- 'Replace `strpos()` calls with `str_starts_with()` or `str_contains()` if possible.',
+ 'Replace `strpos()` and `stripos()` calls with `str_starts_with()` or `str_contains()` if possible.',
[
new CodeSample(
' true]
),
],
null,
- 'Risky if `strpos`, `str_starts_with` or `str_contains` functions are overridden.'
+ 'Risky if `strpos`, `stripos`, `str_starts_with`, `str_contains` or `strtolower` functions are overridden.'
);
}
/**
* {@inheritdoc}
*
- * Must run before BinaryOperatorSpacesFixer, NoExtraBlankLinesFixer, NoSpacesInsideParenthesisFixer, NoTrailingWhitespaceFixer, NotOperatorWithSpaceFixer, NotOperatorWithSuccessorSpaceFixer, PhpUnitDedicateAssertFixer, SingleSpaceAfterConstructFixer, SingleSpaceAroundConstructFixer.
+ * Must run before BinaryOperatorSpacesFixer, NoExtraBlankLinesFixer, NoSpacesInsideParenthesisFixer, NoTrailingWhitespaceFixer, NotOperatorWithSpaceFixer, NotOperatorWithSuccessorSpaceFixer, PhpUnitDedicateAssertFixer, SingleSpaceAfterConstructFixer, SingleSpaceAroundConstructFixer, SpacesInsideParenthesesFixer.
* Must run after StrictComparisonFixer.
*/
public function getPriority(): int
@@ -95,14 +127,36 @@ public function isRisky(): bool
return true;
}
+ protected function configurePostNormalisation(): void
+ {
+ if (isset($this->configuration['modernize_stripos']) && true === $this->configuration['modernize_stripos']) {
+ $this->modernizeStripos = true;
+ }
+ }
+
+ protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
+ {
+ return new FixerConfigurationResolver([
+ (new FixerOptionBuilder('modernize_stripos', 'Whether to modernize `stripos` calls as well.'))
+ ->setAllowedTypes(['bool'])
+ ->setDefault(false) // @TODO change to "true" on next major 4.0
+ ->getOption(),
+ ]);
+ }
+
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$functionsAnalyzer = new FunctionsAnalyzer();
$argumentsAnalyzer = new ArgumentsAnalyzer();
+ $modernizeCandidates = [[T_STRING, 'strpos']];
+ if ($this->modernizeStripos) {
+ $modernizeCandidates[] = [T_STRING, 'stripos'];
+ }
+
for ($index = \count($tokens) - 1; $index > 0; --$index) {
// find candidate function call
- if (!$tokens[$index]->equals([T_STRING, 'strpos'], false) || !$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
+ if (!$tokens[$index]->equalsAny($modernizeCandidates, false) || !$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
continue;
}
@@ -123,7 +177,8 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
}
if (null !== $compareTokens) {
- $this->fixCall($tokens, $index, $compareTokens);
+ $isCaseInsensitive = $tokens[$index]->equals([T_STRING, 'stripos'], false);
+ $this->fixCall($tokens, $index, $compareTokens, $isCaseInsensitive);
}
}
}
@@ -131,7 +186,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
/**
* @param array{operator_index: int, operand_index: int} $operatorIndices
*/
- private function fixCall(Tokens $tokens, int $functionIndex, array $operatorIndices): void
+ private function fixCall(Tokens $tokens, int $functionIndex, array $operatorIndices, bool $isCaseInsensitive): void
{
foreach (self::REPLACEMENTS as $replacement) {
if (!$tokens[$operatorIndices['operator_index']]->equals($replacement['operator'])) {
@@ -160,10 +215,60 @@ private function fixCall(Tokens $tokens, int $functionIndex, array $operatorIndi
$tokens->insertAt($functionIndex, new Token($replacement['replacement']));
+ if ($isCaseInsensitive) {
+ $this->wrapArgumentsWithStrToLower($tokens, $functionIndex);
+ }
+
break;
}
}
+ private function wrapArgumentsWithStrToLower(Tokens $tokens, int $functionIndex): void
+ {
+ $argumentsAnalyzer = new ArgumentsAnalyzer();
+ $shouldAddNamespace = $tokens[$functionIndex - 1]->isGivenKind(T_NS_SEPARATOR);
+
+ $openIndex = $tokens->getNextMeaningfulToken($functionIndex);
+ $closeIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $openIndex);
+ $arguments = $argumentsAnalyzer->getArguments($tokens, $openIndex, $closeIndex);
+
+ $firstArgumentIndexStart = array_key_first($arguments);
+ if (!isset($arguments[$firstArgumentIndexStart])) {
+ return;
+ }
+ $firstArgumentIndexEnd = $arguments[$firstArgumentIndexStart] + 3 + ($shouldAddNamespace ? 1 : 0);
+
+ $isSecondArgumentTokenWhiteSpace = $tokens[array_key_last($arguments)]->isGivenKind(T_WHITESPACE);
+
+ if ($isSecondArgumentTokenWhiteSpace) {
+ $secondArgumentIndexStart = $tokens->getNextMeaningfulToken(array_key_last($arguments));
+ } else {
+ $secondArgumentIndexStart = array_key_last($arguments);
+ }
+
+ $secondArgumentIndexStart += 3 + ($shouldAddNamespace ? 1 : 0);
+ if (!isset($arguments[array_key_last($arguments)])) {
+ return;
+ }
+ $secondArgumentIndexEnd = $arguments[array_key_last($arguments)] + 6 + ($shouldAddNamespace ? 1 : 0) + ($isSecondArgumentTokenWhiteSpace ? 1 : 0);
+
+ if ($shouldAddNamespace) {
+ $tokens->insertAt($firstArgumentIndexStart, new Token([T_NS_SEPARATOR, '\\']));
+ ++$firstArgumentIndexStart;
+ }
+
+ $tokens->insertAt($firstArgumentIndexStart, [new Token([T_STRING, 'strtolower']), new Token('(')]);
+ $tokens->insertAt($firstArgumentIndexEnd, new Token(')'));
+
+ if ($shouldAddNamespace) {
+ $tokens->insertAt($secondArgumentIndexStart, new Token([T_NS_SEPARATOR, '\\']));
+ ++$secondArgumentIndexStart;
+ }
+
+ $tokens->insertAt($secondArgumentIndexStart, [new Token([T_STRING, 'strtolower']), new Token('(')]);
+ $tokens->insertAt($secondArgumentIndexEnd, new Token(')'));
+ }
+
/**
* @param -1|1 $direction
*
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php
index 315d2be1..efd042cf 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php
@@ -16,6 +16,7 @@
use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
+use PhpCsFixer\Fixer\ConfigurableFixerTrait;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
@@ -31,9 +32,21 @@
/**
* @author Vladimir Reznichenko
* @author Dariusz Rumiński
+ *
+ * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration>
+ *
+ * @phpstan-type _AutogeneratedInputConfiguration array{
+ * sets?: list<'@all'|'@exif'|'@ftp'|'@IMAP'|'@internal'|'@ldap'|'@mbreg'|'@mysqli'|'@oci'|'@odbc'|'@openssl'|'@pcntl'|'@pg'|'@posix'|'@snmp'|'@sodium'|'@time'>
+ * }
+ * @phpstan-type _AutogeneratedComputedConfiguration array{
+ * sets: list<'@all'|'@exif'|'@ftp'|'@IMAP'|'@internal'|'@ldap'|'@mbreg'|'@mysqli'|'@oci'|'@odbc'|'@openssl'|'@pcntl'|'@pg'|'@posix'|'@snmp'|'@sodium'|'@time'>
+ * }
*/
final class NoAliasFunctionsFixer extends AbstractFixer implements ConfigurableFixerInterface
{
+ /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */
+ use ConfigurableFixerTrait;
+
private const SETS = [
'@internal' => [
'diskfreespace' => 'disk_free_space',
@@ -156,30 +169,10 @@ final class NoAliasFunctionsFixer extends AbstractFixer implements ConfigurableF
];
/**
- * @var array|string> stores alias (key) - master (value) functions mapping
+ * @var array stores alias (key) - master (value) functions mapping
*/
private array $aliases = [];
- public function configure(array $configuration): void
- {
- parent::configure($configuration);
-
- $this->aliases = [];
-
- foreach ($this->configuration['sets'] as $set) {
- if ('@all' === $set) {
- $this->aliases = array_merge(...array_values(self::SETS));
-
- break;
- }
-
- $this->aliases = array_merge($this->aliases, self::SETS[$set]);
- }
- }
-
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -233,25 +226,35 @@ public function getPriority(): int
return 40;
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_STRING);
}
- /**
- * {@inheritdoc}
- */
public function isRisky(): bool
{
return true;
}
- /**
- * {@inheritdoc}
- */
+ protected function configurePostNormalisation(): void
+ {
+ $this->aliases = [];
+
+ foreach ($this->configuration['sets'] as $set) {
+ if ('@all' === $set) {
+ $this->aliases = array_merge(...array_values(self::SETS));
+
+ break;
+ }
+
+ if (!isset(self::SETS[$set])) {
+ throw new \LogicException(\sprintf('Set %s passed option validation, but not part of ::SETS.', $set));
+ }
+
+ $this->aliases = array_merge($this->aliases, self::SETS[$set]);
+ }
+ }
+
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$functionsAnalyzer = new FunctionsAnalyzer();
@@ -293,9 +296,6 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
}
}
- /**
- * {@inheritdoc}
- */
protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
{
$sets = [
@@ -321,14 +321,14 @@ protected function createConfigurationDefinition(): FixerConfigurationResolverIn
$list = "List of sets to fix. Defined sets are:\n\n";
foreach ($sets as $set => $description) {
- $list .= sprintf("* `%s` (%s);\n", $set, $description);
+ $list .= \sprintf("* `%s` (%s);\n", $set, $description);
}
$list = rtrim($list, ";\n").'.';
return new FixerConfigurationResolver([
(new FixerOptionBuilder('sets', $list))
- ->setAllowedTypes(['array'])
+ ->setAllowedTypes(['string[]'])
->setAllowedValues([new AllowedValueSubset(array_keys($sets))])
->setDefault(['@internal', '@IMAP', '@pg'])
->getOption(),
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasLanguageConstructCallFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasLanguageConstructCallFixer.php
index 357fa228..4df764ab 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasLanguageConstructCallFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasLanguageConstructCallFixer.php
@@ -23,9 +23,6 @@
final class NoAliasLanguageConstructCallFixer extends AbstractFixer
{
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -40,17 +37,11 @@ public function getDefinition(): FixerDefinitionInterface
);
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound(T_EXIT);
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
foreach ($tokens as $index => $token) {
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php
index 46782415..7a0292fe 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php
@@ -16,6 +16,7 @@
use PhpCsFixer\AbstractFixer;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
+use PhpCsFixer\Fixer\ConfigurableFixerTrait;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
use PhpCsFixer\FixerConfiguration\FixerOptionBuilder;
@@ -28,38 +29,26 @@
/**
* @author Sullivan Senechal
+ *
+ * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration>
+ *
+ * @phpstan-type _AutogeneratedInputConfiguration array{
+ * use?: 'echo'|'print'
+ * }
+ * @phpstan-type _AutogeneratedComputedConfiguration array{
+ * use: 'echo'|'print'
+ * }
*/
final class NoMixedEchoPrintFixer extends AbstractFixer implements ConfigurableFixerInterface
{
- /**
- * @var string
- */
- private $callBack;
+ /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */
+ use ConfigurableFixerTrait;
/**
- * @var int T_ECHO or T_PRINT
+ * @var T_ECHO|T_PRINT
*/
- private $candidateTokenType;
+ private int $candidateTokenType;
- /**
- * {@inheritdoc}
- */
- public function configure(array $configuration): void
- {
- parent::configure($configuration);
-
- if ('echo' === $this->configuration['use']) {
- $this->candidateTokenType = T_PRINT;
- $this->callBack = 'fixPrintToEcho';
- } else {
- $this->candidateTokenType = T_ECHO;
- $this->callBack = 'fixEchoToPrint';
- }
- }
-
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -81,30 +70,29 @@ public function getPriority(): int
return -10;
}
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound($this->candidateTokenType);
}
- /**
- * {@inheritdoc}
- */
+ protected function configurePostNormalisation(): void
+ {
+ $this->candidateTokenType = 'echo' === $this->configuration['use'] ? T_PRINT : T_ECHO;
+ }
+
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
- $callBack = $this->callBack;
foreach ($tokens as $index => $token) {
if ($token->isGivenKind($this->candidateTokenType)) {
- $this->{$callBack}($tokens, $index);
+ if (T_PRINT === $this->candidateTokenType) {
+ $this->fixPrintToEcho($tokens, $index);
+ } else {
+ $this->fixEchoToPrint($tokens, $index);
+ }
}
}
}
- /**
- * {@inheritdoc}
- */
protected function createConfigurationDefinition(): FixerConfigurationResolverInterface
{
return new FixerConfigurationResolver([
diff --git a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/PowToExponentiationFixer.php b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/PowToExponentiationFixer.php
index 30386770..84e68090 100644
--- a/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/PowToExponentiationFixer.php
+++ b/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/PowToExponentiationFixer.php
@@ -25,18 +25,12 @@
final class PowToExponentiationFixer extends AbstractFunctionReferenceFixer
{
- /**
- * {@inheritdoc}
- */
public function isCandidate(Tokens $tokens): bool
{
// minimal candidate to fix is seven tokens: pow(x,y);
return $tokens->count() > 7 && $tokens->isTokenKindFound(T_STRING);
}
- /**
- * {@inheritdoc}
- */
public function getDefinition(): FixerDefinitionInterface
{
return new FixerDefinition(
@@ -54,16 +48,13 @@ public function getDefinition(): FixerDefinitionInterface
/**
* {@inheritdoc}
*
- * Must run before BinaryOperatorSpacesFixer, MethodArgumentSpaceFixer, NativeFunctionCasingFixer, NoSpacesAfterFunctionNameFixer, NoSpacesInsideParenthesisFixer.
+ * Must run before BinaryOperatorSpacesFixer, MethodArgumentSpaceFixer, NativeFunctionCasingFixer, NoSpacesAfterFunctionNameFixer, NoSpacesInsideParenthesisFixer, SpacesInsideParenthesesFixer.
*/
public function getPriority(): int
{
return 32;
}
- /**
- * {@inheritdoc}
- */
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
$candidates = $this->findPowCalls($tokens);
@@ -106,7 +97,7 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
}
/**
- * @return array
+ * @return list
*/
private function findPowCalls(Tokens $tokens): array
{
@@ -214,17 +205,15 @@ private function isParenthesisNeeded(Tokens $tokens, int $argumentStartIndex, in
}
/**
- * @return int[]
+ * @return list