diff --git a/.env b/.env index 8d761e49..08c6572b 100755 --- a/.env +++ b/.env @@ -29,6 +29,10 @@ app.baseURL = 'http://localhost/ria/' #-------------------------------------------------------------------- # DATABASE #-------------------------------------------------------------------- +# database.default.hostname = 'vprodb1.mysql.database.azure.com' +# database.default.database = 'ria_prod' +# database.default.username = 'dbroot' +# database.default.password = 'root@DB23' database.default.hostname = '119.18.54.85' database.default.database = 'venbaehn_ria' diff --git a/app/Controllers/Purchaseorder.php b/app/Controllers/Purchaseorder.php index be3dd064..6caa2015 100644 --- a/app/Controllers/Purchaseorder.php +++ b/app/Controllers/Purchaseorder.php @@ -344,7 +344,10 @@ class Purchaseorder extends BaseController $data['TotalAmountInWords'] = $this->convertNumber($totalAmt); $data['RequistionDetails'] = $this->purchaseorder_model->GetPdfRequistionDetails($PONO); - +// echo '
';
+// print_r($data);
+// echo '
'; +// die; $mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4', 'default_font' => 'sans-serif', @@ -380,7 +383,7 @@ $mpdf->use_kwt = true; // $html = view('pdf_view', $data); // $mpdf->WriteHTML($html); // Use WriteHTML() method to add body content $html = view('po_pdf', $data); - //echo $html;die; + // echo $html;die; $mpdf->WriteHTML($html); // Use WriteHTML() method to add body content // Set HTML footer diff --git a/app/Views/editRevenuepurchaseorder.php b/app/Views/editRevenuepurchaseorder.php index 10070e49..61d2a6ae 100644 --- a/app/Views/editRevenuepurchaseorder.php +++ b/app/Views/editRevenuepurchaseorder.php @@ -3201,10 +3201,13 @@ if (!empty($getlogpodtl)) { - + + +
+
@@ -3233,29 +3236,10 @@ if (!empty($getlogpodtl)) { ?>
- -
- -
- 'ViewCGST', 'value' => set_value('tViewCGST'), 'id' => 'ViewCGST', 'class' => 'form-control num', 'onkeypress' => 'return isNumberKey(event);', 'onchange' => 'calculateCST(0);', 'readonly' => 'true',); - echo form_input($data); - ?> -
-
-
- -
- 'ViewAfterCGST', 'value' => set_value('ViewAfterCGST'), 'id' => 'ViewAfterCGST', 'class' => 'form-control num', 'readonly' => 'true'); - echo form_input($data); - ?> -
-
-
+
@@ -3284,51 +3268,11 @@ if (!empty($getlogpodtl)) { ?>
-
-
- -
- 'ViewSGST', 'value' => set_value('ViewSGST'), 'id' => 'ViewSGST', 'class' => 'form-control num', 'onkeypress' => 'return isNumberKey(event);', 'onchange' => 'calculateGST(0);', 'readonly' => 'true'); - echo form_input($data); - ?> -
-
-
- -
- 'ViewAfterSGST', 'value' => set_value('ViewAfterSGST'), 'id' => 'ViewAfterSGST', 'class' => 'form-control num', 'readonly' => 'true'); - echo form_input($data); - ?> -
-
-
- -
-
+
+
+
+ +
+
+
+ +
+ 'ViewCGST', 'value' => set_value('tViewCGST'), 'id' => 'ViewCGST', 'class' => 'form-control num', 'onkeypress' => 'return isNumberKey(event);', 'onchange' => 'calculateCST(0);', 'readonly' => 'true',); + echo form_input($data); + ?> +
+
+
+ +
+ 'ViewAfterCGST', 'value' => set_value('ViewAfterCGST'), 'id' => 'ViewAfterCGST', 'class' => 'form-control num', 'readonly' => 'true'); + echo form_input($data); + ?> +
+
+
+ +
+
+
+
+ +
+ 'ViewSGST', 'value' => set_value('ViewSGST'), 'id' => 'ViewSGST', 'class' => 'form-control num', 'onkeypress' => 'return isNumberKey(event);', 'onchange' => 'calculateGST(0);', 'readonly' => 'true'); + echo form_input($data); + ?> +
+
+
+ +
+ 'ViewAfterSGST', 'value' => set_value('ViewAfterSGST'), 'id' => 'ViewAfterSGST', 'class' => 'form-control num', 'readonly' => 'true'); + echo form_input($data); + ?> +
+
+
+ +
+ +
+
@@ -3383,12 +3397,10 @@ if (!empty($getlogpodtl)) { ?>
- -
-
+
'standalone', ], 'method_chaining_indentation' => true, - 'modernize_strpos' => false, // requires 8.0+ + 'modernize_strpos' => true, 'modernize_types_casting' => true, 'multiline_comment_opening_closing' => true, 'multiline_string_to_heredoc' => false, @@ -344,13 +344,13 @@ final class CodeIgniter4 extends AbstractRuleset 'normalize_index_brace' => true, 'not_operator_with_space' => false, 'not_operator_with_successor_space' => true, - 'nullable_type_declaration' => false, // requires 8.0+ + 'nullable_type_declaration' => ['syntax' => 'question_mark'], 'nullable_type_declaration_for_default_null_value' => true, 'numeric_literal_separator' => false, 'object_operator_without_whitespace' => true, 'octal_notation' => false, // requires 8.1+ 'operator_linebreak' => ['only_booleans' => true, 'position' => 'beginning'], - 'ordered_attributes' => false, // requires 8.0+ + 'ordered_attributes' => ['order' => [], 'sort_algorithm' => 'alpha'], 'ordered_class_elements' => [ 'order' => [ 'use_trait', @@ -366,10 +366,14 @@ final class CodeIgniter4 extends AbstractRuleset 'imports_order' => ['class', 'function', 'const'], 'case_sensitive' => false, ], - 'ordered_interfaces' => false, - 'ordered_traits' => false, - 'ordered_types' => false, // requires 8.0+ - 'php_unit_attributes' => false, // requires 8.1+ + 'ordered_interfaces' => false, + 'ordered_traits' => false, + 'ordered_types' => [ + 'null_adjustment' => 'always_last', + 'sort_algorithm' => 'alpha', + 'case_sensitive' => false, + ], + 'php_unit_attributes' => true, 'php_unit_construct' => [ 'assertions' => [ 'assertSame', @@ -689,7 +693,7 @@ final class CodeIgniter4 extends AbstractRuleset ], ]; - $this->requiredPHPVersion = 70400; + $this->requiredPHPVersion = 80100; $this->autoActivateIsRiskyAllowed = true; } diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 7824d8f7..fd56bd7d 100755 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -45,34 +45,35 @@ class ClassLoader /** @var \Closure(string):void */ private static $includeFile; - /** @var string|null */ + /** @var ?string */ private $vendorDir; // PSR-4 /** - * @var array> + * @var array[] + * @psalm-var array> */ private $prefixLengthsPsr4 = array(); /** - * @var array> + * @var array[] + * @psalm-var array> */ private $prefixDirsPsr4 = array(); /** - * @var list + * @var array[] + * @psalm-var array */ private $fallbackDirsPsr4 = array(); // PSR-0 /** - * List of PSR-0 prefixes - * - * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) - * - * @var array>> + * @var array[] + * @psalm-var array> */ private $prefixesPsr0 = array(); /** - * @var list + * @var array[] + * @psalm-var array */ private $fallbackDirsPsr0 = array(); @@ -80,7 +81,8 @@ class ClassLoader private $useIncludePath = false; /** - * @var array + * @var string[] + * @psalm-var array */ private $classMap = array(); @@ -88,20 +90,21 @@ class ClassLoader private $classMapAuthoritative = false; /** - * @var array + * @var bool[] + * @psalm-var array */ private $missingClasses = array(); - /** @var string|null */ + /** @var ?string */ private $apcuPrefix; /** - * @var array + * @var self[] */ private static $registeredLoaders = array(); /** - * @param string|null $vendorDir + * @param ?string $vendorDir */ public function __construct($vendorDir = null) { @@ -110,7 +113,7 @@ class ClassLoader } /** - * @return array> + * @return string[] */ public function getPrefixes() { @@ -122,7 +125,8 @@ class ClassLoader } /** - * @return array> + * @return array[] + * @psalm-return array> */ public function getPrefixesPsr4() { @@ -130,7 +134,8 @@ class ClassLoader } /** - * @return list + * @return array[] + * @psalm-return array */ public function getFallbackDirs() { @@ -138,7 +143,8 @@ class ClassLoader } /** - * @return list + * @return array[] + * @psalm-return array */ public function getFallbackDirsPsr4() { @@ -146,7 +152,8 @@ class ClassLoader } /** - * @return array Array of classname => path + * @return string[] Array of classname => path + * @psalm-return array */ public function getClassMap() { @@ -154,7 +161,8 @@ class ClassLoader } /** - * @param array $classMap Class to filename map + * @param string[] $classMap Class to filename map + * @psalm-param array $classMap * * @return void */ @@ -171,25 +179,24 @@ class ClassLoader * 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 list|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix + * @param string[]|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( - $paths, + (array) $paths, $this->fallbackDirsPsr0 ); } else { $this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0, - $paths + (array) $paths ); } @@ -198,19 +205,19 @@ class ClassLoader $first = $prefix[0]; if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = $paths; + $this->prefixesPsr0[$first][$prefix] = (array) $paths; return; } if ($prepend) { $this->prefixesPsr0[$first][$prefix] = array_merge( - $paths, + (array) $paths, $this->prefixesPsr0[$first][$prefix] ); } else { $this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix], - $paths + (array) $paths ); } } @@ -219,9 +226,9 @@ class ClassLoader * 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 list|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories + * @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 * * @throws \InvalidArgumentException * @@ -229,18 +236,17 @@ class ClassLoader */ public function addPsr4($prefix, $paths, $prepend = false) { - $paths = (array) $paths; if (!$prefix) { // Register directories for the root namespace. if ($prepend) { $this->fallbackDirsPsr4 = array_merge( - $paths, + (array) $paths, $this->fallbackDirsPsr4 ); } else { $this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4, - $paths + (array) $paths ); } } elseif (!isset($this->prefixDirsPsr4[$prefix])) { @@ -250,18 +256,18 @@ class ClassLoader throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); } $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = $paths; + $this->prefixDirsPsr4[$prefix] = (array) $paths; } elseif ($prepend) { // Prepend directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( - $paths, + (array) $paths, $this->prefixDirsPsr4[$prefix] ); } else { // Append directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix], - $paths + (array) $paths ); } } @@ -270,8 +276,8 @@ class ClassLoader * 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 list|string $paths The PSR-0 base directories + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories * * @return void */ @@ -288,8 +294,8 @@ class ClassLoader * 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 list|string $paths The PSR-4 base directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException * @@ -423,8 +429,7 @@ class ClassLoader public function loadClass($class) { if ($file = $this->findFile($class)) { - $includeFile = self::$includeFile; - $includeFile($file); + (self::$includeFile)($file); return true; } @@ -475,9 +480,9 @@ class ClassLoader } /** - * Returns the currently registered loaders keyed by their corresponding vendor directories. + * Returns the currently registered loaders indexed by their corresponding vendor directories. * - * @return array + * @return self[] */ public static function getRegisteredLoaders() { @@ -555,10 +560,7 @@ class ClassLoader return false; } - /** - * @return void - */ - private static function initializeIncludeClosure() + private static function initializeIncludeClosure(): void { if (self::$includeFile !== null) { return; @@ -572,8 +574,8 @@ class ClassLoader * @param string $file * @return void */ - self::$includeFile = \Closure::bind(static function($file) { + self::$includeFile = static function($file) { include $file; - }, null, null); + }; } } diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 51e734a7..c6b54af7 100755 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -98,7 +98,7 @@ class InstalledVersions { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); } } @@ -119,7 +119,7 @@ class InstalledVersions */ public static function satisfies(VersionParser $parser, $packageName, $constraint) { - $constraint = $parser->parseConstraints((string) $constraint); + $constraint = $parser->parseConstraints($constraint); $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); return $provided->matches($constraint); @@ -328,9 +328,7 @@ class InstalledVersions if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($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; + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { self::$installed = $installed[count($installed) - 1]; } @@ -342,17 +340,12 @@ class InstalledVersions // 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') { - /** @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; + self::$installed = require __DIR__ . '/installed.php'; } else { self::$installed = array(); } } - - if (self::$installed !== array()) { - $installed[] = self::$installed; - } + $installed[] = self::$installed; return $installed; } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 7e78d203..f9e662d4 100755 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1706,12 +1706,11 @@ return array( 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php', 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', 'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\ClassAlreadyExistsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassAlreadyExistsException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsReadonlyException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsReadonlyException.php', @@ -1724,6 +1723,7 @@ return array( 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', 'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', 'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', @@ -1950,7 +1950,7 @@ return array( 'PHPUnit\\Runner\\ClassDoesNotExtendTestCaseException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/ClassDoesNotExtendTestCaseException.php', 'PHPUnit\\Runner\\ClassIsAbstractException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/ClassIsAbstractException.php', 'PHPUnit\\Runner\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/Runner/CodeCoverage.php', - 'PHPUnit\\Runner\\DirectoryCannotBeCreatedException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/DirectoryCannotBeCreatedException.php', + 'PHPUnit\\Runner\\DirectoryDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/DirectoryDoesNotExistException.php', 'PHPUnit\\Runner\\ErrorException' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/ErrorException.php', 'PHPUnit\\Runner\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Runner/ErrorHandler.php', 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception/Exception.php', @@ -2027,6 +2027,7 @@ return array( 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Application' => $vendorDir . '/phpunit/phpunit/src/TextUI/Application.php', + 'PHPUnit\\TextUI\\CannotOpenSocketException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/CannotOpenSocketException.php', 'PHPUnit\\TextUI\\CliArguments\\Builder' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php', 'PHPUnit\\TextUI\\CliArguments\\Configuration' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php', 'PHPUnit\\TextUI\\CliArguments\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Exception.php', @@ -2103,7 +2104,6 @@ return array( 'PHPUnit\\TextUI\\Configuration\\Variable' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Value/Variable.php', 'PHPUnit\\TextUI\\Configuration\\VariableCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Value/VariableCollection.php', 'PHPUnit\\TextUI\\Configuration\\VariableCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Value/VariableCollectionIterator.php', - 'PHPUnit\\TextUI\\DirectoryDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/DirectoryDoesNotExistException.php', 'PHPUnit\\TextUI\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/Exception.php', 'PHPUnit\\TextUI\\ExtensionsNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/ExtensionsNotConfiguredException.php', 'PHPUnit\\TextUI\\Help' => $vendorDir . '/phpunit/phpunit/src/TextUI/Help.php', @@ -2506,6 +2506,7 @@ return array( 'PhpCsFixer\\Fixer\\Comment\\SingleLineCommentSpacingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentSpacingFixer.php', 'PhpCsFixer\\Fixer\\Comment\\SingleLineCommentStyleFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php', 'PhpCsFixer\\Fixer\\ConfigurableFixerInterface' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php', + 'PhpCsFixer\\Fixer\\ConfigurableFixerTrait' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerTrait.php', 'PhpCsFixer\\Fixer\\ConstantNotation\\NativeConstantInvocationFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php', 'PhpCsFixer\\Fixer\\ControlStructure\\ControlStructureBracesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureBracesFixer.php', 'PhpCsFixer\\Fixer\\ControlStructure\\ControlStructureContinuationPositionFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php', @@ -2568,6 +2569,7 @@ return array( 'PhpCsFixer\\Fixer\\Import\\SingleImportPerStatementFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php', 'PhpCsFixer\\Fixer\\Import\\SingleLineAfterImportsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleLineAfterImportsFixer.php', 'PhpCsFixer\\Fixer\\Indentation' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Indentation.php', + 'PhpCsFixer\\Fixer\\InternalFixerInterface' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/InternalFixerInterface.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\ClassKeywordFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordFixer.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\ClassKeywordRemoveFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordRemoveFixer.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\CombineConsecutiveIssetsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/CombineConsecutiveIssetsFixer.php', @@ -4646,7 +4648,6 @@ return array( 'Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessStartFailedException' => $vendorDir . '/symfony/process/Exception/ProcessStartFailedException.php', 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', 'Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', 'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 8c5d5eb0..7058c426 100755 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -7,8 +7,8 @@ $baseDir = dirname($vendorDir); return array( 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/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', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index a3f9170c..de463441 100755 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -34,15 +34,15 @@ class ComposerAutoloaderInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 $loader->register(true); $filesToLoad = \Composer\Autoload\ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2::$files; - $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + $requireFile = static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; require $file; } - }, null, null); + }; foreach ($filesToLoad as $fileIdentifier => $file) { - $requireFile($fileIdentifier, $file); + ($requireFile)($fileIdentifier, $file); } return $loader; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5caa2fbd..4a6b1b54 100755 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -8,8 +8,8 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/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', @@ -2044,12 +2044,11 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php', 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', 'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator\\ClassAlreadyExistsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassAlreadyExistsException.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsReadonlyException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsReadonlyException.php', @@ -2062,6 +2061,7 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', 'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', 'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', + 'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', @@ -2288,7 +2288,7 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PHPUnit\\Runner\\ClassDoesNotExtendTestCaseException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/ClassDoesNotExtendTestCaseException.php', 'PHPUnit\\Runner\\ClassIsAbstractException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/ClassIsAbstractException.php', 'PHPUnit\\Runner\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/CodeCoverage.php', - 'PHPUnit\\Runner\\DirectoryCannotBeCreatedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/DirectoryCannotBeCreatedException.php', + 'PHPUnit\\Runner\\DirectoryDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/DirectoryDoesNotExistException.php', 'PHPUnit\\Runner\\ErrorException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/ErrorException.php', 'PHPUnit\\Runner\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ErrorHandler.php', 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception/Exception.php', @@ -2365,6 +2365,7 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredPhpunitWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredPhpunitWarningSubscriber.php', 'PHPUnit\\TestRunner\\TestResult\\TestTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', 'PHPUnit\\TextUI\\Application' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Application.php', + 'PHPUnit\\TextUI\\CannotOpenSocketException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/CannotOpenSocketException.php', 'PHPUnit\\TextUI\\CliArguments\\Builder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Builder.php', 'PHPUnit\\TextUI\\CliArguments\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Configuration.php', 'PHPUnit\\TextUI\\CliArguments\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Cli/Exception.php', @@ -2441,7 +2442,6 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PHPUnit\\TextUI\\Configuration\\Variable' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Value/Variable.php', 'PHPUnit\\TextUI\\Configuration\\VariableCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Value/VariableCollection.php', 'PHPUnit\\TextUI\\Configuration\\VariableCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Value/VariableCollectionIterator.php', - 'PHPUnit\\TextUI\\DirectoryDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/DirectoryDoesNotExistException.php', 'PHPUnit\\TextUI\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/Exception.php', 'PHPUnit\\TextUI\\ExtensionsNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/ExtensionsNotConfiguredException.php', 'PHPUnit\\TextUI\\Help' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Help.php', @@ -2844,6 +2844,7 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PhpCsFixer\\Fixer\\Comment\\SingleLineCommentSpacingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentSpacingFixer.php', 'PhpCsFixer\\Fixer\\Comment\\SingleLineCommentStyleFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php', 'PhpCsFixer\\Fixer\\ConfigurableFixerInterface' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php', + 'PhpCsFixer\\Fixer\\ConfigurableFixerTrait' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerTrait.php', 'PhpCsFixer\\Fixer\\ConstantNotation\\NativeConstantInvocationFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php', 'PhpCsFixer\\Fixer\\ControlStructure\\ControlStructureBracesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureBracesFixer.php', 'PhpCsFixer\\Fixer\\ControlStructure\\ControlStructureContinuationPositionFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php', @@ -2906,6 +2907,7 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'PhpCsFixer\\Fixer\\Import\\SingleImportPerStatementFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php', 'PhpCsFixer\\Fixer\\Import\\SingleLineAfterImportsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleLineAfterImportsFixer.php', 'PhpCsFixer\\Fixer\\Indentation' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Indentation.php', + 'PhpCsFixer\\Fixer\\InternalFixerInterface' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/InternalFixerInterface.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\ClassKeywordFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordFixer.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\ClassKeywordRemoveFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ClassKeywordRemoveFixer.php', 'PhpCsFixer\\Fixer\\LanguageConstruct\\CombineConsecutiveIssetsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/CombineConsecutiveIssetsFixer.php', @@ -4984,7 +4986,6 @@ class ComposerStaticInitc8496d4dbcc79fa0e3d8c5678a3ba3c2 'Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessStartFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessStartFailedException.php', 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', 'Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', 'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 7b46f53b..9539bd0a 100755 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -69,31 +69,31 @@ }, { "name": "codeigniter/coding-standard", - "version": "v1.7.16", - "version_normalized": "1.7.16.0", + "version": "v1.8.0", + "version_normalized": "1.8.0.0", "source": { "type": "git", "url": "https://github.com/CodeIgniter/coding-standard.git", - "reference": "8b2c0de625e4b5c9d7cd3c0b34bc30fba61a86ea" + "reference": "a523fd030be6360123a88655f39f0eb1650ee4bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CodeIgniter/coding-standard/zipball/8b2c0de625e4b5c9d7cd3c0b34bc30fba61a86ea", - "reference": "8b2c0de625e4b5c9d7cd3c0b34bc30fba61a86ea", + "url": "https://api.github.com/repos/CodeIgniter/coding-standard/zipball/a523fd030be6360123a88655f39f0eb1650ee4bf", + "reference": "a523fd030be6360123a88655f39f0eb1650ee4bf", "shasum": "" }, "require": { "ext-tokenizer": "*", "friendsofphp/php-cs-fixer": "^3.50", - "nexusphp/cs-config": "<=3.18.0", - "php": "^7.4 || ^8.0" + "nexusphp/cs-config": "^3.19.0", + "php": "^8.1" }, "require-dev": { - "nexusphp/tachycardia": "^1.3", + "nexusphp/tachycardia": "^2.1", "phpstan/phpstan": "^1.0", - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^10.5" }, - "time": "2024-05-18T12:39:28+00:00", + "time": "2024-06-16T15:51:42+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -200,17 +200,17 @@ }, { "name": "composer/semver", - "version": "3.4.0", - "version_normalized": "3.4.0.0", + "version": "3.4.2", + "version_normalized": "3.4.2.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", "shasum": "" }, "require": { @@ -220,7 +220,7 @@ "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, - "time": "2023-08-31T09:50:34+00:00", + "time": "2024-07-12T11:35:52+00:00", "type": "library", "extra": { "branch-alias": { @@ -264,7 +264,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.2" }, "funding": [ { @@ -533,17 +533,17 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.58.1", - "version_normalized": "3.58.1.0", + "version": "v3.59.3", + "version_normalized": "3.59.3.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "04e9424025677a86914b9a4944dbbf4060bb0aff" + "reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/04e9424025677a86914b9a4944dbbf4060bb0aff", - "reference": "04e9424025677a86914b9a4944dbbf4060bb0aff", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/30ba9ecc2b0e5205e578fe29973c15653d9bfd29", + "reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29", "shasum": "" }, "require": { @@ -573,16 +573,16 @@ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "infection/infection": "^0.27.11", + "facile-it/paraunit": "^1.3 || ^2.3", + "infection/infection": "^0.29.5", "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", + "phpunit/phpunit": "^9.6.19 || ^10.5.21 || ^11.2", "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, @@ -590,7 +590,7 @@ "ext-dom": "For handling output formats in XML", "ext-mbstring": "For handling non-UTF8 characters." }, - "time": "2024-05-29T16:39:07+00:00", + "time": "2024-06-16T14:17:03+00:00", "bin": [ "php-cs-fixer" ], @@ -599,7 +599,10 @@ "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/Fixer/Internal/*" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -624,7 +627,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.58.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.59.3" }, "funding": [ { @@ -1020,17 +1023,17 @@ }, { "name": "mpdf/mpdf", - "version": "v8.2.3", - "version_normalized": "8.2.3.0", + "version": "v8.2.4", + "version_normalized": "8.2.4.0", "source": { "type": "git", "url": "https://github.com/mpdf/mpdf.git", - "reference": "6f723a96becf989a831e38caf758d28364a69939" + "reference": "9e3ff91606fed11cd58a130eabaaf60e56fdda88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mpdf/mpdf/zipball/6f723a96becf989a831e38caf758d28364a69939", - "reference": "6f723a96becf989a831e38caf758d28364a69939", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/9e3ff91606fed11cd58a130eabaaf60e56fdda88", + "reference": "9e3ff91606fed11cd58a130eabaaf60e56fdda88", "shasum": "" }, "require": { @@ -1057,7 +1060,7 @@ "ext-xml": "Needed mainly for SVG manipulation", "ext-zlib": "Needed for compression of embedded resources, such as fonts" }, - "time": "2024-03-11T12:55:53+00:00", + "time": "2024-06-14T16:06:41+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1202,17 +1205,17 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.1", - "version_normalized": "1.11.1.0", + "version": "1.12.0", + "version_normalized": "1.12.0.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -1220,14 +1223,15 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, - "time": "2023-03-08T13:26:56+00:00", + "time": "2024-06-12T14:39:25+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1252,7 +1256,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -1264,36 +1268,36 @@ }, { "name": "nexusphp/cs-config", - "version": "v3.18.0", - "version_normalized": "3.18.0.0", + "version": "v3.23.1", + "version_normalized": "3.23.1.0", "source": { "type": "git", "url": "https://github.com/NexusPHP/cs-config.git", - "reference": "8187fab52c7c4822579e3bbcb3c8bee0c0058b05" + "reference": "323c8ca9c86a85d8cf9990e95079a7734bfbf4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/NexusPHP/cs-config/zipball/8187fab52c7c4822579e3bbcb3c8bee0c0058b05", - "reference": "8187fab52c7c4822579e3bbcb3c8bee0c0058b05", + "url": "https://api.github.com/repos/NexusPHP/cs-config/zipball/323c8ca9c86a85d8cf9990e95079a7734bfbf4e6", + "reference": "323c8ca9c86a85d8cf9990e95079a7734bfbf4e6", "shasum": "" }, "require": { "ext-tokenizer": "*", - "friendsofphp/php-cs-fixer": "^3.35", - "php": "^8.0.1" + "friendsofphp/php-cs-fixer": "^3.57.1", + "php": "^8.1" }, "conflict": { "liaison/cs-config": "*" }, "require-dev": { - "nexusphp/tachycardia": "^1.4", + "nexusphp/tachycardia": "^2.1", "phpstan/extension-installer": "^1.3", "phpstan/phpstan": "^1.10", "phpstan/phpstan-phpunit": "^1.3", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^10.5 || ^11.0" }, - "time": "2023-10-13T04:02:43+00:00", + "time": "2024-06-16T15:46:10+00:00", "type": "library", "extra": { "branch-alias": { @@ -1322,31 +1326,21 @@ "slack": "https://nexusphp.slack.com", "source": "https://github.com/NexusPHP/cs-config.git" }, - "funding": [ - { - "url": "https://www.paypal.me/paulbalandan", - "type": "custom" - }, - { - "url": "https://github.com/paulbalandan", - "type": "github" - } - ], "install-path": "../nexusphp/cs-config" }, { "name": "nikic/php-parser", - "version": "v5.0.2", - "version_normalized": "5.0.2.0", + "version": "v5.1.0", + "version_normalized": "5.1.0.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", "shasum": "" }, "require": { @@ -1357,9 +1351,9 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, - "time": "2024-03-05T20:51:40+00:00", + "time": "2024-07-01T20:03:41+00:00", "bin": [ "bin/php-parse" ], @@ -1391,7 +1385,7 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" }, "install-path": "../nikic/php-parser" }, @@ -1574,17 +1568,17 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "2.1.0", - "version_normalized": "2.1.0.0", + "version": "2.2.0", + "version_normalized": "2.2.0.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "dbed77bd3a0f68f96c0dd68ad4499d5674fecc3e" + "reference": "b0993b7e4d9c860133365d115b176bc6e0f57022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/dbed77bd3a0f68f96c0dd68ad4499d5674fecc3e", - "reference": "dbed77bd3a0f68f96c0dd68ad4499d5674fecc3e", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/b0993b7e4d9c860133365d115b176bc6e0f57022", + "reference": "b0993b7e4d9c860133365d115b176bc6e0f57022", "shasum": "" }, "require": { @@ -1604,21 +1598,21 @@ "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", - "php": "^8.0", + "php": "^8.1", "psr/http-client": "^1.0", "psr/http-factory": "^1.0", "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "dev-main", - "dompdf/dompdf": "^2.0", + "dompdf/dompdf": "^2.0 || ^3.0", "friendsofphp/php-cs-fixer": "^3.2", "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.6", + "phpunit/phpunit": "^9.6 || ^10.5", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -1629,7 +1623,7 @@ "mpdf/mpdf": "Option for rendering PDF with PDF Writer", "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" }, - "time": "2024-05-11T04:17:56+00:00", + "time": "2024-07-24T13:21:18+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1675,23 +1669,23 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.1.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.2.0" }, "install-path": "../phpoffice/phpspreadsheet" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.14", - "version_normalized": "10.1.14.0", + "version": "10.1.15", + "version_normalized": "10.1.15.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "shasum": "" }, "require": { @@ -1716,7 +1710,7 @@ "ext-pcov": "PHP extension that provides line coverage", "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, - "time": "2024-03-12T15:33:41+00:00", + "time": "2024-06-29T08:25:15+00:00", "type": "library", "extra": { "branch-alias": { @@ -1750,7 +1744,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" }, "funding": [ { @@ -2017,17 +2011,17 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.20", - "version_normalized": "10.5.20.0", + "version": "10.5.28", + "version_normalized": "10.5.28.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" + "reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ff7fb85cdf88131b83e721fb2a327b664dbed275", + "reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275", "shasum": "" }, "require": { @@ -2037,31 +2031,31 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "phpunit/php-code-coverage": "^10.1.15", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.1", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" }, - "time": "2024-04-24T06:32:35+00:00", + "time": "2024-07-18T14:54:16+00:00", "bin": [ "phpunit" ], @@ -2101,7 +2095,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.28" }, "funding": [ { @@ -2727,31 +2721,31 @@ }, { "name": "react/dns", - "version": "v1.12.0", - "version_normalized": "1.12.0.0", + "version": "v1.13.0", + "version_normalized": "1.13.0.0", "source": { "type": "git", "url": "https://github.com/reactphp/dns.git", - "reference": "c134600642fa615b46b41237ef243daa65bb64ec" + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec", - "reference": "c134600642fa615b46b41237ef243daa65bb64ec", + "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.0 || ^2.7 || ^1.2.1" + "react/promise": "^3.2 || ^2.7 || ^1.2.1" }, "require-dev": { "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/async": "^4 || ^3 || ^2", - "react/promise-timer": "^1.9" + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" }, - "time": "2023-11-29T12:41:06+00:00", + "time": "2024-06-13T14:18:03+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2794,7 +2788,7 @@ ], "support": { "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.12.0" + "source": "https://github.com/reactphp/dns/tree/v1.13.0" }, "funding": [ { @@ -3040,17 +3034,17 @@ }, { "name": "react/stream", - "version": "v1.3.0", - "version_normalized": "1.3.0.0", + "version": "v1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", "url": "https://github.com/reactphp/stream.git", - "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66" + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66", - "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", "shasum": "" }, "require": { @@ -3060,9 +3054,9 @@ }, "require-dev": { "clue/stream-filter": "~1.2", - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, - "time": "2023-06-16T10:52:11+00:00", + "time": "2024-06-11T12:45:25+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -3109,7 +3103,7 @@ ], "support": { "issues": "https://github.com/reactphp/stream/issues", - "source": "https://github.com/reactphp/stream/tree/v1.3.0" + "source": "https://github.com/reactphp/stream/tree/v1.4.0" }, "funding": [ { @@ -4157,49 +4151,50 @@ }, { "name": "symfony/console", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.9", + "version_normalized": "6.4.9.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3" + "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", + "url": "https://api.github.com/repos/symfony/console/zipball/6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", + "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^6.4|^7.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/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": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/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" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-06-28T09:49:33+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4233,7 +4228,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.1" + "source": "https://github.com/symfony/console/tree/v6.4.9" }, "funding": [ { @@ -4323,25 +4318,25 @@ }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.8", + "version_normalized": "6.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/dependency-injection": "<5.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -4350,15 +4345,15 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^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": "^6.4|^7.0" + "symfony/stopwatch": "^5.4|^6.0|^7.0" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-05-31T14:49:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4386,7 +4381,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" }, "funding": [ { @@ -4485,28 +4480,28 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.9", + "version_normalized": "6.4.9.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2" + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/802e87002f919296c9f606457d9fa327a0b3d6b2", - "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "symfony/process": "^5.4|^6.4|^7.0" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-06-28T09:49:33+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4534,7 +4529,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.1" + "source": "https://github.com/symfony/filesystem/tree/v6.4.9" }, "funding": [ { @@ -4554,26 +4549,26 @@ }, { "name": "symfony/finder", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.8", + "version_normalized": "6.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6" + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6", + "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.0|^7.0" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-05-31T14:49:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4601,7 +4596,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.1" + "source": "https://github.com/symfony/finder/tree/v6.4.8" }, "funding": [ { @@ -4621,24 +4616,24 @@ }, { "name": "symfony/options-resolver", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.8", + "version_normalized": "6.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55" + "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22ab9e9101ab18de37839074f8a1197f55590c1b", + "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-05-31T14:49:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4671,7 +4666,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.1" + "source": "https://github.com/symfony/options-resolver/tree/v6.4.8" }, "funding": [ { @@ -4691,17 +4686,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", "shasum": "" }, "require": { @@ -4713,7 +4708,7 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-05-31T15:07:36+00:00", "type": "library", "extra": { "thanks": { @@ -4753,7 +4748,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" }, "funding": [ { @@ -4773,17 +4768,17 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "shasum": "" }, "require": { @@ -4792,7 +4787,7 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-05-31T15:07:36+00:00", "type": "library", "extra": { "thanks": { @@ -4834,7 +4829,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" }, "funding": [ { @@ -4854,17 +4849,17 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "shasum": "" }, "require": { @@ -4873,7 +4868,7 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-05-31T15:07:36+00:00", "type": "library", "extra": { "thanks": { @@ -4918,7 +4913,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" }, "funding": [ { @@ -4938,17 +4933,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "shasum": "" }, "require": { @@ -4960,7 +4955,7 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-06-19T12:30:46+00:00", "type": "library", "extra": { "thanks": { @@ -5001,7 +4996,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" }, "funding": [ { @@ -5021,23 +5016,23 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-05-31T15:07:36+00:00", "type": "library", "extra": { "thanks": { @@ -5084,7 +5079,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" }, "funding": [ { @@ -5104,23 +5099,23 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", + "version": "v1.30.0", + "version_normalized": "1.30.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2024-01-29T20:11:03+00:00", + "time": "2024-06-19T12:30:46+00:00", "type": "library", "extra": { "thanks": { @@ -5163,7 +5158,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" }, "funding": [ { @@ -5183,23 +5178,23 @@ }, { "name": "symfony/process", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.8", + "version_normalized": "6.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028" + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028", + "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.1" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-05-31T14:49:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -5227,7 +5222,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.1" + "source": "https://github.com/symfony/process/tree/v6.4.8" }, "funding": [ { @@ -5333,24 +5328,24 @@ }, { "name": "symfony/stopwatch", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.8", + "version_normalized": "6.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d" + "reference": "63e069eb616049632cde9674c46957819454b8aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/63e069eb616049632cde9674c46957819454b8aa", + "reference": "63e069eb616049632cde9674c46957819454b8aa", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/service-contracts": "^2.5|^3" }, - "time": "2024-05-31T14:57:53+00:00", + "time": "2024-05-31T14:49:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -5378,7 +5373,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.1.1" + "source": "https://github.com/symfony/stopwatch/tree/v6.4.8" }, "funding": [ { @@ -5398,21 +5393,21 @@ }, { "name": "symfony/string", - "version": "v7.1.1", - "version_normalized": "7.1.1.0", + "version": "v6.4.9", + "version_normalized": "6.4.9.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2" + "reference": "76792dbd99690a5ebef8050d9206c60c59e681d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2", + "url": "https://api.github.com/repos/symfony/string/zipball/76792dbd99690a5ebef8050d9206c60c59e681d7", + "reference": "76792dbd99690a5ebef8050d9206c60c59e681d7", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -5422,14 +5417,13 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "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/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": "^6.4|^7.0" + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, - "time": "2024-06-04T06:40:14+00:00", + "time": "2024-06-28T09:25:38+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -5468,7 +5462,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.1" + "source": "https://github.com/symfony/string/tree/v6.4.9" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b636436d..07c953c7 100755 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'codeigniter4/framework', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '098af23078d3ab437ca2e8e7967b31274e185653', + 'reference' => 'bbb89d27e6e055d07faa359bddec81032352d85e', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -20,9 +20,9 @@ 'dev_requirement' => true, ), 'codeigniter/coding-standard' => array( - 'pretty_version' => 'v1.7.16', - 'version' => '1.7.16.0', - 'reference' => '8b2c0de625e4b5c9d7cd3c0b34bc30fba61a86ea', + 'pretty_version' => 'v1.8.0', + 'version' => '1.8.0.0', + 'reference' => 'a523fd030be6360123a88655f39f0eb1650ee4bf', 'type' => 'library', 'install_path' => __DIR__ . '/../codeigniter/coding-standard', 'aliases' => array(), @@ -31,7 +31,7 @@ 'codeigniter4/framework' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '098af23078d3ab437ca2e8e7967b31274e185653', + 'reference' => 'bbb89d27e6e055d07faa359bddec81032352d85e', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -47,9 +47,9 @@ 'dev_requirement' => true, ), 'composer/semver' => array( - 'pretty_version' => '3.4.0', - 'version' => '3.4.0.0', - 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', + 'pretty_version' => '3.4.2', + 'version' => '3.4.2.0', + 'reference' => 'c51258e759afdb17f1fd1fe83bc12baaef6309d6', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), @@ -92,9 +92,9 @@ 'dev_requirement' => true, ), 'friendsofphp/php-cs-fixer' => array( - 'pretty_version' => 'v3.58.1', - 'version' => '3.58.1.0', - 'reference' => '04e9424025677a86914b9a4944dbbf4060bb0aff', + 'pretty_version' => 'v3.59.3', + 'version' => '3.59.3.0', + 'reference' => '30ba9ecc2b0e5205e578fe29973c15653d9bfd29', 'type' => 'application', 'install_path' => __DIR__ . '/../friendsofphp/php-cs-fixer', 'aliases' => array(), @@ -155,9 +155,9 @@ 'dev_requirement' => true, ), 'mpdf/mpdf' => array( - 'pretty_version' => 'v8.2.3', - 'version' => '8.2.3.0', - 'reference' => '6f723a96becf989a831e38caf758d28364a69939', + 'pretty_version' => 'v8.2.4', + 'version' => '8.2.4.0', + 'reference' => '9e3ff91606fed11cd58a130eabaaf60e56fdda88', 'type' => 'library', 'install_path' => __DIR__ . '/../mpdf/mpdf', 'aliases' => array(), @@ -182,27 +182,27 @@ 'dev_requirement' => false, ), 'myclabs/deep-copy' => array( - 'pretty_version' => '1.11.1', - 'version' => '1.11.1.0', - 'reference' => '7284c22080590fb39f2ffa3e9057f10a4ddd0e0c', + 'pretty_version' => '1.12.0', + 'version' => '1.12.0.0', + 'reference' => '3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c', 'type' => 'library', 'install_path' => __DIR__ . '/../myclabs/deep-copy', 'aliases' => array(), 'dev_requirement' => false, ), 'nexusphp/cs-config' => array( - 'pretty_version' => 'v3.18.0', - 'version' => '3.18.0.0', - 'reference' => '8187fab52c7c4822579e3bbcb3c8bee0c0058b05', + 'pretty_version' => 'v3.23.1', + 'version' => '3.23.1.0', + 'reference' => '323c8ca9c86a85d8cf9990e95079a7734bfbf4e6', 'type' => 'library', 'install_path' => __DIR__ . '/../nexusphp/cs-config', 'aliases' => array(), 'dev_requirement' => true, ), 'nikic/php-parser' => array( - 'pretty_version' => 'v5.0.2', - 'version' => '5.0.2.0', - 'reference' => '139676794dc1e9231bf7bcd123cfc0c99182cb13', + 'pretty_version' => 'v5.1.0', + 'version' => '5.1.0.0', + 'reference' => '683130c2ff8c2739f4822ff7ac5c873ec529abd1', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), @@ -236,18 +236,18 @@ 'dev_requirement' => true, ), 'phpoffice/phpspreadsheet' => array( - 'pretty_version' => '2.1.0', - 'version' => '2.1.0.0', - 'reference' => 'dbed77bd3a0f68f96c0dd68ad4499d5674fecc3e', + 'pretty_version' => '2.2.0', + 'version' => '2.2.0.0', + 'reference' => 'b0993b7e4d9c860133365d115b176bc6e0f57022', 'type' => 'library', 'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet', 'aliases' => array(), 'dev_requirement' => false, ), 'phpunit/php-code-coverage' => array( - 'pretty_version' => '10.1.14', - 'version' => '10.1.14.0', - 'reference' => 'e3f51450ebffe8e0efdf7346ae966a656f7d5e5b', + 'pretty_version' => '10.1.15', + 'version' => '10.1.15.0', + 'reference' => '5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-code-coverage', 'aliases' => array(), @@ -290,9 +290,9 @@ 'dev_requirement' => true, ), 'phpunit/phpunit' => array( - 'pretty_version' => '10.5.20', - 'version' => '10.5.20.0', - 'reference' => '547d314dc24ec1e177720d45c6263fb226cc2ae3', + 'pretty_version' => '10.5.28', + 'version' => '10.5.28.0', + 'reference' => 'ff7fb85cdf88131b83e721fb2a327b664dbed275', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/phpunit', 'aliases' => array(), @@ -401,9 +401,9 @@ 'dev_requirement' => true, ), 'react/dns' => array( - 'pretty_version' => 'v1.12.0', - 'version' => '1.12.0.0', - 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', + 'pretty_version' => 'v1.13.0', + 'version' => '1.13.0.0', + 'reference' => 'eb8ae001b5a455665c89c1df97f6fb682f8fb0f5', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), @@ -437,9 +437,9 @@ 'dev_requirement' => true, ), 'react/stream' => array( - 'pretty_version' => 'v1.3.0', - 'version' => '1.3.0.0', - 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', + 'pretty_version' => 'v1.4.0', + 'version' => '1.4.0.0', + 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), @@ -590,9 +590,9 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '9b008f2d7b21c74ef4d0c3de6077a642bc55ece3', + 'pretty_version' => 'v6.4.9', + 'version' => '6.4.9.0', + 'reference' => '6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -608,9 +608,9 @@ 'dev_requirement' => true, ), 'symfony/event-dispatcher' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7', + 'pretty_version' => 'v6.4.8', + 'version' => '6.4.8.0', + 'reference' => '8d7507f02b06e06815e56bb39aa0128e3806208b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), @@ -632,90 +632,90 @@ ), ), 'symfony/filesystem' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '802e87002f919296c9f606457d9fa327a0b3d6b2', + 'pretty_version' => 'v6.4.9', + 'version' => '6.4.9.0', + 'reference' => 'b51ef8059159330b74a4d52f68e671033c0fe463', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/finder' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => 'fbb0ba67688b780efbc886c1a0a0948dcf7205d6', + 'pretty_version' => 'v6.4.8', + 'version' => '6.4.8.0', + 'reference' => '3ef977a43883215d560a2cecb82ec8e62131471c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/options-resolver' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '47aa818121ed3950acd2b58d1d37d08a94f9bf55', + 'pretty_version' => 'v6.4.8', + 'version' => '6.4.8.0', + 'reference' => '22ab9e9101ab18de37839074f8a1197f55590c1b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/options-resolver', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-ctype' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => 'ef4d7e442ca910c4764bce785146269b30cb5fc4', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => '0424dff1c58f028c451efff2045f5d92410bd540', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-intl-grapheme' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => '32a9da87d7b3245e09ac426c83d334ae9f06f80f', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => '64647a7c30b2283f5d49b874d84a18fc22054b7a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-intl-normalizer' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => 'bc45c394692b948b4d383a08d7753968bed9a83d', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => 'a95281b0be0d9ab48050ebd988b967875cdb9fdb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-mbstring' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-php80' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => '77fa7995ac1b21ab60769b7323d600a991a90433', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-php81' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => 'c565ad1e63f30e7477fc40738343c62b40bc672d', + 'pretty_version' => 'v1.30.0', + 'version' => '1.30.0.0', + 'reference' => '3fb075789fb91f9ad9af537c4012d523085bd5af', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php81', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/process' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => 'febf90124323a093c7ee06fdb30e765ca3c20028', + 'pretty_version' => 'v6.4.8', + 'version' => '6.4.8.0', + 'reference' => '8d92dd79149f29e89ee0f480254db595f6a6a2c5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), @@ -731,18 +731,18 @@ 'dev_requirement' => true, ), 'symfony/stopwatch' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d', + 'pretty_version' => 'v6.4.8', + 'version' => '6.4.8.0', + 'reference' => '63e069eb616049632cde9674c46957819454b8aa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/string' => array( - 'pretty_version' => 'v7.1.1', - 'version' => '7.1.1.0', - 'reference' => '60bc311c74e0af215101235aa6f471bcbc032df2', + 'pretty_version' => 'v6.4.9', + 'version' => '6.4.9.0', + 'reference' => '76792dbd99690a5ebef8050d9206c60c59e681d7', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index f71b2f89..4c3a5d68 100755 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -8,10 +8,6 @@ if (!(PHP_VERSION_ID >= 80100)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; } -if (PHP_INT_SIZE !== 8) { - $issues[] = 'Your Composer dependencies require a 64-bit build of PHP.'; -} - if ($issues) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); diff --git a/vendor/composer/semver/CHANGELOG.md b/vendor/composer/semver/CHANGELOG.md index 3b111612..7e441914 100755 --- a/vendor/composer/semver/CHANGELOG.md +++ b/vendor/composer/semver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +### [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) @@ -179,6 +187,8 @@ 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.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 diff --git a/vendor/composer/semver/src/VersionParser.php b/vendor/composer/semver/src/VersionParser.php index 9318629a..305a0fae 100755 --- a/vendor/composer/semver/src/VersionParser.php +++ b/vendor/composer/semver/src/VersionParser.php @@ -82,11 +82,16 @@ class VersionParser * @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; } diff --git a/vendor/friendsofphp/php-cs-fixer/CHANGELOG.md b/vendor/friendsofphp/php-cs-fixer/CHANGELOG.md index 90990e65..d3de6e45 100644 --- a/vendor/friendsofphp/php-cs-fixer/CHANGELOG.md +++ b/vendor/friendsofphp/php-cs-fixer/CHANGELOG.md @@ -3,6 +3,41 @@ CHANGELOG for PHP CS Fixer This file contains changelogs for stable releases only. +Changelog for v3.59.3 +--------------------- + +* refactor: refactor to templated trait+interface (#7988) + +Changelog for v3.59.2 +--------------------- + +* fix: "list" is reserved type (#8087) +* chore: add missing type in method prototype (#8088) +* CI: bump Ubuntu version (#8086) +* deps: bump infection to unblock PHPUnit 11, and few more as chore (#8083) + +Changelog for v3.59.1 +--------------------- + +* fix: Bump React's JSON decoder buffer size (#8068) +* docs: options - handle enums in dicts (#8082) + +Changelog for v3.59.0 +--------------------- + +* feat(Docker): Multi-arch build (support for `arm64`) (#8079) +* feat: `@PhpCsFixer` ruleset - normalise implicit backslashes in single quoted strings (#7965) +* feat: `SimpleToComplexStringVariableFixer` - support variable being an array (#8064) +* fix: Look up for PHPDoc's variable name by only chars allowed in the variables (#8062) +* fix: Update `PhpUnitTestCaseStaticMethodCallsFixer::STATIC_METHODS` (#8073) +* fix: `native_constant_invocation` - array constants with native constant names (#8008) +* chore: update PHPStan (#8060) +* CI: Update PHPStan to 1.11.4 (#8074) +* docs: don't expose list as config type for dicts (#8081) +* docs: Make wording in `final_class` docs less dismissive (#8065) +* docs: Update 1-bug_report.yml (#8067) +* DX: Remove version from Docker Compose files (#8061) + Changelog for v3.58.1 --------------------- diff --git a/vendor/friendsofphp/php-cs-fixer/composer.json b/vendor/friendsofphp/php-cs-fixer/composer.json index e0c8b6d6..f291eb3a 100644 --- a/vendor/friendsofphp/php-cs-fixer/composer.json +++ b/vendor/friendsofphp/php-cs-fixer/composer.json @@ -46,16 +46,16 @@ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "infection/infection": "^0.27.11", + "facile-it/paraunit": "^1.3 || ^2.3", + "infection/infection": "^0.29.5", "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", + "phpunit/phpunit": "^9.6.19 || ^10.5.21 || ^11.2", "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, @@ -66,7 +66,10 @@ "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/Fixer/Internal/*" + ] }, "autoload-dev": { "psr-4": { diff --git a/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php index 327fa238..7ca969fb 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/AbstractDoctrineAnnotationFixer.php @@ -26,6 +26,17 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @internal + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * scalar_types?: bool, + * union_types?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * scalar_types: bool, + * union_types: bool + * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements ConfigurableFixerInterface { @@ -53,7 +64,7 @@ abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements $doctrineAnnotationTokens = DoctrineAnnotationTokens::createFromDocComment( $docCommentToken, - $this->configuration['ignored_tags'] + $this->configuration['ignored_tags'] // @phpstan-ignore-line ); $this->fixAnnotations($doctrineAnnotationTokens); @@ -71,15 +82,6 @@ abstract class AbstractDoctrineAnnotationFixer extends AbstractFixer implements return new FixerConfigurationResolver([ (new FixerOptionBuilder('ignored_tags', 'List of tags that must not be treated as Doctrine Annotations.')) ->setAllowedTypes(['string[]']) - ->setAllowedValues([static function (array $values): bool { - foreach ($values as $value) { - if (!\is_string($value)) { - return false; - } - } - - return true; - }]) ->setDefault([ // PHPDocumentor 1 'abstract', diff --git a/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php b/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php index 7b9ac1a0..fd193f41 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/AbstractFixer.php @@ -14,19 +14,11 @@ declare(strict_types=1); 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,21 +27,11 @@ use Symfony\Component\OptionsResolver\Exception\MissingOptionsException; */ abstract class AbstractFixer implements FixerInterface { - /** - * @var null|array - */ - protected $configuration; - /** * @var WhitespacesFixerConfig */ protected $whitespacesConfig; - /** - * @var null|FixerConfigurationResolverInterface - */ - private $configurationDefinition; - public function __construct() { if ($this instanceof ConfigurableFixerInterface) { @@ -67,7 +49,7 @@ abstract class AbstractFixer implements FixerInterface 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.'); } @@ -99,68 +81,6 @@ abstract class AbstractFixer implements FixerInterface 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) { @@ -172,15 +92,6 @@ abstract class AbstractFixer implements FixerInterface 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/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php index 4e50a678..174416cb 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/AbstractPhpdocToTypeDeclarationFixer.php @@ -18,6 +18,7 @@ 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; @@ -31,9 +32,22 @@ use PhpCsFixer\Tokenizer\Tokens; * @internal * * @phpstan-type _CommonTypeInfo array{commonType: string, isNullable: bool} + * @phpstan-type _AutogeneratedInputConfiguration array{ + * scalar_types?: bool, + * union_types?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * scalar_types: bool, + * union_types: bool + * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const REGEX_CLASS = '(?:\\\?+'.TypeExpression::REGEX_IDENTIFIER .'(\\\\'.TypeExpression::REGEX_IDENTIFIER.')*+)'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php b/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php index cc4278f9..c84cff9f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Console/Application.php @@ -44,7 +44,7 @@ use Symfony\Component\Console\Output\OutputInterface; final class Application extends BaseApplication { public const NAME = 'PHP CS Fixer'; - public const VERSION = '3.58.1'; + public const VERSION = '3.59.3'; public const VERSION_CODENAME = '7th Gear'; private ToolInfo $toolInfo; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php b/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php index b8c3ba6c..03ec9209 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php @@ -24,6 +24,7 @@ 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; @@ -192,6 +193,13 @@ final class DescribeCommand extends Command $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.'); diff --git a/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php b/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php index 7c331a52..9fb304d9 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php +++ b/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Annotation.php @@ -171,14 +171,17 @@ final class Annotation } /** - * @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*]|$)/"; + $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']; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php b/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php index 52a06042..9d707b31 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php @@ -167,7 +167,7 @@ final class FixerDocumentGenerator if (null === $allowed) { $allowedKind = 'Allowed types'; $allowed = array_map( - static fn (string $value): string => '``'.(str_ends_with($value, '[]') ? sprintf('list<%s>', substr($value, 0, -2)) : $value).'``', + static fn (string $value): string => '``'.Utils::convertArrayTypeToList($value).'``', $option->getAllowedTypes(), ); } else { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php index afc348ff..0b4c4b2f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php @@ -138,6 +138,7 @@ abstract class AbstractPhpUnitFixer extends AbstractFixer } } $doc = $this->makeDocBlockMultiLineIfNeeded($doc, $tokens, $docBlockIndex, $annotation); + $lines = $this->addInternalAnnotation($doc, $tokens, $docBlockIndex, $annotation); $lines = implode('', $lines); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php index 3fceb600..eeed6433 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoAliasFunctionsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Alias; 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 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @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', @@ -160,23 +173,6 @@ final class NoAliasFunctionsFixer extends AbstractFixer implements ConfigurableF */ 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]); - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -240,6 +236,21 @@ mbereg_search_getregs(); return true; } + protected function configurePostNormalisation(): void + { + $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]); + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $functionsAnalyzer = new FunctionsAnalyzer(); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php index e8b1af95..7a0292fe 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/NoMixedEchoPrintFixer.php @@ -16,6 +16,7 @@ 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; @@ -28,21 +29,26 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @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 { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var T_ECHO|T_PRINT */ private int $candidateTokenType; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->candidateTokenType = 'echo' === $this->configuration['use'] ? T_PRINT : T_ECHO; - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -69,6 +75,11 @@ final class NoMixedEchoPrintFixer extends AbstractFixer implements ConfigurableF return $tokens->isTokenKindFound($this->candidateTokenType); } + protected function configurePostNormalisation(): void + { + $this->candidateTokenType = 'echo' === $this->configuration['use'] ? T_PRINT : T_ECHO; + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/RandomApiMigrationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/RandomApiMigrationFixer.php index 6d8c441f..4c8c4613 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/RandomApiMigrationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Alias/RandomApiMigrationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Alias; use PhpCsFixer\AbstractFunctionReferenceFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Vladimir Reznichenko + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * replacements?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * replacements: array + * } */ final class RandomApiMigrationFixer extends AbstractFunctionReferenceFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array> */ @@ -43,11 +56,6 @@ final class RandomApiMigrationFixer extends AbstractFunctionReferenceFixer imple 'random_int' => [0, 2], ]; - public function configure(array $configuration): void - { - parent::configure($configuration); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -119,7 +127,7 @@ final class RandomApiMigrationFixer extends AbstractFunctionReferenceFixer imple { return new FixerConfigurationResolver([ (new FixerOptionBuilder('replacements', 'Mapping between replaced functions with the new ones.')) - ->setAllowedTypes(['array']) + ->setAllowedTypes(['array']) ->setAllowedValues([static function (array $value): bool { foreach ($value as $functionName => $replacement) { if (!\array_key_exists($functionName, self::$argumentCounts)) { @@ -128,14 +136,6 @@ final class RandomApiMigrationFixer extends AbstractFunctionReferenceFixer imple $functionName )); } - - if (!\is_string($replacement)) { - throw new InvalidOptionsException(sprintf( - 'Replacement for function "%s" must be a string, "%s" given.', - $functionName, - get_debug_type($replacement) - )); - } } return true; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ArraySyntaxFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ArraySyntaxFixer.php index ea418f5e..2eab59c6 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ArraySyntaxFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/ArraySyntaxFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ArrayNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,21 +31,26 @@ use PhpCsFixer\Tokenizer\Tokens; * @author Gregor Harlan * @author Sebastiaan Stok * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * syntax?: 'long'|'short' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * syntax: 'long'|'short' + * } */ final class ArraySyntaxFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var CT::T_ARRAY_SQUARE_BRACE_OPEN|T_ARRAY */ private $candidateTokenKind; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->resolveCandidateTokenKind(); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -76,6 +82,11 @@ final class ArraySyntaxFixer extends AbstractFixer implements ConfigurableFixerI return $tokens->isTokenKindFound($this->candidateTokenKind); } + protected function configurePostNormalisation(): void + { + $this->resolveCandidateTokenKind(); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($index = $tokens->count() - 1; 0 <= $index; --$index) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoWhitespaceBeforeCommaInArrayFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoWhitespaceBeforeCommaInArrayFixer.php index f2ff389d..e5e75489 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoWhitespaceBeforeCommaInArrayFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/NoWhitespaceBeforeCommaInArrayFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ArrayNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Adam Marczuk + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * after_heredoc?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * after_heredoc: bool + * } */ final class NoWhitespaceBeforeCommaInArrayFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php index ed4ef90d..88cd0724 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ArrayNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Adam Marczuk + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * ensure_single_space?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * ensure_single_space: bool + * } */ final class WhitespaceAfterCommaInArrayFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php index cba06046..8166a0f2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\AttributeNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author HypeMC + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * use_parentheses?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * use_parentheses: bool + * } */ final class AttributeEmptyParenthesesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php index 19a57988..cc1b14dc 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\ControlStructure\ControlStructureBracesFixer; use PhpCsFixer\Fixer\ControlStructure\ControlStructureContinuationPositionFixer; use PhpCsFixer\Fixer\DeprecatedFixerInterface; @@ -37,9 +38,29 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; * @author Dariusz Rumiński * * @deprecated + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * allow_single_line_anonymous_class_with_empty_body?: bool, + * allow_single_line_closure?: bool, + * position_after_anonymous_constructs?: 'next'|'same', + * position_after_control_structures?: 'next'|'same', + * position_after_functions_and_oop_constructs?: 'next'|'same' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * allow_single_line_anonymous_class_with_empty_body: bool, + * allow_single_line_closure: bool, + * position_after_anonymous_constructs: 'next'|'same', + * position_after_control_structures: 'next'|'same', + * position_after_functions_and_oop_constructs: 'next'|'same' + * } */ final class BracesFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface, DeprecatedFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -152,10 +173,8 @@ class Foo return array_keys($this->proxyFixers); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $this->getBracesPositionFixer()->configure([ 'control_structures_opening_brace' => $this->translatePositionOption($this->configuration['position_after_control_structures']), 'functions_opening_brace' => $this->translatePositionOption($this->configuration['position_after_functions_and_oop_constructs']), @@ -243,6 +262,9 @@ class Foo return $this->controlStructureContinuationPositionFixer; } + /** + * @return BracesPositionFixer::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END|BracesPositionFixer::SAME_LINE + */ private function translatePositionOption(string $option): string { return self::LINE_NEXT === $option diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php index 710448a4..f010a1dd 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\Indentation; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -30,8 +31,33 @@ use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; use PhpCsFixer\Tokenizer\TokensAnalyzer; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * allow_single_line_anonymous_functions?: bool, + * allow_single_line_empty_anonymous_classes?: bool, + * anonymous_classes_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * anonymous_functions_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * classes_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * control_structures_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * functions_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * allow_single_line_anonymous_functions: bool, + * allow_single_line_empty_anonymous_classes: bool, + * anonymous_classes_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * anonymous_functions_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * classes_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * control_structures_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * functions_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line' + * } + */ final class BracesPositionFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + use Indentation; /** @@ -144,6 +170,41 @@ $bar = function () { $result = true; return -2; } + /** @protected */ + public function createConfigurationDefinition(): FixerConfigurationResolverInterface + { + return new FixerConfigurationResolver([ + (new FixerOptionBuilder('control_structures_opening_brace', 'The position of the opening brace of control structures‘ body.')) + ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) + ->setDefault(self::SAME_LINE) + ->getOption(), + (new FixerOptionBuilder('functions_opening_brace', 'The position of the opening brace of functions‘ body.')) + ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) + ->setDefault(self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END) + ->getOption(), + (new FixerOptionBuilder('anonymous_functions_opening_brace', 'The position of the opening brace of anonymous functions‘ body.')) + ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) + ->setDefault(self::SAME_LINE) + ->getOption(), + (new FixerOptionBuilder('classes_opening_brace', 'The position of the opening brace of classes‘ body.')) + ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) + ->setDefault(self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END) + ->getOption(), + (new FixerOptionBuilder('anonymous_classes_opening_brace', 'The position of the opening brace of anonymous classes‘ body.')) + ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) + ->setDefault(self::SAME_LINE) + ->getOption(), + (new FixerOptionBuilder('allow_single_line_empty_anonymous_classes', 'Allow anonymous classes to have opening and closing braces on the same line.')) + ->setAllowedTypes(['bool']) + ->setDefault(true) + ->getOption(), + (new FixerOptionBuilder('allow_single_line_anonymous_functions', 'Allow anonymous functions to have opening and closing braces on the same line.')) + ->setAllowedTypes(['bool']) + ->setDefault(true) + ->getOption(), + ]); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $classyTokens = Token::getClassyTokenKinds(); @@ -338,40 +399,6 @@ $bar = function () { $result = true; } } - protected function createConfigurationDefinition(): FixerConfigurationResolverInterface - { - return new FixerConfigurationResolver([ - (new FixerOptionBuilder('control_structures_opening_brace', 'The position of the opening brace of control structures‘ body.')) - ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) - ->setDefault(self::SAME_LINE) - ->getOption(), - (new FixerOptionBuilder('functions_opening_brace', 'The position of the opening brace of functions‘ body.')) - ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) - ->setDefault(self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END) - ->getOption(), - (new FixerOptionBuilder('anonymous_functions_opening_brace', 'The position of the opening brace of anonymous functions‘ body.')) - ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) - ->setDefault(self::SAME_LINE) - ->getOption(), - (new FixerOptionBuilder('classes_opening_brace', 'The position of the opening brace of classes‘ body.')) - ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) - ->setDefault(self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END) - ->getOption(), - (new FixerOptionBuilder('anonymous_classes_opening_brace', 'The position of the opening brace of anonymous classes‘ body.')) - ->setAllowedValues([self::NEXT_LINE_UNLESS_NEWLINE_AT_SIGNATURE_END, self::SAME_LINE]) - ->setDefault(self::SAME_LINE) - ->getOption(), - (new FixerOptionBuilder('allow_single_line_empty_anonymous_classes', 'Allow anonymous classes to have opening and closing braces on the same line.')) - ->setAllowedTypes(['bool']) - ->setDefault(true) - ->getOption(), - (new FixerOptionBuilder('allow_single_line_anonymous_functions', 'Allow anonymous functions to have opening and closing braces on the same line.')) - ->setAllowedTypes(['bool']) - ->setDefault(true) - ->getOption(), - ]); - } - private function findParenthesisEnd(Tokens $tokens, int $structureTokenIndex): int { $nextIndex = $tokens->getNextMeaningfulToken($structureTokenIndex); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php index 324d0753..099b6381 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\DeprecatedFixerInterface; use PhpCsFixer\Fixer\Indentation; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; @@ -25,9 +26,33 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; /** * @deprecated + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * allow_single_line_anonymous_functions?: bool, + * allow_single_line_empty_anonymous_classes?: bool, + * anonymous_classes_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * anonymous_functions_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * classes_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * control_structures_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line', + * functions_opening_brace?: 'next_line_unless_newline_at_signature_end'|'same_line' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * allow_single_line_anonymous_functions: bool, + * allow_single_line_empty_anonymous_classes: bool, + * anonymous_classes_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * anonymous_functions_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * classes_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * control_structures_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line', + * functions_opening_brace: 'next_line_unless_newline_at_signature_end'|'same_line' + * } */ final class CurlyBracesPositionFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, DeprecatedFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + use Indentation; /** @@ -61,13 +86,6 @@ final class CurlyBracesPositionFixer extends AbstractProxyFixer implements Confi ); } - public function configure(array $configuration): void - { - $this->bracesPositionFixer->configure($configuration); - - parent::configure($configuration); - } - /** * {@inheritdoc} * @@ -86,6 +104,14 @@ final class CurlyBracesPositionFixer extends AbstractProxyFixer implements Confi ]; } + /** + * @param _AutogeneratedInputConfiguration $configuration + */ + protected function configurePreNormalisation(array $configuration): void + { + $this->bracesPositionFixer->configure($configuration); + } + protected function createProxyFixers(): array { return [ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoTrailingCommaInSinglelineFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoTrailingCommaInSinglelineFixer.php index ef380230..f7d69226 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoTrailingCommaInSinglelineFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoTrailingCommaInSinglelineFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -27,8 +28,21 @@ use PhpCsFixer\Tokenizer\Analyzer\AttributeAnalyzer; use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * elements?: list<'arguments'|'array'|'array_destructuring'|'group_import'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * elements: list<'arguments'|'array'|'array_destructuring'|'group_import'> + * } + */ final class NoTrailingCommaInSinglelineFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -95,7 +109,6 @@ final class NoTrailingCommaInSinglelineFixer extends AbstractFixer implements Co private function shouldBeCleared(Tokens $tokens, int $openIndex): bool { - /** @var list $elements */ $elements = $this->configuration['elements']; if ($tokens[$openIndex]->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NonPrintableCharacterFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NonPrintableCharacterFixer.php index cb885d14..7c3acfba 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NonPrintableCharacterFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NonPrintableCharacterFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\Tokens; * Removes Zero-width space (ZWSP), Non-breaking space (NBSP) and other invisible unicode symbols. * * @author Ivan Boprzenkov + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * use_escape_sequences_in_strings?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * use_escape_sequences_in_strings: bool + * } */ final class NonPrintableCharacterFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NumericLiteralSeparatorFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NumericLiteralSeparatorFixer.php index 79d52e62..b062dcde 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NumericLiteralSeparatorFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/NumericLiteralSeparatorFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -35,9 +36,23 @@ use PhpCsFixer\Tokenizer\Tokens; * * @author Marvin Heilemann * @author Greg Korba + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * override_existing?: bool, + * strategy?: 'no_separator'|'use_separator' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * override_existing: bool, + * strategy: 'no_separator'|'use_separator' + * } */ final class NumericLiteralSeparatorFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public const STRATEGY_USE_SEPARATOR = 'use_separator'; public const STRATEGY_NO_SEPARATOR = 'no_separator'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/PsrAutoloadingFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/PsrAutoloadingFixer.php index db42b697..e99c4395 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/PsrAutoloadingFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Basic/PsrAutoloadingFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Basic; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\TypeExpression; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -35,9 +36,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * @author Bram Gotink * @author Graham Campbell * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * dir?: null|string + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * dir: null|string + * } */ final class PsrAutoloadingFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -64,21 +77,6 @@ class InvalidName {} ); } - public function configure(array $configuration): void - { - parent::configure($configuration); - - if (null !== $this->configuration['dir']) { - $realpath = realpath($this->configuration['dir']); - - if (false === $realpath) { - throw new \InvalidArgumentException(sprintf('Failed to resolve configured directory "%s".', $this->configuration['dir'])); - } - - $this->configuration['dir'] = $realpath; - } - } - public function isCandidate(Tokens $tokens): bool { return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds()); @@ -130,6 +128,19 @@ class InvalidName {} return !Preg::match('{[/\\\](stub|fixture)s?[/\\\]}i', $file->getRealPath()); } + protected function configurePostNormalisation(): void + { + if (null !== $this->configuration['dir']) { + $realpath = realpath($this->configuration['dir']); + + if (false === $realpath) { + throw new \InvalidArgumentException(sprintf('Failed to resolve configured directory "%s".', $this->configuration['dir'])); + } + + $this->configuration['dir'] = $realpath; + } + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/ConstantCaseFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/ConstantCaseFixer.php index 0095100d..00389a17 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/ConstantCaseFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Casing/ConstantCaseFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Casing; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\Tokens; * Fixer for constants case. * * @author Pol Dellaiera + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case?: 'lower'|'upper' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case: 'lower'|'upper' + * } */ final class ConstantCaseFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * Hold the function that will be used to convert the constants. * @@ -39,19 +52,6 @@ final class ConstantCaseFixer extends AbstractFixer implements ConfigurableFixer */ private $fixFunction; - public function configure(array $configuration): void - { - parent::configure($configuration); - - if ('lower' === $this->configuration['case']) { - $this->fixFunction = static fn (string $content): string => strtolower($content); - } - - if ('upper' === $this->configuration['case']) { - $this->fixFunction = static fn (string $content): string => strtoupper($content); - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -68,6 +68,17 @@ final class ConstantCaseFixer extends AbstractFixer implements ConfigurableFixer return $tokens->isTokenKindFound(T_STRING); } + protected function configurePostNormalisation(): void + { + if ('lower' === $this->configuration['case']) { + $this->fixFunction = static fn (string $content): string => strtolower($content); + } + + if ('upper' === $this->configuration['case']) { + $this->fixFunction = static fn (string $content): string => strtoupper($content); + } + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php index bf8c53c3..11ee3732 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\CastNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * space?: 'none'|'single' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * space: 'none'|'single' + * } */ final class CastSpacesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const INSIDE_CAST_SPACE_REPLACE_MAP = [ ' ' => '', "\t" => '', diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php index 75de07d4..b5b81a16 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -45,9 +46,21 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; * elements: non-empty-list<_Element> * } * @phpstan-type _Element array{token: Token, type: string, index: int, start?: int, end?: int} + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * elements?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * elements: array + * } */ final class ClassAttributesSeparationFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -65,17 +78,6 @@ final class ClassAttributesSeparationFixer extends AbstractFixer implements Conf */ private array $classElementTypes = []; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->classElementTypes = []; // reset previous configuration - - foreach ($this->configuration['elements'] as $elementType => $spacing) { - $this->classElementTypes[$elementType] = $spacing; - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -172,6 +174,15 @@ class Sample return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds()); } + protected function configurePostNormalisation(): void + { + $this->classElementTypes = []; // reset previous configuration + + foreach ($this->configuration['elements'] as $elementType => $spacing) { + $this->classElementTypes[$elementType] = $spacing; + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($this->getElementsByClass($tokens) as $class) { @@ -199,7 +210,7 @@ class Sample { return new FixerConfigurationResolver([ (new FixerOptionBuilder('elements', 'Dictionary of `const|method|property|trait_import|case` => `none|one|only_if_meta` values.')) - ->setAllowedTypes(['string[]']) + ->setAllowedTypes(['array']) ->setAllowedValues([static function (array $option): bool { foreach ($option as $type => $spacing) { $supportedTypes = ['const', 'method', 'property', 'trait_import', 'case']; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassDefinitionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassDefinitionFixer.php index 1ca054e5..8ff8b030 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassDefinitionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ClassDefinitionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -33,9 +34,29 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * * @phpstan-type _ClassExtendsInfo array{start: int, numberOfExtends: int, multiLine: bool} * @phpstan-type _ClassImplementsInfo array{start: int, numberOfImplements: int, multiLine: bool} + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * inline_constructor_arguments?: bool, + * multi_line_extends_each_single_line?: bool, + * single_item_single_line?: bool, + * single_line?: bool, + * space_before_parenthesis?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * inline_constructor_arguments: bool, + * multi_line_extends_each_single_line: bool, + * single_item_single_line: bool, + * single_line: bool, + * space_before_parenthesis: bool + * } */ final class ClassDefinitionFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalClassFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalClassFixer.php index e13cc8f4..c79a1008 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalClassFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalClassFixer.php @@ -39,7 +39,7 @@ class MyApp {} .'If you want to subclass a class, mark the parent class as abstract and create two child classes, one empty if necessary: you\'ll gain much more fine grained type-hinting. ' .'If you need to mock a standalone class, create an interface, or maybe it\'s a value-object that shouldn\'t be mocked at all. ' .'If you need to extend a standalone class, create an interface and use the Composite pattern. ' - .'If you aren\'t ready yet for serious OOP, go with FinalInternalClassFixer, it\'s fine.', + .'If these rules are too strict for you, you can use `FinalInternalClassFixer` instead.', 'Risky when subclassing non-abstract classes.' ); } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalInternalClassFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalInternalClassFixer.php index 991b6164..7ecb8d65 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalInternalClassFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/FinalInternalClassFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -34,9 +35,29 @@ use Symfony\Component\OptionsResolver\Options; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * annotation_exclude?: list, + * annotation_include?: list, + * consider_absent_docblock_as_internal_class?: bool, + * exclude?: list, + * include?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * annotation_exclude: array, + * annotation_include: array, + * consider_absent_docblock_as_internal_class: bool, + * exclude: array, + * include: array + * } */ final class FinalInternalClassFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const DEFAULTS = [ 'include' => [ 'internal', @@ -61,13 +82,6 @@ final class FinalInternalClassFixer extends AbstractFixer implements Configurabl $this->checkAttributes = \PHP_VERSION_ID >= 8_00_00; } - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->assertConfigHasNoConflicts(); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -108,6 +122,11 @@ final class FinalInternalClassFixer extends AbstractFixer implements Configurabl return true; } + protected function configurePostNormalisation(): void + { + $this->assertConfigHasNoConflicts(); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $tokensAnalyzer = new TokensAnalyzer($tokens); @@ -131,7 +150,7 @@ final class FinalInternalClassFixer extends AbstractFixer implements Configurabl { $annotationsAsserts = [static function (array $values): bool { foreach ($values as $value) { - if (!\is_string($value) || '' === $value) { + if ('' === $value) { return false; } } @@ -321,8 +340,7 @@ final class FinalInternalClassFixer extends AbstractFixer implements Configurabl private function assertConfigHasNoConflicts(): void { - foreach (['include', 'exclude'] as $newConfigKey) { - $oldConfigKey = 'annotation_'.$newConfigKey; + foreach (['include' => 'annotation_include', 'exclude' => 'annotation_exclude'] as $newConfigKey => $oldConfigKey) { $defaults = []; foreach (self::DEFAULTS[$newConfigKey] as $foo) { @@ -337,14 +355,14 @@ final class FinalInternalClassFixer extends AbstractFixer implements Configurabl } if ($oldConfigIsSet) { - $this->configuration[$newConfigKey] = $this->configuration[$oldConfigKey]; + $this->configuration[$newConfigKey] = $this->configuration[$oldConfigKey]; // @phpstan-ignore-line crazy mapping, to be removed while cleaning up deprecated options $this->checkAttributes = false; // run in old mode } // if ($newConfigIsSet) - only new config is set, all good // if (!$newConfigIsSet && !$oldConfigIsSet) - both are set as to default values, all good - unset($this->configuration[$oldConfigKey]); + unset($this->configuration[$oldConfigKey]); // @phpstan-ignore-line crazy mapping, to be removed while cleaning up deprecated options } $intersect = array_intersect_assoc($this->configuration['include'], $this->configuration['exclude']); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoUnneededFinalMethodFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoUnneededFinalMethodFixer.php index 276bdaba..f4f41082 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoUnneededFinalMethodFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/NoUnneededFinalMethodFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * private_methods?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * private_methods: bool + * } */ final class NoUnneededFinalMethodFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedClassElementsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedClassElementsFixer.php index 449be871..af3340c4 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedClassElementsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedClassElementsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -40,9 +41,25 @@ use PhpCsFixer\Utils; * name: string, * end: int, * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * order?: list, + * sort_algorithm?: 'alpha'|'none' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * order: list, + * sort_algorithm: 'alpha'|'none' + * } */ final class OrderedClassElementsFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** @internal */ public const SORT_ALPHA = 'alpha'; @@ -110,50 +127,6 @@ final class OrderedClassElementsFixer extends AbstractFixer implements Configura */ private array $typePosition; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->typePosition = []; - $position = 0; - - foreach ($this->configuration['order'] as $type) { - $this->typePosition[$type] = $position++; - } - - foreach (self::$typeHierarchy as $type => $parents) { - if (isset($this->typePosition[$type])) { - continue; - } - - if (null === $parents) { - $this->typePosition[$type] = null; - - continue; - } - - foreach ($parents as $parent) { - if (isset($this->typePosition[$parent])) { - $this->typePosition[$type] = $this->typePosition[$parent]; - - continue 2; - } - } - - $this->typePosition[$type] = null; - } - - $lastPosition = \count($this->configuration['order']); - - foreach ($this->typePosition as &$pos) { - if (null === $pos) { - $pos = $lastPosition; - } - - $pos *= 10; // last digit is used by phpunit method ordering - } - } - public function isCandidate(Tokens $tokens): bool { return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds()); @@ -255,6 +228,48 @@ Custom values: return 65; } + protected function configurePostNormalisation(): void + { + $this->typePosition = []; + $position = 0; + + foreach ($this->configuration['order'] as $type) { + $this->typePosition[$type] = $position++; + } + + foreach (self::$typeHierarchy as $type => $parents) { + if (isset($this->typePosition[$type])) { + continue; + } + + if (null === $parents) { + $this->typePosition[$type] = null; + + continue; + } + + foreach ($parents as $parent) { + if (isset($this->typePosition[$parent])) { + $this->typePosition[$type] = $this->typePosition[$parent]; + + continue 2; + } + } + + $this->typePosition[$type] = null; + } + + $lastPosition = \count($this->configuration['order']); + + foreach ($this->typePosition as &$pos) { + if (null === $pos) { + $pos = $lastPosition; + } + + $pos *= 10; // last digit is used by phpunit method ordering + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($i = 1, $count = $tokens->count(); $i < $count; ++$i) { @@ -294,7 +309,7 @@ Custom values: return true; } - if (\is_string($value) && 'method:' === substr($value, 0, 7)) { + if ('method:' === substr($value, 0, 7)) { return true; } } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php index e5179425..c2589df1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dave van der Brugge + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * direction?: 'ascend'|'descend', + * order?: 'alpha'|'length' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * direction: 'ascend'|'descend', + * order: 'alpha'|'length' + * } */ final class OrderedInterfacesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** @internal */ public const OPTION_DIRECTION = 'direction'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php index 417eb126..4d3b6dd7 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -25,8 +26,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool + * } + */ final class OrderedTraitsFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php index df89754a..e70c6baa 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -34,9 +35,25 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author John Paul E. Balandan, CPA + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * null_adjustment?: 'always_first'|'always_last'|'none', + * sort_algorithm?: 'alpha'|'none' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * null_adjustment: 'always_first'|'always_last'|'none', + * sort_algorithm: 'alpha'|'none' + * } */ final class OrderedTypesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleClassElementPerStatementFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleClassElementPerStatementFixer.php index a75aceab..5b1f781e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleClassElementPerStatementFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SingleClassElementPerStatementFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -35,9 +36,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * * @author Javier Spagnoletti * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * elements?: list<'const'|'property'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * elements: list<'const'|'property'> + * } */ final class SingleClassElementPerStatementFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function isCandidate(Tokens $tokens): bool { return $tokens->isAnyTokenKindsFound(Token::getClassyTokenKinds()); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/VisibilityRequiredFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/VisibilityRequiredFixer.php index 10a637d2..b85f4cf9 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/VisibilityRequiredFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/VisibilityRequiredFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ClassNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * Fixer for rules defined in PSR2 ¶4.3, ¶4.5. * * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * elements?: list<'const'|'method'|'property'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * elements: list<'const'|'method'|'property'> + * } */ final class VisibilityRequiredFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/CommentToPhpdocFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/CommentToPhpdocFixer.php index 3244a168..770814b2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/CommentToPhpdocFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/CommentToPhpdocFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Comment; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -31,9 +32,21 @@ use PhpCsFixer\Utils; /** * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * ignored_tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * ignored_tags: list + * } */ final class CommentToPhpdocFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ @@ -74,10 +87,8 @@ final class CommentToPhpdocFixer extends AbstractFixer implements ConfigurableFi ); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $this->ignoredTags = array_map( static fn (string $tag): string => strtolower($tag), $this->configuration['ignored_tags'] diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HeaderCommentFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HeaderCommentFixer.php index 1915cf23..cdf0be00 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HeaderCommentFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/HeaderCommentFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Comment; use PhpCsFixer\AbstractFixer; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -31,9 +32,27 @@ use Symfony\Component\OptionsResolver\Options; /** * @author Antonio J. García Lagar + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * comment_type?: 'PHPDoc'|'comment', + * header: string, + * location?: 'after_declare_strict'|'after_open', + * separate?: 'both'|'bottom'|'none'|'top' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * comment_type: 'PHPDoc'|'comment', + * header: string, + * location: 'after_declare_strict'|'after_open', + * separate: 'both'|'bottom'|'none'|'top' + * } */ final class HeaderCommentFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php index e8f96f84..2fc38dcb 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Comment/SingleLineCommentStyleFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Comment; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * comment_types?: list<'asterisk'|'hash'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * comment_types: list<'asterisk'|'hash'> + * } */ final class SingleLineCommentStyleFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var bool */ @@ -42,14 +55,6 @@ final class SingleLineCommentStyleFixer extends AbstractFixer implements Configu */ private $hashEnabled; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->asteriskEnabled = \in_array('asterisk', $this->configuration['comment_types'], true); - $this->hashEnabled = \in_array('hash', $this->configuration['comment_types'], true); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -111,6 +116,12 @@ $c = 3; return $tokens->isTokenKindFound(T_COMMENT); } + protected function configurePostNormalisation(): void + { + $this->asteriskEnabled = \in_array('asterisk', $this->configuration['comment_types'], true); + $this->hashEnabled = \in_array('hash', $this->configuration['comment_types'], true); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php index 24ce993b..443141c3 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConfigurableFixerInterface.php @@ -19,6 +19,9 @@ use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; /** * @author Dariusz Rumiński + * + * @template TFixerInputConfig of array + * @template TFixerComputedConfig of array */ interface ConfigurableFixerInterface extends FixerInterface { @@ -34,7 +37,7 @@ interface ConfigurableFixerInterface extends FixerInterface * eg `php_unit_strict` fixer allows to configure which methods should be fixed. * Finally, some fixers need configuration to work, eg `header_comment`. * - * @param array $configuration configuration depends on Fixer + * @param TFixerInputConfig $configuration configuration depends on Fixer * * @throws InvalidFixerConfigurationException */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php index 9c900a53..97004379 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ConstantNotation/NativeConstantInvocationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ConstantNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -31,9 +32,29 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * exclude?: list, + * fix_built_in?: bool, + * include?: list, + * scope?: 'all'|'namespaced', + * strict?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * exclude: list, + * fix_built_in: bool, + * include: list, + * scope: 'all'|'namespaced', + * strict: bool + * } */ final class NativeConstantInvocationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -113,10 +134,8 @@ namespace { return true; } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $uniqueConfiguredExclude = array_unique($this->configuration['exclude']); // Case-sensitive constants handling @@ -130,6 +149,7 @@ namespace { } } + /** @var list */ $constantsToEscape = array_diff( array_unique($constantsToEscape), $uniqueConfiguredExclude @@ -188,7 +208,7 @@ namespace { { $constantChecker = static function (array $value): bool { foreach ($value as $constantName) { - if (!\is_string($constantName) || '' === trim($constantName) || trim($constantName) !== $constantName) { + if (trim($constantName) !== $constantName) { throw new InvalidOptionsException(sprintf( 'Each element must be a non-empty, trimmed string, got "%s" instead.', get_debug_type($constantName) diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php index a51fa779..95639763 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/ControlStructureContinuationPositionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -26,8 +27,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Analyzer\WhitespacesAnalyzer; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * position?: 'next_line'|'same_line' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * position: 'next_line'|'same_line' + * } + */ final class ControlStructureContinuationPositionFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopBodyFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopBodyFixer.php index 54f804fe..03f6a905 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopBodyFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopBodyFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -26,8 +27,21 @@ use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; use PhpCsFixer\Tokenizer\TokensAnalyzer; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * style?: 'braces'|'semicolon' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * style: 'braces'|'semicolon' + * } + */ final class EmptyLoopBodyFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const STYLE_BRACES = 'braces'; private const STYLE_SEMICOLON = 'semicolon'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopConditionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopConditionFixer.php index 0e48012b..2feac4ea 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopConditionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/EmptyLoopConditionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -25,8 +26,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * style?: 'for'|'while' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * style: 'for'|'while' + * } + */ final class EmptyLoopConditionFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const STYLE_FOR = 'for'; private const STYLE_WHILE = 'while'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoAlternativeSyntaxFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoAlternativeSyntaxFixer.php index e994ad92..c0622fd2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoAlternativeSyntaxFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoAlternativeSyntaxFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Eddilbert Macharia + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * fix_non_monolithic_code?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * fix_non_monolithic_code: bool + * } */ final class NoAlternativeSyntaxFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php index eca95427..821df86c 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,21 @@ use Symfony\Component\OptionsResolver\Options; /** * Fixer for rule defined in PSR2 ¶5.2. + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * comment_text?: string + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * comment_text: string + * } */ final class NoBreakCommentFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php index 3d1e72bc..ce46c859 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -25,8 +26,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * namespaces?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * namespaces: bool + * } + */ final class NoUnneededBracesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php index 7a2da25b..6b2c3cb1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * @author Sullivan Senechal * @author Dariusz Rumiński * @author Gregor Harlan + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * statements?: list<'break'|'clone'|'continue'|'echo_print'|'negative_instanceof'|'others'|'return'|'switch_case'|'yield'|'yield_from'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * statements: list<'break'|'clone'|'continue'|'echo_print'|'negative_instanceof'|'others'|'return'|'switch_case'|'yield'|'yield_from'> + * } */ final class NoUnneededControlParenthesesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php index b71c524b..40610d2a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\DeprecatedFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -25,9 +26,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; /** * @deprecated + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * namespaces?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * namespaces: bool + * } */ final class NoUnneededCurlyBracesFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, DeprecatedFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private NoUnneededBracesFixer $noUnneededBracesFixer; public function __construct() @@ -49,13 +62,6 @@ final class NoUnneededCurlyBracesFixer extends AbstractProxyFixer implements Con ); } - public function configure(array $configuration): void - { - $this->noUnneededBracesFixer->configure($configuration); - - parent::configure($configuration); - } - /** * {@inheritdoc} * @@ -73,6 +79,14 @@ final class NoUnneededCurlyBracesFixer extends AbstractProxyFixer implements Con ]; } + /** + * @param _AutogeneratedInputConfiguration $configuration + */ + protected function configurePreNormalisation(array $configuration): void + { + $this->noUnneededBracesFixer->configure($configuration); + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/TrailingCommaInMultilineFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/TrailingCommaInMultilineFixer.php index fb86bc5b..e30f8c63 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/TrailingCommaInMultilineFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/TrailingCommaInMultilineFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -36,9 +37,23 @@ use Symfony\Component\OptionsResolver\Options; * @author Sebastiaan Stok * @author Dariusz Rumiński * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * after_heredoc?: bool, + * elements?: list<'arguments'|'arrays'|'match'|'parameters'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * after_heredoc: bool, + * elements: list<'arguments'|'arrays'|'match'|'parameters'> + * } */ final class TrailingCommaInMultilineFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/YodaStyleFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/YodaStyleFixer.php index c8005f1b..c1a2b132 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/YodaStyleFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/YodaStyleFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\ControlStructure; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,27 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Bram Gotink * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * always_move_variable?: bool, + * equal?: bool|null, + * identical?: bool|null, + * less_and_greater?: bool|null + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * always_move_variable: bool, + * equal: bool|null, + * identical: bool|null, + * less_and_greater: bool|null + * } */ final class YodaStyleFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -48,13 +67,6 @@ final class YodaStyleFixer extends AbstractFixer implements ConfigurableFixerInt */ private $candidateTypes; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->resolveConfiguration(); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -119,6 +131,11 @@ return $foo === count($bar); return $tokens->isAnyTokenKindsFound($this->candidateTypes); } + protected function configurePostNormalisation(): void + { + $this->resolveConfiguration(); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $this->fixTokens($tokens); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationArrayAssignmentFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationArrayAssignmentFixer.php index d4801c45..d3158f54 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationArrayAssignmentFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationArrayAssignmentFixer.php @@ -17,6 +17,8 @@ namespace PhpCsFixer\Fixer\DoctrineAnnotation; use PhpCsFixer\AbstractDoctrineAnnotationFixer; use PhpCsFixer\Doctrine\Annotation\DocLexer; use PhpCsFixer\Doctrine\Annotation\Tokens; +use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -26,9 +28,23 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; /** * Forces the configured operator for assignment in arrays in Doctrine Annotations. + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * ignored_tags?: list, + * operator?: ':'|'=' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * ignored_tags: list, + * operator: ':'|'=' + * } */ -final class DoctrineAnnotationArrayAssignmentFixer extends AbstractDoctrineAnnotationFixer +final class DoctrineAnnotationArrayAssignmentFixer extends AbstractDoctrineAnnotationFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -59,8 +75,7 @@ final class DoctrineAnnotationArrayAssignmentFixer extends AbstractDoctrineAnnot { $options = parent::createConfigurationDefinition()->getOptions(); - $operator = new FixerOptionBuilder('operator', 'The operator to use.'); - $options[] = $operator + $options[] = (new FixerOptionBuilder('operator', 'The operator to use.')) ->setAllowedValues(['=', ':']) ->setDefault('=') ->getOption() diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationBracesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationBracesFixer.php index ead0fb69..928254a2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationBracesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationBracesFixer.php @@ -18,6 +18,8 @@ use PhpCsFixer\AbstractDoctrineAnnotationFixer; use PhpCsFixer\Doctrine\Annotation\DocLexer; use PhpCsFixer\Doctrine\Annotation\Token; use PhpCsFixer\Doctrine\Annotation\Tokens; +use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +29,23 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; /** * Adds braces to Doctrine annotations when missing. + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * ignored_tags?: list, + * syntax?: 'with_braces'|'without_braces' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * ignored_tags: list, + * syntax: 'with_braces'|'without_braces' + * } */ -final class DoctrineAnnotationBracesFixer extends AbstractDoctrineAnnotationFixer +final class DoctrineAnnotationBracesFixer extends AbstractDoctrineAnnotationFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationIndentationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationIndentationFixer.php index 58ae532b..c9c01e01 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationIndentationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationIndentationFixer.php @@ -17,6 +17,8 @@ namespace PhpCsFixer\Fixer\DoctrineAnnotation; use PhpCsFixer\AbstractDoctrineAnnotationFixer; use PhpCsFixer\Doctrine\Annotation\DocLexer; use PhpCsFixer\Doctrine\Annotation\Tokens; +use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -25,8 +27,23 @@ use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Preg; -final class DoctrineAnnotationIndentationFixer extends AbstractDoctrineAnnotationFixer +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * ignored_tags?: list, + * indent_mixed_lines?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * ignored_tags: list, + * indent_mixed_lines: bool + * } + */ +final class DoctrineAnnotationIndentationFixer extends AbstractDoctrineAnnotationFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationSpacesFixer.php index 0ee08482..e39fe008 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/DoctrineAnnotation/DoctrineAnnotationSpacesFixer.php @@ -18,6 +18,8 @@ use PhpCsFixer\AbstractDoctrineAnnotationFixer; use PhpCsFixer\Doctrine\Annotation\DocLexer; use PhpCsFixer\Doctrine\Annotation\Token; use PhpCsFixer\Doctrine\Annotation\Tokens; +use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +30,37 @@ use PhpCsFixer\Preg; /** * Fixes spaces around commas and assignment operators in Doctrine annotations. + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * after_argument_assignments?: bool|null, + * after_array_assignments_colon?: bool|null, + * after_array_assignments_equals?: bool|null, + * around_commas?: bool, + * around_parentheses?: bool, + * before_argument_assignments?: bool|null, + * before_array_assignments_colon?: bool|null, + * before_array_assignments_equals?: bool|null, + * ignored_tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * after_argument_assignments: bool|null, + * after_array_assignments_colon: bool|null, + * after_array_assignments_equals: bool|null, + * around_commas: bool, + * around_parentheses: bool, + * before_argument_assignments: bool|null, + * before_array_assignments_colon: bool|null, + * before_array_assignments_equals: bool|null, + * ignored_tags: list + * } */ -final class DoctrineAnnotationSpacesFixer extends AbstractDoctrineAnnotationFixer +final class DoctrineAnnotationSpacesFixer extends AbstractDoctrineAnnotationFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagsFixer.php index a136c7b3..b363dc87 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FopenFlagsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractFopenFlagFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -25,8 +26,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * b_mode?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * b_mode: bool + * } + */ final class FopenFlagsFixer extends AbstractFopenFlagFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionDeclarationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionDeclarationFixer.php index 8e63c816..2f200630 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionDeclarationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/FunctionDeclarationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,25 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * Fixer for rules defined in PSR2 generally (¶1 and ¶6). * * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * closure_fn_spacing?: 'none'|'one', + * closure_function_spacing?: 'none'|'one', + * trailing_comma_single_line?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * closure_fn_spacing: 'none'|'one', + * closure_function_spacing: 'none'|'one', + * trailing_comma_single_line: bool + * } */ final class FunctionDeclarationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/MethodArgumentSpaceFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/MethodArgumentSpaceFixer.php index 2b6e3f2c..612fa4b7 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/MethodArgumentSpaceFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/MethodArgumentSpaceFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,9 +31,27 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Kuanhung Chen + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * after_heredoc?: bool, + * attribute_placement?: 'ignore'|'same_line'|'standalone', + * keep_multiple_spaces_after_comma?: bool, + * on_multiline?: 'ensure_fully_multiline'|'ensure_single_line'|'ignore' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * after_heredoc: bool, + * attribute_placement: 'ignore'|'same_line'|'standalone', + * keep_multiple_spaces_after_comma: bool, + * on_multiline: 'ensure_fully_multiline'|'ensure_single_line'|'ignore' + * } */ final class MethodArgumentSpaceFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NativeFunctionInvocationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NativeFunctionInvocationFixer.php index a4e71406..f13cfd65 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NativeFunctionInvocationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NativeFunctionInvocationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -31,9 +32,27 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Andreas Möller + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * exclude?: list, + * include?: list, + * scope?: 'all'|'namespaced', + * strict?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * exclude: list, + * include: list, + * scope: 'all'|'namespaced', + * strict: bool + * } */ final class NativeFunctionInvocationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -61,13 +80,6 @@ final class NativeFunctionInvocationFixer extends AbstractFixer implements Confi */ private $functionFilter; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->functionFilter = $this->getFunctionFilter(); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -181,6 +193,11 @@ $c = get_class($d); return true; } + protected function configurePostNormalisation(): void + { + $this->functionFilter = $this->getFunctionFilter(); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { if ('all' === $this->configuration['scope']) { @@ -205,7 +222,7 @@ $c = get_class($d); ->setAllowedTypes(['string[]']) ->setAllowedValues([static function (array $value): bool { foreach ($value as $functionName) { - if (!\is_string($functionName) || '' === trim($functionName) || trim($functionName) !== $functionName) { + if ('' === trim($functionName) || trim($functionName) !== $functionName) { throw new InvalidOptionsException(sprintf( 'Each element must be a non-empty, trimmed string, got "%s" instead.', get_debug_type($functionName) @@ -221,7 +238,7 @@ $c = get_class($d); ->setAllowedTypes(['string[]']) ->setAllowedValues([static function (array $value): bool { foreach ($value as $functionName) { - if (!\is_string($functionName) || '' === trim($functionName) || trim($functionName) !== $functionName) { + if ('' === trim($functionName) || trim($functionName) !== $functionName) { throw new InvalidOptionsException(sprintf( 'Each element must be a non-empty, trimmed string, got "%s" instead.', get_debug_type($functionName) diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php index efebad87..b21a9ea5 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -33,9 +34,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author HypeMC + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * use_nullable_type_declaration?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * use_nullable_type_declaration: bool + * } */ final class NullableTypeDeclarationForDefaultNullValueFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToParamTypeFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToParamTypeFixer.php index 603051f2..6d1b78bd 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToParamTypeFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/FunctionNotation/PhpdocToParamTypeFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\FunctionNotation; use PhpCsFixer\AbstractPhpdocToTypeDeclarationFixer; use PhpCsFixer\DocBlock\Annotation; +use PhpCsFixer\Fixer\ConfigurableFixerInterface; use PhpCsFixer\Fixer\ExperimentalFixerInterface; use PhpCsFixer\FixerDefinition\CodeSample; use PhpCsFixer\FixerDefinition\FixerDefinition; @@ -25,8 +26,19 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Jan Gantzert + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * scalar_types?: bool, + * union_types?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * scalar_types: bool, + * union_types: bool + * } */ -final class PhpdocToParamTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ExperimentalFixerInterface +final class PhpdocToParamTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ConfigurableFixerInterface, ExperimentalFixerInterface { private const TYPE_CHECK_TEMPLATE = ' + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * scalar_types?: bool, + * union_types?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * scalar_types: bool, + * union_types: bool + * } */ -final class PhpdocToPropertyTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ExperimentalFixerInterface +final class PhpdocToPropertyTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ConfigurableFixerInterface, ExperimentalFixerInterface { private const TYPE_CHECK_TEMPLATE = ' + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * scalar_types?: bool, + * union_types?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * scalar_types: bool, + * union_types: bool + * } */ -final class PhpdocToReturnTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ExperimentalFixerInterface +final class PhpdocToReturnTypeFixer extends AbstractPhpdocToTypeDeclarationFixer implements ConfigurableFixerInterface, ExperimentalFixerInterface { private const TYPE_CHECK_TEMPLATE = ' + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * space_before?: 'none'|'one' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * space_before: 'none'|'one' + * } */ final class ReturnTypeDeclarationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/FullyQualifiedStrictTypesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/FullyQualifiedStrictTypesFixer.php index a58f6998..c5f5d6ae 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/FullyQualifiedStrictTypesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/FullyQualifiedStrictTypesFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Import; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\TypeExpression; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -40,9 +41,25 @@ use PhpCsFixer\Tokenizer\Tokens; * @author Greg Korba * @author SpacePossum * @author Michael Vorisek + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * import_symbols?: bool, + * leading_backslash_in_global_namespace?: bool, + * phpdoc_tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * import_symbols: bool, + * leading_backslash_in_global_namespace: bool, + * phpdoc_tags: list + * } */ final class FullyQualifiedStrictTypesFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const REGEX_CLASS = '(?:\\\?+'.TypeExpression::REGEX_IDENTIFIER .'(\\\\'.TypeExpression::REGEX_IDENTIFIER.')*+)'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GlobalNamespaceImportFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GlobalNamespaceImportFixer.php index 44937535..56f7704f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GlobalNamespaceImportFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GlobalNamespaceImportFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\Annotation; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -38,9 +39,25 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gregor Harlan + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * import_classes?: bool|null, + * import_constants?: bool|null, + * import_functions?: bool|null + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * import_classes: bool|null, + * import_constants: bool|null, + * import_functions: bool|null + * } */ final class GlobalNamespaceImportFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private ImportProcessor $importProcessor; public function __construct() diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GroupImportFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GroupImportFixer.php index 1d47b274..0999993a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GroupImportFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/GroupImportFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Import; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -33,9 +34,21 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Volodymyr Kupriienko * @author Greg Korba + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * group_types?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * group_types: list + * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ final class GroupImportFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** @internal */ public const GROUP_CLASSY = 'classy'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/OrderedImportsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/OrderedImportsFixer.php index c488576f..0bf2560a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/OrderedImportsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/OrderedImportsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Import; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -44,9 +45,25 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; * importType: self::IMPORT_TYPE_*, * group: bool, * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * imports_order?: list|null, + * sort_algorithm?: 'alpha'|'length'|'none' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * imports_order: list|null, + * sort_algorithm: 'alpha'|'length'|'none' + * } */ final class OrderedImportsFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php index f10e93db..a344fe44 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Import/SingleImportPerStatementFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Import; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -33,9 +34,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * Fixer for rules defined in PSR2 ¶3. * * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * group_to_single_imports?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * group_to_single_imports: bool + * } */ final class SingleImportPerStatementFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php index ae7c9ea4..442ee723 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/DeclareEqualNormalizeFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * space?: 'none'|'single' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * space: 'none'|'single' + * } */ final class DeclareEqualNormalizeFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ErrorSuppressionFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ErrorSuppressionFixer.php index 0c108335..551d8e33 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ErrorSuppressionFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/ErrorSuppressionFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Jules Pietri * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * mute_deprecation_error?: bool, + * noise_remaining_usages?: bool, + * noise_remaining_usages_exclude?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * mute_deprecation_error: bool, + * noise_remaining_usages: bool, + * noise_remaining_usages_exclude: list + * } */ final class ErrorSuppressionFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/FunctionToConstantFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/FunctionToConstantFixer.php index a2041ac1..a182616d 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/FunctionToConstantFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/FunctionToConstantFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -28,8 +29,21 @@ use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * functions?: list<'get_called_class'|'get_class'|'get_class_this'|'php_sapi_name'|'phpversion'|'pi'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * functions: list<'get_called_class'|'get_class'|'get_class_this'|'php_sapi_name'|'phpversion'|'pi'> + * } + */ final class FunctionToConstantFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array> */ @@ -68,17 +82,6 @@ final class FunctionToConstantFixer extends AbstractFixer implements Configurabl parent::__construct(); } - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->functionsFixMap = []; - - foreach ($this->configuration['functions'] as $key) { - $this->functionsFixMap[$key] = self::$availableFunctions[$key]; - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -118,6 +121,15 @@ final class FunctionToConstantFixer extends AbstractFixer implements Configurabl return true; } + protected function configurePostNormalisation(): void + { + $this->functionsFixMap = []; + + foreach ($this->configuration['functions'] as $key) { + $this->functionsFixMap[$key] = self::$availableFunctions[$key]; + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $functionAnalyzer = new FunctionsAnalyzer(); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NullableTypeDeclarationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NullableTypeDeclarationFixer.php index a7b65432..ba4a70e2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NullableTypeDeclarationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/NullableTypeDeclarationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -33,9 +34,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author John Paul E. Balandan, CPA + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * syntax?: 'question_mark'|'union' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * syntax: 'question_mark'|'union' + * } */ final class NullableTypeDeclarationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const OPTION_SYNTAX_UNION = 'union'; private const OPTION_SYNTAX_QUESTION_MARK = 'question_mark'; @@ -88,10 +101,8 @@ class ValueObject return 2; } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $this->candidateTokenKind = self::OPTION_SYNTAX_QUESTION_MARK === $this->configuration['syntax'] ? CT::T_TYPE_ALTERNATION // `|` -> `?` : CT::T_NULLABLE_TYPE; // `?` -> `|` diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAfterConstructFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAfterConstructFixer.php index 6bced514..7ca0c4e3 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAfterConstructFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAfterConstructFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\DeprecatedFixerInterface; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\CT; * @author Andreas Möller * * @deprecated + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * constructs?: list<'abstract'|'as'|'attribute'|'break'|'case'|'catch'|'class'|'clone'|'comment'|'const'|'const_import'|'continue'|'do'|'echo'|'else'|'elseif'|'enum'|'extends'|'final'|'finally'|'for'|'foreach'|'function'|'function_import'|'global'|'goto'|'if'|'implements'|'include'|'include_once'|'instanceof'|'insteadof'|'interface'|'match'|'named_argument'|'namespace'|'new'|'open_tag_with_echo'|'php_doc'|'php_open'|'print'|'private'|'protected'|'public'|'readonly'|'require'|'require_once'|'return'|'static'|'switch'|'throw'|'trait'|'try'|'type_colon'|'use'|'use_lambda'|'use_trait'|'var'|'while'|'yield'|'yield_from'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * constructs: list<'abstract'|'as'|'attribute'|'break'|'case'|'catch'|'class'|'clone'|'comment'|'const'|'const_import'|'continue'|'do'|'echo'|'else'|'elseif'|'enum'|'extends'|'final'|'finally'|'for'|'foreach'|'function'|'function_import'|'global'|'goto'|'if'|'implements'|'include'|'include_once'|'instanceof'|'insteadof'|'interface'|'match'|'named_argument'|'namespace'|'new'|'open_tag_with_echo'|'php_doc'|'php_open'|'print'|'private'|'protected'|'public'|'readonly'|'require'|'require_once'|'return'|'static'|'switch'|'throw'|'trait'|'try'|'type_colon'|'use'|'use_lambda'|'use_trait'|'var'|'while'|'yield'|'yield_from'> + * } */ final class SingleSpaceAfterConstructFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, DeprecatedFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -114,19 +127,6 @@ final class SingleSpaceAfterConstructFixer extends AbstractProxyFixer implements return array_keys($this->proxyFixers); } - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->singleSpaceAroundConstructFixer->configure([ - 'constructs_contain_a_single_space' => [ - 'yield_from', - ], - 'constructs_preceded_by_a_single_space' => [], - 'constructs_followed_by_a_single_space' => $this->configuration['constructs'], - ]); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -175,6 +175,17 @@ yield from baz(); return parent::getPriority(); } + protected function configurePostNormalisation(): void + { + $this->singleSpaceAroundConstructFixer->configure([ + 'constructs_contain_a_single_space' => [ + 'yield_from', + ], + 'constructs_preceded_by_a_single_space' => [], + 'constructs_followed_by_a_single_space' => $this->configuration['constructs'], + ]); + } + protected function createProxyFixers(): array { return [$this->singleSpaceAroundConstructFixer]; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAroundConstructFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAroundConstructFixer.php index 0536d886..ac535cef 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAroundConstructFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/LanguageConstruct/SingleSpaceAroundConstructFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\LanguageConstruct; 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,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Andreas Möller * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * constructs_contain_a_single_space?: list<'yield_from'>, + * constructs_followed_by_a_single_space?: list<'abstract'|'as'|'attribute'|'break'|'case'|'catch'|'class'|'clone'|'comment'|'const'|'const_import'|'continue'|'do'|'echo'|'else'|'elseif'|'enum'|'extends'|'final'|'finally'|'for'|'foreach'|'function'|'function_import'|'global'|'goto'|'if'|'implements'|'include'|'include_once'|'instanceof'|'insteadof'|'interface'|'match'|'named_argument'|'namespace'|'new'|'open_tag_with_echo'|'php_doc'|'php_open'|'print'|'private'|'protected'|'public'|'readonly'|'require'|'require_once'|'return'|'static'|'switch'|'throw'|'trait'|'try'|'type_colon'|'use'|'use_lambda'|'use_trait'|'var'|'while'|'yield'|'yield_from'>, + * constructs_preceded_by_a_single_space?: list<'as'|'use_lambda'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * constructs_contain_a_single_space: list<'yield_from'>, + * constructs_followed_by_a_single_space: list<'abstract'|'as'|'attribute'|'break'|'case'|'catch'|'class'|'clone'|'comment'|'const'|'const_import'|'continue'|'do'|'echo'|'else'|'elseif'|'enum'|'extends'|'final'|'finally'|'for'|'foreach'|'function'|'function_import'|'global'|'goto'|'if'|'implements'|'include'|'include_once'|'instanceof'|'insteadof'|'interface'|'match'|'named_argument'|'namespace'|'new'|'open_tag_with_echo'|'php_doc'|'php_open'|'print'|'private'|'protected'|'public'|'readonly'|'require'|'require_once'|'return'|'static'|'switch'|'throw'|'trait'|'try'|'type_colon'|'use'|'use_lambda'|'use_trait'|'var'|'while'|'yield'|'yield_from'>, + * constructs_preceded_by_a_single_space: list<'as'|'use_lambda'> + * } */ final class SingleSpaceAroundConstructFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -132,59 +149,6 @@ final class SingleSpaceAroundConstructFixer extends AbstractFixer implements Con */ private array $fixTokenMapPrecededByASingleSpace = []; - public function configure(array $configuration): void - { - parent::configure($configuration); - - if (\defined('T_MATCH')) { // @TODO: drop condition when PHP 8.0+ is required - self::$tokenMapFollowedByASingleSpace['match'] = T_MATCH; - } - - if (\defined('T_READONLY')) { // @TODO: drop condition when PHP 8.1+ is required - self::$tokenMapFollowedByASingleSpace['readonly'] = T_READONLY; - } - - if (\defined('T_ENUM')) { // @TODO: drop condition when PHP 8.1+ is required - self::$tokenMapFollowedByASingleSpace['enum'] = T_ENUM; - } - - $this->fixTokenMapContainASingleSpace = []; - - foreach ($this->configuration['constructs_contain_a_single_space'] as $key) { - if (null !== self::$tokenMapContainASingleSpace[$key]) { - $this->fixTokenMapContainASingleSpace[$key] = self::$tokenMapContainASingleSpace[$key]; - } - } - - $this->fixTokenMapPrecededByASingleSpace = []; - - foreach ($this->configuration['constructs_preceded_by_a_single_space'] as $key) { - if (null !== self::$tokenMapPrecededByASingleSpace[$key]) { - $this->fixTokenMapPrecededByASingleSpace[$key] = self::$tokenMapPrecededByASingleSpace[$key]; - } - } - - $this->fixTokenMapFollowedByASingleSpace = []; - - foreach ($this->configuration['constructs_followed_by_a_single_space'] as $key) { - if (null !== self::$tokenMapFollowedByASingleSpace[$key]) { - $this->fixTokenMapFollowedByASingleSpace[$key] = self::$tokenMapFollowedByASingleSpace[$key]; - } - } - - if (isset($this->fixTokenMapFollowedByASingleSpace['public'])) { - $this->fixTokenMapFollowedByASingleSpace['constructor_public'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PUBLIC; - } - - if (isset($this->fixTokenMapFollowedByASingleSpace['protected'])) { - $this->fixTokenMapFollowedByASingleSpace['constructor_protected'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PROTECTED; - } - - if (isset($this->fixTokenMapFollowedByASingleSpace['private'])) { - $this->fixTokenMapFollowedByASingleSpace['constructor_private'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PRIVATE; - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -274,6 +238,57 @@ yield from baz(); return $tokens->isAnyTokenKindsFound($tokenKinds) && !$tokens->hasAlternativeSyntax(); } + protected function configurePostNormalisation(): void + { + if (\defined('T_MATCH')) { // @TODO: drop condition when PHP 8.0+ is required + self::$tokenMapFollowedByASingleSpace['match'] = T_MATCH; + } + + if (\defined('T_READONLY')) { // @TODO: drop condition when PHP 8.1+ is required + self::$tokenMapFollowedByASingleSpace['readonly'] = T_READONLY; + } + + if (\defined('T_ENUM')) { // @TODO: drop condition when PHP 8.1+ is required + self::$tokenMapFollowedByASingleSpace['enum'] = T_ENUM; + } + + $this->fixTokenMapContainASingleSpace = []; + + foreach ($this->configuration['constructs_contain_a_single_space'] as $key) { + if (null !== self::$tokenMapContainASingleSpace[$key]) { + $this->fixTokenMapContainASingleSpace[$key] = self::$tokenMapContainASingleSpace[$key]; + } + } + + $this->fixTokenMapPrecededByASingleSpace = []; + + foreach ($this->configuration['constructs_preceded_by_a_single_space'] as $key) { + if (null !== self::$tokenMapPrecededByASingleSpace[$key]) { + $this->fixTokenMapPrecededByASingleSpace[$key] = self::$tokenMapPrecededByASingleSpace[$key]; + } + } + + $this->fixTokenMapFollowedByASingleSpace = []; + + foreach ($this->configuration['constructs_followed_by_a_single_space'] as $key) { + if (null !== self::$tokenMapFollowedByASingleSpace[$key]) { + $this->fixTokenMapFollowedByASingleSpace[$key] = self::$tokenMapFollowedByASingleSpace[$key]; + } + } + + if (isset($this->fixTokenMapFollowedByASingleSpace['public'])) { + $this->fixTokenMapFollowedByASingleSpace['constructor_public'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PUBLIC; + } + + if (isset($this->fixTokenMapFollowedByASingleSpace['protected'])) { + $this->fixTokenMapFollowedByASingleSpace['constructor_protected'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PROTECTED; + } + + if (isset($this->fixTokenMapFollowedByASingleSpace['private'])) { + $this->fixTokenMapFollowedByASingleSpace['constructor_private'] = CT::T_CONSTRUCTOR_PROPERTY_PROMOTION_PRIVATE; + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $tokenKindsContainASingleSpace = array_values($this->fixTokenMapContainASingleSpace); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ListNotation/ListSyntaxFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ListNotation/ListSyntaxFixer.php index 3bc18cea..3f550e6b 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/ListNotation/ListSyntaxFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/ListNotation/ListSyntaxFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\ListNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,25 +28,26 @@ use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * syntax?: 'long'|'short' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * syntax: 'long'|'short' + * } + */ final class ListSyntaxFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var null|int */ private $candidateTokenKind; - /** - * @param array{syntax: 'long'|'short'} $configuration - * - * @throws InvalidFixerConfigurationException - */ - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->candidateTokenKind = 'long' === $this->configuration['syntax'] ? CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN : T_LIST; - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -77,6 +79,14 @@ final class ListSyntaxFixer extends AbstractFixer implements ConfigurableFixerIn return $tokens->isTokenKindFound($this->candidateTokenKind); } + /** + * @throws InvalidFixerConfigurationException + */ + protected function configurePostNormalisation(): void + { + $this->candidateTokenKind = 'long' === $this->configuration['syntax'] ? CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN : T_LIST; + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($index = $tokens->count() - 1; 0 <= $index; --$index) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLinesBeforeNamespaceFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLinesBeforeNamespaceFixer.php index 4d2a78e7..2a3a9456 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLinesBeforeNamespaceFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/NamespaceNotation/BlankLinesBeforeNamespaceFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\NamespaceNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -31,9 +32,23 @@ use Symfony\Component\OptionsResolver\Options; /** * @author Graham Campbell * @author Greg Korba + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * max_line_breaks?: int, + * min_line_breaks?: int + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * max_line_breaks: int, + * min_line_breaks: int + * } */ final class BlankLinesBeforeNamespaceFixer extends AbstractFixer implements WhitespacesAwareFixerInterface, ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/BinaryOperatorSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/BinaryOperatorSpacesFixer.php index 3e7f59b8..b1b178b6 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/BinaryOperatorSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/BinaryOperatorSpacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,23 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * default?: 'align'|'align_by_scope'|'align_single_space'|'align_single_space_by_scope'|'align_single_space_minimal'|'align_single_space_minimal_by_scope'|'at_least_single_space'|'no_space'|'single_space'|null, + * operators?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * default: 'align'|'align_by_scope'|'align_single_space'|'align_single_space_by_scope'|'align_single_space_minimal'|'align_single_space_minimal_by_scope'|'at_least_single_space'|'no_space'|'single_space'|null, + * operators: array + * } */ final class BinaryOperatorSpacesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -177,13 +192,6 @@ final class BinaryOperatorSpacesFixer extends AbstractFixer implements Configura */ private array $operators = []; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->operators = $this->resolveOperatorsFromConfig(); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -320,6 +328,11 @@ $array = [ return true; } + protected function configurePostNormalisation(): void + { + $this->operators = $this->resolveOperatorsFromConfig(); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $this->tokensAnalyzer = new TokensAnalyzer($tokens); @@ -358,7 +371,7 @@ $array = [ ->setAllowedValues(self::$allowedValues) ->getOption(), (new FixerOptionBuilder('operators', 'Dictionary of `binary operator` => `fix strategy` values that differ from the default strategy. Supported are: '.Utils::naturalLanguageJoinWithBackticks(self::SUPPORTED_OPERATORS).'.')) - ->setAllowedTypes(['array']) + ->setAllowedTypes(['array']) ->setAllowedValues([static function (array $option): bool { foreach ($option as $operator => $value) { if (!\in_array($operator, self::SUPPORTED_OPERATORS, true)) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php index c499e628..ae89a8f4 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * spacing?: 'none'|'one' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * spacing: 'none'|'one' + * } */ final class ConcatSpaceFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php index 4d2d9b8a..bc5de5bd 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\Fixer\AbstractIncrementOperatorFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gregor Harlan * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * style?: 'post'|'pre' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * style: 'post'|'pre' + * } */ final class IncrementStyleFixer extends AbstractIncrementOperatorFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php index 1fad4c76..865f6897 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\DeprecatedFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerDefinition\FixerDefinition; @@ -25,9 +26,23 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; * @author Dariusz Rumiński * * @deprecated + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * anonymous_class?: bool, + * named_class?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * anonymous_class: bool, + * named_class: bool + * } */ final class NewWithBracesFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, DeprecatedFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private NewWithParenthesesFixer $newWithParenthesesFixer; public function __construct() @@ -59,13 +74,6 @@ final class NewWithBracesFixer extends AbstractProxyFixer implements Configurabl return $this->newWithParenthesesFixer->getPriority(); } - public function configure(array $configuration): void - { - $this->newWithParenthesesFixer->configure($configuration); - - parent::configure($configuration); - } - public function getSuccessorsNames(): array { return [ @@ -73,6 +81,14 @@ final class NewWithBracesFixer extends AbstractProxyFixer implements Configurabl ]; } + /** + * @param _AutogeneratedInputConfiguration $configuration + */ + protected function configurePreNormalisation(array $configuration): void + { + $this->newWithParenthesesFixer->configure($configuration); + } + protected function createProxyFixers(): array { return [ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php index 81f95ece..e1621fc8 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,23 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * anonymous_class?: bool, + * named_class?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * anonymous_class: bool, + * named_class: bool + * } */ final class NewWithParenthesesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -64,6 +79,21 @@ final class NewWithParenthesesFixer extends AbstractFixer implements Configurabl return $tokens->isTokenKindFound(T_NEW); } + /** @protected */ + public function createConfigurationDefinition(): FixerConfigurationResolverInterface + { + return new FixerConfigurationResolver([ + (new FixerOptionBuilder('named_class', 'Whether named classes should be followed by parentheses.')) + ->setAllowedTypes(['bool']) + ->setDefault(true) + ->getOption(), + (new FixerOptionBuilder('anonymous_class', 'Whether anonymous classes should be followed by parentheses.')) + ->setAllowedTypes(['bool']) + ->setDefault(true) + ->getOption(), + ]); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { static $nextTokenKinds = null; @@ -155,20 +185,6 @@ final class NewWithParenthesesFixer extends AbstractFixer implements Configurabl } } - protected function createConfigurationDefinition(): FixerConfigurationResolverInterface - { - return new FixerConfigurationResolver([ - (new FixerOptionBuilder('named_class', 'Whether named classes should be followed by parentheses.')) - ->setAllowedTypes(['bool']) - ->setDefault(true) - ->getOption(), - (new FixerOptionBuilder('anonymous_class', 'Whether anonymous classes should be followed by parentheses.')) - ->setAllowedTypes(['bool']) - ->setDefault(true) - ->getOption(), - ]); - } - private function ensureParenthesesAt(Tokens $tokens, int $index): void { $token = $tokens[$index]; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php index 79c35e7c..a2cdd158 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,21 @@ use PhpCsFixer\Tokenizer\Tokens; * end: int, * type: self::STR_*, * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * juggle_simple_strings?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * juggle_simple_strings: bool + * } */ final class NoUselessConcatOperatorFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const STR_DOUBLE_QUOTE = 0; private const STR_DOUBLE_QUOTE_VAR = 1; private const STR_SINGLE_QUOTE = 2; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/OperatorLinebreakFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/OperatorLinebreakFixer.php index a73a28c4..fdec2fb1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/OperatorLinebreakFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/OperatorLinebreakFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,23 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * only_booleans?: bool, + * position?: 'beginning'|'end' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * only_booleans: bool, + * position: 'beginning'|'end' + * } */ final class OperatorLinebreakFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const BOOLEAN_OPERATORS = [[T_BOOLEAN_AND], [T_BOOLEAN_OR], [T_LOGICAL_AND], [T_LOGICAL_OR], [T_LOGICAL_XOR]]; private string $position = 'beginning'; @@ -68,10 +83,13 @@ function foo() { ); } - public function configure(array $configuration): void + public function isCandidate(Tokens $tokens): bool { - parent::configure($configuration); + return true; + } + protected function configurePostNormalisation(): void + { $this->position = $this->configuration['position']; $this->operators = self::BOOLEAN_OPERATORS; @@ -80,11 +98,6 @@ function foo() { } } - public function isCandidate(Tokens $tokens): bool - { - return true; - } - protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/UnaryOperatorSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/UnaryOperatorSpacesFixer.php index 873e9326..42b977fe 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/UnaryOperatorSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Operator/UnaryOperatorSpacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Operator; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gregor Harlan * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * only_dec_inc?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * only_dec_inc: bool + * } */ final class UnaryOperatorSpacesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/EchoTagSyntaxFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/EchoTagSyntaxFixer.php index 7c61daad..2953c35d 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/EchoTagSyntaxFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/EchoTagSyntaxFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpTag; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -27,9 +28,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Michele Locati + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * format?: 'long'|'short', + * long_function?: 'echo'|'print', + * shorten_simple_statements_only?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * format: 'long'|'short', + * long_function: 'echo'|'print', + * shorten_simple_statements_only: bool + * } */ final class EchoTagSyntaxFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** @internal */ public const OPTION_FORMAT = 'format'; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php index 47211482..c0b6efae 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * assertions?: list<'assertEquals'|'assertNotEquals'|'assertNotSame'|'assertSame'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * assertions: list<'assertEquals'|'assertNotEquals'|'assertNotSame'|'assertSame'> + * } */ final class PhpUnitConstructFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function isRisky(): bool { return true; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php index ae69b579..c96efca8 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,23 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * prefix?: string, + * suffix?: string + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * prefix: string, + * suffix: string + * } */ final class PhpUnitDataProviderNameFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php index 70fb1d5f..d9ba966e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Kuba Werłos + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * force?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * force: bool + * } */ final class PhpUnitDataProviderStaticFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php index c65dd239..6f443725 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '3.0'|'3.5'|'5.0'|'5.6'|'newest' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '3.0'|'3.5'|'5.0'|'5.6'|'newest' + * } */ final class PhpUnitDedicateAssertFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -113,10 +126,61 @@ final class PhpUnitDedicateAssertFixer extends AbstractPhpUnitFixer implements C */ private array $functions = []; - public function configure(array $configuration): void + public function isRisky(): bool { - parent::configure($configuration); + return true; + } + public function getDefinition(): FixerDefinitionInterface + { + return new FixerDefinition( + 'PHPUnit assertions like `assertInternalType`, `assertFileExists`, should be used over `assertTrue`.', + [ + new CodeSample( + 'assertTrue(is_float( $a), "my message"); + $this->assertTrue(is_nan($a)); + } +} +' + ), + new CodeSample( + 'assertTrue(is_dir($a)); + $this->assertTrue(is_writable($a)); + $this->assertTrue(is_readable($a)); + } +} +', + ['target' => PhpUnitTargetVersion::VERSION_5_6] + ), + ], + null, + 'Fixer could be risky if one is overriding PHPUnit\'s native methods.' + ); + } + + /** + * {@inheritdoc} + * + * Must run before NoUnusedImportsFixer, PhpUnitDedicateAssertInternalTypeFixer. + * Must run after ModernizeStrposFixer, NoAliasFunctionsFixer, PhpUnitConstructFixer. + */ + public function getPriority(): int + { + return -9; + } + + protected function configurePostNormalisation(): void + { // assertions added in 3.0: assertArrayNotHasKey assertArrayHasKey assertFileNotExists assertFileExists assertNotNull, assertNull $this->functions = [ 'array_key_exists', @@ -171,59 +235,6 @@ final class PhpUnitDedicateAssertFixer extends AbstractPhpUnitFixer implements C } } - public function isRisky(): bool - { - return true; - } - - public function getDefinition(): FixerDefinitionInterface - { - return new FixerDefinition( - 'PHPUnit assertions like `assertInternalType`, `assertFileExists`, should be used over `assertTrue`.', - [ - new CodeSample( - 'assertTrue(is_float( $a), "my message"); - $this->assertTrue(is_nan($a)); - } -} -' - ), - new CodeSample( - 'assertTrue(is_dir($a)); - $this->assertTrue(is_writable($a)); - $this->assertTrue(is_readable($a)); - } -} -', - ['target' => PhpUnitTargetVersion::VERSION_5_6] - ), - ], - null, - 'Fixer could be risky if one is overriding PHPUnit\'s native methods.' - ); - } - - /** - * {@inheritdoc} - * - * Must run before NoUnusedImportsFixer, PhpUnitDedicateAssertInternalTypeFixer. - * Must run after ModernizeStrposFixer, NoAliasFunctionsFixer, PhpUnitConstructFixer. - */ - public function getPriority(): int - { - return -9; - } - protected function applyPhpUnitClassFix(Tokens $tokens, int $startIndex, int $endIndex): void { $argumentsAnalyzer = new ArgumentsAnalyzer(); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php index b6e955ea..ece43be2 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '7.5'|'newest' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '7.5'|'newest' + * } */ final class PhpUnitDedicateAssertInternalTypeFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php index ca8464d2..2429288a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,32 +31,26 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '5.2'|'5.6'|'8.4'|'newest' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '5.2'|'5.6'|'8.4'|'newest' + * } */ final class PhpUnitExpectationFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ private array $methodMap = []; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->methodMap = [ - 'setExpectedException' => 'expectExceptionMessage', - ]; - - if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_6)) { - $this->methodMap['setExpectedExceptionRegExp'] = 'expectExceptionMessageRegExp'; - } - - if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_8_4)) { - $this->methodMap['setExpectedExceptionRegExp'] = 'expectExceptionMessageMatches'; - $this->methodMap['expectExceptionMessageRegExp'] = 'expectExceptionMessageMatches'; - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -157,6 +152,22 @@ final class MyTest extends \PHPUnit_Framework_TestCase return true; } + protected function configurePostNormalisation(): void + { + $this->methodMap = [ + 'setExpectedException' => 'expectExceptionMessage', + ]; + + if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_6)) { + $this->methodMap['setExpectedExceptionRegExp'] = 'expectExceptionMessageRegExp'; + } + + if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_8_4)) { + $this->methodMap['setExpectedExceptionRegExp'] = 'expectExceptionMessageMatches'; + $this->methodMap['expectExceptionMessageRegExp'] = 'expectExceptionMessageMatches'; + } + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitInternalClassFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitInternalClassFixer.php index 40f34838..1a50197f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitInternalClassFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitInternalClassFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gert de Pagter + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * types?: list<'abstract'|'final'|'normal'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * types: list<'abstract'|'final'|'normal'> + * } */ final class PhpUnitInternalClassFixer extends AbstractPhpUnitFixer implements WhitespacesAwareFixerInterface, ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMethodCasingFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMethodCasingFixer.php index c742c2d1..23868a4a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMethodCasingFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMethodCasingFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\DocBlock\Line; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,21 @@ use PhpCsFixer\Utils; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case?: 'camel_case'|'snake_case' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case: 'camel_case'|'snake_case' + * } */ final class PhpUnitMethodCasingFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockFixer.php index a3d3484c..5e541926 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitMockFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '5.4'|'5.5'|'newest' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '5.4'|'5.5'|'newest' + * } */ final class PhpUnitMockFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var bool */ @@ -79,10 +92,8 @@ final class MyTest extends \PHPUnit_Framework_TestCase return true; } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $this->fixCreatePartialMock = PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_5_5); } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNamespacedFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNamespacedFixer.php index d521007d..0a582b09 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNamespacedFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNamespacedFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '4.8'|'5.7'|'6.0'|'newest' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '4.8'|'5.7'|'6.0'|'newest' + * } */ final class PhpUnitNamespacedFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var string */ @@ -85,10 +98,8 @@ final class MyTest extends \PHPUnit_Framework_TestCase return true; } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - if (PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_6_0)) { $this->originalClassRegEx = '/^PHPUnit_\w+$/i'; // @noinspection ClassConstantCanBeUsedInspection diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNoExpectationAnnotationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNoExpectationAnnotationFixer.php index f6fa1f0f..f50a7c5e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNoExpectationAnnotationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitNoExpectationAnnotationFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\DocBlock\Annotation; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -33,21 +34,28 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * target?: '3.2'|'4.3'|'newest', + * use_class_const?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * target: '3.2'|'4.3'|'newest', + * use_class_const: bool + * } */ final class PhpUnitNoExpectationAnnotationFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var bool */ private $fixMessageRegExp; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->fixMessageRegExp = PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_4_3); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -115,6 +123,11 @@ final class MyTest extends \PHPUnit_Framework_TestCase return true; } + protected function configurePostNormalisation(): void + { + $this->fixMessageRegExp = PhpUnitTargetVersion::fulfills($this->configuration['target'], PhpUnitTargetVersion::VERSION_4_3); + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSizeClassFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSizeClassFixer.php index 4023493d..669bb78a 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSizeClassFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitSizeClassFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -27,9 +28,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Jefersson Nathan + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * group?: 'large'|'medium'|'small' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * group: 'large'|'medium'|'small' + * } */ final class PhpUnitSizeClassFixer extends AbstractPhpUnitFixer implements WhitespacesAwareFixerInterface, ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const SIZES = ['small', 'medium', 'large']; public function getDefinition(): FixerDefinitionInterface diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitStrictFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitStrictFixer.php index 75efba02..c9f9552d 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitStrictFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitStrictFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * assertions?: list<'assertAttributeEquals'|'assertAttributeNotEquals'|'assertEquals'|'assertNotEquals'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * assertions: list<'assertAttributeEquals'|'assertAttributeNotEquals'|'assertEquals'|'assertNotEquals'> + * } */ final class PhpUnitStrictFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestAnnotationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestAnnotationFixer.php index 455d512b..8b524346 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestAnnotationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestAnnotationFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\DocBlock\Line; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -33,9 +34,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gert de Pagter + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * style?: 'annotation'|'prefix' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * style: 'annotation'|'prefix' + * } */ final class PhpUnitTestAnnotationFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function isRisky(): bool { return true; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestCaseStaticMethodCallsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestCaseStaticMethodCallsFixer.php index 534cfc65..e6d34bc0 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestCaseStaticMethodCallsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitTestCaseStaticMethodCallsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\PhpUnit; use PhpCsFixer\Fixer\AbstractPhpUnitFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,23 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Filippo Tessarotto + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * call_type?: 'self'|'static'|'this', + * methods?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * call_type: 'self'|'static'|'this', + * methods: list + * } */ final class PhpUnitTestCaseStaticMethodCallsFixer extends AbstractPhpUnitFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -196,6 +211,7 @@ final class PhpUnitTestCaseStaticMethodCallsFixer extends AbstractPhpUnitFixer i 'assertObjectEquals' => true, 'assertObjectHasAttribute' => true, 'assertObjectHasProperty' => true, + 'assertObjectNotEquals' => true, 'assertObjectNotHasAttribute' => true, 'assertObjectNotHasProperty' => true, 'assertRegExp' => true, diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/AlignMultilineCommentFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/AlignMultilineCommentFixer.php index eb6b3158..ff32cd2f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/AlignMultilineCommentFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/AlignMultilineCommentFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,24 +31,26 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Filippo Tessarotto * @author Julien Falque + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * comment_type?: 'all_multiline'|'phpdocs_like'|'phpdocs_only' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * comment_type: 'all_multiline'|'phpdocs_like'|'phpdocs_only' + * } */ final class AlignMultilineCommentFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var null|list */ private $tokenKinds; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->tokenKinds = [T_DOC_COMMENT]; - if ('phpdocs_only' !== $this->configuration['comment_type']) { - $this->tokenKinds[] = T_COMMENT; - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -100,6 +103,14 @@ with a line not prefixed with asterisk return $tokens->isAnyTokenKindsFound($this->tokenKinds); } + protected function configurePostNormalisation(): void + { + $this->tokenKinds = [T_DOC_COMMENT]; + if ('phpdocs_only' !== $this->configuration['comment_type']) { + $this->tokenKinds[] = T_COMMENT; + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $lineEnding = $this->whitespacesConfig->getLineEnding(); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocAnnotationRemoveFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocAnnotationRemoveFixer.php index 03245f22..18b66a35 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocAnnotationRemoveFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocAnnotationRemoveFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\Annotation; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,23 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Graham Campbell * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * annotations?: list, + * case_sensitive?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * annotations: list, + * case_sensitive: bool + * } */ final class GeneralPhpdocAnnotationRemoveFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocTagRenameFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocTagRenameFixer.php index efe9da1c..554b716e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocTagRenameFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/GeneralPhpdocTagRenameFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,8 +29,27 @@ use PhpCsFixer\Tokenizer\Tokens; use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; use Symfony\Component\OptionsResolver\Options; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * fix_annotation?: bool, + * fix_inline?: bool, + * replacements?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * fix_annotation: bool, + * fix_inline: bool, + * replacements: array + * } + */ final class GeneralPhpdocTagRenameFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -91,7 +111,7 @@ final class GeneralPhpdocTagRenameFixer extends AbstractFixer implements Configu ->setDefault(true) ->getOption(), (new FixerOptionBuilder('replacements', 'A map of tags to replace.')) - ->setAllowedTypes(['string[]']) + ->setAllowedTypes(['array']) ->setNormalizer(static function (Options $options, array $value): array { $normalizedValue = []; @@ -100,13 +120,6 @@ final class GeneralPhpdocTagRenameFixer extends AbstractFixer implements Configu throw new InvalidOptionsException('Tag to replace must be a string.'); } - if (!\is_string($to)) { - throw new InvalidOptionsException(sprintf( - 'Tag to replace to from "%s" must be a string.', - $from - )); - } - if (!Preg::match('#^\S+$#', $to) || str_contains($to, '*/')) { throw new InvalidOptionsException(sprintf( 'Tag "%s" cannot be replaced by invalid tag "%s".', diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoSuperfluousPhpdocTagsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoSuperfluousPhpdocTagsFixer.php index e98ffe61..a6c16b6b 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoSuperfluousPhpdocTagsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/NoSuperfluousPhpdocTagsFixer.php @@ -19,6 +19,7 @@ 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; @@ -45,9 +46,27 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; * modifiers: array, * types: array, * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * allow_hidden_params?: bool, + * allow_mixed?: bool, + * allow_unused_params?: bool, + * remove_inheritdoc?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * allow_hidden_params: bool, + * allow_mixed: bool, + * allow_unused_params: bool, + * remove_inheritdoc: bool + * } */ final class NoSuperfluousPhpdocTagsFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** @var _TypeInfo */ private const NO_TYPE_INFO = [ 'types' => [], diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAddMissingParamAnnotationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAddMissingParamAnnotationFixer.php index 0739be25..62742d1e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAddMissingParamAnnotationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAddMissingParamAnnotationFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\DocBlock\Line; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -33,9 +34,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * only_untyped?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * only_untyped: bool + * } */ final class PhpdocAddMissingParamAnnotationFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAlignFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAlignFixer.php index 0c30e6da..a511f8d5 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAlignFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocAlignFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\DocBlock\TypeExpression; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -37,9 +38,25 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; * @author Graham Campbell * @author Dariusz Rumiński * @author Jakub Kwaśniewski + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * align?: 'left'|'vertical', + * spacing?: array|int, + * tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * align: 'left'|'vertical', + * spacing: array|int, + * tags: list + * } */ final class PhpdocAlignFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ @@ -105,42 +122,6 @@ final class PhpdocAlignFixer extends AbstractFixer implements ConfigurableFixerI */ private $spacing = 1; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $tagsWithNameToAlign = array_intersect($this->configuration['tags'], self::TAGS_WITH_NAME); - $tagsWithMethodSignatureToAlign = array_intersect($this->configuration['tags'], self::TAGS_WITH_METHOD_SIGNATURE); - $tagsWithoutNameToAlign = array_diff($this->configuration['tags'], $tagsWithNameToAlign, $tagsWithMethodSignatureToAlign); - - $indentRegex = '^(?P(?:\ {2}|\t)*)\ ?'; - - $types = []; - - // e.g. @param <$var> - if ([] !== $tagsWithNameToAlign) { - $types[] = '(?P'.implode('|', $tagsWithNameToAlign).')\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?)\s*(?P(?:&|\.{3})?\$\S+)'; - } - - // e.g. @return - if ([] !== $tagsWithoutNameToAlign) { - $types[] = '(?P'.implode('|', $tagsWithoutNameToAlign).')\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?)'; - } - - // e.g. @method - if ([] !== $tagsWithMethodSignatureToAlign) { - $types[] = '(?P'.implode('|', $tagsWithMethodSignatureToAlign).')(\s+(?Pstatic))?(\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?))\s+(?P.+\))'; - } - - // optional - $desc = '(?:\s+(?P\V*))'; - - $this->regex = '/'.$indentRegex.'\*\h*@(?J)(?:'.implode('|', $types).')'.$desc.'\h*\r?$/'; - $this->regexCommentLine = '/'.$indentRegex.'\*(?!\h?+@)(?:\s+(?P\V+))(?align = $this->configuration['align']; - $this->spacing = $this->configuration['spacing']; - } - public function getDefinition(): FixerDefinitionInterface { $code = <<<'EOF' @@ -195,6 +176,40 @@ final class PhpdocAlignFixer extends AbstractFixer implements ConfigurableFixerI return $tokens->isTokenKindFound(T_DOC_COMMENT); } + protected function configurePostNormalisation(): void + { + $tagsWithNameToAlign = array_intersect($this->configuration['tags'], self::TAGS_WITH_NAME); + $tagsWithMethodSignatureToAlign = array_intersect($this->configuration['tags'], self::TAGS_WITH_METHOD_SIGNATURE); + $tagsWithoutNameToAlign = array_diff($this->configuration['tags'], $tagsWithNameToAlign, $tagsWithMethodSignatureToAlign); + + $indentRegex = '^(?P(?:\ {2}|\t)*)\ ?'; + + $types = []; + + // e.g. @param <$var> + if ([] !== $tagsWithNameToAlign) { + $types[] = '(?P'.implode('|', $tagsWithNameToAlign).')\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?)\s*(?P(?:&|\.{3})?\$\S+)'; + } + + // e.g. @return + if ([] !== $tagsWithoutNameToAlign) { + $types[] = '(?P'.implode('|', $tagsWithoutNameToAlign).')\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?)'; + } + + // e.g. @method + if ([] !== $tagsWithMethodSignatureToAlign) { + $types[] = '(?P'.implode('|', $tagsWithMethodSignatureToAlign).')(\s+(?Pstatic))?(\s+(?P(?:'.TypeExpression::REGEX_TYPES.')?))\s+(?P.+\))'; + } + + // optional + $desc = '(?:\s+(?P\V*))'; + + $this->regex = '/'.$indentRegex.'\*\h*@(?J)(?:'.implode('|', $types).')'.$desc.'\h*\r?$/'; + $this->regexCommentLine = '/'.$indentRegex.'\*(?!\h?+@)(?:\s+(?P\V+))(?align = $this->configuration['align']; + $this->spacing = $this->configuration['spacing']; + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { @@ -245,7 +260,7 @@ final class PhpdocAlignFixer extends AbstractFixer implements ConfigurableFixerI 'spacing', 'Spacing between tag, hint, comment, signature, etc. You can set same spacing for all tags using a positive integer or different spacings for different tags using an associative array of positive integers `[\'tagA\' => spacingForA, \'tagB\' => spacingForB]`. If you want to define default spacing to more than 1 space use `_default` key in config array, e.g.: `[\'tagA\' => spacingForA, \'tagB\' => spacingForB, \'_default\' => spacingForAllOthers]`.' ); - $spacing->setAllowedTypes(['int', 'int[]']) + $spacing->setAllowedTypes(['int', 'array']) ->setAllowedValues([$allowPositiveIntegers]) ->setDefault(self::DEFAULT_SPACING) ; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocInlineTagNormalizerFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocInlineTagNormalizerFixer.php index a6270fde..de278009 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocInlineTagNormalizerFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocInlineTagNormalizerFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -26,8 +27,21 @@ use PhpCsFixer\Preg; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * tags: list + * } + */ final class PhpdocInlineTagNormalizerFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function isCandidate(Tokens $tokens): bool { return $tokens->isTokenKindFound(T_DOC_COMMENT); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocLineSpanFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocLineSpanFixer.php index a667dd20..9a639ae1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocLineSpanFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocLineSpanFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,25 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Gert de Pagter + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * const?: 'multi'|'single'|null, + * method?: 'multi'|'single'|null, + * property?: 'multi'|'single'|null + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * const: 'multi'|'single'|null, + * method: 'multi'|'single'|null, + * property: 'multi'|'single'|null + * } */ final class PhpdocLineSpanFixer extends AbstractFixer implements WhitespacesAwareFixerInterface, ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAccessFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAccessFixer.php index 12300026..e5f899ff 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAccessFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAccessFixer.php @@ -60,7 +60,11 @@ class Foo protected function createProxyFixers(): array { $fixer = new GeneralPhpdocAnnotationRemoveFixer(); - $fixer->configure(['annotations' => ['access']]); + $fixer->configure( + ['annotations' => ['access'], + 'case_sensitive' => true, + ] + ); return [$fixer]; } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAliasTagFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAliasTagFixer.php index 48699f55..d50e42d1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAliasTagFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoAliasTagFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\ConfigurationException\InvalidConfigurationException; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -31,9 +32,21 @@ use PhpCsFixer\Preg; * * @author Graham Campbell * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * replacements?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * replacements: array + * } */ final class PhpdocNoAliasTagFixer extends AbstractProxyFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -81,10 +94,8 @@ final class Example return parent::getPriority(); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - /** @var GeneralPhpdocTagRenameFixer $generalPhpdocTagRenameFixer */ $generalPhpdocTagRenameFixer = $this->proxyFixers['general_phpdoc_tag_rename']; @@ -108,7 +119,7 @@ final class Example { return new FixerConfigurationResolver([ (new FixerOptionBuilder('replacements', 'Mapping between replaced annotations with new ones.')) - ->setAllowedTypes(['string[]']) + ->setAllowedTypes(['array']) ->setDefault([ 'property-read' => 'property', 'property-write' => 'property', diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoPackageFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoPackageFixer.php index e254ad0c..3e769762 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoPackageFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocNoPackageFixer.php @@ -60,7 +60,10 @@ class Baz protected function createProxyFixers(): array { $fixer = new GeneralPhpdocAnnotationRemoveFixer(); - $fixer->configure(['annotations' => ['package', 'subpackage']]); + $fixer->configure([ + 'annotations' => ['package', 'subpackage'], + 'case_sensitive' => true, + ]); return [$fixer]; } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderByValueFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderByValueFixer.php index be879093..66510c51 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderByValueFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderByValueFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,21 @@ use Symfony\Component\OptionsResolver\Options; /** * @author Filippo Tessarotto * @author Andreas Möller + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * annotations?: list<'author'|'covers'|'coversNothing'|'dataProvider'|'depends'|'group'|'internal'|'method'|'mixin'|'property'|'property-read'|'property-write'|'requires'|'throws'|'uses'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * annotations: array{'author'?: 'author', 'covers'?: 'covers', 'coversNothing'?: 'coversnothing', 'dataProvider'?: 'dataprovider', 'depends'?: 'depends', 'group'?: 'group', 'internal'?: 'internal', 'method'?: 'method', 'mixin'?: 'mixin', 'property'?: 'property', 'property-read'?: 'property-read', 'property-write'?: 'property-write', 'requires'?: 'requires', 'throws'?: 'throws', 'uses'?: 'uses'} + * } */ final class PhpdocOrderByValueFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderFixer.php index d858f535..d7423f5e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocOrderFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,21 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Graham Campbell * @author Jakub Kwaśniewski + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * order?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * order: list + * } */ final class PhpdocOrderFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @const string[] * @@ -102,9 +115,6 @@ final class PhpdocOrderFixer extends AbstractFixer implements ConfigurableFixerI protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { - /** @var list */ - $order = $this->configuration['order']; - foreach ($tokens as $index => $token) { if (!$token->isGivenKind(T_DOC_COMMENT)) { continue; @@ -114,7 +124,8 @@ final class PhpdocOrderFixer extends AbstractFixer implements ConfigurableFixerI $content = $token->getContent(); // sort annotations - $successors = $order; + /** @var list */ + $successors = $this->configuration['order']; while (\count($successors) >= 3) { $predecessor = array_shift($successors); $content = $this->moveAnnotationsBefore($predecessor, $successors, $content); @@ -122,7 +133,8 @@ final class PhpdocOrderFixer extends AbstractFixer implements ConfigurableFixerI // we're parsing the content last time to make sure the internal // state of the docblock is correct after the modifications - $predecessors = $order; + /** @var list */ + $predecessors = $this->configuration['order']; $last = array_pop($predecessors); $content = $this->moveAnnotationsAfter($last, $predecessors, $content); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocReturnSelfReferenceFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocReturnSelfReferenceFixer.php index 3c204954..4040702b 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocReturnSelfReferenceFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocReturnSelfReferenceFixer.php @@ -17,6 +17,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,8 +31,21 @@ use PhpCsFixer\Utils; use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; use Symfony\Component\OptionsResolver\Options; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * replacements?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * replacements: array + * } + */ final class PhpdocReturnSelfReferenceFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ @@ -135,7 +149,7 @@ class Sample return new FixerConfigurationResolver([ (new FixerOptionBuilder('replacements', 'Mapping between replaced return types with new ones.')) - ->setAllowedTypes(['string[]']) + ->setAllowedTypes(['array']) ->setNormalizer(static function (Options $options, array $value) use ($default): array { $normalizedValue = []; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocScalarFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocScalarFixer.php index 70a6b323..626de718 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocScalarFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocScalarFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractPhpdocTypesFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -26,9 +27,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; /** * @author Graham Campbell + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * types?: list<'boolean'|'callback'|'double'|'integer'|'real'|'str'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * types: list<'boolean'|'callback'|'double'|'integer'|'real'|'str'> + * } */ final class PhpdocScalarFixer extends AbstractPhpdocTypesFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * The types to fix. * diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSeparationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSeparationFixer.php index 197bab67..7c2f1d91 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSeparationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocSeparationFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\Annotation; use PhpCsFixer\DocBlock\DocBlock; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -32,9 +33,23 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; /** * @author Graham Campbell * @author Jakub Kwaśniewski + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * groups?: list>, + * skip_unlisted_annotations?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * groups: list>, + * skip_unlisted_annotations: bool + * } */ final class PhpdocSeparationFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal * @@ -106,13 +121,6 @@ final class PhpdocSeparationFixer extends AbstractFixer implements ConfigurableF ); } - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->groups = $this->configuration['groups']; - } - /** * {@inheritdoc} * @@ -129,6 +137,11 @@ final class PhpdocSeparationFixer extends AbstractFixer implements ConfigurableF return $tokens->isTokenKindFound(T_DOC_COMMENT); } + protected function configurePostNormalisation(): void + { + $this->groups = $this->configuration['groups']; + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagCasingFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagCasingFixer.php index a2a29e01..16ef2e88 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagCasingFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagCasingFixer.php @@ -18,6 +18,7 @@ use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\ConfigurationException\InvalidConfigurationException; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -26,8 +27,21 @@ use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Preg; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * tags: list + * } + */ final class PhpdocTagCasingFixer extends AbstractProxyFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -52,10 +66,8 @@ final class PhpdocTagCasingFixer extends AbstractProxyFixer implements Configura return parent::getPriority(); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $replacements = []; foreach ($this->configuration['tags'] as $tag) { $replacements[$tag] = $tag; @@ -66,10 +78,10 @@ final class PhpdocTagCasingFixer extends AbstractProxyFixer implements Configura try { $generalPhpdocTagRenameFixer->configure([ + 'case_sensitive' => false, 'fix_annotation' => true, 'fix_inline' => true, 'replacements' => $replacements, - 'case_sensitive' => false, ]); } catch (InvalidConfigurationException $exception) { throw new InvalidFixerConfigurationException( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagTypeFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagTypeFixer.php index 54b6e2ae..bf2e0102 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagTypeFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTagTypeFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,8 +29,21 @@ use PhpCsFixer\Tokenizer\Tokens; use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; use Symfony\Component\OptionsResolver\Options; +/** + * @phpstan-type _AutogeneratedInputConfiguration array{ + * tags?: array + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * tags: array + * } + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + */ final class PhpdocTagTypeFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + private const TAG_REGEX = '/^(?: (? (?:@(?.+?)(?:\s.+)?) @@ -135,7 +149,7 @@ final class PhpdocTagTypeFixer extends AbstractFixer implements ConfigurableFixe { return new FixerConfigurationResolver([ (new FixerOptionBuilder('tags', 'The list of tags to fix.')) - ->setAllowedTypes(['string[]']) + ->setAllowedTypes(["array"]) ->setAllowedValues([static function (array $value): bool { foreach ($value as $type) { if (!\in_array($type, ['annotation', 'inline'], true)) { diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocToCommentFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocToCommentFixer.php index 389f8d5d..08e35740 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocToCommentFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocToCommentFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -30,9 +31,23 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Ceeram * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * allow_before_return_statement?: bool, + * ignored_tags?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * allow_before_return_statement: bool, + * ignored_tags: list + * } */ final class PhpdocToCommentFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ @@ -111,10 +126,8 @@ function returnClassName() { ); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - $this->ignoredTags = array_map( static fn (string $tag): string => strtolower($tag), $this->configuration['ignored_tags'] diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesFixer.php index a1dba965..e26e8a0c 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Phpdoc; use PhpCsFixer\AbstractPhpdocTypesFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -28,9 +29,21 @@ use PhpCsFixer\Preg; /** * @author Graham Campbell * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * groups?: list<'alias'|'meta'|'simple'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * groups: list<'alias'|'meta'|'simple'> + * } */ final class PhpdocTypesFixer extends AbstractPhpdocTypesFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * Available types, grouped. * @@ -70,15 +83,6 @@ final class PhpdocTypesFixer extends AbstractPhpdocTypesFixer implements Configu /** @var array */ private array $typesSetToFix; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $typesToFix = array_merge(...array_map(static fn (string $group): array => self::POSSIBLE_TYPES[$group], $this->configuration['groups'])); - - $this->typesSetToFix = array_combine($typesToFix, array_fill(0, \count($typesToFix), true)); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -126,6 +130,13 @@ final class PhpdocTypesFixer extends AbstractPhpdocTypesFixer implements Configu return 16; } + protected function configurePostNormalisation(): void + { + $typesToFix = array_merge(...array_map(static fn (string $group): array => self::POSSIBLE_TYPES[$group], $this->configuration['groups'])); + + $this->typesSetToFix = array_combine($typesToFix, array_fill(0, \count($typesToFix), true)); + } + protected function normalize(string $type): string { $typeLower = strtolower($type); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesOrderFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesOrderFixer.php index 0bf50195..c8fddacb 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesOrderFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Phpdoc/PhpdocTypesOrderFixer.php @@ -19,6 +19,7 @@ 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; @@ -29,8 +30,25 @@ use PhpCsFixer\Preg; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * case_sensitive?: bool, + * null_adjustment?: 'always_first'|'always_last'|'none', + * sort_algorithm?: 'alpha'|'none' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * case_sensitive: bool, + * null_adjustment: 'always_first'|'always_last'|'none', + * sort_algorithm: 'alpha'|'none' + * } + */ final class PhpdocTypesOrderFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/MultilineWhitespaceBeforeSemicolonsFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/MultilineWhitespaceBeforeSemicolonsFixer.php index f92ced5c..3ea38cdf 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/MultilineWhitespaceBeforeSemicolonsFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/MultilineWhitespaceBeforeSemicolonsFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Semicolon; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Graham Campbell * @author Egidijus Girčys + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * strategy?: 'new_line_for_chained_calls'|'no_multi_line' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * strategy: 'new_line_for_chained_calls'|'no_multi_line' + * } */ final class MultilineWhitespaceBeforeSemicolonsFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @internal */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SpaceAfterSemicolonFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SpaceAfterSemicolonFixer.php index 63be6cfe..f8e4084e 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SpaceAfterSemicolonFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Semicolon/SpaceAfterSemicolonFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Semicolon; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -26,8 +27,21 @@ use PhpCsFixer\Preg; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * remove_in_empty_for_expressions?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * remove_in_empty_for_expressions: bool + * } + */ final class SpaceAfterSemicolonFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/EscapeImplicitBackslashesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/EscapeImplicitBackslashesFixer.php index 786134ff..81a53b17 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/EscapeImplicitBackslashesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/EscapeImplicitBackslashesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\StringNotation; use PhpCsFixer\AbstractProxyFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\DeprecatedFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -29,9 +30,25 @@ use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; * @author Michael Vorisek * * @deprecated Use `string_implicit_backslashes` with config: ['single_quoted' => 'ignore', 'double_quoted' => 'escape', 'heredoc' => 'escape'] (default) + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * double_quoted?: bool, + * heredoc_syntax?: bool, + * single_quoted?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * double_quoted: bool, + * heredoc_syntax: bool, + * single_quoted: bool + * } */ final class EscapeImplicitBackslashesFixer extends AbstractProxyFixer implements ConfigurableFixerInterface, DeprecatedFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getSuccessorsNames(): array { return array_keys($this->proxyFixers); @@ -90,10 +107,8 @@ final class EscapeImplicitBackslashesFixer extends AbstractProxyFixer implements return parent::getPriority(); } - public function configure(array $configuration): void + protected function configurePostNormalisation(): void { - parent::configure($configuration); - /** @var StringImplicitBackslashesFixer */ $stringImplicitBackslashesFixer = $this->proxyFixers['string_implicit_backslashes']; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocClosingMarkerFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocClosingMarkerFixer.php index 75dee21e..dda5025d 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocClosingMarkerFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/HeredocClosingMarkerFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\StringNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Michael Vorisek + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * closing_marker?: string, + * explicit_heredoc_style?: bool, + * reserved_closing_markers?: list + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * closing_marker: string, + * explicit_heredoc_style: bool, + * reserved_closing_markers: list + * } */ final class HeredocClosingMarkerFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SimpleToComplexStringVariableFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SimpleToComplexStringVariableFixer.php index efb139ca..9c6b4852 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SimpleToComplexStringVariableFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SimpleToComplexStringVariableFixer.php @@ -73,38 +73,24 @@ final class SimpleToComplexStringVariableFixer extends AbstractFixer protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($index = \count($tokens) - 3; $index > 0; --$index) { - $token = $tokens[$index]; - - if (!$token->isGivenKind(T_DOLLAR_OPEN_CURLY_BRACES)) { + if (!$tokens[$index]->isGivenKind(T_DOLLAR_OPEN_CURLY_BRACES)) { continue; } - $varnameToken = $tokens[$index + 1]; if (!$varnameToken->isGivenKind(T_STRING_VARNAME)) { continue; } - $dollarCloseToken = $tokens[$index + 2]; + $dollarCloseToken = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_COMPLEX_STRING_VARIABLE, $index); - if (!$dollarCloseToken->isGivenKind(CT::T_DOLLAR_CLOSE_CURLY_BRACES)) { - continue; + $prevTokenContent = $tokens[$index - 1]->getContent(); + if (str_ends_with($prevTokenContent, '$') && !str_ends_with($prevTokenContent, '\$')) { + $tokens[$index - 1] = new Token([T_ENCAPSED_AND_WHITESPACE, substr($prevTokenContent, 0, -1).'\$']); } - - $tokenOfStringBeforeToken = $tokens[$index - 1]; - $stringContent = $tokenOfStringBeforeToken->getContent(); - - if (str_ends_with($stringContent, '$') && !str_ends_with($stringContent, '\$')) { - $newContent = substr($stringContent, 0, -1).'\$'; - $tokenOfStringBeforeToken = new Token([T_ENCAPSED_AND_WHITESPACE, $newContent]); - } - - $tokens->overrideRange($index - 1, $index + 2, [ - $tokenOfStringBeforeToken, - new Token([T_CURLY_OPEN, '{']), - new Token([T_VARIABLE, '$'.$varnameToken->getContent()]), - new Token([CT::T_CURLY_CLOSE, '}']), - ]); + $tokens[$index] = new Token([T_CURLY_OPEN, '{']); + $tokens[$index + 1] = new Token([T_VARIABLE, '$'.$varnameToken->getContent()]); + $tokens[$dollarCloseToken] = new Token([CT::T_CURLY_CLOSE, '}']); } } } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SingleQuoteFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SingleQuoteFixer.php index 10698a69..6541699c 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SingleQuoteFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/SingleQuoteFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\StringNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Gregor Harlan + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * strings_containing_single_quote_chars?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * strings_containing_single_quote_chars: bool + * } */ final class SingleQuoteFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { $codeSample = <<<'EOF' diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringImplicitBackslashesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringImplicitBackslashesFixer.php index da353576..c37a2e27 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringImplicitBackslashesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/StringNotation/StringImplicitBackslashesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\StringNotation; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,9 +30,25 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Filippo Tessarotto * @author Michael Vorisek + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * double_quoted?: 'escape'|'ignore'|'unescape', + * heredoc?: 'escape'|'ignore'|'unescape', + * single_quoted?: 'escape'|'ignore'|'unescape' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * double_quoted: 'escape'|'ignore'|'unescape', + * heredoc: 'escape'|'ignore'|'unescape', + * single_quoted: 'escape'|'ignore'|'unescape' + * } */ final class StringImplicitBackslashesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { $codeSample = <<<'EOF' diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php index 05e985e4..404354a1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -31,9 +32,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Dariusz Rumiński * @author Andreas Möller + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * statements?: list<'break'|'case'|'continue'|'declare'|'default'|'do'|'exit'|'for'|'foreach'|'goto'|'if'|'include'|'include_once'|'phpdoc'|'require'|'require_once'|'return'|'switch'|'throw'|'try'|'while'|'yield'|'yield_from'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * statements: list<'break'|'case'|'continue'|'declare'|'default'|'do'|'exit'|'for'|'foreach'|'goto'|'if'|'include'|'include_once'|'phpdoc'|'require'|'require_once'|'return'|'switch'|'throw'|'try'|'while'|'yield'|'yield_from'> + * } */ final class BlankLineBeforeStatementFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var array */ @@ -68,19 +81,6 @@ final class BlankLineBeforeStatementFixer extends AbstractFixer implements Confi */ private array $fixTokenMap = []; - public function configure(array $configuration): void - { - parent::configure($configuration); - - $this->fixTokenMap = []; - - foreach ($this->configuration['statements'] as $key) { - $this->fixTokenMap[$key] = self::$tokenMap[$key]; - } - - $this->fixTokenMap = array_values($this->fixTokenMap); - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -251,6 +251,17 @@ function getValues() { return $tokens->isAnyTokenKindsFound($this->fixTokenMap); } + protected function configurePostNormalisation(): void + { + $fixTokenMap = []; + + foreach ($this->configuration['statements'] as $key) { + $fixTokenMap[$key] = self::$tokenMap[$key]; + } + + $this->fixTokenMap = array_values($fixTokenMap); + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $analyzer = new TokensAnalyzer($tokens); diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php index 4babba28..67b9d283 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -30,9 +31,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Gregor Harlan + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * indentation?: 'same_as_start'|'start_plus_one' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * indentation: 'same_as_start'|'start_plus_one' + * } */ final class HeredocIndentationFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraBlankLinesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraBlankLinesFixer.php index 2389238d..dbb7be39 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraBlankLinesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoExtraBlankLinesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -34,9 +35,21 @@ use PhpCsFixer\Utils; /** * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * tokens?: list<'attribute'|'break'|'case'|'continue'|'curly_brace_block'|'default'|'extra'|'parenthesis_brace_block'|'return'|'square_brace_block'|'switch'|'throw'|'use'|'use_trait'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * tokens: list<'attribute'|'break'|'case'|'continue'|'curly_brace_block'|'default'|'extra'|'parenthesis_brace_block'|'return'|'square_brace_block'|'switch'|'throw'|'use'|'use_trait'> + * } */ final class NoExtraBlankLinesFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + /** * @var list */ @@ -71,51 +84,6 @@ final class NoExtraBlankLinesFixer extends AbstractFixer implements Configurable private TokensAnalyzer $tokensAnalyzer; - public function configure(array $configuration): void - { - if (isset($configuration['tokens']) && \in_array('use_trait', $configuration['tokens'], true)) { - Utils::triggerDeprecation(new \RuntimeException('Option "tokens: use_trait" used in `no_extra_blank_lines` rule is deprecated, use the rule `class_attributes_separation` with `elements: trait_import` instead.')); - } - - parent::configure($configuration); - - $tokensConfiguration = $this->configuration['tokens']; - - $this->tokenEqualsMap = []; - - if (\in_array('curly_brace_block', $tokensConfiguration, true)) { - $this->tokenEqualsMap['{'] = [$this, 'fixStructureOpenCloseIfMultiLine']; // i.e. not: CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN - } - - if (\in_array('parenthesis_brace_block', $tokensConfiguration, true)) { - $this->tokenEqualsMap['('] = [$this, 'fixStructureOpenCloseIfMultiLine']; // i.e. not: CT::T_BRACE_CLASS_INSTANTIATION_OPEN - } - - // Each item requires explicit array-like callable, otherwise PHPStan will complain about unused private methods. - $configMap = [ - 'attribute' => [CT::T_ATTRIBUTE_CLOSE, [$this, 'fixAfterToken']], - 'break' => [T_BREAK, [$this, 'fixAfterToken']], - 'case' => [T_CASE, [$this, 'fixAfterCaseToken']], - 'continue' => [T_CONTINUE, [$this, 'fixAfterToken']], - 'default' => [T_DEFAULT, [$this, 'fixAfterToken']], - 'extra' => [T_WHITESPACE, [$this, 'removeMultipleBlankLines']], - 'return' => [T_RETURN, [$this, 'fixAfterToken']], - 'square_brace_block' => [CT::T_ARRAY_SQUARE_BRACE_OPEN, [$this, 'fixStructureOpenCloseIfMultiLine']], - 'switch' => [T_SWITCH, [$this, 'fixAfterToken']], - 'throw' => [T_THROW, [$this, 'fixAfterThrowToken']], - 'use' => [T_USE, [$this, 'removeBetweenUse']], - 'use_trait' => [CT::T_USE_TRAIT, [$this, 'removeBetweenUse']], - ]; - - $this->tokenKindCallbackMap = []; - - foreach ($tokensConfiguration as $config) { - if (isset($configMap[$config])) { - $this->tokenKindCallbackMap[$configMap[$config][0]] = $configMap[$config][1]; - } - } - } - public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -269,6 +237,55 @@ switch($a) { return true; } + /** + * @param _AutogeneratedInputConfiguration $configuration + */ + protected function configurePreNormalisation(array $configuration): void + { + if (isset($configuration['tokens']) && \in_array('use_trait', $configuration['tokens'], true)) { + Utils::triggerDeprecation(new \RuntimeException('Option "tokens: use_trait" used in `no_extra_blank_lines` rule is deprecated, use the rule `class_attributes_separation` with `elements: trait_import` instead.')); + } + } + + protected function configurePostNormalisation(): void + { + $tokensConfiguration = $this->configuration['tokens']; + + $this->tokenEqualsMap = []; + + if (\in_array('curly_brace_block', $tokensConfiguration, true)) { + $this->tokenEqualsMap['{'] = [$this, 'fixStructureOpenCloseIfMultiLine']; // i.e. not: CT::T_ARRAY_INDEX_CURLY_BRACE_OPEN + } + + if (\in_array('parenthesis_brace_block', $tokensConfiguration, true)) { + $this->tokenEqualsMap['('] = [$this, 'fixStructureOpenCloseIfMultiLine']; // i.e. not: CT::T_BRACE_CLASS_INSTANTIATION_OPEN + } + + // Each item requires explicit array-like callable, otherwise PHPStan will complain about unused private methods. + $configMap = [ + 'attribute' => [CT::T_ATTRIBUTE_CLOSE, [$this, 'fixAfterToken']], + 'break' => [T_BREAK, [$this, 'fixAfterToken']], + 'case' => [T_CASE, [$this, 'fixAfterCaseToken']], + 'continue' => [T_CONTINUE, [$this, 'fixAfterToken']], + 'default' => [T_DEFAULT, [$this, 'fixAfterToken']], + 'extra' => [T_WHITESPACE, [$this, 'removeMultipleBlankLines']], + 'return' => [T_RETURN, [$this, 'fixAfterToken']], + 'square_brace_block' => [CT::T_ARRAY_SQUARE_BRACE_OPEN, [$this, 'fixStructureOpenCloseIfMultiLine']], + 'switch' => [T_SWITCH, [$this, 'fixAfterToken']], + 'throw' => [T_THROW, [$this, 'fixAfterThrowToken']], + 'use' => [T_USE, [$this, 'removeBetweenUse']], + 'use_trait' => [CT::T_USE_TRAIT, [$this, 'removeBetweenUse']], + ]; + + $this->tokenKindCallbackMap = []; + + foreach ($tokensConfiguration as $config) { + if (isset($configMap[$config])) { + $this->tokenKindCallbackMap[$configMap[$config][0]] = $configMap[$config][1]; + } + } + } + protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { $this->tokens = $tokens; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesAroundOffsetFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesAroundOffsetFixer.php index 3b1b239f..1d8156ca 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesAroundOffsetFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/NoSpacesAroundOffsetFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -28,9 +29,21 @@ use PhpCsFixer\Tokenizer\Tokens; /** * @author Javier Spagnoletti + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * positions?: list<'inside'|'outside'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * positions: list<'inside'|'outside'> + * } */ final class NoSpacesAroundOffsetFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SpacesInsideParenthesesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SpacesInsideParenthesesFixer.php index a5da0b86..f5078c2b 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SpacesInsideParenthesesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/SpacesInsideParenthesesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -31,9 +32,21 @@ use PhpCsFixer\Tokenizer\Tokens; * * @author Marc Aubé * @author Dariusz Rumiński + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * space?: 'none'|'single' + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * space: 'none'|'single' + * } */ final class SpacesInsideParenthesesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/StatementIndentationFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/StatementIndentationFixer.php index ca448fb4..db33fa53 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/StatementIndentationFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/StatementIndentationFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\Fixer\Indentation; use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; @@ -30,8 +31,21 @@ use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * stick_comment_to_next_continuous_control_statement?: bool + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * stick_comment_to_next_continuous_control_statement: bool + * } + */ final class StatementIndentationFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + use Indentation; private AlternativeSyntaxAnalyzer $alternativeSyntaxAnalyzer; diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypeDeclarationSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypeDeclarationSpacesFixer.php index d33dbcb6..b07514e1 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypeDeclarationSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypeDeclarationSpacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\AllowedValueSubset; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; @@ -32,9 +33,21 @@ use PhpCsFixer\Tokenizer\TokensAnalyzer; /** * @author Dariusz Rumiński * @author John Paul E. Balandan, CPA + * + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * elements?: list<'function'|'property'> + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * elements: list<'function'|'property'> + * } */ final class TypeDeclarationSpacesFixer extends AbstractFixer implements ConfigurableFixerInterface { + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; + public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( diff --git a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypesSpacesFixer.php b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypesSpacesFixer.php index 72d8e77e..538c221f 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypesSpacesFixer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/TypesSpacesFixer.php @@ -16,6 +16,7 @@ namespace PhpCsFixer\Fixer\Whitespace; use PhpCsFixer\AbstractFixer; use PhpCsFixer\Fixer\ConfigurableFixerInterface; +use PhpCsFixer\Fixer\ConfigurableFixerTrait; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver; use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface; use PhpCsFixer\FixerConfiguration\FixerOptionBuilder; @@ -29,16 +30,22 @@ use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; +/** + * @implements ConfigurableFixerInterface<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> + * + * @phpstan-type _AutogeneratedInputConfiguration array{ + * space?: 'none'|'single', + * space_multiple_catch?: 'none'|'single'|null + * } + * @phpstan-type _AutogeneratedComputedConfiguration array{ + * space: 'none'|'single', + * space_multiple_catch: 'none'|'single'|null + * } + */ final class TypesSpacesFixer extends AbstractFixer implements ConfigurableFixerInterface { - public function configure(array $configuration): void - { - parent::configure($configuration); - - if (!isset($this->configuration['space_multiple_catch'])) { - $this->configuration['space_multiple_catch'] = $this->configuration['space']; - } - } + /** @use ConfigurableFixerTrait<_AutogeneratedInputConfiguration, _AutogeneratedComputedConfiguration> */ + use ConfigurableFixerTrait; public function getDefinition(): FixerDefinitionInterface { @@ -75,6 +82,16 @@ final class TypesSpacesFixer extends AbstractFixer implements ConfigurableFixerI return $tokens->isAnyTokenKindsFound([CT::T_TYPE_ALTERNATION, CT::T_TYPE_INTERSECTION]); } + protected function configurePostNormalisation(): void + { + if (!isset($this->configuration['space_multiple_catch'])) { + $this->configuration = [ + 'space' => $this->configuration['space'], + 'space_multiple_catch' => $this->configuration['space'], + ]; + } + } + protected function createConfigurationDefinition(): FixerConfigurationResolverInterface { return new FixerConfigurationResolver([ diff --git a/vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolver.php b/vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolver.php index ea073f25..249a07be 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolver.php +++ b/vendor/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerConfigurationResolver.php @@ -14,6 +14,7 @@ declare(strict_types=1); namespace PhpCsFixer\FixerConfiguration; +use PhpCsFixer\Preg; use PhpCsFixer\Utils; use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -96,7 +97,28 @@ final class FixerConfigurationResolver implements FixerConfigurationResolverInte $allowedTypes = $option->getAllowedTypes(); if (null !== $allowedTypes) { - $resolver->setAllowedTypes($name, $allowedTypes); + // Symfony OptionsResolver doesn't support `array` natively, let's simplify the type + $allowedTypesNormalised = array_map( + static function (string $type): string { + $matches = []; + if (true === Preg::match('/array<\w+,\s*(\??[\w\'|]+)>/', $type, $matches)) { + if ('?' === $matches[1][0]) { + return 'array'; + } + + if ("'" === $matches[1][0]) { + return 'string[]'; + } + + return $matches[1].'[]'; + } + + return $type; + }, + $allowedTypes, + ); + + $resolver->setAllowedTypes($name, $allowedTypesNormalised); } $normalizer = $option->getNormalizer(); diff --git a/vendor/friendsofphp/php-cs-fixer/src/FixerFactory.php b/vendor/friendsofphp/php-cs-fixer/src/FixerFactory.php index 214f8577..7c63ddb6 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/FixerFactory.php +++ b/vendor/friendsofphp/php-cs-fixer/src/FixerFactory.php @@ -86,8 +86,15 @@ final class FixerFactory /** @var list> */ $builtInFixers = []; + $finder = SymfonyFinder::create()->files() + ->in(__DIR__.'/Fixer') + ->exclude(['Internal']) + ->name('*Fixer.php') + ->depth(1) + ; + /** @var SplFileInfo $file */ - foreach (SymfonyFinder::create()->files()->in(__DIR__.'/Fixer')->name('*Fixer.php')->depth(1) as $file) { + foreach ($finder as $file) { $relativeNamespace = $file->getRelativePath(); $fixerClass = 'PhpCsFixer\Fixer\\'.('' !== $relativeNamespace ? $relativeNamespace.'\\' : '').$file->getBasename('.php'); $builtInFixers[] = $fixerClass; diff --git a/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PhpCsFixerSet.php b/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PhpCsFixerSet.php index e90a02dd..8770cbad 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PhpCsFixerSet.php +++ b/vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PhpCsFixerSet.php @@ -119,7 +119,7 @@ final class PhpCsFixerSet extends AbstractRuleSetDescription 'single_line_comment_style' => true, 'single_line_empty_body' => true, 'single_line_throw' => false, - 'string_implicit_backslashes' => ['single_quoted' => 'ignore'], + 'string_implicit_backslashes' => true, 'whitespace_after_comma_in_array' => ['ensure_single_space' => true], ]; } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Runner/Runner.php b/vendor/friendsofphp/php-cs-fixer/src/Runner/Runner.php index f0c7e5fd..feb6a962 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Runner/Runner.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Runner/Runner.php @@ -57,6 +57,13 @@ use Symfony\Contracts\EventDispatcher\Event; */ final class Runner { + /** + * Buffer size used in the NDJSON decoder for communication between main process and workers. + * + * @see https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/8068 + */ + private const PARALLEL_BUFFER_SIZE = 16 * (1_024 * 1_024 /* 1MB */); + private DifferInterface $differ; private ?DirectoryInterface $directory; @@ -203,7 +210,13 @@ final class Runner // [REACT] Handle worker's handshake (init connection) $server->on('connection', static function (ConnectionInterface $connection) use ($processPool, $getFileChunk): void { $jsonInvalidUtf8Ignore = \defined('JSON_INVALID_UTF8_IGNORE') ? JSON_INVALID_UTF8_IGNORE : 0; - $decoder = new Decoder($connection, true, 512, $jsonInvalidUtf8Ignore); + $decoder = new Decoder( + $connection, + true, + 512, + $jsonInvalidUtf8Ignore, + self::PARALLEL_BUFFER_SIZE + ); $encoder = new Encoder($connection, $jsonInvalidUtf8Ignore); // [REACT] Bind connection when worker's process requests "hello" action (enables 2-way communication) diff --git a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/TypeAnalysis.php b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/TypeAnalysis.php index 9709056a..34d68be9 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/TypeAnalysis.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/Analysis/TypeAnalysis.php @@ -26,7 +26,6 @@ final class TypeAnalysis implements StartEndTokenAwareAnalysis * * @see https://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.types * @see https://php.net/manual/en/reserved.other-reserved-words.php - * @see https://php.net/manual/en/language.pseudo-types.php * * @var list */ @@ -38,6 +37,7 @@ final class TypeAnalysis implements StartEndTokenAwareAnalysis 'float', 'int', 'iterable', + 'list', 'mixed', 'never', 'null', diff --git a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Tokens.php b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Tokens.php index 5468d4ef..555742bc 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Tokens.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/Tokens.php @@ -50,6 +50,7 @@ class Tokens extends \SplFixedArray public const BLOCK_TYPE_ATTRIBUTE = 11; public const BLOCK_TYPE_DISJUNCTIVE_NORMAL_FORM_TYPE_PARENTHESIS = 12; public const BLOCK_TYPE_DYNAMIC_CLASS_CONSTANT_FETCH_CURLY_BRACE = 13; + public const BLOCK_TYPE_COMPLEX_STRING_VARIABLE = 14; /** * Static class cache. @@ -274,6 +275,10 @@ class Tokens extends \SplFixedArray 'start' => [CT::T_DYNAMIC_CLASS_CONSTANT_FETCH_CURLY_BRACE_OPEN, '{'], 'end' => [CT::T_DYNAMIC_CLASS_CONSTANT_FETCH_CURLY_BRACE_CLOSE, '}'], ], + self::BLOCK_TYPE_COMPLEX_STRING_VARIABLE => [ + 'start' => [T_DOLLAR_OPEN_CURLY_BRACES, '${'], + 'end' => [CT::T_DOLLAR_CLOSE_CURLY_BRACES, '}'], + ], ]; // @TODO: drop condition when PHP 8.0+ is required diff --git a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TokensAnalyzer.php b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TokensAnalyzer.php index 1fbfce97..933f3a08 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TokensAnalyzer.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Tokenizer/TokensAnalyzer.php @@ -379,7 +379,7 @@ final class TokensAnalyzer return false; } - while ($this->tokens[$prevIndex]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_NS_SEPARATOR, T_STRING])) { + while ($this->tokens[$prevIndex]->isGivenKind([CT::T_NAMESPACE_OPERATOR, T_NS_SEPARATOR, T_STRING, CT::T_ARRAY_TYPEHINT])) { $prevIndex = $this->tokens->getPrevMeaningfulToken($prevIndex); } diff --git a/vendor/friendsofphp/php-cs-fixer/src/Utils.php b/vendor/friendsofphp/php-cs-fixer/src/Utils.php index 071781bd..08b9fc1b 100644 --- a/vendor/friendsofphp/php-cs-fixer/src/Utils.php +++ b/vendor/friendsofphp/php-cs-fixer/src/Utils.php @@ -195,6 +195,14 @@ final class Utils return $triggeredDeprecations; } + public static function convertArrayTypeToList(string $type): string + { + $parts = explode('[]', $type); + $count = \count($parts) - 1; + + return str_repeat('list<', $count).$parts[0].str_repeat('>', $count); + } + /** * @param mixed $value */ diff --git a/vendor/mpdf/mpdf/CHANGELOG.md b/vendor/mpdf/mpdf/CHANGELOG.md index 5d1d402c..a05d6508 100644 --- a/vendor/mpdf/mpdf/CHANGELOG.md +++ b/vendor/mpdf/mpdf/CHANGELOG.md @@ -6,6 +6,12 @@ New features * Watermark text can now be colored using \Mpdf\Watermark DTO. \Mpdf\WatermarkImage DTO for images. (#1876) * Added support for `psr/http-message` v2 without dropping v1. (@markdorison, @apotek, @greg-1-anderson, @NigelCunningham #1907) * PHP 8.3 support in mPDF 8.2.1 +* Add support for `page-break-before: avoid;` and `page-break-after: avoid;` for tr elements inside tables + +Bugfixes +-------- + +* Replace character entities with characters when processing the `code` attribute in the `` tag mPDF 8.1.x =========================== diff --git a/vendor/mpdf/mpdf/src/Mpdf.php b/vendor/mpdf/mpdf/src/Mpdf.php index 2d80f689..280dcb6e 100644 --- a/vendor/mpdf/mpdf/src/Mpdf.php +++ b/vendor/mpdf/mpdf/src/Mpdf.php @@ -32,7 +32,7 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface use FpdiTrait; use MpdfPsrLogAwareTrait; - const VERSION = '8.2.3'; + const VERSION = '8.2.4'; const SCALE = 72 / 25.4; @@ -7286,7 +7286,7 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface $translate_x = $this->sizeConverter->convert($vv[0], $maxsize_x, false, false); $tr2 .= $this->transformTranslate($translate_x, 0, true) . ' '; } elseif ($c == 'translatey' && count($vv)) { - $translate_y = $this->sizeConverter->convert($vv[1], $maxsize_y, false, false); + $translate_y = $this->sizeConverter->convert($vv[0], $maxsize_y, false, false); $tr2 .= $this->transformTranslate(0, $translate_y, true) . ' '; } elseif ($c == 'scale' && count($vv)) { $scale_x = $vv[0] * 100; @@ -7300,7 +7300,7 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface $scale_x = $vv[0] * 100; $tr2 .= $this->transformScale($scale_x, 0, $cx, $cy, true) . ' '; } elseif ($c == 'scaley' && count($vv)) { - $scale_y = $vv[1] * 100; + $scale_y = $vv[0] * 100; $tr2 .= $this->transformScale(0, $scale_y, $cx, $cy, true) . ' '; } elseif ($c == 'skew' && count($vv)) { $angle_x = $this->ConvertAngle($vv[0], false); @@ -16088,10 +16088,9 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface $array_size = count($arrayaux); } - // Remove empty items // mPDF 6 for ($i = $array_size - 1; $i > 0; $i--) { - if (empty($arrayaux[$i][0]) && (isset($arrayaux[$i][16]) && $arrayaux[$i][16] !== '0') && empty($arrayaux[$i][7])) { + if ('' === $arrayaux[$i][0] && (isset($arrayaux[$i][16]) && $arrayaux[$i][16] !== '0') && empty($arrayaux[$i][7])) { unset($arrayaux[$i]); } } @@ -16138,7 +16137,8 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface } // FIXED TO ALLOW IT TO SHOW '0' - if (empty($vetor[0]) && !($vetor[0] === '0') && empty($vetor[7])) { // Ignore empty text and not carrying an internal link + if (empty($vetor[0]) && !($vetor[0] === '0') && empty($vetor[7])) { + // Ignore empty text and not carrying an internal link // Check if it is the last element. If so then finish printing the block if ($i == ($array_size - 1)) { $this->finishFlowingBlock(true); @@ -22238,7 +22238,13 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface $extra = $table['max_cell_border_width']['B'] / 2; } - if ($j == $startcol && ((($y + $maxrowheight + $extra ) > ($pagetrigger + 0.001)) || (($this->keepColumns || !$this->ColActive) && !empty($tablefooter) && ($y + $maxrowheight + $tablefooterrowheight + $extra) > $pagetrigger) && ($this->tableLevel == 1 && $i < ($numrows - $table['headernrows']))) && ($y0 > 0 || $x0 > 0) && !$this->InFooter && $this->autoPageBreak) { + // lookahead for pagebreak + $pagebreaklookahead = 1; + while (isset($table['pagebreak-before']) && isset($table['pagebreak-before'][$i + $pagebreaklookahead]) && $table['pagebreak-before'][$i + $pagebreaklookahead] == 'avoid') { + // pagebreak-after is mapped to pagebreak-before on i+1 in Tags/Tr.php + $pagebreaklookahead++; + } + if ($j == $startcol && ((($y + $pagebreaklookahead * $maxrowheight + $extra ) > ($pagetrigger + 0.001)) || (($this->keepColumns || !$this->ColActive) && !empty($tablefooter) && ($y + $maxrowheight + $tablefooterrowheight + $extra) > $pagetrigger) && ($this->tableLevel == 1 && $i < ($numrows - $table['headernrows']))) && ($y0 > 0 || $x0 > 0) && !$this->InFooter && $this->autoPageBreak) { if (!$skippage) { $finalSpread = true; $firstSpread = true; diff --git a/vendor/mpdf/mpdf/src/Tag/BarCode.php b/vendor/mpdf/mpdf/src/Tag/BarCode.php index a1c38e34..40bf5dc4 100644 --- a/vendor/mpdf/mpdf/src/Tag/BarCode.php +++ b/vendor/mpdf/mpdf/src/Tag/BarCode.php @@ -33,7 +33,7 @@ class BarCode extends Tag $objattr['border_bottom']['w'] = 0; $objattr['border_left']['w'] = 0; $objattr['border_right']['w'] = 0; - $objattr['code'] = $attr['CODE']; + $objattr['code'] = htmlspecialchars_decode($attr['CODE']); if (isset($attr['TYPE'])) { $objattr['btype'] = strtoupper(trim($attr['TYPE'])); diff --git a/vendor/mpdf/mpdf/src/Tag/BlockTag.php b/vendor/mpdf/mpdf/src/Tag/BlockTag.php index 495661a6..7f2ba763 100644 --- a/vendor/mpdf/mpdf/src/Tag/BlockTag.php +++ b/vendor/mpdf/mpdf/src/Tag/BlockTag.php @@ -247,7 +247,7 @@ abstract class BlockTag extends Tag /* -- END CSS-PAGE -- */ // If page-box has changed AND/OR PAGE-BREAK-BEFORE - // mPDF 6 (uses $p - preview of properties so blklvl can be imcremented after page-break) + // mPDF 6 (uses $p - preview of properties so blklvl can be incremented after page-break) if (!$this->mpdf->tableLevel && (($pagesel && (!$this->mpdf->page_box['current'] || $pagesel != $this->mpdf->page_box['current'])) || (isset($p['PAGE-BREAK-BEFORE']) && $p['PAGE-BREAK-BEFORE']))) { // mPDF 6 pagebreaktype diff --git a/vendor/mpdf/mpdf/src/Tag/Tr.php b/vendor/mpdf/mpdf/src/Tag/Tr.php index 24b7749b..1e9bdc6b 100644 --- a/vendor/mpdf/mpdf/src/Tag/Tr.php +++ b/vendor/mpdf/mpdf/src/Tag/Tr.php @@ -17,6 +17,17 @@ class Tr extends Tag $this->mpdf->col = -1; $properties = $this->cssManager->MergeCSS('TABLE', 'TR', $attr); + // write pagebreak markers into row list, so _tableWrite can respect it + if (isset($properties['PAGE-BREAK-BEFORE']) && strtoupper($properties['PAGE-BREAK-BEFORE']) === 'AVOID' + && !$this->mpdf->ColActive && !$this->mpdf->keep_block_together && !isset($attr['PAGEBREAKAVOIDCHECKED'])) { + $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['pagebreak-before'][$this->mpdf->row] = 'avoid'; + } + + if (isset($properties['PAGE-BREAK-AFTER']) && strtoupper($properties['PAGE-BREAK-AFTER']) === 'AVOID' + && !$this->mpdf->ColActive && !$this->mpdf->keep_block_together && !isset($attr['PAGEBREAKAVOIDCHECKED'])) { + $this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['pagebreak-before'][$this->mpdf->row + 1] = 'avoid'; + } + if (!$this->mpdf->simpleTables && (!isset($this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['borders_separate']) || !$this->mpdf->table[$this->mpdf->tableLevel][$this->mpdf->tbctr[$this->mpdf->tableLevel]]['borders_separate'])) { if (!empty($properties['BORDER-LEFT'])) { diff --git a/vendor/mpdf/mpdf/src/Writer/MetadataWriter.php b/vendor/mpdf/mpdf/src/Writer/MetadataWriter.php index 8590e4c0..0cadadaf 100644 --- a/vendor/mpdf/mpdf/src/Writer/MetadataWriter.php +++ b/vendor/mpdf/mpdf/src/Writer/MetadataWriter.php @@ -50,18 +50,19 @@ class MetadataWriter implements \Psr\Log\LoggerAwareInterface { $this->writer->object(); $this->mpdf->MetadataRoot = $this->mpdf->n; - $Producer = 'mPDF' . ($this->mpdf->exposeVersion ? (' ' . Mpdf::VERSION) : ''); + $z = date('O'); // +0200 $offset = substr($z, 0, 3) . ':' . substr($z, 3, 2); - $CreationDate = date('Y-m-d\TH:i:s') . $offset; // 2006-03-10T10:47:26-05:00 2006-06-19T09:05:17Z - $uuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0x0fff) | 0x4000, random_int(0, 0x3fff) | 0x8000, random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0xffff)); + $CreationDate = date('Y-m-d\TH:i:s') . $offset; // 2006-03-10T10:47:26-05:00 2006-06-19T09:05:17Z + + $uuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0x0fff) | 0x4000, random_int(0, 0x3fff) | 0x8000, random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0xffff)); $m = '' . "\n"; // begin = FEFF BOM $m .= ' ' . "\n"; $m .= ' ' . "\n"; $m .= ' ' . "\n"; - $m .= ' ' . $Producer . '' . "\n"; + $m .= ' ' . $this->getProducerString() . '' . "\n"; if (!empty($this->mpdf->keywords)) { $m .= ' ' . $this->mpdf->keywords . '' . "\n"; } @@ -147,7 +148,7 @@ class MetadataWriter implements \Psr\Log\LoggerAwareInterface public function writeInfo() // _putinfo { - $this->writer->write('/Producer ' . $this->writer->utf16BigEndianTextString('mPDF' . ($this->mpdf->exposeVersion ? (' ' . $this->getVersionString()) : ''))); + $this->writer->write('/Producer ' . $this->writer->utf16BigEndianTextString($this->getProducerString())); if (!empty($this->mpdf->title)) { $this->writer->write('/Title ' . $this->writer->utf16BigEndianTextString($this->mpdf->title)); @@ -824,4 +825,9 @@ class MetadataWriter implements \Psr\Log\LoggerAwareInterface return $return; } + private function getProducerString() + { + return 'mPDF' . ($this->mpdf->exposeVersion ? (' ' . $this->getVersionString()) : ''); + } + } diff --git a/vendor/myclabs/deep-copy/README.md b/vendor/myclabs/deep-copy/README.md index 94aaa06d..88ae14cc 100755 --- a/vendor/myclabs/deep-copy/README.md +++ b/vendor/myclabs/deep-copy/README.md @@ -3,7 +3,7 @@ DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph. [![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy) -[![Integrate](https://github.com/myclabs/DeepCopy/workflows/ci/badge.svg?branch=1.x)](https://github.com/myclabs/DeepCopy/actions) +[![Integrate](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml/badge.svg?branch=1.x)](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml) ## Table of Contents diff --git a/vendor/myclabs/deep-copy/composer.json b/vendor/myclabs/deep-copy/composer.json index 66fb34a5..f115fff8 100755 --- a/vendor/myclabs/deep-copy/composer.json +++ b/vendor/myclabs/deep-copy/composer.json @@ -16,11 +16,12 @@ "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "autoload": { "psr-4": { @@ -32,8 +33,8 @@ }, "autoload-dev": { "psr-4": { - "DeepCopy\\": "fixtures/", - "DeepCopyTest\\": "tests/DeepCopyTest/" + "DeepCopyTest\\": "tests/DeepCopyTest/", + "DeepCopy\\": "fixtures/" } }, "config": { diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php index 6e766d80..084858ee 100755 --- a/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php +++ b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php @@ -224,6 +224,11 @@ class DeepCopy return; } + // Ignore readonly properties + if (method_exists($property, 'isReadOnly') && $property->isReadOnly()) { + return; + } + // Apply the filters foreach ($this->filters as $item) { /** @var Matcher $matcher */ diff --git a/vendor/nexusphp/cs-config/.php-cs-fixer.dist.php b/vendor/nexusphp/cs-config/.php-cs-fixer.dist.php index 2b2b368a..10c1ff20 100644 --- a/vendor/nexusphp/cs-config/.php-cs-fixer.dist.php +++ b/vendor/nexusphp/cs-config/.php-cs-fixer.dist.php @@ -14,13 +14,15 @@ declare(strict_types=1); use Nexus\CsConfig\Factory; use Nexus\CsConfig\Fixer\Comment\NoCodeSeparatorCommentFixer; use Nexus\CsConfig\FixerGenerator; -use Nexus\CsConfig\Ruleset\Nexus80; +use Nexus\CsConfig\Ruleset\Nexus81; use PhpCsFixer\Finder; $finder = Finder::create() ->files() - ->in(__DIR__) - ->exclude(['build']) + ->in([ + __DIR__.'/src', + __DIR__.'/tests', + ]) ->append([__FILE__]) ; @@ -36,4 +38,9 @@ $options = [ ], ]; -return Factory::create(new Nexus80(), $overrides, $options)->forLibrary('Nexus CS Config', 'John Paul E. Balandan, CPA', 'paulbalandan@gmail.com', 2020); +return Factory::create(new Nexus81(), $overrides, $options)->forLibrary( + 'Nexus CS Config', + 'John Paul E. Balandan, CPA', + 'paulbalandan@gmail.com', + 2020, +); diff --git a/vendor/nexusphp/cs-config/CHANGELOG.md b/vendor/nexusphp/cs-config/CHANGELOG.md index 3879b945..34b85a59 100644 --- a/vendor/nexusphp/cs-config/CHANGELOG.md +++ b/vendor/nexusphp/cs-config/CHANGELOG.md @@ -5,6 +5,54 @@ All notable changes to this library will be documented in this file: The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v3.23.1](https://github.com/NexusPHP/cs-config/compare/v3.23.0...v3.23.1) - 2024-06-16 + +- Refactor AbstractCustomFixerTestCase + +## [v3.23.0](https://github.com/NexusPHP/cs-config/compare/v3.22.1...v3.23.0) - 2024-05-18 + +- Fix for phpstan +- Bump to php-cs-fixer v3.54 +- Enable `php_unit_attributes` +- Enable `ordered_attributes` +- feat: enable parallel fixing (#5) +- Enable `import_symbols` option on `fully_qualified_strict_types` + +## [v3.22.1](https://github.com/NexusPHP/cs-config/compare/v3.22.0...v3.22.1) - 2024-03-24 + +- Allow phpunit v11 +- Remove deprecated option of `nullable_type_declaration_for_default_null_value` + +## [v3.22.0](https://github.com/NexusPHP/cs-config/compare/v3.21.0...v3.22.0) - 2024-02-24 + +- Bump to php-cs-fixer v3.50 +- Update options for `no_superfluous_phpdoc_tags` +- Enable `phpdoc_array_type` + +## [v3.21.0](https://github.com/NexusPHP/cs-config/compare/v3.20.0...v3.21.0) - 2024-02-05 + +- Bump to php-cs-fixer v3.49 +- Add `string_implicit_slashes` fixer +- Enable `phpdoc_list_type` fixer + +## [v3.20.0](https://github.com/NexusPHP/cs-config/compare/v3.19.0...v3.20.0) - 2024-01-23 + +- Bump to php-cs-fixer v3.46 +- Enable `union_types` option for phpdoc_to fixers +- Disable `numeric_literal_separator` +- Enable `multiline_string_to_heredoc` +- Disable `heredoc_closing_marker` +- Enable `spacing` option and add more `tags` to `phpdoc_align` +- Bump actions/cache from 3 to 4 (#4) + +## [v3.19.0](https://github.com/NexusPHP/cs-config/compare/v3.18.0...v3.19.0) - 2023-12-29 + +- Bump minimum PHP version to PHP 8.1 +- Bump to php-cs-fixer v3.43 +- Run build on PHP 8.3 +- Bump to phpunit v10.5 +- Fix sample ruleset in README + ## [v3.18.0](https://github.com/NexusPHP/cs-config/compare/v3.17.0...v3.18.0) - 2023-10-13 - Bump to php-cs-fixer v3.35 diff --git a/vendor/nexusphp/cs-config/README.md b/vendor/nexusphp/cs-config/README.md index 669414bb..dbe3729d 100644 --- a/vendor/nexusphp/cs-config/README.md +++ b/vendor/nexusphp/cs-config/README.md @@ -31,9 +31,9 @@ then you should add it as a development-time dependency: forProjects(); +return Factory::create(new Nexus82())->forProjects(); ``` @@ -61,10 +61,10 @@ two optional arguments (the email address and starting year of license). forProjects(); -+return Factory::create(new Nexus73())->forLibrary('My Library', 'John Doe', 'john@doe.com', 2020); +-return Factory::create(new Nexus82())->forProjects(); ++return Factory::create(new Nexus82())->forLibrary('My Library', 'John Doe', 'john@doe.com', 2020); ``` This setting will configure a license header similar to below: @@ -93,10 +93,10 @@ these will not be shown on the license header allowing flexibility on the copyri forProjects(); -+return Factory::create(new Nexus73())->forLibrary('My Library', 'John Doe'); +-return Factory::create(new Nexus82())->forProjects(); ++return Factory::create(new Nexus82())->forLibrary('My Library', 'John Doe'); ``` This will give the following license header: @@ -124,10 +124,10 @@ If you feel that a specific rule in the ruleset is not appropriate for you, you forProjects(); -+return Factory::create(new Nexus73(), [ +-return Factory::create(new Nexus82())->forProjects(); ++return Factory::create(new Nexus82(), [ + 'binary_operator_spaces' => false, +])->forProjects(); @@ -159,10 +159,10 @@ containing your desired options. forProjects(); -+return Factory::create(new Nexus73(), [], [ +-return Factory::create(new Nexus82())->forProjects(); ++return Factory::create(new Nexus82(), [], [ + 'usingCache' => false, + 'hideProgress => true, +])->forProjects(); @@ -194,7 +194,7 @@ final class MyCompany extends AbstractRuleset '@PSR2' => true, ... ]; - $this->requiredPHPVersion = 70400; + $this->requiredPHPVersion = 80200; $this->autoActivateIsRiskyAllowed = true; } } diff --git a/vendor/nexusphp/cs-config/composer.json b/vendor/nexusphp/cs-config/composer.json index 4853bdd5..dcb8b85a 100644 --- a/vendor/nexusphp/cs-config/composer.json +++ b/vendor/nexusphp/cs-config/composer.json @@ -15,17 +15,17 @@ "slack": "https://nexusphp.slack.com" }, "require": { - "php": "^8.0.1", + "php": "^8.1", "ext-tokenizer": "*", - "friendsofphp/php-cs-fixer": "^3.35" + "friendsofphp/php-cs-fixer": "^3.57.1" }, "require-dev": { - "nexusphp/tachycardia": "^1.4", + "nexusphp/tachycardia": "^2.1", "phpstan/extension-installer": "^1.3", "phpstan/phpstan": "^1.10", "phpstan/phpstan-phpunit": "^1.3", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^10.5 || ^11.0" }, "conflict": { "liaison/cs-config": "*" diff --git a/vendor/nexusphp/cs-config/phpstan-baseline.php b/vendor/nexusphp/cs-config/phpstan-baseline.php index b3e23b76..1acac93f 100644 --- a/vendor/nexusphp/cs-config/phpstan-baseline.php +++ b/vendor/nexusphp/cs-config/phpstan-baseline.php @@ -1,44 +1,35 @@ - - * - * For the full copyright and license information, please view - * the LICENSE file that was distributed with this source code. - */ + '#^Call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertSame\\(\\) with arguments "\\\\n", string and string will always evaluate to true\\.$#', - 'count' => 1, - 'path' => __DIR__.'/src/Test/AbstractCustomFixerTestCase.php', + 'message' => '#^Call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertSame\\(\\) with arguments "\\\\n", string and string will always evaluate to true\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/src/Test/AbstractCustomFixerTestCase.php', ]; $ignoreErrors[] = [ - 'message' => '#^Method Nexus\\\\CsConfig\\\\Test\\\\AbstractCustomFixerTestCase\\:\\:getLinter\\(\\) should return PhpCsFixer\\\\Linter\\\\LinterInterface but returns mixed\\.$#', - 'count' => 1, - 'path' => __DIR__.'/src/Test/AbstractCustomFixerTestCase.php', + 'message' => '#^Method Nexus\\\\CsConfig\\\\Test\\\\AbstractCustomFixerTestCase\\:\\:getLinter\\(\\) should return PhpCsFixer\\\\Linter\\\\LinterInterface but returns mixed\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/src/Test/AbstractCustomFixerTestCase.php', ]; $ignoreErrors[] = [ - 'message' => '#^Only numeric types are allowed in pre\\-increment, int\\<0, max\\>\\|false given\\.$#', - 'count' => 1, - 'path' => __DIR__.'/src/Test/AbstractCustomFixerTestCase.php', + 'message' => '#^Method Nexus\\\\CsConfig\\\\Tests\\\\Fixer\\\\Comment\\\\NoCodeSeparatorCommentFixerTest\\:\\:provideFixCases\\(\\) return type has no value type specified in iterable type iterable\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/tests/Fixer/Comment/NoCodeSeparatorCommentFixerTest.php', ]; $ignoreErrors[] = [ - 'message' => '#^Cannot access offset \'header\' on array\\\\|bool\\.$#', - 'count' => 1, - 'path' => __DIR__.'/tests/FactoryTest.php', + 'message' => '#^Method Nexus\\\\CsConfig\\\\Tests\\\\Fixer\\\\Comment\\\\SpaceAfterCommentStartFixerTest\\:\\:provideFixCases\\(\\) return type has no value type specified in iterable type iterable\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/tests/Fixer/Comment/SpaceAfterCommentStartFixerTest.php', ]; $ignoreErrors[] = [ - 'message' => '#^Call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertEmpty\\(\\) with non\\-empty\\-array will always evaluate to false\\.$#', - 'count' => 1, - 'path' => __DIR__.'/tests/Test/FixerProviderTest.php', + 'message' => '#^Call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertEmpty\\(\\) with non\\-empty\\-array will always evaluate to false\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/tests/Test/FixerProviderTest.php', ]; $ignoreErrors[] = [ - 'message' => '#^Method \\S+Test\\:\\:\\S+ return type has no value type specified in iterable type iterable\\.$#', + 'message' => '#^Method Nexus\\\\CsConfig\\\\Tests\\\\Test\\\\FixerProviderTest\\:\\:provideCreateMethodGivesNoDeprecatedBuiltInFixersCases\\(\\) return type has no value type specified in iterable type iterable\\.$#', + 'count' => 1, + 'path' => __DIR__ . '/tests/Test/FixerProviderTest.php', ]; return ['parameters' => ['ignoreErrors' => $ignoreErrors]]; diff --git a/vendor/nexusphp/cs-config/phpunit.xml.dist b/vendor/nexusphp/cs-config/phpunit.xml.dist index 5c3a6da3..4234708d 100644 --- a/vendor/nexusphp/cs-config/phpunit.xml.dist +++ b/vendor/nexusphp/cs-config/phpunit.xml.dist @@ -2,38 +2,35 @@ + + + tests + + - - - tests - - + + + src + + - - - src - + + + + + + - - - - - - - - - + + + diff --git a/vendor/nexusphp/cs-config/src/Factory.php b/vendor/nexusphp/cs-config/src/Factory.php index 21cea6e3..63814df6 100644 --- a/vendor/nexusphp/cs-config/src/Factory.php +++ b/vendor/nexusphp/cs-config/src/Factory.php @@ -17,6 +17,7 @@ use Nexus\CsConfig\Ruleset\RulesetInterface; use PhpCsFixer\Config; use PhpCsFixer\ConfigInterface; use PhpCsFixer\Finder; +use PhpCsFixer\Runner\Parallel\ParallelConfigFactory; /** * The Factory class is invoked on each project's `.php-cs-fixer.dist.php` to create @@ -159,6 +160,7 @@ final class Factory $rules = array_merge($this->options['rules'], $overrides); return (new Config($this->ruleset->getName())) + ->setParallelConfig(ParallelConfigFactory::detect()) ->registerCustomFixers($this->options['customFixers']) ->setCacheFile($this->options['cacheFile']) ->setFinder($this->options['finder']) diff --git a/vendor/nexusphp/cs-config/src/Fixer/AbstractCustomFixer.php b/vendor/nexusphp/cs-config/src/Fixer/AbstractCustomFixer.php index 239c73a0..44a7bc9c 100644 --- a/vendor/nexusphp/cs-config/src/Fixer/AbstractCustomFixer.php +++ b/vendor/nexusphp/cs-config/src/Fixer/AbstractCustomFixer.php @@ -35,9 +35,6 @@ abstract class AbstractCustomFixer extends AbstractFixer return $namespace.'/'.Utils::camelCaseToUnderscore($name); } - /** - * {@inheritDoc} - */ public function getName(): string { return self::name(); diff --git a/vendor/nexusphp/cs-config/src/Fixer/Comment/NoCodeSeparatorCommentFixer.php b/vendor/nexusphp/cs-config/src/Fixer/Comment/NoCodeSeparatorCommentFixer.php index 92fc6c62..b8a34677 100644 --- a/vendor/nexusphp/cs-config/src/Fixer/Comment/NoCodeSeparatorCommentFixer.php +++ b/vendor/nexusphp/cs-config/src/Fixer/Comment/NoCodeSeparatorCommentFixer.php @@ -25,9 +25,6 @@ use PhpCsFixer\Tokenizer\Tokens; */ final class NoCodeSeparatorCommentFixer extends AbstractCustomFixer { - /** - * {@inheritDoc} - */ public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -47,9 +44,6 @@ final class NoCodeSeparatorCommentFixer extends AbstractCustomFixer ); } - /** - * {@inheritDoc} - */ public function isCandidate(Tokens $tokens): bool { return $tokens->isTokenKindFound(T_COMMENT); @@ -65,9 +59,6 @@ final class NoCodeSeparatorCommentFixer extends AbstractCustomFixer return 2; } - /** - * {@inheritDoc} - */ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($index = 1, $count = $tokens->count(); $index < $count; ++$index) { diff --git a/vendor/nexusphp/cs-config/src/Fixer/Comment/SpaceAfterCommentStartFixer.php b/vendor/nexusphp/cs-config/src/Fixer/Comment/SpaceAfterCommentStartFixer.php index 018560b6..8895b53e 100644 --- a/vendor/nexusphp/cs-config/src/Fixer/Comment/SpaceAfterCommentStartFixer.php +++ b/vendor/nexusphp/cs-config/src/Fixer/Comment/SpaceAfterCommentStartFixer.php @@ -28,9 +28,6 @@ use PhpCsFixer\Tokenizer\Tokens; */ final class SpaceAfterCommentStartFixer extends AbstractCustomFixer implements DeprecatedFixerInterface { - /** - * {@inheritDoc} - */ public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( @@ -42,17 +39,11 @@ final class SpaceAfterCommentStartFixer extends AbstractCustomFixer implements D ); } - /** - * {@inheritDoc} - */ public function getSuccessorsNames(): array { return ['single_line_comment_spacing']; } - /** - * {@inheritDoc} - */ public function isCandidate(Tokens $tokens): bool { return $tokens->isTokenKindFound(T_COMMENT); @@ -68,9 +59,6 @@ final class SpaceAfterCommentStartFixer extends AbstractCustomFixer implements D return 3; } - /** - * {@inheritDoc} - */ protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { for ($index = 1, $count = $tokens->count(); $index < $count; ++$index) { diff --git a/vendor/nexusphp/cs-config/src/Ruleset/AbstractRuleset.php b/vendor/nexusphp/cs-config/src/Ruleset/AbstractRuleset.php index a9c1a7b1..082924db 100644 --- a/vendor/nexusphp/cs-config/src/Ruleset/AbstractRuleset.php +++ b/vendor/nexusphp/cs-config/src/Ruleset/AbstractRuleset.php @@ -23,7 +23,7 @@ abstract class AbstractRuleset implements RulesetInterface /** * Rules for the ruleset. * - * @var array|bool|string>|bool> + * @var array|string>|bool> */ protected array $rules = []; @@ -39,9 +39,6 @@ abstract class AbstractRuleset implements RulesetInterface */ protected bool $autoActivateIsRiskyAllowed = false; - /** - * {@inheritDoc} - */ final public function getName(): string { if ('' !== $this->name) { @@ -57,25 +54,16 @@ abstract class AbstractRuleset implements RulesetInterface return static::class; } - /** - * {@inheritDoc} - */ final public function getRules(): array { return $this->rules; } - /** - * {@inheritDoc} - */ final public function getRequiredPHPVersion(): int { return $this->requiredPHPVersion; } - /** - * {@inheritDoc} - */ final public function willAutoActivateIsRiskyAllowed(): bool { return $this->autoActivateIsRiskyAllowed; diff --git a/vendor/nexusphp/cs-config/src/Ruleset/Nexus80.php b/vendor/nexusphp/cs-config/src/Ruleset/Nexus80.php index b33116f5..26c827e7 100644 --- a/vendor/nexusphp/cs-config/src/Ruleset/Nexus80.php +++ b/vendor/nexusphp/cs-config/src/Ruleset/Nexus80.php @@ -89,6 +89,7 @@ final class Nexus80 extends AbstractRuleset 'space_before_parenthesis' => true, 'inline_constructor_arguments' => true, ], + 'class_keyword' => true, 'class_reference_name_casing' => true, 'clean_namespace' => true, 'combine_consecutive_issets' => true, @@ -134,11 +135,6 @@ final class Nexus80 extends AbstractRuleset 'noise_remaining_usages' => false, 'noise_remaining_usages_exclude' => [], ], - 'escape_implicit_backslashes' => [ - 'double_quoted' => true, - 'heredoc_syntax' => true, - 'single_quoted' => false, - ], 'explicit_indirect_variable' => true, 'explicit_string_variable' => true, 'final_class' => false, @@ -151,7 +147,25 @@ final class Nexus80 extends AbstractRuleset 'fopen_flag_order' => true, 'fopen_flags' => ['b_mode' => true], 'full_opening_tag' => true, - 'fully_qualified_strict_types' => ['leading_backslash_in_global_namespace' => false], + 'fully_qualified_strict_types' => [ + 'import_symbols' => true, + 'leading_backslash_in_global_namespace' => false, + 'phpdoc_tags' => [ + 'param', + 'phpstan-param', + 'phpstan-property', + 'phpstan-property-read', + 'phpstan-property-write', + 'phpstan-return', + 'phpstan-var', + 'property', + 'property-read', + 'property-write', + 'return', + 'throws', + 'var', + ], + ], 'function_declaration' => [ 'closure_function_spacing' => 'one', 'closure_fn_spacing' => 'none', @@ -188,6 +202,7 @@ final class Nexus80 extends AbstractRuleset ], 'group_import' => false, 'header_comment' => false, + 'heredoc_closing_marker' => false, 'heredoc_indentation' => ['indentation' => 'start_plus_one'], 'heredoc_to_nowdoc' => true, 'implode_call' => true, @@ -218,6 +233,7 @@ final class Nexus80 extends AbstractRuleset 'modernize_strpos' => true, 'modernize_types_casting' => true, 'multiline_comment_opening_closing' => true, + 'multiline_string_to_heredoc' => true, 'multiline_whitespace_before_semicolons' => ['strategy' => 'new_line_for_chained_calls'], 'native_constant_invocation' => [ 'fix_built_in' => false, @@ -286,9 +302,10 @@ final class Nexus80 extends AbstractRuleset 'no_spaces_around_offset' => ['positions' => ['inside', 'outside']], 'no_superfluous_elseif' => true, 'no_superfluous_phpdoc_tags' => [ - 'allow_mixed' => true, - 'allow_unused_params' => true, - 'remove_inheritdoc' => false, + 'allow_hidden_params' => true, + 'allow_mixed' => false, + 'allow_unused_params' => false, + 'remove_inheritdoc' => true, ], 'no_trailing_comma_in_singleline' => [ 'elements' => ['arguments', 'array', 'array_destructuring', 'group_import'], @@ -326,10 +343,12 @@ final class Nexus80 extends AbstractRuleset 'not_operator_with_space' => false, 'not_operator_with_successor_space' => true, 'nullable_type_declaration' => ['syntax' => 'question_mark'], - 'nullable_type_declaration_for_default_null_value' => ['use_nullable_type_declaration' => true], + 'nullable_type_declaration_for_default_null_value' => true, + 'numeric_literal_separator' => false, 'object_operator_without_whitespace' => true, 'octal_notation' => false, // requires 8.1+ 'operator_linebreak' => ['only_booleans' => true, 'position' => 'beginning'], + 'ordered_attributes' => ['order' => [], 'sort_algorithm' => 'alpha'], 'ordered_class_elements' => [ 'order' => [ 'use_trait', @@ -367,6 +386,7 @@ final class Nexus80 extends AbstractRuleset 'null_adjustment' => 'always_first', 'case_sensitive' => false, ], + 'php_unit_attributes' => true, 'php_unit_construct' => [ 'assertions' => [ 'assertEquals', @@ -413,9 +433,16 @@ final class Nexus80 extends AbstractRuleset 'phpdoc_add_missing_param_annotation' => ['only_untyped' => true], 'phpdoc_align' => [ 'align' => 'vertical', + 'spacing' => 1, 'tags' => [ 'method', 'param', + 'phpstan-assert', + 'phpstan-assert-if-true', + 'phpstan-assert-if-false', + 'phpstan-param', + 'phpstan-property', + 'phpstan-return', 'property', 'return', 'throws', @@ -424,6 +451,7 @@ final class Nexus80 extends AbstractRuleset ], ], 'phpdoc_annotation_without_dot' => true, + 'phpdoc_array_type' => true, 'phpdoc_indent' => true, 'phpdoc_inline_tag_normalizer' => [ 'tags' => [ @@ -443,6 +471,7 @@ final class Nexus80 extends AbstractRuleset 'method' => 'multi', 'property' => 'multi', ], + 'phpdoc_list_type' => true, 'phpdoc_no_access' => true, 'phpdoc_no_alias_tag' => [ 'replacements' => [ @@ -518,13 +547,22 @@ final class Nexus80 extends AbstractRuleset 'phpdoc_summary' => true, 'phpdoc_tag_casing' => ['tags' => ['inheritDoc']], 'phpdoc_tag_type' => ['tags' => ['inheritDoc' => 'inline']], - 'phpdoc_to_comment' => ['ignored_tags' => [ - 'phpstan-var', - 'phpstan-return', - ]], - 'phpdoc_to_param_type' => ['scalar_types' => true], - 'phpdoc_to_property_type' => ['scalar_types' => true], - 'phpdoc_to_return_type' => ['scalar_types' => true], + 'phpdoc_to_comment' => [ + 'allow_before_return_statement' => true, + 'ignored_tags' => [], + ], + 'phpdoc_to_param_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_property_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_return_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], 'phpdoc_trim' => true, 'phpdoc_trim_consecutive_blank_line_separation' => true, 'phpdoc_types' => ['groups' => ['simple', 'alias', 'meta']], @@ -638,10 +676,15 @@ final class Nexus80 extends AbstractRuleset 'spaces_inside_parentheses' => ['space' => 'none'], 'standardize_increment' => true, 'standardize_not_equals' => true, - 'statement_indentation' => true, + 'statement_indentation' => ['stick_comment_to_next_continuous_control_statement' => true], 'static_lambda' => true, 'strict_comparison' => true, 'strict_param' => true, + 'string_implicit_backslashes' => [ + 'double_quoted' => 'escape', + 'heredoc' => 'escape', + 'single_quoted' => 'ignore', + ], 'string_length_to_empty' => true, 'string_line_ending' => true, 'switch_case_semicolon_to_colon' => true, @@ -657,7 +700,7 @@ final class Nexus80 extends AbstractRuleset 'trim_array_spaces' => true, 'type_declaration_spaces' => ['elements' => ['function', 'property']], 'types_spaces' => ['space' => 'none', 'space_multiple_catch' => null], - 'unary_operator_spaces' => true, + 'unary_operator_spaces' => ['only_dec_inc' => false], 'use_arrow_functions' => true, 'visibility_required' => ['elements' => ['const', 'method', 'property']], 'void_return' => true, @@ -670,7 +713,7 @@ final class Nexus80 extends AbstractRuleset 'less_and_greater' => null, ], ]; - $this->requiredPHPVersion = 80000; + $this->requiredPHPVersion = 8_00_00; $this->autoActivateIsRiskyAllowed = true; } } diff --git a/vendor/nexusphp/cs-config/src/Ruleset/Nexus81.php b/vendor/nexusphp/cs-config/src/Ruleset/Nexus81.php index 06edc83b..a82f1228 100644 --- a/vendor/nexusphp/cs-config/src/Ruleset/Nexus81.php +++ b/vendor/nexusphp/cs-config/src/Ruleset/Nexus81.php @@ -89,6 +89,7 @@ final class Nexus81 extends AbstractRuleset 'space_before_parenthesis' => true, 'inline_constructor_arguments' => true, ], + 'class_keyword' => true, 'class_reference_name_casing' => true, 'clean_namespace' => true, 'combine_consecutive_issets' => true, @@ -134,11 +135,6 @@ final class Nexus81 extends AbstractRuleset 'noise_remaining_usages' => false, 'noise_remaining_usages_exclude' => [], ], - 'escape_implicit_backslashes' => [ - 'double_quoted' => true, - 'heredoc_syntax' => true, - 'single_quoted' => false, - ], 'explicit_indirect_variable' => true, 'explicit_string_variable' => true, 'final_class' => false, @@ -151,7 +147,25 @@ final class Nexus81 extends AbstractRuleset 'fopen_flag_order' => true, 'fopen_flags' => ['b_mode' => true], 'full_opening_tag' => true, - 'fully_qualified_strict_types' => ['leading_backslash_in_global_namespace' => false], + 'fully_qualified_strict_types' => [ + 'import_symbols' => true, + 'leading_backslash_in_global_namespace' => false, + 'phpdoc_tags' => [ + 'param', + 'phpstan-param', + 'phpstan-property', + 'phpstan-property-read', + 'phpstan-property-write', + 'phpstan-return', + 'phpstan-var', + 'property', + 'property-read', + 'property-write', + 'return', + 'throws', + 'var', + ], + ], 'function_declaration' => [ 'closure_function_spacing' => 'one', 'closure_fn_spacing' => 'none', @@ -188,6 +202,7 @@ final class Nexus81 extends AbstractRuleset ], 'group_import' => false, 'header_comment' => false, + 'heredoc_closing_marker' => false, 'heredoc_indentation' => ['indentation' => 'start_plus_one'], 'heredoc_to_nowdoc' => true, 'implode_call' => true, @@ -218,6 +233,7 @@ final class Nexus81 extends AbstractRuleset 'modernize_strpos' => true, 'modernize_types_casting' => true, 'multiline_comment_opening_closing' => true, + 'multiline_string_to_heredoc' => true, 'multiline_whitespace_before_semicolons' => ['strategy' => 'new_line_for_chained_calls'], 'native_constant_invocation' => [ 'fix_built_in' => false, @@ -286,9 +302,10 @@ final class Nexus81 extends AbstractRuleset 'no_spaces_around_offset' => ['positions' => ['inside', 'outside']], 'no_superfluous_elseif' => true, 'no_superfluous_phpdoc_tags' => [ - 'allow_mixed' => true, - 'allow_unused_params' => true, - 'remove_inheritdoc' => false, + 'allow_hidden_params' => true, + 'allow_mixed' => false, + 'allow_unused_params' => false, + 'remove_inheritdoc' => true, ], 'no_trailing_comma_in_singleline' => [ 'elements' => ['arguments', 'array', 'array_destructuring', 'group_import'], @@ -326,10 +343,12 @@ final class Nexus81 extends AbstractRuleset 'not_operator_with_space' => false, 'not_operator_with_successor_space' => true, 'nullable_type_declaration' => ['syntax' => 'question_mark'], - 'nullable_type_declaration_for_default_null_value' => ['use_nullable_type_declaration' => true], + 'nullable_type_declaration_for_default_null_value' => true, + 'numeric_literal_separator' => false, 'object_operator_without_whitespace' => true, 'octal_notation' => true, 'operator_linebreak' => ['only_booleans' => true, 'position' => 'beginning'], + 'ordered_attributes' => ['order' => [], 'sort_algorithm' => 'alpha'], 'ordered_class_elements' => [ 'order' => [ 'use_trait', @@ -367,6 +386,7 @@ final class Nexus81 extends AbstractRuleset 'null_adjustment' => 'always_first', 'case_sensitive' => false, ], + 'php_unit_attributes' => true, 'php_unit_construct' => [ 'assertions' => [ 'assertEquals', @@ -413,9 +433,16 @@ final class Nexus81 extends AbstractRuleset 'phpdoc_add_missing_param_annotation' => ['only_untyped' => true], 'phpdoc_align' => [ 'align' => 'vertical', + 'spacing' => 1, 'tags' => [ 'method', 'param', + 'phpstan-assert', + 'phpstan-assert-if-true', + 'phpstan-assert-if-false', + 'phpstan-param', + 'phpstan-property', + 'phpstan-return', 'property', 'return', 'throws', @@ -424,6 +451,7 @@ final class Nexus81 extends AbstractRuleset ], ], 'phpdoc_annotation_without_dot' => true, + 'phpdoc_array_type' => true, 'phpdoc_indent' => true, 'phpdoc_inline_tag_normalizer' => [ 'tags' => [ @@ -443,6 +471,7 @@ final class Nexus81 extends AbstractRuleset 'method' => 'multi', 'property' => 'multi', ], + 'phpdoc_list_type' => true, 'phpdoc_no_access' => true, 'phpdoc_no_alias_tag' => [ 'replacements' => [ @@ -518,13 +547,22 @@ final class Nexus81 extends AbstractRuleset 'phpdoc_summary' => true, 'phpdoc_tag_casing' => ['tags' => ['inheritDoc']], 'phpdoc_tag_type' => ['tags' => ['inheritDoc' => 'inline']], - 'phpdoc_to_comment' => ['ignored_tags' => [ - 'phpstan-var', - 'phpstan-return', - ]], - 'phpdoc_to_param_type' => ['scalar_types' => true], - 'phpdoc_to_property_type' => ['scalar_types' => true], - 'phpdoc_to_return_type' => ['scalar_types' => true], + 'phpdoc_to_comment' => [ + 'allow_before_return_statement' => true, + 'ignored_tags' => [], + ], + 'phpdoc_to_param_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_property_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_return_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], 'phpdoc_trim' => true, 'phpdoc_trim_consecutive_blank_line_separation' => true, 'phpdoc_types' => ['groups' => ['simple', 'alias', 'meta']], @@ -638,10 +676,15 @@ final class Nexus81 extends AbstractRuleset 'spaces_inside_parentheses' => ['space' => 'none'], 'standardize_increment' => true, 'standardize_not_equals' => true, - 'statement_indentation' => true, + 'statement_indentation' => ['stick_comment_to_next_continuous_control_statement' => true], 'static_lambda' => true, 'strict_comparison' => true, 'strict_param' => true, + 'string_implicit_backslashes' => [ + 'double_quoted' => 'escape', + 'heredoc' => 'escape', + 'single_quoted' => 'ignore', + ], 'string_length_to_empty' => true, 'string_line_ending' => true, 'switch_case_semicolon_to_colon' => true, @@ -657,7 +700,7 @@ final class Nexus81 extends AbstractRuleset 'trim_array_spaces' => true, 'type_declaration_spaces' => ['elements' => ['function', 'property']], 'types_spaces' => ['space' => 'none', 'space_multiple_catch' => null], - 'unary_operator_spaces' => true, + 'unary_operator_spaces' => ['only_dec_inc' => false], 'use_arrow_functions' => true, 'visibility_required' => ['elements' => ['const', 'method', 'property']], 'void_return' => true, @@ -670,7 +713,7 @@ final class Nexus81 extends AbstractRuleset 'less_and_greater' => null, ], ]; - $this->requiredPHPVersion = 80100; + $this->requiredPHPVersion = 8_01_00; $this->autoActivateIsRiskyAllowed = true; } } diff --git a/vendor/nexusphp/cs-config/src/Ruleset/Nexus82.php b/vendor/nexusphp/cs-config/src/Ruleset/Nexus82.php index 84242caa..1fbe297e 100644 --- a/vendor/nexusphp/cs-config/src/Ruleset/Nexus82.php +++ b/vendor/nexusphp/cs-config/src/Ruleset/Nexus82.php @@ -89,6 +89,7 @@ final class Nexus82 extends AbstractRuleset 'space_before_parenthesis' => true, 'inline_constructor_arguments' => true, ], + 'class_keyword' => true, 'class_reference_name_casing' => true, 'clean_namespace' => true, 'combine_consecutive_issets' => true, @@ -134,11 +135,6 @@ final class Nexus82 extends AbstractRuleset 'noise_remaining_usages' => false, 'noise_remaining_usages_exclude' => [], ], - 'escape_implicit_backslashes' => [ - 'double_quoted' => true, - 'heredoc_syntax' => true, - 'single_quoted' => false, - ], 'explicit_indirect_variable' => true, 'explicit_string_variable' => true, 'final_class' => false, @@ -151,7 +147,25 @@ final class Nexus82 extends AbstractRuleset 'fopen_flag_order' => true, 'fopen_flags' => ['b_mode' => true], 'full_opening_tag' => true, - 'fully_qualified_strict_types' => ['leading_backslash_in_global_namespace' => false], + 'fully_qualified_strict_types' => [ + 'import_symbols' => true, + 'leading_backslash_in_global_namespace' => false, + 'phpdoc_tags' => [ + 'param', + 'phpstan-param', + 'phpstan-property', + 'phpstan-property-read', + 'phpstan-property-write', + 'phpstan-return', + 'phpstan-var', + 'property', + 'property-read', + 'property-write', + 'return', + 'throws', + 'var', + ], + ], 'function_declaration' => [ 'closure_function_spacing' => 'one', 'closure_fn_spacing' => 'none', @@ -188,6 +202,7 @@ final class Nexus82 extends AbstractRuleset ], 'group_import' => false, 'header_comment' => false, + 'heredoc_closing_marker' => false, 'heredoc_indentation' => ['indentation' => 'start_plus_one'], 'heredoc_to_nowdoc' => true, 'implode_call' => true, @@ -218,6 +233,7 @@ final class Nexus82 extends AbstractRuleset 'modernize_strpos' => true, 'modernize_types_casting' => true, 'multiline_comment_opening_closing' => true, + 'multiline_string_to_heredoc' => true, 'multiline_whitespace_before_semicolons' => ['strategy' => 'new_line_for_chained_calls'], 'native_constant_invocation' => [ 'fix_built_in' => false, @@ -286,9 +302,10 @@ final class Nexus82 extends AbstractRuleset 'no_spaces_around_offset' => ['positions' => ['inside', 'outside']], 'no_superfluous_elseif' => true, 'no_superfluous_phpdoc_tags' => [ - 'allow_mixed' => true, - 'allow_unused_params' => true, - 'remove_inheritdoc' => false, + 'allow_hidden_params' => true, + 'allow_mixed' => false, + 'allow_unused_params' => false, + 'remove_inheritdoc' => true, ], 'no_trailing_comma_in_singleline' => [ 'elements' => ['arguments', 'array', 'array_destructuring', 'group_import'], @@ -326,10 +343,12 @@ final class Nexus82 extends AbstractRuleset 'not_operator_with_space' => false, 'not_operator_with_successor_space' => true, 'nullable_type_declaration' => ['syntax' => 'question_mark'], - 'nullable_type_declaration_for_default_null_value' => ['use_nullable_type_declaration' => true], + 'nullable_type_declaration_for_default_null_value' => true, + 'numeric_literal_separator' => false, 'object_operator_without_whitespace' => true, 'octal_notation' => true, 'operator_linebreak' => ['only_booleans' => true, 'position' => 'beginning'], + 'ordered_attributes' => ['order' => [], 'sort_algorithm' => 'alpha'], 'ordered_class_elements' => [ 'order' => [ 'use_trait', @@ -367,6 +386,7 @@ final class Nexus82 extends AbstractRuleset 'null_adjustment' => 'always_first', 'case_sensitive' => false, ], + 'php_unit_attributes' => true, 'php_unit_construct' => [ 'assertions' => [ 'assertEquals', @@ -413,9 +433,16 @@ final class Nexus82 extends AbstractRuleset 'phpdoc_add_missing_param_annotation' => ['only_untyped' => true], 'phpdoc_align' => [ 'align' => 'vertical', + 'spacing' => 1, 'tags' => [ 'method', 'param', + 'phpstan-assert', + 'phpstan-assert-if-true', + 'phpstan-assert-if-false', + 'phpstan-param', + 'phpstan-property', + 'phpstan-return', 'property', 'return', 'throws', @@ -424,6 +451,7 @@ final class Nexus82 extends AbstractRuleset ], ], 'phpdoc_annotation_without_dot' => true, + 'phpdoc_array_type' => true, 'phpdoc_indent' => true, 'phpdoc_inline_tag_normalizer' => [ 'tags' => [ @@ -443,6 +471,7 @@ final class Nexus82 extends AbstractRuleset 'method' => 'multi', 'property' => 'multi', ], + 'phpdoc_list_type' => true, 'phpdoc_no_access' => true, 'phpdoc_no_alias_tag' => [ 'replacements' => [ @@ -518,13 +547,22 @@ final class Nexus82 extends AbstractRuleset 'phpdoc_summary' => true, 'phpdoc_tag_casing' => ['tags' => ['inheritDoc']], 'phpdoc_tag_type' => ['tags' => ['inheritDoc' => 'inline']], - 'phpdoc_to_comment' => ['ignored_tags' => [ - 'phpstan-var', - 'phpstan-return', - ]], - 'phpdoc_to_param_type' => ['scalar_types' => true], - 'phpdoc_to_property_type' => ['scalar_types' => true], - 'phpdoc_to_return_type' => ['scalar_types' => true], + 'phpdoc_to_comment' => [ + 'allow_before_return_statement' => true, + 'ignored_tags' => [], + ], + 'phpdoc_to_param_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_property_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], + 'phpdoc_to_return_type' => [ + 'scalar_types' => true, + 'union_types' => true, + ], 'phpdoc_trim' => true, 'phpdoc_trim_consecutive_blank_line_separation' => true, 'phpdoc_types' => ['groups' => ['simple', 'alias', 'meta']], @@ -638,10 +676,15 @@ final class Nexus82 extends AbstractRuleset 'spaces_inside_parentheses' => ['space' => 'none'], 'standardize_increment' => true, 'standardize_not_equals' => true, - 'statement_indentation' => true, + 'statement_indentation' => ['stick_comment_to_next_continuous_control_statement' => true], 'static_lambda' => true, 'strict_comparison' => true, 'strict_param' => true, + 'string_implicit_backslashes' => [ + 'double_quoted' => 'escape', + 'heredoc' => 'escape', + 'single_quoted' => 'ignore', + ], 'string_length_to_empty' => true, 'string_line_ending' => true, 'switch_case_semicolon_to_colon' => true, @@ -657,7 +700,7 @@ final class Nexus82 extends AbstractRuleset 'trim_array_spaces' => true, 'type_declaration_spaces' => ['elements' => ['function', 'property']], 'types_spaces' => ['space' => 'none', 'space_multiple_catch' => null], - 'unary_operator_spaces' => true, + 'unary_operator_spaces' => ['only_dec_inc' => false], 'use_arrow_functions' => true, 'visibility_required' => ['elements' => ['const', 'method', 'property']], 'void_return' => true, @@ -670,7 +713,7 @@ final class Nexus82 extends AbstractRuleset 'less_and_greater' => null, ], ]; - $this->requiredPHPVersion = 80200; + $this->requiredPHPVersion = 8_02_00; $this->autoActivateIsRiskyAllowed = true; } } diff --git a/vendor/nexusphp/cs-config/src/Ruleset/RulesetInterface.php b/vendor/nexusphp/cs-config/src/Ruleset/RulesetInterface.php index f56d3311..5da120e5 100644 --- a/vendor/nexusphp/cs-config/src/Ruleset/RulesetInterface.php +++ b/vendor/nexusphp/cs-config/src/Ruleset/RulesetInterface.php @@ -23,7 +23,7 @@ interface RulesetInterface /** * Defined rules for this ruleset. * - * @return array|bool|string>|bool> + * @return array|string>|bool> */ public function getRules(): array; diff --git a/vendor/nexusphp/cs-config/src/Test/AbstractCustomFixerTestCase.php b/vendor/nexusphp/cs-config/src/Test/AbstractCustomFixerTestCase.php index 919a9aa3..436bea71 100644 --- a/vendor/nexusphp/cs-config/src/Test/AbstractCustomFixerTestCase.php +++ b/vendor/nexusphp/cs-config/src/Test/AbstractCustomFixerTestCase.php @@ -149,7 +149,6 @@ abstract class AbstractCustomFixerTestCase extends TestCase { $fixerName = $this->fixer->getName(); $definition = $this->fixer->getDefinition(); - $fixerIsConfigurable = $this->fixer instanceof ConfigurableFixerInterface; self::assertValidDescription($fixerName, 'summary', $definition->getSummary()); @@ -172,12 +171,20 @@ abstract class AbstractCustomFixerTestCase extends TestCase $config = $sample->getConfiguration(); if (null !== $config) { - self::assertTrue($fixerIsConfigurable, sprintf('[%s] Sample #%d has configuration, but the fixer is not configurable.', $fixerName, $counter)); + self::assertInstanceOf( + ConfigurableFixerInterface::class, + $this->fixer, + sprintf('[%s] Sample #%d has configuration, but the fixer is not configurable.', $fixerName, $counter), + ); $configSamplesProvided[$counter] = $config; - } elseif ($fixerIsConfigurable) { + } elseif ($this->fixer instanceof ConfigurableFixerInterface) { if (! $sample instanceof VersionSpecificCodeSampleInterface) { - self::assertArrayNotHasKey('default', $configSamplesProvided, sprintf('[%s] Multiple non-versioned samples with default configuration.', $fixerName)); + self::assertArrayNotHasKey( + 'default', + $configSamplesProvided, + sprintf('[%s] Multiple non-versioned samples with default configuration.', $fixerName), + ); } $configSamplesProvided['default'] = true; @@ -187,9 +194,9 @@ abstract class AbstractCustomFixerTestCase extends TestCase continue; } - if ($fixerIsConfigurable) { + if ($this->fixer instanceof ConfigurableFixerInterface) { // always re-configure as the fixer might have been configured with diff. configuration from previous sample - $this->fixer->configure(null === $config ? [] : $config); + $this->fixer->configure($config ?? []); } Tokens::clearCache(); @@ -210,11 +217,11 @@ abstract class AbstractCustomFixerTestCase extends TestCase self::assertFalse( $duplicatedCodeSample, - sprintf('[%s] Sample #%d duplicates #%d.', $fixerName, $counter, ++$duplicatedCodeSample), + sprintf('[%s] Sample #%d duplicates #%d.', $fixerName, $counter, (int) $duplicatedCodeSample + 1), ); } - if ($fixerIsConfigurable) { + if ($this->fixer instanceof ConfigurableFixerInterface) { if (isset($configSamplesProvided['default'])) { reset($configSamplesProvided); self::assertSame('default', key($configSamplesProvided), sprintf('[%s] First sample must be for the default configuration.', $fixerName)); @@ -274,7 +281,7 @@ abstract class AbstractCustomFixerTestCase extends TestCase $tokens->clearEmptyTokens(); - /** @var Token[] $tokensArray */ + /** @var list $tokensArray */ $tokensArray = $tokens->toArray(); self::assertCount( @@ -340,11 +347,11 @@ abstract class AbstractCustomFixerTestCase extends TestCase { self::assertCount($expectedTokens->count(), $inputTokens, 'Both Tokens collections should have the same size.'); - /** @var Token $expectedToken */ foreach ($expectedTokens as $index => $expectedToken) { - /** @var Token $inputToken */ $inputToken = $inputTokens[$index]; + self::assertInstanceOf(Token::class, $expectedToken, 'Expected token is null.'); + self::assertInstanceOf(Token::class, $inputToken, 'Input token is null.'); self::assertTrue( $expectedToken->equals($inputToken), sprintf("Token at index %d must be:\n%s,\ngot:\n%s.", $index, $expectedToken->toJson(), $inputToken->toJson()), @@ -363,6 +370,10 @@ abstract class AbstractCustomFixerTestCase extends TestCase private static function assertCorrectCasing(string $needle, string $haystack, string $message): void { - self::assertSame(substr_count(strtolower($haystack), strtolower($needle)), substr_count($haystack, $needle), $message); + self::assertSame( + substr_count(strtolower($haystack), strtolower($needle)), + substr_count($haystack, $needle), + $message, + ); } } diff --git a/vendor/nexusphp/cs-config/src/Test/AbstractRulesetTestCase.php b/vendor/nexusphp/cs-config/src/Test/AbstractRulesetTestCase.php index 11d17a91..93cfee6e 100644 --- a/vendor/nexusphp/cs-config/src/Test/AbstractRulesetTestCase.php +++ b/vendor/nexusphp/cs-config/src/Test/AbstractRulesetTestCase.php @@ -19,6 +19,7 @@ use PhpCsFixer\Fixer\FixerInterface; use PhpCsFixer\FixerConfiguration\DeprecatedFixerOptionInterface; use PhpCsFixer\FixerConfiguration\FixerOptionInterface; use PhpCsFixer\Preg; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -37,7 +38,7 @@ abstract class AbstractRulesetTestCase extends TestCase private static array $configuredFixers = []; /** - * @var array|bool> + * @var array|string>|bool> */ private static array $enabledFixers = []; @@ -133,14 +134,13 @@ abstract class AbstractRulesetTestCase extends TestCase } /** - * @dataProvider provideEnabledConfigurableFixerUsesAllAvailableOptionsNotDeprecatedCases - * - * @param string[] $goodOptions - * @param string[] $deprecatedOptions + * @param list $goodOptions + * @param list $deprecatedOptions */ + #[DataProvider('provideEnabledConfigurableFixerUsesAllAvailableOptionsNotDeprecatedCases')] final public function testEnabledConfigurableFixerUsesAllAvailableOptionsNotDeprecated(string $name, array $goodOptions, array $deprecatedOptions): void { - /** @var null|array|bool $ruleConfiguration */ + /** @var null|array|string>|bool $ruleConfiguration */ $ruleConfiguration = self::$enabledFixers[$name] ?? null; if (null === $ruleConfiguration) { @@ -187,7 +187,7 @@ abstract class AbstractRulesetTestCase extends TestCase /** * @codeCoverageIgnore * - * @return iterable + * @return iterable, 2: list}> */ public static function provideEnabledConfigurableFixerUsesAllAvailableOptionsNotDeprecatedCases(): iterable { @@ -198,21 +198,21 @@ abstract class AbstractRulesetTestCase extends TestCase if ($fixer instanceof ConfigurableFixerInterface) { $options = $fixer->getConfigurationDefinition()->getOptions(); - $goodOptions = array_map( + $goodOptions = array_values(array_map( static fn(FixerOptionInterface $option): string => $option->getName(), array_filter( $options, static fn(FixerOptionInterface $option): bool => ! $option instanceof DeprecatedFixerOptionInterface, ), - ); + )); - $deprecatedOptions = array_map( + $deprecatedOptions = array_values(array_map( static fn(FixerOptionInterface $option): string => $option->getName(), array_filter( $options, static fn(FixerOptionInterface $option): bool => $option instanceof DeprecatedFixerOptionInterface, ), - ); + )); yield $name => [$name, $goodOptions, $deprecatedOptions]; } diff --git a/vendor/nexusphp/cs-config/src/Test/FixerProvider.php b/vendor/nexusphp/cs-config/src/Test/FixerProvider.php index d42fc3fc..34e5ac5a 100644 --- a/vendor/nexusphp/cs-config/src/Test/FixerProvider.php +++ b/vendor/nexusphp/cs-config/src/Test/FixerProvider.php @@ -29,8 +29,8 @@ final class FixerProvider private static array $builtIn = []; /** - * @param array $configured configured fixers from a ruleset - * @param array|bool> $enabled enabled fixers from a ruleset + * @param array $configured configured fixers from a ruleset + * @param array|string>|bool> $enabled enabled fixers from a ruleset */ private function __construct(private array $configured, private array $enabled) {} @@ -84,7 +84,7 @@ final class FixerProvider * Returns the enabled rules from a ruleset and * their configuration. * - * @return array|bool> + * @return array|string>|bool> */ public function enabled(): array { diff --git a/vendor/nikic/php-parser/composer.json b/vendor/nikic/php-parser/composer.json index b4b1bca7..b52f3ee5 100755 --- a/vendor/nikic/php-parser/composer.json +++ b/vendor/nikic/php-parser/composer.json @@ -19,7 +19,7 @@ "ext-ctype": "*" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "phpunit/phpunit": "^9.0", "ircmaxell/php-yacc": "^0.0.7" }, "extra": { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Comment.php b/vendor/nikic/php-parser/lib/PhpParser/Comment.php index 17dc4c73..01b341e4 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Comment.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Comment.php @@ -46,6 +46,7 @@ class Comment implements \JsonSerializable { * Gets the line number the comment started on. * * @return int Line number (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getStartLine(): int { return $this->startLine; @@ -73,6 +74,7 @@ class Comment implements \JsonSerializable { * Gets the line number the comment ends on. * * @return int Line number (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getEndLine(): int { return $this->endLine; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Error.php b/vendor/nikic/php-parser/lib/PhpParser/Error.php index 02feace0..f81f0c42 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Error.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Error.php @@ -32,6 +32,7 @@ class Error extends \RuntimeException { * Gets the line the error starts in. * * @return int Error start line + * @phpstan-return -1|positive-int */ public function getStartLine(): int { return $this->attributes['startLine'] ?? -1; @@ -41,6 +42,7 @@ class Error extends \RuntimeException { * Gets the line the error ends in. * * @return int Error end line + * @phpstan-return -1|positive-int */ public function getEndLine(): int { return $this->attributes['endLine'] ?? -1; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node.php b/vendor/nikic/php-parser/lib/PhpParser/Node.php index 258e4516..fd2a9b72 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Node.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node.php @@ -6,6 +6,7 @@ interface Node { /** * Gets the type of the node. * + * @psalm-return non-empty-string * @return string Type of the node */ public function getType(): string; @@ -21,6 +22,7 @@ interface Node { * Gets line the node started in (alias of getStartLine). * * @return int Start line (or -1 if not available) + * @phpstan-return -1|positive-int * * @deprecated Use getStartLine() instead */ @@ -32,6 +34,7 @@ interface Node { * Requires the 'startLine' attribute to be enabled in the lexer (enabled by default). * * @return int Start line (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getStartLine(): int; @@ -41,6 +44,7 @@ interface Node { * Requires the 'endLine' attribute to be enabled in the lexer (enabled by default). * * @return int End line (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getEndLine(): int; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php index 266166cb..01eebe5c 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php @@ -8,7 +8,10 @@ use PhpParser\NodeAbstract; * Represents a non-namespaced name. Namespaced names are represented using Name nodes. */ class Identifier extends NodeAbstract { - /** @var string Identifier as string */ + /** + * @psalm-var non-empty-string + * @var string Identifier as string + */ public string $name; /** @var array */ @@ -25,6 +28,10 @@ class Identifier extends NodeAbstract { * @param array $attributes Additional attributes */ public function __construct(string $name, array $attributes = []) { + if ($name === '') { + throw new \InvalidArgumentException('Identifier name cannot be empty'); + } + $this->attributes = $attributes; $this->name = $name; } @@ -36,6 +43,7 @@ class Identifier extends NodeAbstract { /** * Get identifier as string. * + * @psalm-return non-empty-string * @return string Identifier as string. */ public function toString(): string { @@ -45,6 +53,7 @@ class Identifier extends NodeAbstract { /** * Get lowercased identifier as string. * + * @psalm-return non-empty-string * @return string Lowercased identifier as string */ public function toLowerString(): string { @@ -63,6 +72,7 @@ class Identifier extends NodeAbstract { /** * Get identifier as string. * + * @psalm-return non-empty-string * @return string Identifier as string */ public function __toString(): string { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php index 26b863e4..aa2b90eb 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -5,7 +5,10 @@ namespace PhpParser\Node; use PhpParser\NodeAbstract; class Name extends NodeAbstract { - /** @var string Name as string */ + /** + * @psalm-var non-empty-string + * @var string Name as string + */ public string $name; /** @var array */ @@ -33,6 +36,7 @@ class Name extends NodeAbstract { /** * Get parts of name (split by the namespace separator). * + * @psalm-return non-empty-list * @return string[] Parts of name */ public function getParts(): array { @@ -103,6 +107,7 @@ class Name extends NodeAbstract { * Returns a string representation of the name itself, without taking the name type into * account (e.g., not including a leading backslash for fully qualified names). * + * @psalm-return non-empty-string * @return string String representation */ public function toString(): string { @@ -113,6 +118,7 @@ class Name extends NodeAbstract { * Returns a string representation of the name as it would occur in code (e.g., including * leading backslash for fully qualified names. * + * @psalm-return non-empty-string * @return string String representation */ public function toCodeString(): string { @@ -123,6 +129,7 @@ class Name extends NodeAbstract { * Returns lowercased string representation of the name, without taking the name type into * account (e.g., no leading backslash for fully qualified names). * + * @psalm-return non-empty-string * @return string Lowercased string representation */ public function toLowerString(): string { @@ -142,6 +149,7 @@ class Name extends NodeAbstract { * Returns a string representation of the name by imploding the namespace parts with the * namespace separator. * + * @psalm-return non-empty-string * @return string String representation */ public function __toString(): string { @@ -237,6 +245,7 @@ class Name extends NodeAbstract { * * @param string|string[]|self $name Name to prepare * + * @psalm-return non-empty-string * @return string Prepared name */ private static function prepareName($name): string { diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php index 7c3a3607..a6a50aea 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php @@ -19,6 +19,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable { * Gets line the node started in (alias of getStartLine). * * @return int Start line (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getLine(): int { return $this->attributes['startLine'] ?? -1; @@ -30,6 +31,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable { * Requires the 'startLine' attribute to be enabled in the lexer (enabled by default). * * @return int Start line (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getStartLine(): int { return $this->attributes['startLine'] ?? -1; @@ -41,6 +43,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable { * Requires the 'endLine' attribute to be enabled in the lexer (enabled by default). * * @return int End line (or -1 if not available) + * @phpstan-return -1|positive-int */ public function getEndLine(): int { return $this->attributes['endLine'] ?? -1; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index 80159351..050f91e8 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -160,16 +160,16 @@ class Php7 extends \PhpParser\ParserAbstract public const T_ATTRIBUTE = 395; protected int $tokenToSymbolMapSize = 396; - protected int $actionTableSize = 1258; - protected int $gotoTableSize = 567; + protected int $actionTableSize = 1268; + protected int $gotoTableSize = 730; protected int $invalidSymbol = 168; protected int $errorSymbol = 1; protected int $defaultAction = -32766; protected int $unexpectedTokenRule = 32767; - protected int $YY2TBLSTATE = 435; - protected int $numNonLeafStates = 739; + protected int $YY2TBLSTATE = 437; + protected int $numNonLeafStates = 743; protected array $symbolToName = array( "EOF", @@ -386,132 +386,133 @@ class Php7 extends \PhpParser\ParserAbstract ); protected array $action = array( - 133, 134, 135, 582, 136, 137, 0, 751, 752, 753, + 133, 134, 135, 586, 136, 137, 0, 755, 756, 757, 138, 38,-32766,-32766,-32766, 151,-32766,-32766,-32766,-32767, - -32767,-32767,-32767, 102, 103, 104, 105, 106, 1112, 1113, - 1114, 1111, 1110, 1109, 1115, 745, 744,-32766,-32766,-32766, + -32767,-32767,-32767, 102, 103, 104, 105, 106, 1116, 1117, + 1118, 1115, 1114, 1113, 1119, 749, 748,-32766,-32766,-32766, -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1245, 837,-32766, 1322, 754,-32766,-32766,-32766,-32766, - -594,-32766,-32766,-32766, 104, 105, 106, -594, 1306, 265, - 139, 404, 758, 759, 760, 761, 990,-32766, 429,-32766, - -32766, -16,-32766, 242, 1027, 815, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, - 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, - 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, - 584, 779, 780, 585, 586,-32766, 803, 801, 802, 814, - 798, 799, 835, 826, 587, 588, 797, 589, 590, 591, - 592, 593, 594, 826, 459, 460, 461, 1036, 800, 595, - 596, 941, 140, 2, 133, 134, 135, 582, 136, 137, - 1060, 751, 752, 753, 138, 38, -328, -110, -110, 1326, - 290, 23, -110,-32766,-32766,-32766, 1325, 35, -110, 1112, - 1113, 1114, 1111, 1110, 1109, 1115, 612,-32766, 129, 745, - 744, 107, 108, 109,-32766, 274,-32766,-32766,-32766,-32766, - -32766,-32766,-32766, 828, 991, -194, 145, 110, 298, 754, - 836, 75,-32766,-32766,-32766, 1351, 142, 326, 1352, -594, - 326, -594, 254, 265, 139, 404, 758, 759, 760, 761, - 82, -272, 429,-32766, 326,-32766,-32766,-32766,-32766, 815, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, - 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, - 819, 820, 821, 822, 584, 779, 780, 585, 586, 830, - 803, 801, 802, 814, 798, 799, 712, 309, 587, 588, - 797, 589, 590, 591, 592, 593, 594, -78, 83, 84, - 85, -85, 800, 595, 596, 311, 149, 775, 746, 747, - 748, 749, 750, 725, 751, 752, 753, 788, 789, 37, + -32767, 1252, 841,-32766, 1331, 758,-32766,-32766,-32766,-32766, + -599,-32766,-32766,-32766, 104, 105, 106, -599, 1315, 265, + 139, 406, 762, 763, 764, 765, 994,-32766, 431,-32766, + -32766, -16,-32766, 242, 1031, 819, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 795, 587, 796, 797, + 798, 799, 787, 788, 347, 348, 790, 791, 776, 777, + 778, 780, 781, 782, 358, 822, 823, 824, 825, 826, + 588, 783, 784, 589, 590,-32766, 807, 805, 806, 818, + 802, 803, 839, 830, 591, 592, 801, 593, 594, 595, + 596, 597, 598, 830, 461, 462, 463, 1040, 804, 599, + 600, 945, 140, 2, 133, 134, 135, 586, 136, 137, + 1064, 755, 756, 757, 138, 38, -328, -110, -110, 1335, + 291, 23, -110,-32766,-32766,-32766, 1334, 35, -110, 1116, + 1117, 1118, 1115, 1114, 1113, 1119, 616,-32766, 129, 749, + 748, 107, 108, 109,-32766, 275,-32766,-32766,-32766,-32766, + -32766,-32766,-32766, 832, 995, -194, 145, 110, 300, 758, + 840, 75,-32766,-32766,-32766, 1360, 142, 328, 1361, -599, + 328, -599, 253, 265, 139, 406, 762, 763, 764, 765, + 82, -272, 431,-32766, 328,-32766,-32766,-32766,-32766, 819, + 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, + 795, 587, 796, 797, 798, 799, 787, 788, 347, 348, + 790, 791, 776, 777, 778, 780, 781, 782, 358, 822, + 823, 824, 825, 826, 588, 783, 784, 589, 590, 834, + 807, 805, 806, 818, 802, 803, 716, 311, 591, 592, + 801, 593, 594, 595, 596, 597, 598, -78, 83, 84, + 85, -85, 804, 599, 600, 313, 149, 779, 750, 751, + 752, 753, 754, 729, 755, 756, 757, 792, 793, 37, -328, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 323, 274, 482,-32766,-32766, - -32766, -58,-32766,-32766,-32766, 959, 960, 127, 110, -194, - 961, 339, 754,-32766,-32766,-32766, 955, -85, 291,-32766, - 1088,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758, - 759, 760, 761, -193,-32766, 824,-32766,-32766,-32766, -367, - 429, -367, 815, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 791, 813, 792, 793, 794, 795, 783, - 784, 785, 812, 786, 787, 772, 773, 774, 776, 777, - 778, 817, 818, 819, 820, 821, 822, 823, 779, 780, - 781, 782, -548, 803, 801, 802, 814, 798, 799, 340, - 327, 790, 796, 797, 804, 805, 807, 806, 808, 809, - 1033, 391, 606, 7,-32766, 800, 811, 810, 50, 51, - 52, 513, 53, 54, 831, 1240, 1239, 1241, 55, 56, - -110, 57, 1036, 920, 1090, -110, 1036, -110, 291, 483, - 745, 744, 305, 382, 381, -110, -110, -110, -110, -110, - -110, -110, -110, 423, 920, 283, -548, -548, 152, 290, - 380, 381, 1245, 715, 467, 468, 58, 59, 370, 21, - 423, -545, 60, 556, 61, 248, 249, 62, 63, 64, - 65, 66, 67, 68, 69, -548, 28, 267, 70, 445, - 514, 1104, 374, -342, 1272, 1273, 515, -193, 835, 154, - 832, -544, 1270, 42, 25, 516, 389, 517, 241, 518, - 920, 519, 298, 1238, 520, 521, 910, 920, 441, 44, - 45, 446, 377, 376,-32766, 46, 522, 1023, 1022, 1021, - 1024, 368, 338, 442, 1278, -545, -545, 910, 1231, 443, - 524, 525, 526, 835, 1245, 835, 1036, 716, 1341, 1236, - -545, 155, 528, 529,-32766, 1259, 1260, 1261, 1262, 1256, - 1257, 297, -551, 943, -545, -544, -544, 1263, 1258, 290, - 1035, 1240, 1239, 1241, 298, 444, 1036, 71, 1266, 841, - -544, 321, 322, 326, -153, -153, -153, 920, 1240, 1239, - 1241, 922, -550, 910, -544, 710, 943, -591,-32766, -153, - 910, -153, 357, -153, -591, -153, 862, 1033, 863, 1089, - 36, 251, 922, 737, 156, 375, 710, 717, 862, -585, - 863, -585, 75, 158, -546, 835, 959, 960, 326, 1036, - -57, 523, 920,-32766,-32766, 362, 896, 955, -110, -110, + 105, 106, 107, 108, 109, 325, 275, 485,-32766,-32766, + -32766, -58,-32766,-32766,-32766, 963, 964, 127, 110, -194, + 965, 341, 758,-32766,-32766,-32766, 959, -85, 292,-32766, + 1092,-32766,-32766,-32766,-32766,-32766, 759, 760, 761, 762, + 763, 764, 765, -193,-32766, 828,-32766,-32766,-32766, -367, + 431, -367, 819, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 795, 817, 796, 797, 798, 799, 787, + 788, 789, 816, 790, 791, 776, 777, 778, 780, 781, + 782, 821, 822, 823, 824, 825, 826, 827, 783, 784, + 785, 786, -552, 807, 805, 806, 818, 802, 803, 342, + 329, 794, 800, 801, 808, 809, 811, 810, 812, 813, + 1037, 866, 610, 867,-32766, 804, 815, 814, 50, 51, + 52, 516, 53, 54, 835, 1247, 1246, 1248, 55, 56, + -110, 57, 1040, 924, 1094, -110, 1040, -110, 292, 486, + 749, 748, 307, 384, 383, -110, -110, -110, -110, -110, + -110, -110, -110, 425, 924, 284, -552, -552, 372, 291, + 838, 924, 1252, 719, 470, 471, 58, 59,-32766,-32766, + 21, -550, 60, 560, 61, 247, 248, 62, 63, 64, + 65, 66, 67, 68, 69, -552, 28, 267, 70, 446, + 517, 720, 1108, -342, 1279, 1280, 518, -193, 839, 376, + 836, -548, 1277, 42, 25, 519, 391, 520, 241, 521, + 924, 522, 947, 1245, 523, 524, 914, 660, 26, 44, + 45, 447, 379, 378,-32766, 46, 525, 1027, 1026, 1025, + 1028, 370, 340, 442, 1285, -550, -550, 914, 1238, 947, + 527, 528, 529, 839, 914, 839, 1040, 443, 1350, 1243, + -550, 359, 531, 532, 444, 1266, 1267, 1268, 1269, 1263, + 1264, 299, -556, 445, -550, -548, -548, 1270, 1265, 291, + 1039, 1247, 1246, 1248, 300, 749, 748, 71, 364, 845, + -548, 323, 324, 328, -153, -153, -153, 152, 1247, 1246, + 1248, 926, -555, 914, -548, 714, 1063, 154,-32766, -153, + 1093, -153, 155, -153, 741, -153, 156, -596, 28, 268, + 36, 250, 926,-32766, -596, 377, 714, 679, 680, 926, + 839, 1273, 75, 714, 1277, 288, 963, 964, 328, -547, + 393, 526, 7, 1037, -57, 1040, 900, 959, -110, -110, -110, 32, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 745, 744, 656, 26, 835, - -110, -110, 720, 745, 744, -110, 33, 834, 922, 124, - 910, -110, 710, -153, 125, 922, 675, 676, 130, 710, - -32766, 150, 407, 131, 1150, 1152, 48, 144, -546, -546, - 378, 379,-32766, 383, 384, -543, 28, 159, 1238, 920, - 160, 298, 1059, -546, 75,-32766,-32766,-32766, 835,-32766, - 326,-32766, 1270,-32766, -87, 910,-32766, -546, 647, 648, - 161,-32766,-32766,-32766, -4, 920, -84,-32766,-32766, 727, - 162, 287, 163,-32766, 420, -302, -78, -73, -72, -71, - 141, 287,-32766, -70, 326, 976, 745, 744, 1231, 710, - 299, 300, -69, -68, -67, -298, -591, -66, -591, -543, - -543, -65, 528, 529, -46, 1259, 1260, 1261, 1262, 1256, - 1257, -18, 74, 148, -543, 273, 284, 1263, 1258, 126, - -543, 726, 910,-32766, 729, 919, 147, 73, -543, 1238, - 922, 690, 322, 326, 710, 279,-32766,-32766,-32766, 280, - -32766, 285,-32766, 286,-32766, 332, 288,-32766, 910, 289, - 292, 49,-32766,-32766,-32766, 293, 274, 1033,-32766,-32766, - 937, 110, -50, 685,-32766, 420, 146, 691, 826, 701, - 375, 703, 436,-32766, 1353, 20, 561, 296, 645, 1036, - 835, 959, 960, 1119, -543, -543, 523,-32766, 692, 693, - 306, 527, 955, -110, -110, -110, 132, 922, 834, -543, - 464, 710, 283, 662, 657,-32766, 1240, 1239, 1241, 678, - 304, 1238, 283, -543, 10, 301, 302, 493,-32766,-32766, - -32766, 663,-32766, 922,-32766, 679,-32766, 710, -4,-32766, - 373, 40, -508, 956,-32766,-32766,-32766, -275, 731,-32766, - -32766,-32766, 920, 303, 128, 1238,-32766, 420, 310, 0, - 567, 0,-32766,-32766,-32766,-32766,-32766, 0,-32766, 0, - -32766,-32766, 0,-32766, 0, 1277, -498, 0,-32766,-32766, - -32766,-32766, 1279, 0,-32766,-32766, 8, 1238, 24, 372, - -32766, 420, 920, 1267,-32766,-32766,-32766, 610,-32766,-32766, - -32766, 939,-32766, 298, -579,-32766, 846, 41, 734, 488, - -32766,-32766,-32766,-32766, 735, 854,-32766,-32766, 901, 1238, - 574, 1000,-32766, 420, 977, 984,-32766,-32766,-32766, 974, - -32766,-32766,-32766, 985,-32766, 910, 899,-32766, 972, 1093, - 1096, 1097,-32766,-32766,-32766, 1094, 1095, 1101,-32766,-32766, - 1292, -250, -250, -250,-32766, 420, 1310, 375, 1344, 650, - 28, 267, -578,-32766, -577, -551, -550, -549, 959, 960, - -492, 1, 835, 523, 29, 910, 1270, 30, 896, 955, - -110, -110, -110, 39, 43, 47, 72, 76, 77, 78, - 79, -249, -249, -249, 80, 81, 143, 375, 153, 157, - 897, 247, 328, 357, 358, 359, 360, 361, 959, 960, - 922, 362, 1231, 523, 710, -250, 363, 364, 896, 955, - -110, -110, -110, 365, 366, 367, 369, 529, 28, 1259, - 1260, 1261, 1262, 1256, 1257, 437, 555, 1348, -273, -272, - 835, 1263, 1258, 13, 1270, 14,-32766, 15, 16, 18, - 922, 73, 1238, 1350, 710, -249, 322, 326, 406,-32766, - -32766,-32766, 484,-32766, 485,-32766, 492,-32766, 495, 496, - -32766, 497, 498, 502, 503,-32766,-32766,-32766, 504, 511, - 1231,-32766,-32766, 572, 696, 1249, 1190,-32766, 420, 1268, - 1062, 1061, 1042, 1226, 1038, 529,-32766, 1259, 1260, 1261, - 1262, 1256, 1257, -277, -102, 12, 17, 27, 295, 1263, - 1258, 405, 603, 607, 636, 702, 1194, 1244, 1191, 73, - 34, 1323, 0, 320, 322, 326, 371, 711, 714, 718, - 719, 721, 722, 723, 724, 0, 728, 713, 0, 857, - 856, 865, 949, 992, 864, 1349, 948, 946, 947, 950, - 1222, 930, 940, 928, 982, 983, 634, 1347, 1304, 1293, - 1311, 1320, 0, 1207, 0, 1271, 0, 326 + 119, 120, 121, 122, 123, 1040, 158, 382, 383, 866, + 1238, 867, 924, 749, 748, 1252, 33, 425, 926, 150, + 409, 924, 714, -153, 531, 532, -87, 1266, 1267, 1268, + 1269, 1263, 1264, 124, 1154, 1156, -84, -4, 924, 1270, + 1265, 125, 721, -547, -547, -546, 130, 749, 748, 73, + -32766, 724, 839, -78, 324, 328, 1245, 131, -547, 300, + -590, 1037, -590,-32766,-32766,-32766, 144,-32766, 159,-32766, + -554,-32766, -547, 160,-32766, 380, 381, 924, 161,-32766, + -32766,-32766, 162, 1040,-32766,-32766,-32766, 385, 386, 163, + 1245,-32766, 422, 651, 652, 914, 839,-32766,-32766,-32766, + -32766,-32766, -73,-32766, 914,-32766, 284, 731,-32766, -546, + -546, -72, 48,-32766,-32766,-32766, -596, -71, -596,-32766, + -32766, 914, -70, -69, -546,-32766, 422, -68, -67, -66, + 74, -110, -110, 141,-32766, -50, -110, 328, -546, -65, + -46, -18, -110, 377, 148, 438, 274, 285, 730, 733, + 298,-32766, 923, 147, 963, 964, 289, 290, -549, 526, + 914, -302, -298, 280, 530, 959, -110, -110, -110, 132, + 980, 281, 300, 941, 714, 75, 301, 302,-32766, 926, + 286, 328, 287, 714, 1245, 334, 293, 10, 294, 275, + 1362,-32766,-32766,-32766, 110,-32766, 926,-32766, 707,-32766, + 714, -4,-32766, 146, 830, 126, 689,-32766,-32766,-32766, + 705, 20,-32766,-32766,-32766, 924, 839, 682, 1245,-32766, + 422, 1123, -549, -549, 649,-32766,-32766,-32766,-32766,-32766, + 565,-32766, 661,-32766, 467, 926,-32766, -549,-32766, 714, + 666,-32766,-32766,-32766,-32766, 496, 667,-32766,-32766,-32766, + 1245, -549, 683,-32766, 422, 924, 571,-32766,-32766,-32766, + 838,-32766,-32766,-32766, 306,-32766, 735, 1278,-32766, 308, + 0, 960, 491,-32766,-32766,-32766,-32766, 0, 0,-32766, + -32766, 0, 1245, 578, 0,-32766, 422, -546, 305,-32766, + -32766,-32766, 312,-32766,-32766,-32766, 0,-32766, 914, 40, + -32766, 0, 0, 1284, 1286,-32766,-32766,-32766, -511, 0, + -501,-32766,-32766, 8, -250, -250, -250,-32766, 422, 614, + 377, 24, 49, 28, 267, 374,-32766, 943, 41, 300, + -275, 963, 964, 738, 739, 839, 526, 858, 914, 1277, + 905, 900, 959, -110, -110, -110, 1004, 981, 988, 978, + 989, -546, -546, 903, -249, -249, -249, 976, 28, 268, + 377, 1274, 288, 1097, 1100, 1101, -546, 1098, 1099, 1105, + 839, 963, 964, 926, 1277, 1238, 526, 714, -250, 850, + -546, 900, 959, -110, -110, -110, 303, 304, 1301, 1319, + 532, 1353, 1266, 1267, 1268, 1269, 1263, 1264, 654, -273, + -584, 375, -583, -582, 1270, 1265, -556, -555, -554, -553, + 1238, -495, 694, 926, 73, 128, 1, 714, -249, 324, + 328, 29, 30, 39, 43, 532, 47, 1266, 1267, 1268, + 1269, 1263, 1264, 72, 76, 77, 78, 79, 80, 1270, + 1265, 81, 143, 153,-32766, 157, 245, 330, 695, 73, + 1245, 359, 360, 361, 324, 328, 362,-32766,-32766,-32766, + 363,-32766, 364,-32766, 365,-32766, 366, 367,-32766, 696, + 697, 368, 369,-32766,-32766,-32766, 371, 439, 559,-32766, + -32766, -272, 13, 14, 15,-32766, 422, 1247, 1246, 1248, + 16, 18, 408, 284,-32766, 487, 488, 495, 498, 499, + 500, 501, 505, 506, 507, 514, 576, 700, 1256, 1194, + 1275, 1066, 1065, 1046, 1233, 1042, -277, -102, 12, 17, + 27, 297, 407, 607, 611, 640, 706, 1198, 1251, 1195, + 1332, 0, 34, 0, 322, 373, 715, 718, 722, 723, + 725, 726, 727, 728, 732, 717, 0, 901, 1357, 1359, + 861, 860, 869, 953, 996, 868, 1358, 952, 950, 951, + 954, 1226, 934, 944, 932, 986, 987, 638, 1356, 1313, + 1302, 1320, 1329, 0, 1211, 0, 0, 328 ); protected array $actionCheck = array( @@ -564,163 +565,164 @@ class Php7 extends \PhpParser\ParserAbstract 4, 5, 6, 7, 80, 155, 156, 157, 12, 13, 101, 15, 138, 1, 164, 106, 138, 108, 30, 163, 37, 38, 113, 106, 107, 116, 117, 118, 119, 120, - 121, 122, 123, 116, 1, 161, 134, 135, 14, 161, - 106, 107, 1, 31, 134, 135, 50, 51, 8, 101, - 116, 70, 56, 85, 58, 59, 60, 61, 62, 63, + 121, 122, 123, 116, 1, 161, 134, 135, 8, 161, + 155, 1, 1, 31, 134, 135, 50, 51, 9, 10, + 101, 70, 56, 85, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 163, 70, 71, 72, 73, - 74, 123, 8, 164, 78, 79, 80, 162, 82, 14, + 74, 31, 123, 164, 78, 79, 80, 162, 82, 8, 156, 70, 86, 87, 88, 89, 8, 91, 97, 93, - 1, 95, 158, 80, 98, 99, 84, 1, 8, 103, + 1, 95, 122, 80, 98, 99, 84, 75, 76, 103, 104, 105, 106, 107, 116, 109, 110, 119, 120, 121, - 122, 115, 116, 8, 146, 134, 135, 84, 122, 8, - 124, 125, 126, 82, 1, 82, 138, 31, 85, 116, - 149, 14, 136, 137, 116, 139, 140, 141, 142, 143, - 144, 145, 161, 122, 163, 134, 135, 151, 152, 161, - 137, 155, 156, 157, 158, 8, 138, 161, 1, 8, - 149, 165, 166, 167, 75, 76, 77, 1, 155, 156, - 157, 159, 161, 84, 163, 163, 122, 1, 137, 90, - 84, 92, 161, 94, 8, 96, 106, 116, 108, 159, - 147, 148, 159, 163, 14, 106, 163, 31, 106, 160, - 108, 162, 161, 14, 70, 82, 117, 118, 167, 138, - 16, 122, 1, 9, 10, 161, 127, 128, 129, 130, + 122, 115, 116, 8, 146, 134, 135, 84, 122, 122, + 124, 125, 126, 82, 84, 82, 138, 8, 85, 116, + 149, 161, 136, 137, 8, 139, 140, 141, 142, 143, + 144, 145, 161, 8, 163, 134, 135, 151, 152, 161, + 137, 155, 156, 157, 158, 37, 38, 161, 161, 8, + 149, 165, 166, 167, 75, 76, 77, 14, 155, 156, + 157, 159, 161, 84, 163, 163, 1, 14, 137, 90, + 159, 92, 14, 94, 163, 96, 14, 1, 70, 71, + 147, 148, 159, 116, 8, 106, 163, 75, 76, 159, + 82, 1, 161, 163, 86, 30, 117, 118, 167, 70, + 106, 122, 108, 116, 16, 138, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 37, 38, 75, 76, 82, - 117, 118, 31, 37, 38, 122, 14, 155, 159, 16, - 84, 128, 163, 164, 16, 159, 75, 76, 16, 163, - 137, 101, 102, 16, 59, 60, 70, 16, 134, 135, - 106, 107, 74, 106, 107, 70, 70, 16, 80, 1, - 16, 158, 1, 149, 161, 87, 88, 89, 82, 91, - 167, 93, 86, 95, 31, 84, 98, 163, 111, 112, - 16, 103, 104, 105, 0, 1, 31, 109, 110, 31, - 16, 30, 16, 115, 116, 35, 31, 31, 31, 31, - 163, 30, 124, 31, 167, 159, 37, 38, 122, 163, - 134, 135, 31, 31, 31, 35, 160, 31, 162, 134, - 135, 31, 136, 137, 31, 139, 140, 141, 142, 143, - 144, 31, 154, 31, 149, 31, 31, 151, 152, 163, - 70, 31, 84, 74, 31, 31, 31, 161, 163, 80, - 159, 80, 166, 167, 163, 35, 87, 88, 89, 35, - 91, 35, 93, 35, 95, 35, 37, 98, 84, 37, - 37, 70, 103, 104, 105, 37, 57, 116, 109, 110, - 38, 69, 31, 77, 115, 116, 70, 116, 80, 80, - 106, 92, 108, 124, 83, 97, 89, 113, 113, 138, - 82, 117, 118, 82, 134, 135, 122, 85, 137, 138, - 114, 127, 128, 129, 130, 131, 31, 159, 155, 149, - 97, 163, 161, 96, 90, 74, 155, 156, 157, 94, - 133, 80, 161, 163, 150, 134, 135, 97, 87, 88, - 89, 100, 91, 159, 93, 100, 95, 163, 164, 98, - 149, 159, 149, 128, 103, 104, 105, 162, 164, 74, - 109, 110, 1, 132, 163, 80, 115, 116, 132, -1, - 153, -1, 87, 88, 89, 124, 91, -1, 93, -1, - 95, 137, -1, 98, -1, 146, 149, -1, 103, 104, - 105, 74, 146, -1, 109, 110, 149, 80, 149, 149, - 115, 116, 1, 160, 87, 88, 89, 153, 91, 124, - 93, 154, 95, 158, 161, 98, 160, 159, 159, 102, - 103, 104, 105, 74, 159, 159, 109, 110, 159, 80, - 81, 159, 115, 116, 159, 159, 87, 88, 89, 159, - 91, 124, 93, 159, 95, 84, 159, 98, 159, 159, - 159, 159, 103, 104, 105, 159, 159, 159, 109, 110, - 160, 100, 101, 102, 115, 116, 160, 106, 160, 160, - 70, 71, 161, 124, 161, 161, 161, 161, 117, 118, - 161, 161, 82, 122, 161, 84, 86, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 161, 161, 161, - 161, 100, 101, 102, 161, 161, 161, 106, 161, 161, - 164, 161, 161, 161, 161, 161, 161, 161, 117, 118, - 159, 161, 122, 122, 163, 164, 161, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 137, 70, 139, - 140, 141, 142, 143, 144, 161, 161, 164, 162, 162, - 82, 151, 152, 162, 86, 162, 74, 162, 162, 162, - 159, 161, 80, 164, 163, 164, 166, 167, 162, 87, - 88, 89, 162, 91, 162, 93, 162, 95, 162, 162, - 98, 162, 162, 162, 162, 103, 104, 105, 162, 162, - 122, 109, 110, 162, 162, 162, 162, 115, 116, 162, - 162, 162, 162, 162, 162, 137, 124, 139, 140, 141, - 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, - 152, 162, 162, 162, 162, 162, 162, 162, 162, 161, - 163, 162, -1, 163, 166, 167, 163, 163, 163, 163, - 163, 163, 163, 163, 163, -1, 163, 163, -1, 164, + 25, 26, 27, 28, 29, 138, 14, 106, 107, 106, + 122, 108, 1, 37, 38, 1, 14, 116, 159, 101, + 102, 1, 163, 164, 136, 137, 31, 139, 140, 141, + 142, 143, 144, 16, 59, 60, 31, 0, 1, 151, + 152, 16, 31, 134, 135, 70, 16, 37, 38, 161, + 74, 31, 82, 31, 166, 167, 80, 16, 149, 158, + 160, 116, 162, 87, 88, 89, 16, 91, 16, 93, + 161, 95, 163, 16, 98, 106, 107, 1, 16, 103, + 104, 105, 16, 138, 74, 109, 110, 106, 107, 16, + 80, 115, 116, 111, 112, 84, 82, 87, 88, 89, + 124, 91, 31, 93, 84, 95, 161, 31, 98, 134, + 135, 31, 70, 103, 104, 105, 160, 31, 162, 109, + 110, 84, 31, 31, 149, 115, 116, 31, 31, 31, + 154, 117, 118, 163, 124, 31, 122, 167, 163, 31, + 31, 31, 128, 106, 31, 108, 31, 31, 31, 31, + 113, 137, 31, 31, 117, 118, 37, 37, 70, 122, + 84, 35, 35, 35, 127, 128, 129, 130, 131, 31, + 159, 35, 158, 38, 163, 161, 134, 135, 74, 159, + 35, 167, 35, 163, 80, 35, 37, 150, 37, 57, + 83, 87, 88, 89, 69, 91, 159, 93, 92, 95, + 163, 164, 98, 70, 80, 163, 77, 103, 104, 105, + 80, 97, 74, 109, 110, 1, 82, 94, 80, 115, + 116, 82, 134, 135, 113, 87, 88, 89, 124, 91, + 89, 93, 90, 95, 97, 159, 98, 149, 85, 163, + 96, 103, 104, 105, 74, 97, 100, 109, 110, 137, + 80, 163, 100, 115, 116, 1, 153, 87, 88, 89, + 155, 91, 124, 93, 133, 95, 164, 166, 98, 114, + -1, 128, 102, 103, 104, 105, 74, -1, -1, 109, + 110, -1, 80, 81, -1, 115, 116, 70, 132, 87, + 88, 89, 132, 91, 124, 93, -1, 95, 84, 159, + 98, -1, -1, 146, 146, 103, 104, 105, 149, -1, + 149, 109, 110, 149, 100, 101, 102, 115, 116, 153, + 106, 149, 70, 70, 71, 149, 124, 154, 159, 158, + 162, 117, 118, 159, 159, 82, 122, 159, 84, 86, + 159, 127, 128, 129, 130, 131, 159, 159, 159, 159, + 159, 134, 135, 159, 100, 101, 102, 159, 70, 71, + 106, 160, 30, 159, 159, 159, 149, 159, 159, 159, + 82, 117, 118, 159, 86, 122, 122, 163, 164, 160, + 163, 127, 128, 129, 130, 131, 134, 135, 160, 160, + 137, 160, 139, 140, 141, 142, 143, 144, 160, 162, + 161, 149, 161, 161, 151, 152, 161, 161, 161, 161, + 122, 161, 80, 159, 161, 163, 161, 163, 164, 166, + 167, 161, 161, 161, 161, 137, 161, 139, 140, 141, + 142, 143, 144, 161, 161, 161, 161, 161, 161, 151, + 152, 161, 161, 161, 74, 161, 161, 161, 116, 161, + 80, 161, 161, 161, 166, 167, 161, 87, 88, 89, + 161, 91, 161, 93, 161, 95, 161, 161, 98, 137, + 138, 161, 161, 103, 104, 105, 161, 161, 161, 109, + 110, 162, 162, 162, 162, 115, 116, 155, 156, 157, + 162, 162, 162, 161, 124, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, -1, 163, -1, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, -1, 165, -1, 166, -1, 167 + 164, 164, 164, -1, 165, -1, -1, 167 ); protected array $actionBase = array( - 0, -2, 152, 549, 764, 941, 981, 751, 617, 310, - 123, 877, 556, 671, 671, 738, 671, 472, 626, 789, - 63, 305, 305, 789, 305, 493, 493, 493, 658, 658, - 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 51, 45, 451, 692, 1036, 1044, - 1040, 1045, 1034, 1033, 1039, 1041, 1046, 1083, 1084, 795, - 1085, 1086, 1082, 1087, 1042, 889, 1035, 1043, 289, 289, + 0, -2, 152, 549, 727, 904, 944, 1022, 660, 310, + 123, 899, 500, 710, 710, 766, 710, 472, 701, 820, + 63, 305, 305, 820, 305, 493, 493, 493, 666, 666, + 666, 666, 700, 700, 860, 860, 892, 828, 794, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 51, 45, 451, 692, 1049, 1055, + 1051, 1056, 1047, 1046, 1050, 1052, 1057, 1094, 1095, 812, + 1096, 1097, 1093, 1098, 1053, 928, 1048, 1054, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 44, 343, 664, 3, 3, + 289, 289, 289, 289, 289, 44, 343, 499, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 52, 52, - 52, 666, 666, 47, 354, 980, 203, 1048, 1048, 1048, - 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164, - 7, 7, 7, 7, 7, 50, 369, 583, -25, -25, - -25, -25, 448, 741, 501, 408, 283, 338, 394, 334, - 334, 14, 14, 531, 531, 9, 9, 531, 531, 531, - 478, 478, 478, 478, 441, 471, 552, 428, 824, 53, - 53, 53, 53, 824, 824, 824, 824, 826, 1089, 824, - 824, 824, 594, 750, 750, 781, 138, 138, 138, 750, - 540, 503, 503, 540, 238, 503, 67, 135, -78, 805, - 377, 499, -78, 362, 656, 636, 59, 743, 624, 743, - 1032, 481, 802, 802, 514, 773, 746, 878, 1064, 1049, - 821, 1080, 825, 1081, 15, 370, 745, 1031, 1031, 1031, - 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1090, 443, - 1032, 384, 1090, 1090, 1090, 443, 443, 443, 443, 443, - 443, 443, 443, 443, 443, 647, 384, 622, 641, 384, - 810, 443, 51, 817, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 780, 316, 51, 45, 150, 150, - 490, 83, 150, 150, 150, 150, 51, 51, 51, 51, - 624, 799, 797, 627, 834, 375, 799, 799, 799, 270, - 158, 69, 197, 740, 760, 345, 788, 788, 801, 900, - 900, 788, 798, 788, 801, 914, 788, 788, 900, 900, - 835, 180, 550, 353, 524, 565, 900, 279, 788, 788, - 788, 788, 816, 571, 788, 214, 198, 788, 788, 816, - 811, 785, 145, 777, 900, 900, 900, 816, 500, 777, - 777, 777, 839, 845, 765, 784, 337, 297, 611, 169, - 822, 784, 784, 788, 538, 765, 784, 765, 784, 837, - 784, 784, 784, 765, 784, 798, 431, 784, 721, 607, - 163, 784, 6, 915, 916, 723, 917, 912, 918, 964, - 919, 923, 1054, 899, 930, 913, 924, 965, 906, 903, - 794, 693, 698, 827, 783, 896, 792, 792, 792, 894, - 792, 792, 792, 792, 792, 792, 792, 792, 693, 823, - 830, 787, 933, 702, 707, 1011, 819, 926, 1088, 932, - 1013, 925, 772, 711, 977, 934, 774, 1050, 935, 936, - 986, 1014, 846, 1017, 963, 796, 979, 1065, 836, 945, - 1055, 792, 915, 923, 735, 913, 924, 906, 903, 770, - 766, 762, 763, 761, 752, 747, 748, 782, 1018, 893, - 833, 880, 940, 895, 693, 886, 971, 1047, 990, 992, - 1053, 803, 791, 888, 1066, 946, 952, 953, 1056, 1019, - 1057, 838, 973, 775, 994, 820, 1067, 996, 997, 999, - 1000, 1058, 1068, 1059, 891, 1060, 849, 814, 966, 807, - 1069, 1, 806, 808, 818, 955, 484, 931, 1061, 1070, - 1071, 1001, 1002, 1006, 1072, 1073, 927, 852, 975, 815, - 976, 967, 855, 856, 525, 813, 1020, 800, 804, 812, - 577, 640, 1074, 1075, 1076, 928, 790, 786, 860, 864, - 1021, 809, 1022, 1077, 649, 867, 724, 1078, 1012, 744, - 754, 281, 654, 335, 756, 779, 1063, 829, 776, 778, - 954, 754, 793, 869, 1079, 870, 871, 872, 1007, 876, + 52, 578, 578, 47, 354, 978, 943, 978, 978, 978, + 978, 978, 978, 978, 978, 203, 665, 339, 164, 164, + 7, 7, 7, 7, 7, 50, 369, 704, 704, -25, + -25, -25, -25, 448, 635, 501, 409, 283, 338, 591, + 334, 334, 14, 14, 557, 557, 9, 9, 557, 557, + 557, 537, 537, 537, 537, 441, 471, 599, 345, 428, + 802, 53, 53, 53, 53, 802, 802, 802, 802, 848, + 791, 802, 802, 802, 778, 907, 907, 942, 138, 138, + 138, 907, 593, 503, 503, 593, 238, 503, 67, 135, + -78, 833, 377, 590, -78, 362, 732, 646, 59, 795, + 659, 795, 1045, 430, 843, 843, 457, 799, 761, 900, + 1072, 1058, 836, 1091, 842, 1092, 15, 370, 712, 1044, + 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, + 1100, 443, 1045, 384, 1100, 1100, 1100, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 672, 384, 482, + 582, 384, 840, 443, 51, 851, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 800, 316, 51, 45, + 150, 150, 481, 83, 150, 150, 150, 150, 51, 51, + 51, 51, 659, 822, 793, 671, 856, 375, 822, 822, + 822, 270, 158, 69, 197, 816, 817, 564, 814, 814, + 829, 945, 814, 824, 814, 829, 955, 814, 814, 945, + 945, 861, 945, 180, 565, 353, 531, 579, 945, 279, + 814, 814, 814, 814, 850, 945, 586, 814, 214, 198, + 814, 814, 850, 846, 806, 145, 821, 945, 945, 945, + 850, 490, 821, 821, 821, 864, 865, 801, 805, 337, + 297, 611, 169, 825, 805, 805, 814, 538, 801, 805, + 801, 805, 863, 805, 805, 805, 801, 805, 824, 431, + 805, 742, 595, 163, 805, 6, 962, 963, 685, 964, + 952, 965, 1006, 966, 967, 1063, 940, 975, 953, 970, + 1007, 951, 950, 811, 707, 715, 854, 849, 938, 815, + 815, 815, 935, 936, 815, 815, 815, 815, 815, 815, + 815, 815, 707, 891, 866, 831, 981, 720, 731, 1034, + 847, 1073, 1099, 980, 1036, 971, 830, 740, 1019, 982, + 792, 1061, 985, 989, 1020, 1037, 868, 1038, 1074, 823, + 1075, 1076, 909, 993, 1064, 815, 962, 967, 695, 953, + 970, 951, 950, 798, 788, 786, 787, 782, 781, 770, + 776, 803, 1039, 932, 929, 918, 991, 937, 707, 919, + 1010, 1059, 1023, 1024, 1062, 827, 797, 921, 1077, 995, + 996, 1000, 1065, 1040, 1066, 859, 1011, 858, 1025, 838, + 1078, 1026, 1027, 1028, 1029, 1067, 1079, 1068, 931, 1069, + 871, 832, 927, 834, 1080, 1, 835, 837, 841, 1005, + 613, 976, 1070, 1081, 1082, 1030, 1031, 1032, 1083, 1084, + 972, 877, 1012, 813, 1018, 1009, 878, 879, 623, 839, + 1041, 818, 826, 810, 628, 632, 1085, 1086, 1087, 974, + 807, 819, 880, 881, 1042, 809, 1043, 1088, 682, 884, + 747, 1089, 1035, 752, 756, 281, 658, 335, 763, 796, + 1071, 862, 845, 804, 1001, 756, 808, 888, 1090, 894, + 895, 896, 1033, 898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 456, 456, 456, 456, 456, 456, 305, 305, 305, 305, - 305, 456, 456, 456, 456, 456, 456, 456, 305, 305, - 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, + 0, 0, 0, 0, 456, 456, 456, 456, 456, 456, + 305, 305, 305, 305, 305, 456, 456, 456, 456, 456, + 456, 456, 305, 305, 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, @@ -734,42 +736,42 @@ class Php7 extends \PhpParser\ParserAbstract 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 289, 289, 289, 289, 289, 289, + 456, 456, 456, 456, 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 473, 473, 289, 289, 473, 289, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 0, 289, 289, 289, 289, - 289, 289, 289, 289, 473, 835, 473, 138, 138, 138, - 138, 473, 473, 473, -88, -88, 473, 238, 473, 473, - 138, 138, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 0, 0, 384, 503, 473, 798, 798, - 798, 798, 473, 473, 473, 473, 503, 503, 473, 473, - 473, 0, 0, 0, 0, 0, 0, 0, 0, 384, - 0, 0, 384, 0, 0, 798, 798, 473, 238, 835, - 168, 473, 0, 0, 0, 0, 384, 798, 384, 443, - 788, 503, 503, 788, 443, 443, 150, 51, 168, 620, - 620, 620, 620, 0, 0, 624, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 798, 0, 835, - 0, 798, 798, 798, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, - 0, 0, 900, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, - 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 792, 803, 0, 803, 0, 792, 792, 792, 0, 0, - 0, 0, 813, 809 + 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 289, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 289, 289, 289, 289, 473, 473, 289, 289, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 289, 0, + 289, 289, 289, 289, 289, 289, 289, 289, 473, 861, + 473, 473, 138, 138, 138, 138, 473, 473, 473, -88, + -88, 473, 238, 473, 473, 138, 138, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 0, 0, + 0, 384, 503, 473, 824, 824, 824, 824, 473, 473, + 473, 473, 503, 503, 473, 473, 473, 0, 0, 0, + 0, 0, 0, 0, 0, 384, 0, 0, 384, 0, + 0, 824, 824, 473, 238, 861, 168, 473, 0, 0, + 0, 0, 384, 824, 384, 443, 814, 503, 503, 814, + 443, 443, 150, 51, 168, 608, 608, 608, 608, 0, + 0, 659, 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 824, 0, 861, 0, 824, 824, 824, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 824, 0, 0, 945, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 955, + 0, 0, 0, 0, 0, 0, 824, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 815, 827, 0, 827, + 0, 815, 815, 815, 0, 0, 0, 0, 839, 809 ); protected array $actionDefault = array( 3,32767, 102,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 100,32767,32767,32767,32767, 597, 597, - 597, 597,32767,32767, 254, 102,32767,32767, 470, 387, - 387, 387,32767,32767, 541, 541, 541, 541, 541, 541, + 32767,32767,32767, 100,32767,32767,32767,32767, 602, 602, + 602, 602,32767,32767, 254, 102,32767,32767, 470, 387, + 387, 387,32767,32767, 544, 544, 544, 544, 544, 544, 32767,32767,32767,32767,32767,32767, 470,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, @@ -781,130 +783,147 @@ class Php7 extends \PhpParser\ParserAbstract 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17, 324,32767,32767,32767,32767, 102,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 590,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 595,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767, 474, 453, - 454, 456, 457, 386, 542, 596, 327, 593, 385, 145, + 454, 456, 457, 386, 545, 601, 327, 598, 385, 145, 339, 329, 242, 330, 258, 475, 259, 476, 479, 480, 215, 287, 382, 149, 150, 417, 471, 419, 469, 473, 418, 392, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 390, 391, 472, 450, 449, - 448,32767,32767, 415, 416,32767, 420,32767,32767,32767, - 32767,32767,32767,32767, 102,32767, 389, 423, 421, 422, - 439, 440, 437, 438, 441,32767,32767,32767, 442, 443, - 444, 445, 316,32767,32767, 366, 364, 316, 111,32767, - 32767, 430, 431,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 535, 447,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 102, - 32767, 100, 537, 412, 414, 504, 425, 426, 424, 393, - 32767, 511,32767, 102,32767, 513,32767,32767,32767,32767, - 32767,32767,32767, 536,32767, 543, 543,32767, 497, 100, - 195,32767,32767, 512,32767, 195, 195,32767,32767,32767, - 32767,32767,32767,32767,32767, 604, 497, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110,32767, 195, - 110,32767,32767,32767, 100, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 190,32767, 268, 270, 102, - 558, 195,32767, 516,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, + 448,32767,32767, 415, 416,32767,32767,32767,32767,32767, + 32767,32767,32767, 102,32767, 420, 389, 423, 421, 422, + 439, 440, 437, 438, 441,32767,32767,32767,32767, 442, + 443, 444, 445, 316,32767,32767, 366, 364, 316, 111, + 32767,32767, 430, 431,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 487, 538, 447,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 497, 435, 138,32767, 138, 543, 427, 428, 429, 499, - 543, 543, 543, 312, 289,32767,32767,32767,32767, 514, - 514, 100, 100, 100, 100, 509,32767,32767,32767,32767, - 111, 99, 99, 99, 99, 99, 103, 101,32767,32767, - 32767,32767, 223, 99,32767, 101, 101,32767,32767, 223, - 225, 212, 101, 227,32767, 562, 563, 223, 101, 227, - 227, 227, 247, 247, 486, 318, 101, 99, 101, 101, - 197, 318, 318,32767, 101, 486, 318, 486, 318, 199, - 318, 318, 318, 486, 318,32767, 101, 318, 214, 99, - 99, 318,32767,32767,32767, 499,32767,32767,32767,32767, - 32767,32767,32767, 222,32767,32767,32767,32767,32767,32767, - 32767,32767, 530,32767, 547, 560, 433, 434, 436, 545, - 458, 459, 460, 461, 462, 463, 464, 466, 592,32767, - 503,32767,32767,32767, 338,32767, 602,32767,32767,32767, + 32767, 102,32767, 100, 540, 412, 414, 507, 425, 426, + 424, 393,32767, 514,32767, 102,32767, 516,32767,32767, + 32767,32767,32767,32767,32767, 539,32767, 546, 546,32767, + 500, 100, 195,32767,32767, 515,32767, 195, 195,32767, + 32767,32767,32767,32767,32767,32767,32767, 609, 500, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 32767, 195, 110,32767,32767,32767, 100, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 190,32767, 268, + 270, 102, 563, 195,32767, 519,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 512,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 603,32767, 543,32767,32767,32767, - 32767, 432, 9, 74, 492, 42, 43, 51, 57, 520, - 521, 522, 523, 517, 518, 524, 519,32767,32767, 525, - 568,32767,32767, 544, 595,32767,32767,32767,32767,32767, - 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 530,32767, 136,32767,32767,32767,32767, - 32767,32767,32767,32767, 526,32767,32767,32767, 543,32767, - 32767,32767,32767, 314, 311,32767,32767,32767,32767,32767, + 32767,32767, 500, 435, 138,32767, 138, 546, 427, 428, + 429, 502, 546, 546, 546, 312, 289,32767,32767,32767, + 32767, 517, 100, 100, 100, 100, 512,32767,32767,32767, + 32767, 111, 486, 99, 99, 99, 99, 99, 103, 101, + 32767,32767,32767,32767, 223,32767, 99,32767, 101, 101, + 32767,32767, 223, 225, 212, 101, 227,32767, 567, 568, + 223, 101, 227, 227, 227, 247, 247, 489, 318, 101, + 99, 101, 101, 197, 318, 318,32767, 101, 489, 318, + 489, 318, 199, 318, 318, 318, 489, 318,32767, 101, + 318, 214, 99, 99, 318,32767,32767,32767, 502,32767, + 32767,32767,32767,32767,32767,32767, 222,32767,32767,32767, + 32767,32767,32767,32767,32767, 533,32767, 551, 565, 433, + 434, 436, 550, 548, 458, 459, 460, 461, 462, 463, + 464, 466, 597,32767, 506,32767,32767,32767, 338,32767, + 607,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 608,32767, + 546,32767,32767,32767,32767, 432, 9, 74, 495, 42, + 43, 51, 57, 523, 524, 525, 526, 520, 521, 527, + 522,32767,32767, 528, 573,32767,32767, 547, 600,32767, + 32767,32767,32767,32767,32767, 138,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 533,32767, 136, + 32767,32767,32767,32767,32767,32767,32767,32767, 529,32767, + 32767,32767, 546,32767,32767,32767,32767, 314, 311,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 543,32767,32767,32767,32767,32767, 291,32767, 308, + 32767,32767,32767,32767,32767, 546,32767,32767,32767,32767, + 32767, 291,32767, 308,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 286,32767,32767, 381, - 499, 294, 296, 297,32767,32767,32767,32767, 360,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 152, 152, 3, 3, 341, 152, 152, 152, 341, 341, - 152, 341, 341, 341, 152, 152, 152, 152, 152, 152, - 280, 185, 262, 265, 247, 247, 152, 352, 152 + 286,32767,32767, 381, 502, 294, 296, 297,32767,32767, + 32767,32767, 360,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 152, 152, 3, 3, 341, 152, + 152, 152, 341, 341, 152, 341, 341, 341, 152, 152, + 152, 152, 152, 152, 280, 185, 262, 265, 247, 247, + 152, 352, 152 ); protected array $goto = array( - 196, 196, 1034, 1065, 697, 431, 661, 621, 658, 319, - 706, 425, 313, 314, 335, 576, 430, 336, 432, 638, - 654, 655, 852, 672, 673, 674, 853, 167, 167, 167, + 196, 196, 1038, 1069, 701, 353, 433, 665, 856, 710, + 427, 321, 315, 316, 337, 580, 432, 338, 434, 642, + 658, 659, 857, 676, 677, 678, 979, 167, 167, 167, 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, - 189, 190, 191, 192, 218, 216, 219, 536, 537, 421, - 538, 540, 541, 542, 543, 544, 545, 546, 547, 1136, + 189, 190, 191, 192, 218, 216, 219, 539, 540, 423, + 541, 544, 545, 546, 547, 548, 549, 550, 551, 1140, 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, - 176, 178, 215, 217, 220, 238, 243, 244, 246, 257, - 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, - 271, 281, 282, 316, 317, 318, 426, 427, 428, 581, + 176, 178, 215, 217, 220, 238, 243, 244, 255, 257, + 258, 259, 260, 261, 262, 263, 264, 269, 270, 271, + 272, 282, 283, 318, 319, 320, 428, 429, 430, 585, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, - 200, 239, 188, 189, 190, 191, 192, 218, 1136, 201, + 200, 239, 188, 189, 190, 191, 192, 218, 1140, 201, 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, - 212, 213, 214, 855, 466, 466, 278, 278, 278, 278, - 623, 623, 351, 466, 1269, 600, 1269, 1269, 1269, 1269, - 1269, 1269, 1269, 1269, 1269, 1287, 1287, 599, 1100, 1287, - 709, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 508, 700, 458, 1098, 975, 559, 552, 860, 419, 909, - 904, 905, 918, 861, 906, 858, 907, 908, 859, 848, - 827, 912, 354, 354, 354, 354, 396, 399, 560, 601, - 605, 1087, 1082, 1083, 1084, 341, 552, 559, 568, 569, - 344, 579, 602, 616, 617, 408, 409, 1232, 440, 479, - 670, 22, 671, 886, 412, 413, 414, 481, 684, 349, - 1237, 415, 1237, 1107, 1108, 347, 833, 1034, 1034, 1237, - 573, 848, 1034, 1327, 1034, 1034, 1040, 1039, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1319, - 1319, 1319, 1319, 1237, 893, 851, 893, 893, 1237, 1237, - 1237, 1237, 1233, 1234, 1237, 1237, 1237, 833, 355, 833, - 843, 996, 252, 252, 1043, 1044, 1037, 1037, 355, 355, - 681, 952, 394, 926, 1029, 1045, 1046, 927, 1235, 1295, - 1296, 942, 355, 355, 942, 913, 355, 914, 1354, 250, - 250, 250, 250, 245, 253, 548, 548, 548, 548, 554, - 604, 1285, 1285, 355, 355, 1285, 571, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 539, 539, 342, 424, - 539, 611, 539, 539, 539, 539, 539, 539, 539, 539, - 539, 566, 476, 1312, 1313, 733, 637, 639, 325, 308, - 659, 848, 343, 342, 683, 687, 1010, 695, 704, 1006, - 660, 1298, 609, 624, 627, 628, 629, 630, 651, 652, - 653, 708, 1216, 944, 1314, 1315, 1217, 1220, 945, 1221, - 1337, 1337, 686, 352, 353, 868, 553, 563, 450, 450, - 450, 553, 1309, 563, 1309, 1133, 397, 462, 1337, 1058, - 880, 1309, 1185, 867, 500, 5, 501, 6, 469, 580, - 470, 471, 507, 554, 878, 1340, 1340, 1345, 1346, 433, - 438, 550, 666, 550, 433, 682, 1321, 1321, 1321, 1321, - 550, 337, 1041, 1041, 931, 1123, 873, 665, 1052, 1048, - 1049, 619, 845, 876, 324, 275, 324, 1015, 967, 410, - 705, 577, 614, 1305, 456, 872, 403, 664, 994, 969, - 969, 969, 969, 866, 870, 456, 963, 970, 881, 869, - 1070, 1074, 631, 633, 635, 1227, 1230, 958, 615, 978, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 999, 1018, 450, 971, 1073, 732, 477, 1228, 1307, - 1307, 1073, 736, 968, 551, 1008, 1003, 882, 694, 1075, - 1071, 829, 255, 255, 980, 0, 1118, 0, 1013, 1013, - 694, 0, 0, 0, 694, 1116, 885 + 212, 213, 214, 859, 421, 1041, 1041, 625, 662, 685, + 956, 251, 251, 1033, 1049, 1050, 279, 279, 279, 279, + 344, 831, 852, 627, 627, 890, 604, 1276, 1276, 1276, + 1276, 1276, 1276, 1276, 1276, 1276, 1276, 351, 249, 249, + 249, 249, 246, 252, 345, 344, 577, 864, 460, 913, + 908, 909, 922, 865, 910, 862, 911, 912, 863, 469, + 469, 916, 897, 855, 897, 897, 357, 917, 469, 918, + 1336, 1091, 1086, 1087, 1088, 852, 357, 357, 613, 628, + 631, 632, 633, 634, 655, 656, 657, 712, 396, 698, + 357, 357, 833, 1000, 357, 441, 1363, 354, 355, 872, + 1244, 698, 1244, 1244, 426, 698, 615, 558, 1038, 1038, + 1244, 357, 357, 1038, 884, 1038, 1038, 871, 575, 1038, + 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, + 1328, 1328, 1328, 1328, 1137, 1244, 356, 356, 356, 356, + 1244, 1244, 1244, 1244, 1111, 1112, 1244, 1244, 1244, 1220, + 948, 563, 556, 1221, 1224, 949, 1225, 1062, 554, 1307, + 554, 554, 482, 603, 1104, 930, 713, 465, 554, 931, + 484, 5, 946, 6, 1189, 946, 511, 704, 664, 1102, + 690, 343, 556, 563, 572, 573, 346, 583, 606, 620, + 621, 1044, 1043, 458, 852, 1047, 1048, 22, 973, 973, + 973, 973, 327, 310, 458, 967, 974, 1295, 1295, 440, + 558, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, + 1295, 1292, 1292, 837, 686, 1292, 1292, 1292, 1292, 1292, + 1292, 1292, 1292, 1292, 1292, 543, 543, 1323, 1324, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 542, + 542, 254, 254, 542, 670, 542, 542, 542, 542, 542, + 542, 542, 542, 339, 837, 962, 837, 557, 567, 581, + 618, 557, 849, 567, 877, 1237, 399, 464, 451, 451, + 451, 451, 405, 1318, 619, 1318, 1318, 1239, 874, 472, + 584, 473, 474, 1318, 1235, 1075, 882, 570, 1022, 1354, + 1355, 737, 641, 643, 740, 1079, 663, 479, 1321, 1322, + 687, 691, 1014, 699, 708, 1010, 503, 886, 504, 1330, + 1330, 1330, 1330, 1122, 510, 880, 984, 410, 411, 0, + 1346, 1346, 674, 1261, 675, 0, 414, 415, 416, 0, + 688, 1240, 1241, 417, 0, 0, 1314, 349, 1346, 0, + 847, 885, 873, 1074, 1078, 552, 552, 552, 552, 0, + 608, 0, 0, 982, 0, 1349, 1349, 0, 0, 1242, + 1304, 1305, 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 451, 935, 1127, 451, 0, 972, 1077, 0, + 623, 0, 1316, 1316, 1077, 0, 1019, 0, 326, 276, + 326, 326, 0, 0, 876, 0, 668, 998, 435, 1120, + 889, 0, 870, 435, 398, 401, 564, 605, 609, 0, + 1003, 1045, 1045, 975, 1234, 736, 669, 1056, 1052, 1053, + 971, 412, 709, 555, 1012, 1007, 635, 637, 639, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1017 ); protected array $gotoCheck = array( - 42, 42, 73, 127, 73, 66, 66, 56, 56, 66, - 9, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 86, 86, 26, 86, 86, 86, 27, 42, 42, 42, + 42, 42, 73, 127, 73, 97, 66, 66, 26, 9, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 86, 86, 27, 86, 86, 86, 49, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -918,91 +937,107 @@ class Php7 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 15, 149, 149, 23, 23, 23, 23, - 108, 108, 97, 149, 108, 130, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 170, 170, 8, 8, 170, - 8, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 8, 8, 83, 8, 49, 76, 76, 15, 43, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 22, - 6, 15, 24, 24, 24, 24, 59, 59, 59, 59, - 59, 15, 15, 15, 15, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 82, 82, 20, 83, 84, - 82, 76, 82, 45, 82, 82, 82, 84, 82, 179, - 73, 82, 73, 144, 144, 82, 12, 73, 73, 73, - 172, 22, 73, 181, 73, 73, 118, 118, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 9, - 9, 9, 9, 73, 25, 25, 25, 25, 73, 73, - 73, 73, 20, 20, 73, 73, 73, 12, 14, 12, - 20, 103, 5, 5, 119, 119, 89, 89, 14, 14, - 89, 89, 62, 73, 89, 89, 89, 73, 20, 20, - 20, 9, 14, 14, 9, 65, 14, 65, 14, 5, - 5, 5, 5, 5, 5, 107, 107, 107, 107, 14, - 107, 171, 171, 14, 14, 171, 104, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 173, 173, 168, 13, - 173, 13, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 48, 176, 176, 176, 48, 48, 48, 169, 169, - 48, 22, 168, 168, 48, 48, 48, 48, 48, 48, - 64, 14, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 79, 79, 178, 178, 79, 79, 79, 79, - 182, 182, 14, 97, 97, 35, 9, 9, 23, 23, - 23, 9, 130, 9, 130, 150, 9, 9, 182, 114, - 35, 130, 151, 35, 155, 46, 155, 46, 9, 9, - 9, 9, 155, 14, 9, 182, 182, 9, 9, 117, - 113, 19, 120, 19, 117, 116, 130, 130, 130, 130, - 19, 29, 117, 117, 17, 17, 39, 117, 117, 117, - 117, 17, 18, 9, 24, 24, 24, 17, 93, 93, - 93, 2, 2, 130, 19, 17, 28, 17, 17, 19, - 19, 19, 19, 17, 37, 19, 19, 19, 16, 16, - 16, 16, 85, 85, 85, 17, 14, 92, 80, 16, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 50, 110, 23, 50, 130, 50, 157, 160, 130, - 130, 130, 99, 16, 50, 50, 50, 41, 7, 132, - 129, 7, 5, 5, 96, -1, 147, -1, 107, 107, - 7, -1, -1, -1, 7, 16, 16 + 42, 42, 42, 15, 43, 89, 89, 56, 56, 89, + 89, 5, 5, 89, 89, 89, 23, 23, 23, 23, + 170, 6, 22, 108, 108, 45, 130, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 181, 5, 5, + 5, 5, 5, 5, 170, 170, 174, 15, 83, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 149, + 149, 15, 25, 25, 25, 25, 14, 65, 149, 65, + 183, 15, 15, 15, 15, 22, 14, 14, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 62, 7, + 14, 14, 7, 103, 14, 83, 14, 97, 97, 35, + 73, 7, 73, 73, 13, 7, 13, 14, 73, 73, + 73, 14, 14, 73, 35, 73, 73, 35, 104, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 9, 9, 9, 9, 150, 73, 24, 24, 24, 24, + 73, 73, 73, 73, 144, 144, 73, 73, 73, 79, + 79, 76, 76, 79, 79, 79, 79, 114, 19, 14, + 19, 19, 84, 8, 8, 73, 8, 151, 19, 73, + 84, 46, 9, 46, 151, 9, 8, 8, 64, 8, + 14, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 118, 118, 19, 22, 119, 119, 76, 19, 19, + 19, 19, 171, 171, 19, 19, 19, 172, 172, 113, + 14, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 173, 173, 12, 116, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 175, 175, 180, 180, 175, + 175, 175, 175, 175, 175, 175, 175, 175, 175, 158, + 158, 5, 5, 158, 120, 158, 158, 158, 158, 158, + 158, 158, 158, 29, 12, 92, 12, 9, 9, 2, + 2, 9, 18, 9, 39, 14, 9, 9, 23, 23, + 23, 23, 28, 130, 80, 130, 130, 20, 37, 9, + 9, 9, 9, 130, 162, 129, 9, 48, 110, 9, + 9, 48, 48, 48, 99, 132, 48, 178, 178, 178, + 48, 48, 48, 48, 48, 48, 155, 41, 155, 130, + 130, 130, 130, 147, 155, 9, 96, 82, 82, -1, + 184, 184, 82, 20, 82, -1, 82, 82, 82, -1, + 82, 20, 20, 82, -1, -1, 130, 82, 184, -1, + 20, 16, 16, 16, 16, 107, 107, 107, 107, -1, + 107, -1, -1, 16, -1, 184, 184, -1, -1, 20, + 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 17, 17, 23, -1, 16, 130, -1, + 17, -1, 130, 130, 130, -1, 17, -1, 24, 24, + 24, 24, -1, -1, 17, -1, 17, 17, 117, 16, + 16, -1, 17, 117, 59, 59, 59, 59, 59, -1, + 50, 117, 117, 50, 17, 50, 117, 117, 117, 117, + 93, 93, 93, 50, 50, 50, 85, 85, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 107, 107 ); protected array $gotoBase = array( - 0, 0, -221, 0, 0, 311, 200, 541, 179, -10, - 0, 0, -30, 32, 11, -185, 56, 9, 173, 196, - -146, 0, -59, 163, 219, 291, 18, 22, 159, 175, - 0, 0, 0, 0, 0, 54, 0, 165, 0, 153, - 0, 106, -1, 189, 0, 230, -291, 0, -330, 186, - 519, 0, 0, 0, 0, 0, -33, 0, 0, 181, - 0, 0, 280, 0, 158, 321, -236, 0, 0, 0, - 0, 0, 0, -5, 0, 0, -140, 0, 0, 4, - 174, 44, -246, -76, -220, 33, -698, 0, 0, 37, - 0, 0, 188, 184, 0, 0, 111, -311, 0, 135, - 0, 0, 0, 276, 313, 0, 0, 317, -71, 0, - 162, 0, 0, 183, 166, 0, 182, 187, -3, 29, - 172, 0, 0, 0, 0, 0, 0, 1, 0, 176, - 167, 0, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -12, 0, 0, 112, 0, 130, - 190, 168, 0, 0, 0, -51, 0, 97, 0, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 71, 67, - -56, 110, 241, 125, 0, 0, 82, 0, 42, 229, - 0, 242, 113, 0, 0 + 0, 0, -287, 0, 0, 170, 161, 242, 315, -11, + 0, 0, 85, -75, -73, -187, 57, 75, 121, 53, + 52, 0, -97, 173, 293, 219, 4, 18, 103, 125, + 0, 0, 0, 0, 0, -114, 0, 107, 0, 109, + 0, 35, -1, 145, 0, 162, -409, 0, -258, 8, + 568, 0, 0, 0, 0, 0, 127, 0, 0, 529, + 0, 0, 206, 0, 96, 213, -235, 0, 0, 0, + 0, 0, 0, -5, 0, 0, -36, 0, 0, -101, + 98, -122, -7, -71, -150, 114, -702, 0, 0, -115, + 0, 0, 94, 284, 0, 0, 42, -481, 0, 55, + 0, 0, 0, 218, 235, 0, 0, 487, -58, 0, + 86, 0, 0, 91, 43, 0, 100, 295, 71, 69, + 123, 0, 0, 0, 0, 0, 0, 1, 0, 79, + 178, 0, 22, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 38, 0, 185, + 48, 59, 0, 0, 0, -22, 0, 0, 168, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + -119, 39, 126, 140, 177, 154, 0, 0, 165, 0, + 23, 167, 0, 199, 181, 0, 0 ); protected array $gotoDefault = array( - -32768, 512, 740, 4, 741, 935, 816, 825, 597, 530, - 707, 348, 625, 422, 1303, 911, 1122, 578, 844, 1246, - 1254, 457, 847, 330, 730, 923, 894, 895, 400, 386, - 392, 398, 649, 626, 494, 879, 453, 871, 486, 874, - 452, 883, 164, 418, 510, 887, 3, 890, 557, 921, - 973, 387, 898, 388, 677, 900, 562, 902, 903, 395, - 401, 402, 1127, 570, 622, 915, 256, 564, 916, 385, - 917, 925, 390, 393, 688, 465, 505, 499, 411, 1102, - 565, 608, 646, 447, 473, 620, 632, 618, 480, 434, - 416, 329, 957, 965, 487, 463, 979, 350, 987, 738, - 1135, 640, 489, 995, 641, 1002, 1005, 531, 532, 478, - 1017, 272, 1020, 490, 19, 667, 1031, 1032, 668, 642, - 1054, 643, 669, 644, 1056, 472, 598, 1064, 454, 1072, - 1291, 455, 1076, 266, 1079, 277, 417, 435, 1085, 1086, - 9, 1092, 698, 699, 11, 276, 509, 1117, 689, 451, - 1134, 439, 1204, 1206, 558, 491, 1224, 1223, 680, 506, - 1229, 448, 1294, 449, 533, 474, 315, 534, 1338, 307, - 333, 312, 549, 294, 334, 535, 475, 1300, 1308, 331, - 31, 1328, 1339, 575, 613 + -32768, 515, 744, 4, 745, 939, 820, 829, 601, 533, + 711, 350, 629, 424, 1312, 915, 1126, 582, 848, 1253, + 1227, 459, 851, 332, 734, 927, 898, 899, 402, 388, + 394, 400, 653, 630, 497, 883, 455, 875, 489, 878, + 454, 887, 164, 420, 513, 891, 3, 894, 561, 925, + 977, 389, 902, 390, 681, 904, 566, 906, 907, 397, + 403, 404, 1131, 574, 626, 919, 256, 568, 920, 387, + 921, 929, 392, 395, 692, 468, 508, 502, 413, 1106, + 569, 612, 650, 448, 476, 624, 636, 622, 483, 436, + 418, 331, 961, 969, 490, 466, 983, 352, 991, 742, + 1139, 644, 492, 999, 645, 1006, 1009, 534, 535, 481, + 1021, 273, 1024, 493, 19, 671, 1035, 1036, 672, 646, + 1058, 647, 673, 648, 1060, 475, 602, 1068, 456, 1076, + 1300, 457, 1080, 266, 1083, 278, 419, 437, 1089, 1090, + 9, 1096, 702, 703, 11, 277, 512, 1121, 693, 453, + 1138, 452, 1208, 1210, 562, 494, 1228, 480, 295, 1231, + 684, 509, 1236, 449, 1303, 450, 536, 477, 317, 537, + 1347, 309, 335, 314, 553, 296, 336, 538, 478, 1309, + 1317, 333, 31, 1337, 1348, 579, 617 ); protected array $ruleToNonTerminal = array( @@ -1054,20 +1089,21 @@ class Php7 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 156, 150, 150, 155, 155, 158, 159, - 159, 160, 161, 162, 162, 162, 162, 19, 19, 73, - 73, 73, 73, 151, 151, 151, 151, 164, 164, 152, - 152, 154, 154, 154, 157, 157, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 108, 173, - 173, 173, 173, 153, 153, 153, 153, 153, 153, 153, - 153, 59, 59, 167, 167, 167, 167, 174, 174, 163, - 163, 163, 175, 175, 175, 175, 175, 175, 74, 74, - 66, 66, 66, 66, 130, 130, 130, 130, 178, 177, - 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, - 176, 176, 176, 176, 107, 172, 180, 180, 179, 179, - 181, 181, 181, 181, 181, 181, 181, 181, 169, 169, - 169, 169, 168, 183, 182, 182, 182, 182, 182, 182, - 182, 182, 184, 184, 184, 184 + 42, 42, 42, 156, 158, 158, 159, 150, 150, 155, + 155, 160, 161, 161, 162, 163, 164, 164, 164, 164, + 19, 19, 73, 73, 73, 73, 151, 151, 151, 151, + 166, 166, 152, 152, 154, 154, 154, 157, 157, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, + 173, 108, 175, 175, 175, 175, 153, 153, 153, 153, + 153, 153, 153, 153, 59, 59, 169, 169, 169, 169, + 169, 176, 176, 165, 165, 165, 165, 177, 177, 177, + 177, 177, 177, 74, 74, 66, 66, 66, 66, 130, + 130, 130, 130, 180, 179, 168, 168, 168, 168, 168, + 168, 168, 167, 167, 167, 178, 178, 178, 178, 107, + 174, 182, 182, 181, 181, 183, 183, 183, 183, 183, + 183, 183, 183, 171, 171, 171, 171, 170, 185, 184, + 184, 184, 184, 184, 184, 184, 184, 186, 186, 186, + 186 ); protected array $ruleToLength = array( @@ -1119,20 +1155,21 @@ class Php7 extends \PhpParser\ParserAbstract 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, - 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, - 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, - 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, - 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, - 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, - 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, - 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, - 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, - 6, 3, 1, 1, 2, 1 + 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, + 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 0, 3, 0, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, + 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, + 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 4, 4, + 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, + 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, + 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, + 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, + 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, + 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, + 1 ); protected function initReduceCallbacks(): void { @@ -2361,339 +2398,346 @@ class Php7 extends \PhpParser\ParserAbstract list($class, $ctorArgs) = $self->semStack[$stackPos-(2-2)]; $self->semValue = new Expr\New_($class, $ctorArgs, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 486 => static function ($self, $stackPos) { - $self->semValue = array(); - }, - 487 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(4-3)]; + $self->semValue = new Expr\New_($self->semStack[$stackPos-(2-2)], [], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, + 487 => null, 488 => null, 489 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos-(1-1)]); + $self->semValue = array(); }, 490 => static function ($self, $stackPos) { - $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; - }, - 491 => static function ($self, $stackPos) { - $self->semValue = new Node\ClosureUse($self->semStack[$stackPos-(2-2)], $self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = $self->semStack[$stackPos-(4-3)]; }, + 491 => null, 492 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, 493 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; }, 494 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ClosureUse($self->semStack[$stackPos-(2-2)], $self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 495 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 496 => static function ($self, $stackPos) { - $self->semValue = new Expr\StaticCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 497 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + }, + 498 => static function ($self, $stackPos) { + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, - 498 => null, 499 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\StaticCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, 500 => static function ($self, $stackPos) { $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 501 => static function ($self, $stackPos) { + 501 => null, + 502 => static function ($self, $stackPos) { + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 503 => static function ($self, $stackPos) { + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 504 => static function ($self, $stackPos) { $self->semValue = new Name\FullyQualified(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 502 => static function ($self, $stackPos) { + 505 => static function ($self, $stackPos) { $self->semValue = new Name\Relative(substr($self->semStack[$stackPos-(1-1)], 10), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 503 => null, - 504 => null, - 505 => static function ($self, $stackPos) { + 506 => null, + 507 => null, + 508 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(3-2)]; }, - 506 => static function ($self, $stackPos) { + 509 => static function ($self, $stackPos) { $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; }, - 507 => null, - 508 => null, - 509 => static function ($self, $stackPos) { + 510 => null, + 511 => null, + 512 => static function ($self, $stackPos) { $self->semValue = null; }, - 510 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 511 => static function ($self, $stackPos) { - $self->semValue = array(); - }, - 512 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos-(1-1)]); foreach ($self->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; - }, 513 => static function ($self, $stackPos) { - foreach ($self->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = $self->semStack[$stackPos-(1-1)]; + $self->semValue = $self->semStack[$stackPos-(3-2)]; }, 514 => static function ($self, $stackPos) { $self->semValue = array(); }, - 515 => null, + 515 => static function ($self, $stackPos) { + $self->semValue = array($self->semStack[$stackPos-(1-1)]); foreach ($self->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; + }, 516 => static function ($self, $stackPos) { - $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + foreach ($self->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = $self->semStack[$stackPos-(1-1)]; }, 517 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 518 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = array(); }, + 518 => null, 519 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 520 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 521 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 522 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 523 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 524 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 525 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 526 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(5-1)], $self->semStack[$stackPos-(5-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(5-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 527 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)])), $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 528 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 529 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(5-1)], $self->semStack[$stackPos-(5-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(5-1)], $self->tokenEndStack[$stackPos])); + }, + 530 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)])), $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + }, + 531 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_SHORT; $self->semValue = new Expr\Array_($self->semStack[$stackPos-(3-2)], $attrs); }, - 529 => static function ($self, $stackPos) { + 532 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_LONG; $self->semValue = new Expr\Array_($self->semStack[$stackPos-(4-3)], $attrs); $self->createdArrays->attach($self->semValue); }, - 530 => static function ($self, $stackPos) { + 533 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(1-1)]; $self->createdArrays->attach($self->semValue); }, - 531 => static function ($self, $stackPos) { + 534 => static function ($self, $stackPos) { $self->semValue = Scalar\String_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->supportsUnicodeEscapes()); }, - 532 => static function ($self, $stackPos) { + 535 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($self->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = new Scalar\InterpolatedString($self->semStack[$stackPos-(3-2)], $attrs); }, - 533 => static function ($self, $stackPos) { + 536 => static function ($self, $stackPos) { $self->semValue = $self->parseLNumber($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->allowsInvalidOctals()); }, - 534 => static function ($self, $stackPos) { + 537 => static function ($self, $stackPos) { $self->semValue = Scalar\Float_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 535 => null, - 536 => null, - 537 => null, - 538 => static function ($self, $stackPos) { + 538 => null, + 539 => null, + 540 => null, + 541 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-2)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)]), true); }, - 539 => static function ($self, $stackPos) { + 542 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(2-1)], '', $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(2-2)], $self->tokenEndStack[$stackPos-(2-2)]), true); }, - 540 => static function ($self, $stackPos) { + 543 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-2)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)]), true); }, - 541 => static function ($self, $stackPos) { - $self->semValue = null; - }, - 542 => null, - 543 => null, 544 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; + $self->semValue = null; }, 545 => null, 546 => null, - 547 => null, + 547 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, 548 => null, 549 => null, - 550 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, + 550 => null, 551 => null, 552 => null, - 553 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, + 553 => null, 554 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = $self->semStack[$stackPos-(3-2)]; }, 555 => null, - 556 => static function ($self, $stackPos) { + 556 => null, + 557 => null, + 558 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 559 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 560 => null, + 561 => static function ($self, $stackPos) { $self->semValue = new Expr\MethodCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 557 => static function ($self, $stackPos) { + 562 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafeMethodCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 558 => static function ($self, $stackPos) { + 563 => static function ($self, $stackPos) { $self->semValue = null; }, - 559 => null, - 560 => null, - 561 => null, - 562 => static function ($self, $stackPos) { - $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 563 => static function ($self, $stackPos) { - $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, 564 => null, - 565 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 566 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); - }, + 565 => null, + 566 => null, 567 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])), $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 568 => static function ($self, $stackPos) { - $var = $self->semStack[$stackPos-(1-1)]->name; $self->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])) : $var; - }, - 569 => static function ($self, $stackPos) { - $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 570 => null, - 571 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 572 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 573 => static function ($self, $stackPos) { - $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 574 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 575 => static function ($self, $stackPos) { + 569 => null, + 570 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 571 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + }, + 572 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])), $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + }, + 573 => static function ($self, $stackPos) { + $var = $self->semStack[$stackPos-(1-1)]->name; $self->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])) : $var; + }, + 574 => static function ($self, $stackPos) { $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, + 575 => null, 576 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 577 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 578 => static function ($self, $stackPos) { + $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 579 => static function ($self, $stackPos) { + $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 580 => static function ($self, $stackPos) { $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 577 => null, - 578 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 579 => null, - 580 => null, 581 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; + $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 582 => null, 583 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 584 => null, + 585 => null, + 586 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 587 => null, + 588 => static function ($self, $stackPos) { $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; }, - 584 => static function ($self, $stackPos) { + 589 => static function ($self, $stackPos) { $self->semValue = new Expr\List_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); $self->semValue->setAttribute('kind', Expr\List_::KIND_LIST); $self->postprocessList($self->semValue); }, - 585 => static function ($self, $stackPos) { + 590 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(1-1)]; $end = count($self->semValue)-1; if ($self->semValue[$end]->value instanceof Expr\Error) array_pop($self->semValue); }, - 586 => null, - 587 => static function ($self, $stackPos) { + 591 => null, + 592 => static function ($self, $stackPos) { /* do nothing -- prevent default action of $$=$self->semStack[$1]. See $551. */ }, - 588 => static function ($self, $stackPos) { + 593 => static function ($self, $stackPos) { $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; }, - 589 => static function ($self, $stackPos) { + 594 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, - 590 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 591 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); - }, - 592 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 593 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 594 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(4-4)], $self->semStack[$stackPos-(4-1)], true, $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, 595 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 596 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), true); + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 597 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 598 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 599 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(4-4)], $self->semStack[$stackPos-(4-1)], true, $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 600 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 601 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), true); + }, + 602 => static function ($self, $stackPos) { /* Create an Error node now to remember the position. We'll later either report an error, or convert this into a null element, depending on whether this is a creation or destructuring context. */ $attrs = $self->createEmptyElemAttributes($self->tokenPos); $self->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs); }, - 598 => static function ($self, $stackPos) { + 603 => static function ($self, $stackPos) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)]; }, - 599 => static function ($self, $stackPos) { + 604 => static function ($self, $stackPos) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)]; }, - 600 => static function ($self, $stackPos) { + 605 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, - 601 => static function ($self, $stackPos) { + 606 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)]); }, - 602 => static function ($self, $stackPos) { + 607 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]); $attrs['rawValue'] = $self->semStack[$stackPos-(1-1)]; $self->semValue = new Node\InterpolatedStringPart($self->semStack[$stackPos-(1-1)], $attrs); }, - 603 => static function ($self, $stackPos) { + 608 => static function ($self, $stackPos) { $self->semValue = new Expr\Variable($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 604 => null, - 605 => static function ($self, $stackPos) { + 609 => null, + 610 => static function ($self, $stackPos) { $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 606 => static function ($self, $stackPos) { + 611 => static function ($self, $stackPos) { $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 607 => static function ($self, $stackPos) { + 612 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 608 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 609 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 610 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(6-2)], $self->semStack[$stackPos-(6-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(6-1)], $self->tokenEndStack[$stackPos])); - }, - 611 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 612 => static function ($self, $stackPos) { - $self->semValue = new Scalar\String_($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, 613 => static function ($self, $stackPos) { - $self->semValue = $self->parseNumString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 614 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 615 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(6-2)], $self->semStack[$stackPos-(6-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(6-1)], $self->tokenEndStack[$stackPos])); + }, + 616 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 617 => static function ($self, $stackPos) { + $self->semValue = new Scalar\String_($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 618 => static function ($self, $stackPos) { + $self->semValue = $self->parseNumString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 619 => static function ($self, $stackPos) { $self->semValue = $self->parseNumString('-' . $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, - 615 => null, + 620 => null, ]; } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php index 27154d24..1317c543 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php @@ -160,16 +160,16 @@ class Php8 extends \PhpParser\ParserAbstract public const T_ATTRIBUTE = 395; protected int $tokenToSymbolMapSize = 396; - protected int $actionTableSize = 1257; - protected int $gotoTableSize = 657; + protected int $actionTableSize = 1272; + protected int $gotoTableSize = 689; protected int $invalidSymbol = 168; protected int $errorSymbol = 1; protected int $defaultAction = -32766; protected int $unexpectedTokenRule = 32767; - protected int $YY2TBLSTATE = 435; - protected int $numNonLeafStates = 739; + protected int $YY2TBLSTATE = 437; + protected int $numNonLeafStates = 743; protected array $symbolToName = array( "EOF", @@ -386,132 +386,134 @@ class Php8 extends \PhpParser\ParserAbstract ); protected array $action = array( - 133, 134, 135, 582, 136, 137, 0, 751, 752, 753, - 138, 38, 327,-32766,-32766,-32766,-32766,-32766,-32766, 837, - 826,-32767,-32767,-32767,-32767, 102, 103, 104, 1112, 1113, - 1114, 1111, 1110, 1109, 1115, 745, 744,-32766, 1027,-32766, + 133, 134, 135, 586, 136, 137, 0, 755, 756, 757, + 138, 38, 329,-32766,-32766,-32766,-32766,-32766,-32766, 841, + 830,-32767,-32767,-32767,-32767, 102, 103, 104, 1116, 1117, + 1118, 1115, 1114, 1113, 1119, 749, 748,-32766, 1031,-32766, -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1245,-32766,-32766, 1322, 754, 1112, 1113, 1114, 1111, - 1110, 1109, 1115, 459, 460, 461, 2, 990, 1306, 265, - 139, 404, 758, 759, 760, 761, 467, 468, 429, 835, - 606, -16, 1341, 23, 292, 815, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, - 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, - 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, - 584, 779, 780, 585, 586, 941, 803, 801, 802, 814, - 798, 799, 835, 826, 587, 588, 797, 589, 590, 591, - 592, 593, 594, -328, 36, 251, 35, -194, 800, 595, - 596, -193, 140, -85, 133, 134, 135, 582, 136, 137, - 1060, 751, 752, 753, 138, 38, 129, -110, -110, -585, - -32766, -585, -110,-32766,-32766,-32766, 241, 836, -110, 145, - 959, 960,-32766,-32766,-32766, 961, -594,-32766, 482, 745, - 744, 955, 1036, -594,-32766, 991,-32766,-32766,-32766,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 299, 754, - 831, 75,-32766,-32766,-32766, 291, 142, 326, 242, -85, - 326, 382, 381, 265, 139, 404, 758, 759, 760, 761, - 82, 423, 429,-32766, 326,-32766,-32766,-32766,-32766, 815, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, - 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, - 819, 820, 821, 822, 584, 779, 780, 585, 586, 254, - 803, 801, 802, 814, 798, 799, 832, 725, 587, 588, - 797, 589, 590, 591, 592, 593, 594, -328, 83, 84, - 85, -194, 800, 595, 596, -193, 149, 775, 746, 747, - 748, 749, 750, 151, 751, 752, 753, 788, 789, 37, - 483, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -32767, 1252,-32766,-32766, 1331, 758, 1116, 1117, 1118, 1115, + 1114, 1113, 1119, 461, 462, 463, 2, 994, 1315, 265, + 139, 406, 762, 763, 764, 765, 470, 471, 431, 839, + 610, -16, 1350, 23, 293, 819, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 795, 587, 796, 797, + 798, 799, 787, 788, 347, 348, 790, 791, 776, 777, + 778, 780, 781, 782, 358, 822, 823, 824, 825, 826, + 588, 783, 784, 589, 590, 945, 807, 805, 806, 818, + 802, 803, 839, 830, 591, 592, 801, 593, 594, 595, + 596, 597, 598, -328, 36, 250, 35, -194, 804, 599, + 600, -193, 140, -85, 133, 134, 135, 586, 136, 137, + 1064, 755, 756, 757, 138, 38, 129, -110, -110, -590, + -32766, -590, -110,-32766,-32766,-32766, 241, 840, -110, 145, + 963, 964,-32766,-32766,-32766, 965, -599,-32766, 485, 749, + 748, 959, 1040, -599,-32766, 995,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 301, 758, + 835, 75,-32766,-32766,-32766, 292, 142, 328, 242, -85, + 328, 384, 383, 265, 139, 406, 762, 763, 764, 765, + 82, 425, 431,-32766, 328,-32766,-32766,-32766,-32766, 819, + 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, + 795, 587, 796, 797, 798, 799, 787, 788, 347, 348, + 790, 791, 776, 777, 778, 780, 781, 782, 358, 822, + 823, 824, 825, 826, 588, 783, 784, 589, 590, 253, + 807, 805, 806, 818, 802, 803, 836, 729, 591, 592, + 801, 593, 594, 595, 596, 597, 598, -328, 83, 84, + 85, -194, 804, 599, 600, -193, 149, 779, 750, 751, + 752, 753, 754, 151, 755, 756, 757, 792, 793, 37, + 486, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, -594, 274, -594,-32766,-32766, - -32766,-32766,-32766,-32766, 310, 1089, 127, 312, 110, 737, - 1326, 21, 754,-32766,-32766,-32766, -272, 1325,-32766,-32766, - 1088,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758, - 759, 760, 761, 1104,-32766, 824,-32766,-32766, -545, 429, - 1036, 323, 815, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 791, 813, 792, 793, 794, 795, 783, - 784, 785, 812, 786, 787, 772, 773, 774, 776, 777, - 778, 817, 818, 819, 820, 821, 822, 823, 779, 780, - 781, 782, 1033, 803, 801, 802, 814, 798, 799, 745, - 744, 790, 796, 797, 804, 805, 807, 806, 808, 809, - 152,-32766, -545, -545, 1036, 800, 811, 810, 50, 51, - 52, 513, 53, 54, 1240, 1239, 1241, -545, 55, 56, - -110, 57,-32766, 1090, 920, -110, 556, -110, 292, -551, - 339, -545, 306, 103, 104, -110, -110, -110, -110, -110, - -110, -110, -110, 105, 106, 107, 108, 109, 1245, 274, - 380, 381, -591, -367, 715, -367, 340, 58, 59, -591, - 423, 110, 60, 370, 61, 248, 249, 62, 63, 64, - 65, 66, 67, 68, 69, -544, 28, 267, 70, 445, - 514,-32766, 374, -342, 1272, 1273, 515, 1278, 835, 862, - 389, 863, 1270, 42, 25, 516, 943, 517, 943, 518, - 920, 519, 299, 1036, 520, 521, 1266, 910, 441, 44, - 45, 446, 377, 376,-32766, 46, 522, 1023, 1022, 1021, - 1024, 368, 338, 391, 1238, 7, 291, 442, 1231, 835, - 524, 525, 526, 443, 1245, 357, 1036, 362, 834, -544, - -544, 154, 528, 529, 444, 1259, 1260, 1261, 1262, 1256, - 1257, 298,-32766,-32766, -544, -548, 1059, 1263, 1258, 291, - 1236, 1240, 1239, 1241, 299, 841, -550, 71, -544, 656, - 26, 321, 322, 326, -153, -153, -153, 920, 612, 675, - 676, 1035, 922, 910,-32766, 286, 710, 835, 155, -153, - 828, -153, 862, -153, 863, -153, 150, 407, 156, 1240, - 1239, 1241,-32766,-32766,-32766, 375, 1351, 716, 75, 1352, - 158, -591, 33, -591, 326, 835, 959, 960, -78, -548, - -548, 523, 920,-32766, 378, 379, 896, 955, -110, -110, + 105, 106, 107, 108, 109, -599, 275, -599,-32766,-32766, + -32766,-32766,-32766,-32766, 312, 1093, 127, 314, 110, 741, + 1335, 21, 758,-32766,-32766,-32766, -272, 1334,-32766,-32766, + 1092,-32766,-32766,-32766,-32766,-32766, 759, 760, 761, 762, + 763, 764, 765, 1108,-32766, 828,-32766,-32766, -550, 560, + 1040, 1273, 819, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 795, 817, 796, 797, 798, 799, 787, + 788, 789, 816, 790, 791, 776, 777, 778, 780, 781, + 782, 821, 822, 823, 824, 825, 826, 827, 783, 784, + 785, 786, 1037, 807, 805, 806, 818, 802, 803, 749, + 748, 794, 800, 801, 808, 809, 811, 810, 812, 813, + 1285, 325, -550, -550, 1040, 804, 815, 814, 50, 51, + 52, 516, 53, 54, 866, 341, 867, -550, 55, 56, + -110, 57, 839, 924, -367, -110, -367, -110, 293, -556, + 152, -550, 308, 103, 104, -110, -110, -110, -110, -110, + -110, -110, -110, 105, 106, 107, 108, 109, 947, 275, + 342, 924, 1252, 719,-32766,-32766,-32766, 58, 59, -549, + 372, 110, 60, 838, 61, 247, 248, 62, 63, 64, + 65, 66, 67, 68, 69,-32766, 28, 267, 70, 446, + 517, 720, 376, -342, 1279, 1280, 518, 359, 839, -548, + 391, -546, 1277, 42, 25, 519, 947, 520, 616, 521, + 924, 522, 442, 141, 523, 524, 914, 328, 443, 44, + 45, 447, 379, 378,-32766, 46, 525, 1027, 1026, 1025, + 1028, 370, 340, -549, -549, 444, 1360, 431, 1238, 1361, + 527, 528, 529, 839, 914, 364, 1040, 445, -549,-32766, + -32766,-32766, 531, 532, 845, 1266, 1267, 1268, 1269, 1263, + 1264, 300, -549, -548, -548, -546, -546, 1270, 1265, 292, + -32766, 1247, 1246, 1248, 301, 749, 748, 71, -548, -78, + -546, 323, 324, 328, -153, -153, -153, 393,-32766, 7, + -555, 926, -548, 914, -546, 714, 660, 26,-32766, -153, + 832, -153, 866, -153, 867, -153, 382, 383, 28, 268, + 1040, 154, 1247, 1246, 1248, 377, 425, 155, -596, 926, + 839, 1094, 75, 714, 1277, -596, 963, 964, 328, -547, + 156, 526, 158, 292, 1245, 33, 900, 959, -110, -110, -110, 32, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 745, 744, -58, -548, -57, - -110, -110, 717, 745, 744, -110, 383, 384, 922, 1033, - 910, -110, 710, -153, 647, 648, 830, 124, 141, 125, - -32766, 1033, 326, 712, 1150, 1152, 48, 130, 131, 144, - 159, 1036,-32766, 160, 161, -543, 28, 162, 1238, 920, - 163, 299, 920, 1036, 75,-32766,-32766,-32766, 835,-32766, - 326,-32766, 1270,-32766, 282, 910,-32766, -87, -84, -78, - -73,-32766,-32766,-32766, -4, 920, 282,-32766,-32766, 720, - -72, -71, 727,-32766, 420, -70, -69, -68, -67, -66, - 287, 286,-32766, -65, -46, 922, 745, 744, 1231, 710, - 300, 301, -546, -18, 148, -302, 273, 283, 726, -543, - -543, 729, 528, 529, 920, 1259, 1260, 1261, 1262, 1256, - 1257, 919, 74, 147, -543, 288, 293, 1263, 1258, 126, - -298, 280, 910,-32766, 281, 910, 284, 73, -543, 1238, - 976, 690, 322, 326, 710, 285,-32766,-32766,-32766, 332, - -32766, 274,-32766, 294,-32766, 937, 110,-32766, 910, 685, - 835, -543,-32766,-32766,-32766, 826, -546, -546,-32766,-32766, - 146,-32766, -50, 701,-32766, 420, 703, 691, 20, 1119, - 375, -546, 436,-32766, 645, 1353, 1277, 297, 657,-32766, - 1279, 959, 960, 561, 956, -546, 523, 910, 692, 693, - 678, 527, 955, -110, -110, -110, 132, 922, 662, 663, - 922, 710, 464, -508, 710,-32766, 1240, 1239, 1241, 493, - 679, 1238, 282, 939, 10, -543, -543, 40,-32766,-32766, - -32766, 731,-32766, 922,-32766, 307,-32766, 710, -4,-32766, - -543, 305, 41, 304,-32766,-32766,-32766, 0, 0,-32766, - -32766,-32766, 920, 0, -543, 1238,-32766, 420, 311, 0, - 567, 299,-32766,-32766,-32766,-32766,-32766, -498,-32766, 897, - -32766, 0, 922,-32766, 8, 0, 710, 24,-32766,-32766, - -32766,-32766, 372, 610,-32766,-32766, 834, 1238, 734, -275, - -32766, 420, 920, 735,-32766,-32766,-32766, 854,-32766,-32766, - -32766, 901,-32766, 1000, 977,-32766, 49, 984, 974, 488, - -32766,-32766,-32766,-32766, 985, 899,-32766,-32766, 972, 1238, - 574, 1093,-32766, 420, 1096, 1097,-32766,-32766,-32766, 1094, - -32766,-32766,-32766, 1095,-32766, 910, 1101,-32766, 1267, 846, - 1292, 1310,-32766,-32766,-32766, 1344, 650, 34,-32766,-32766, - -579, -250, -250, -250,-32766, 420, -578, 375, -577, -551, - 28, 267, -550,-32766, -549, -492, 1, 29, 959, 960, - 302, 303, 835, 523, 30, 910, 1270, 39, 896, 955, - -110, -110, -110, 43, 47, 373, 72, 76, 77, 78, - 79, -249, -249, -249, 80, 81, 143, 375, 153, 128, - -273, 157, 247, 328, 357, 358, 359, 360, 959, 960, - 922, 361, 1231, 523, 710, -250, 362, 363, 896, 955, - -110, -110, -110, 364, 365, 366, 367, 529, 28, 1259, - 1260, 1261, 1262, 1256, 1257, 369, 437, 555, 1207, -272, - 835, 1263, 1258, 13, 1270, 14,-32766, 15, 16, 18, - 922, 73, 1238, 1348, 710, -249, 322, 326, 406,-32766, - -32766,-32766, 484,-32766, 485,-32766, 492,-32766, 495, 496, - -32766, 497, 498, 502, 503,-32766,-32766,-32766, 504, 511, - 1231,-32766,-32766, 572, 696, 1249, 1190,-32766, 420, 1268, - 1062, 1061, 1042, 1226, 1038, 529,-32766, 1259, 1260, 1261, - 1262, 1256, 1257, -277, -102, 12, 17, 27, 296, 1263, - 1258, 405, 603, 607, 636, 702, 1194, 1244, 1191, 73, - 320, 1323, 0, 371, 322, 326, 711, 714, 718, 719, - 721, 722, 723, 724, 728, 0, 713, 0, 1350, 857, - 856, 865, 949, 992, 864, 1349, 948, 946, 947, 950, - 1222, 930, 940, 928, 982, 983, 634, 1347, 1304, 1293, - 1311, 1320, 0, 0, 1271, 0, 326 + 119, 120, 121, 122, 123, 679, 680, -58, 301, -57, + 1238, 124, 924, 749, 748, 1252, 150, 409, 926, 125, + 1243, 924, 714, -153, 531, 532, 834, 1266, 1267, 1268, + 1269, 1263, 1264, 716, 1154, 1156, -87, -4, 924, 1270, + 1265, 1039, 721, -547, -547, -546, 130, 749, 748, 73, + -32766, 724, 131, -552, 324, 328, 1245, 144, -547, 1247, + 1246, 1248, 159,-32766,-32766,-32766, 1037,-32766, 160,-32766, + -554,-32766, -547, 161,-32766, 380, 381, 924, 162,-32766, + -32766,-32766, 163, 49,-32766,-32766,-32766, -84, 1040, -78, + 1245,-32766, 422, 48, 924, 914, 839,-32766,-32766,-32766, + -32766,-32766, -73,-32766, 914,-32766, -72, 731,-32766, -546, + -546, 283, -71,-32766,-32766,-32766, -70, -552, -552,-32766, + -32766, 914, 385, 386, -546,-32766, 422, -596, -69, -596, + 74, -110, -110, -68,-32766, -50, -110, -67, -546, 651, + 652, -66, -110, 377, -65, 438, -552, 304, 305, -46, + 299,-32766, -18, 148, 963, 964, 274, 302, 303, 526, + 914, 284, 375, 730, 530, 959, -110, -110, -110, 132, + 980, 733, 301, 923, 714, 75, 128, 914,-32766, 926, + 147, 328, -302, 714, 1245, -298, 126, 10, 1063, 281, + 282,-32766,-32766,-32766, 285,-32766, 926,-32766, 286,-32766, + 714, -4,-32766, 334, 288, 275, 289,-32766,-32766,-32766, + 294, 295,-32766,-32766,-32766, 924, 941, 287, 1245,-32766, + 422, 110, 689, 146, 830,-32766,-32766,-32766,-32766,-32766, + 565,-32766, 666,-32766, 1362, 926,-32766, 705, 839, 714, + 1123,-32766,-32766,-32766,-32766,-32766, 667,-32766,-32766, 309, + 1245, 661, 926,-32766, 422, 924, 714,-32766,-32766,-32766, + 682,-32766,-32766,-32766, 707,-32766, 306, 960,-32766, 313, + -32766, 683, 491,-32766,-32766,-32766,-32766, 20, 467,-32766, + -32766, 496, 1245, 578, 571,-32766, 422, 301, 649,-32766, + -32766,-32766, -511,-32766,-32766,-32766, 0,-32766, 914, 0, + -32766, 0, 0, 1037, 0,-32766,-32766,-32766, 1284, 307, + 1286,-32766,-32766, 0, -250, -250, -250,-32766, 422, 943, + 377, 0, 0, 28, 267, 1040,-32766, 0, -501, 0, + 614, 963, 964, 0, 8, 839, 526, 24, 914, 1277, + 374, 900, 959, -110, -110, -110, 1274, 838, 283, 40, + -584, 0, 41, 738, -249, -249, -249, 739, 28, 268, + 377, 850, 287, 858, 905, 1004, 981, 988, 978, 989, + 839, 963, 964, 926, 1277, 1238, 526, 714, -250, 903, + 976, 900, 959, -110, -110, -110, 1097, 1100, 1101, 1098, + 532, 1099, 1266, 1267, 1268, 1269, 1263, 1264, 1105, -583, + 1301, 1319, 1353, 654, 1270, 1265, -582, -556, -555, -554, + 1238, -553, 694, 926, 73, 34, -495, 714, -249, 324, + 328, 1, 29, 30, 39, 532, 43, 1266, 1267, 1268, + 1269, 1263, 1264, 47, 72, 76, 77, 78, 79, 1270, + 1265, 80, 81, 143,-32766, 153, 157, 245, 695, 73, + 1245, 330, 359, 360, 324, 328, 361,-32766,-32766,-32766, + 362,-32766, 363,-32766, 364,-32766, 365, 366,-32766, 696, + 697, 367, 368,-32766,-32766,-32766, 369, 371, 439,-32766, + -32766, 559, 322, -275, -273,-32766, 422, 1247, 1246, 1248, + -272, 13, 14, 283,-32766, 15, 16, 18, 408, 487, + 488, 495, 498, 499, 500, 501, 505, 506, 507, 514, + 576, 700, 1256, 1194, 1275, 1066, 1065, 1046, 1233, 1042, + -277, -102, 12, 17, 27, 298, 407, 607, 611, 640, + 706, 1198, 0, 1251, 1195, 1332, 0, 373, 715, 718, + 722, 723, 725, 726, 727, 728, 732, 717, 0, 735, + 901, 1357, 1359, 861, 860, 869, 953, 996, 868, 1358, + 952, 950, 951, 954, 1226, 934, 944, 932, 986, 987, + 638, 1356, 1313, 1302, 1320, 1329, 0, 1211, 0, 1278, + 0, 328 ); protected array $actionCheck = array( @@ -553,174 +555,176 @@ class Php8 extends \PhpParser\ParserAbstract 11, 9, 10, 11, 8, 159, 14, 8, 69, 163, 1, 101, 57, 9, 10, 11, 162, 8, 116, 30, 1, 32, 33, 34, 35, 36, 71, 72, 73, 74, - 75, 76, 77, 123, 30, 80, 32, 33, 70, 80, - 138, 8, 87, 88, 89, 90, 91, 92, 93, 94, + 75, 76, 77, 123, 30, 80, 32, 33, 70, 85, + 138, 1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 116, 128, 129, 130, 131, 132, 133, 37, 38, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 14, 116, 134, 135, 138, 150, 151, 152, 2, 3, - 4, 5, 6, 7, 155, 156, 157, 149, 12, 13, - 101, 15, 137, 164, 1, 106, 85, 108, 30, 161, - 8, 163, 113, 49, 50, 116, 117, 118, 119, 120, - 121, 122, 123, 51, 52, 53, 54, 55, 1, 57, - 106, 107, 1, 106, 31, 108, 8, 51, 52, 8, - 116, 69, 56, 8, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 70, 70, 71, 72, 73, - 74, 116, 8, 164, 78, 79, 80, 146, 82, 106, - 8, 108, 86, 87, 88, 89, 122, 91, 122, 93, - 1, 95, 158, 138, 98, 99, 1, 84, 8, 103, + 146, 8, 134, 135, 138, 150, 151, 152, 2, 3, + 4, 5, 6, 7, 106, 8, 108, 149, 12, 13, + 101, 15, 82, 1, 106, 106, 108, 108, 30, 161, + 14, 163, 113, 49, 50, 116, 117, 118, 119, 120, + 121, 122, 123, 51, 52, 53, 54, 55, 122, 57, + 8, 1, 1, 31, 9, 10, 11, 51, 52, 70, + 8, 69, 56, 155, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 30, 70, 71, 72, 73, + 74, 31, 8, 164, 78, 79, 80, 161, 82, 70, + 8, 70, 86, 87, 88, 89, 122, 91, 52, 93, + 1, 95, 8, 163, 98, 99, 84, 167, 8, 103, 104, 105, 106, 107, 116, 109, 110, 119, 120, 121, - 122, 115, 116, 106, 80, 108, 161, 8, 122, 82, - 124, 125, 126, 8, 1, 161, 138, 161, 155, 134, - 135, 14, 136, 137, 8, 139, 140, 141, 142, 143, - 144, 145, 51, 52, 149, 70, 1, 151, 152, 161, - 116, 155, 156, 157, 158, 8, 161, 161, 163, 75, - 76, 165, 166, 167, 75, 76, 77, 1, 52, 75, - 76, 137, 159, 84, 137, 30, 163, 82, 14, 90, - 80, 92, 106, 94, 108, 96, 101, 102, 14, 155, - 156, 157, 9, 10, 11, 106, 80, 31, 161, 83, - 14, 160, 14, 162, 167, 82, 117, 118, 16, 134, - 135, 122, 1, 30, 106, 107, 127, 128, 129, 130, + 122, 115, 116, 134, 135, 8, 80, 80, 122, 83, + 124, 125, 126, 82, 84, 161, 138, 8, 149, 116, + 51, 52, 136, 137, 8, 139, 140, 141, 142, 143, + 144, 145, 163, 134, 135, 134, 135, 151, 152, 161, + 137, 155, 156, 157, 158, 37, 38, 161, 149, 16, + 149, 165, 166, 167, 75, 76, 77, 106, 116, 108, + 161, 159, 163, 84, 163, 163, 75, 76, 137, 90, + 80, 92, 106, 94, 108, 96, 106, 107, 70, 71, + 138, 14, 155, 156, 157, 106, 116, 14, 1, 159, + 82, 164, 161, 163, 86, 8, 117, 118, 167, 70, + 14, 122, 14, 161, 80, 14, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 37, 38, 16, 163, 16, - 117, 118, 31, 37, 38, 122, 106, 107, 159, 116, - 84, 128, 163, 164, 111, 112, 156, 16, 163, 16, - 137, 116, 167, 163, 59, 60, 70, 16, 16, 16, - 16, 138, 74, 16, 16, 70, 70, 16, 80, 1, - 16, 158, 1, 138, 161, 87, 88, 89, 82, 91, - 167, 93, 86, 95, 161, 84, 98, 31, 31, 31, - 31, 103, 104, 105, 0, 1, 161, 109, 110, 31, - 31, 31, 31, 115, 116, 31, 31, 31, 31, 31, - 37, 30, 124, 31, 31, 159, 37, 38, 122, 163, - 134, 135, 70, 31, 31, 35, 31, 31, 31, 134, - 135, 31, 136, 137, 1, 139, 140, 141, 142, 143, - 144, 31, 154, 31, 149, 37, 37, 151, 152, 163, - 35, 35, 84, 74, 35, 84, 35, 161, 163, 80, - 159, 80, 166, 167, 163, 35, 87, 88, 89, 35, - 91, 57, 93, 37, 95, 38, 69, 98, 84, 77, - 82, 70, 103, 104, 105, 80, 134, 135, 109, 110, - 70, 85, 31, 80, 115, 116, 92, 116, 97, 82, - 106, 149, 108, 124, 113, 83, 146, 113, 90, 137, - 146, 117, 118, 89, 128, 163, 122, 84, 137, 138, - 94, 127, 128, 129, 130, 131, 31, 159, 96, 100, - 159, 163, 97, 149, 163, 74, 155, 156, 157, 97, - 100, 80, 161, 154, 150, 134, 135, 159, 87, 88, - 89, 164, 91, 159, 93, 114, 95, 163, 164, 98, - 149, 133, 159, 132, 103, 104, 105, -1, -1, 74, - 109, 110, 1, -1, 163, 80, 115, 116, 132, -1, - 153, 158, 87, 88, 89, 124, 91, 149, 93, 164, - 95, -1, 159, 98, 149, -1, 163, 149, 103, 104, - 105, 74, 149, 153, 109, 110, 155, 80, 159, 162, - 115, 116, 1, 159, 87, 88, 89, 159, 91, 124, - 93, 159, 95, 159, 159, 98, 70, 159, 159, 102, - 103, 104, 105, 74, 159, 159, 109, 110, 159, 80, - 81, 159, 115, 116, 159, 159, 87, 88, 89, 159, - 91, 124, 93, 159, 95, 84, 159, 98, 160, 160, - 160, 160, 103, 104, 105, 160, 160, 163, 109, 110, - 161, 100, 101, 102, 115, 116, 161, 106, 161, 161, - 70, 71, 161, 124, 161, 161, 161, 161, 117, 118, - 134, 135, 82, 122, 161, 84, 86, 161, 127, 128, - 129, 130, 131, 161, 161, 149, 161, 161, 161, 161, - 161, 100, 101, 102, 161, 161, 161, 106, 161, 163, - 162, 161, 161, 161, 161, 161, 161, 161, 117, 118, - 159, 161, 122, 122, 163, 164, 161, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 137, 70, 139, - 140, 141, 142, 143, 144, 161, 161, 161, 165, 162, - 82, 151, 152, 162, 86, 162, 74, 162, 162, 162, - 159, 161, 80, 164, 163, 164, 166, 167, 162, 87, - 88, 89, 162, 91, 162, 93, 162, 95, 162, 162, - 98, 162, 162, 162, 162, 103, 104, 105, 162, 162, - 122, 109, 110, 162, 162, 162, 162, 115, 116, 162, - 162, 162, 162, 162, 162, 137, 124, 139, 140, 141, - 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, - 152, 162, 162, 162, 162, 162, 162, 162, 162, 161, - 163, 162, -1, 163, 166, 167, 163, 163, 163, 163, - 163, 163, 163, 163, 163, -1, 163, -1, 164, 164, + 25, 26, 27, 28, 29, 75, 76, 16, 158, 16, + 122, 16, 1, 37, 38, 1, 101, 102, 159, 16, + 116, 1, 163, 164, 136, 137, 156, 139, 140, 141, + 142, 143, 144, 163, 59, 60, 31, 0, 1, 151, + 152, 137, 31, 134, 135, 70, 16, 37, 38, 161, + 74, 31, 16, 70, 166, 167, 80, 16, 149, 155, + 156, 157, 16, 87, 88, 89, 116, 91, 16, 93, + 161, 95, 163, 16, 98, 106, 107, 1, 16, 103, + 104, 105, 16, 70, 74, 109, 110, 31, 138, 31, + 80, 115, 116, 70, 1, 84, 82, 87, 88, 89, + 124, 91, 31, 93, 84, 95, 31, 31, 98, 134, + 135, 161, 31, 103, 104, 105, 31, 134, 135, 109, + 110, 84, 106, 107, 149, 115, 116, 160, 31, 162, + 154, 117, 118, 31, 124, 31, 122, 31, 163, 111, + 112, 31, 128, 106, 31, 108, 163, 134, 135, 31, + 113, 137, 31, 31, 117, 118, 31, 134, 135, 122, + 84, 31, 149, 31, 127, 128, 129, 130, 131, 31, + 159, 31, 158, 31, 163, 161, 163, 84, 74, 159, + 31, 167, 35, 163, 80, 35, 163, 150, 1, 35, + 35, 87, 88, 89, 35, 91, 159, 93, 35, 95, + 163, 164, 98, 35, 37, 57, 37, 103, 104, 105, + 37, 37, 74, 109, 110, 1, 38, 30, 80, 115, + 116, 69, 77, 70, 80, 87, 88, 89, 124, 91, + 89, 93, 96, 95, 83, 159, 98, 80, 82, 163, + 82, 103, 104, 105, 74, 85, 100, 109, 110, 114, + 80, 90, 159, 115, 116, 1, 163, 87, 88, 89, + 94, 91, 124, 93, 92, 95, 132, 128, 98, 132, + 137, 100, 102, 103, 104, 105, 74, 97, 97, 109, + 110, 97, 80, 81, 153, 115, 116, 158, 113, 87, + 88, 89, 149, 91, 124, 93, -1, 95, 84, -1, + 98, -1, -1, 116, -1, 103, 104, 105, 146, 133, + 146, 109, 110, -1, 100, 101, 102, 115, 116, 154, + 106, -1, -1, 70, 71, 138, 124, -1, 149, -1, + 153, 117, 118, -1, 149, 82, 122, 149, 84, 86, + 149, 127, 128, 129, 130, 131, 160, 155, 161, 159, + 161, -1, 159, 159, 100, 101, 102, 159, 70, 71, + 106, 160, 30, 159, 159, 159, 159, 159, 159, 159, + 82, 117, 118, 159, 86, 122, 122, 163, 164, 159, + 159, 127, 128, 129, 130, 131, 159, 159, 159, 159, + 137, 159, 139, 140, 141, 142, 143, 144, 159, 161, + 160, 160, 160, 160, 151, 152, 161, 161, 161, 161, + 122, 161, 80, 159, 161, 163, 161, 163, 164, 166, + 167, 161, 161, 161, 161, 137, 161, 139, 140, 141, + 142, 143, 144, 161, 161, 161, 161, 161, 161, 151, + 152, 161, 161, 161, 74, 161, 161, 161, 116, 161, + 80, 161, 161, 161, 166, 167, 161, 87, 88, 89, + 161, 91, 161, 93, 161, 95, 161, 161, 98, 137, + 138, 161, 161, 103, 104, 105, 161, 161, 161, 109, + 110, 161, 163, 162, 162, 115, 116, 155, 156, 157, + 162, 162, 162, 161, 124, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, -1, 162, 162, 162, -1, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, -1, -1, 166, -1, 167 + 164, 164, 164, 164, 164, 164, -1, 165, -1, 166, + -1, 167 ); protected array $actionBase = array( - 0, -2, 152, 549, 764, 941, 981, 751, 555, 309, - 560, 864, 626, 738, 738, 741, 738, 473, 671, 783, - -60, 305, 305, 783, 305, 803, 803, 803, 658, 658, - 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 18, 36, 79, 648, 1036, 1044, - 1040, 1045, 1034, 1033, 1039, 1041, 1046, 1083, 1084, 782, - 1085, 1086, 1082, 1087, 1042, 876, 1035, 1043, 289, 289, + 0, -2, 152, 549, 727, 904, 944, 1022, 390, 497, + 560, 922, 500, 710, 710, 766, 710, 472, 701, 847, + -60, 305, 305, 847, 305, 783, 783, 783, 666, 666, + 666, 666, 700, 700, 860, 860, 892, 828, 794, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 18, 36, 79, 661, 1053, 1059, + 1055, 1061, 1051, 1050, 1054, 1056, 1062, 1097, 1098, 839, + 1099, 1100, 1096, 1101, 1057, 933, 1052, 1058, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 195, 342, 43, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 643, 643, - 643, 666, 666, 354, 173, 980, 203, 1048, 1048, 1048, - 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164, - 7, 7, 7, 7, 7, 50, 369, 583, -23, -23, - -23, -23, 448, 605, 497, 260, 397, 434, 54, 394, - 593, 593, 316, 316, 415, 415, 316, 316, 316, 442, - 442, 252, 252, 252, 252, 318, 455, 433, 391, 742, - 53, 53, 53, 53, 742, 742, 742, 742, 734, 1088, - 742, 742, 742, 722, 781, 781, 926, 551, 551, 781, - 536, -3, -3, 536, 63, -3, 67, 576, 335, 756, - 115, 9, 335, 535, 656, 501, 185, 821, 568, 821, - 1032, 424, 776, 776, 426, 753, 729, 867, 1063, 1049, - 799, 1080, 810, 1081, -66, -58, 728, 1031, 1031, 1031, - 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1089, 402, - 1032, 130, 1089, 1089, 1089, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 603, 130, 544, 554, 130, - 804, 402, 18, 808, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 762, 157, 18, 36, 124, 124, - 196, 37, 124, 124, 124, 124, 18, 18, 18, 18, - 568, 784, 797, 600, 820, 143, 784, 784, 784, 122, - 135, 204, 139, 760, 785, 467, 775, 775, 787, 895, - 895, 775, 768, 775, 787, 913, 775, 775, 895, 895, - 793, 158, 550, 472, 524, 569, 895, 346, 775, 775, - 775, 775, 816, 575, 775, 271, 171, 775, 775, 816, - 801, 766, 58, 798, 895, 895, 895, 816, 505, 798, - 798, 798, 819, 824, 761, 765, 383, 349, 607, 138, - 807, 765, 765, 775, 532, 761, 765, 761, 765, 759, - 765, 765, 765, 761, 765, 768, 498, 765, 714, 586, - 75, 765, 6, 915, 916, 726, 917, 906, 918, 965, - 919, 923, 1053, 894, 931, 912, 924, 966, 903, 896, - 780, 701, 703, 815, 754, 893, 777, 777, 777, 888, - 777, 777, 777, 777, 777, 777, 777, 777, 701, 868, - 823, 794, 934, 711, 712, 1011, 730, 795, 963, 933, - 1013, 925, 758, 713, 977, 935, 757, 1047, 936, 940, - 986, 1014, 828, 1017, 979, 790, 1064, 1065, 869, 946, - 1054, 777, 915, 923, 727, 912, 924, 903, 896, 752, - 748, 746, 747, 745, 744, 739, 740, 763, 1018, 887, - 879, 870, 945, 891, 701, 871, 971, 874, 990, 992, - 1050, 805, 792, 875, 1066, 952, 953, 954, 1055, 1019, - 1056, 773, 973, 817, 994, 812, 1067, 996, 997, 999, - 1000, 1057, 1068, 1058, 885, 1059, 832, 788, 928, 802, - 1069, 299, 791, 800, 806, 964, 436, 932, 1060, 1070, - 1071, 1001, 1002, 1006, 1072, 1073, 927, 834, 975, 796, - 976, 967, 835, 838, 577, 779, 1020, 786, 789, 778, - 624, 634, 1074, 1075, 1076, 930, 767, 772, 839, 845, - 1021, 743, 1022, 1077, 646, 846, 717, 1078, 1012, 718, - 721, 652, 683, 681, 724, 774, 1061, 818, 811, 771, - 955, 721, 770, 849, 1079, 852, 855, 856, 1007, 860, + 4, 4, 4, 4, 4, 4, 4, 4, 495, 495, + 495, 578, 578, 354, 173, 978, 943, 978, 978, 978, + 978, 978, 978, 978, 978, 203, 665, 339, 164, 164, + 7, 7, 7, 7, 7, 50, 369, 704, 704, -23, + -23, -23, -23, 448, 877, 501, 260, 368, 434, 54, + 540, 640, 640, 316, 316, 512, 512, 316, 316, 316, + 442, 442, 252, 252, 252, 252, 318, 469, 599, 358, + 304, 823, 53, 53, 53, 53, 823, 823, 823, 823, + 854, 1103, 823, 823, 823, 439, 471, 471, 703, 539, + 539, 471, 536, -3, -3, 536, 63, -3, 67, 496, + 473, 829, 115, 9, 473, 673, 713, 657, 185, 882, + 659, 882, 1049, 376, 850, 850, 424, 808, 761, 929, + 1074, 1063, 836, 1094, 861, 1095, -66, -58, 748, 1048, + 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, + 1104, 402, 1049, 130, 1104, 1104, 1104, 402, 402, 402, + 402, 402, 402, 402, 402, 402, 402, 718, 130, 561, + 620, 130, 858, 402, 18, 869, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 811, 157, 18, 36, + 124, 124, 196, 37, 124, 124, 124, 124, 18, 18, + 18, 18, 659, 838, 821, 706, 867, 143, 838, 838, + 838, 122, 135, 204, 139, 837, 840, 521, 834, 834, + 848, 950, 834, 846, 834, 848, 962, 834, 834, 950, + 950, 819, 950, 158, 544, 457, 524, 550, 950, 346, + 834, 834, 834, 834, 827, 950, 567, 834, 271, 171, + 834, 834, 827, 824, 820, 58, 866, 950, 950, 950, + 827, 502, 866, 866, 866, 884, 888, 865, 815, 443, + 349, 586, 138, 868, 815, 815, 834, 532, 865, 815, + 865, 815, 855, 815, 815, 815, 865, 815, 846, 492, + 815, 736, 579, 75, 815, 6, 963, 964, 695, 965, + 953, 966, 1007, 967, 970, 1065, 945, 976, 955, 971, + 1010, 952, 951, 832, 685, 693, 875, 833, 940, 842, + 842, 842, 936, 937, 842, 842, 842, 842, 842, 842, + 842, 842, 685, 876, 881, 831, 982, 720, 726, 1038, + 852, 1076, 1102, 981, 1040, 972, 880, 731, 1025, 985, + 1075, 1009, 989, 991, 1026, 1041, 894, 1042, 1077, 843, + 1078, 1079, 891, 995, 1066, 842, 963, 970, 746, 955, + 971, 952, 951, 803, 800, 792, 796, 787, 775, 765, + 771, 812, 1043, 935, 879, 930, 993, 938, 685, 931, + 1019, 942, 1027, 1028, 1064, 871, 841, 932, 1080, 996, + 1000, 1001, 1067, 1044, 1068, 883, 1020, 1011, 1029, 874, + 1081, 1030, 1031, 1032, 1033, 1069, 1082, 1070, 928, 1071, + 895, 851, 1012, 826, 1083, 299, 849, 853, 864, 1006, + 466, 980, 1072, 1084, 1085, 1034, 1035, 1036, 1086, 1087, + 974, 896, 1023, 856, 1024, 1018, 897, 898, 637, 863, + 1045, 844, 845, 859, 643, 656, 1088, 1089, 1090, 975, + 822, 835, 899, 900, 1046, 857, 1047, 1091, 658, 910, + 742, 1092, 1039, 747, 752, 603, 683, 681, 756, 862, + 1073, 878, 825, 870, 1005, 752, 830, 911, 1093, 917, + 918, 919, 1037, 920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 456, 456, 456, 456, 456, 456, 305, 305, 305, 305, - 305, 456, 456, 456, 456, 456, 456, 456, 305, 305, - 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, + 0, 0, 0, 0, 456, 456, 456, 456, 456, 456, + 305, 305, 305, 305, 305, 456, 456, 456, 456, 456, + 456, 456, 305, 305, 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, @@ -734,42 +738,42 @@ class Php8 extends \PhpParser\ParserAbstract 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 289, 289, 289, 289, 289, 289, + 456, 456, 456, 456, 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 494, 494, 289, 289, 494, 289, 494, 494, 494, 494, - 494, 494, 494, 494, 494, 0, 289, 289, 289, 289, - 289, 289, 289, 289, 494, 793, 494, 442, 442, 442, - 442, 494, 494, 494, -88, -88, 442, 494, 63, 494, - 494, 494, 494, 494, 494, 494, 494, 494, 0, 0, - 494, 494, 494, 494, 0, 0, 130, -3, 494, 768, - 768, 768, 768, 494, 494, 494, 494, -3, -3, 494, - 494, 494, 0, 0, 0, 0, 442, 442, 0, 130, - 0, 0, 130, 0, 0, 768, 768, 494, 63, 793, - 359, 494, 0, 0, 0, 0, 130, 768, 130, 402, - 775, -3, -3, 775, 402, 402, 124, 18, 359, 545, - 545, 545, 545, 0, 0, 568, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 768, 0, 793, - 0, 768, 768, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 768, - 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, - 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 777, 805, 0, 805, 0, 777, 777, 777, 0, 0, - 0, 0, 779, 743 + 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 289, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 289, 289, 289, 289, 594, 594, 289, 289, 594, 594, + 594, 594, 594, 594, 594, 594, 594, 594, 289, 0, + 289, 289, 289, 289, 289, 289, 289, 289, 594, 819, + 594, 594, 442, 442, 442, 442, 594, 594, 594, -88, + -88, 442, 594, 63, 594, 594, 594, 594, 594, 594, + 594, 594, 594, 0, 0, 594, 594, 594, 594, 0, + 0, 0, 130, -3, 594, 846, 846, 846, 846, 594, + 594, 594, 594, -3, -3, 594, 594, 594, 0, 0, + 0, 0, 442, 442, 0, 130, 0, 0, 130, 0, + 0, 846, 846, 594, 63, 819, 359, 594, 0, 0, + 0, 0, 130, 846, 130, 402, 834, -3, -3, 834, + 402, 402, 124, 18, 359, 605, 605, 605, 605, 0, + 0, 659, 819, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 846, 0, 819, 0, 846, 846, 846, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 846, 0, 0, 950, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 0, 0, 846, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 842, 871, 0, 871, + 0, 842, 842, 842, 0, 0, 0, 0, 863, 857 ); protected array $actionDefault = array( 3,32767, 102,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 100,32767,32767,32767,32767, 597, 597, - 597, 597,32767,32767, 254, 102,32767,32767, 470, 387, - 387, 387,32767,32767, 541, 541, 541, 541, 541, 541, + 32767,32767,32767, 100,32767,32767,32767,32767, 602, 602, + 602, 602,32767,32767, 254, 102,32767,32767, 470, 387, + 387, 387,32767,32767, 544, 544, 544, 544, 544, 544, 32767,32767,32767,32767,32767,32767, 470,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, @@ -781,139 +785,143 @@ class Php8 extends \PhpParser\ParserAbstract 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17, 324,32767,32767,32767,32767, 102,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 590,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 595,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767, 474, 453, - 454, 456, 457, 386, 542, 596, 327, 593, 385, 145, + 454, 456, 457, 386, 545, 601, 327, 598, 385, 145, 339, 329, 242, 330, 258, 475, 259, 476, 479, 480, 215, 287, 382, 149, 150, 417, 471, 419, 469, 473, 418, 392, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 390, 391, 472, 450, 449, - 448,32767,32767, 415, 416,32767, 420,32767,32767,32767, - 32767,32767,32767,32767, 102,32767, 389, 423, 421, 422, - 439, 440, 437, 438, 441,32767,32767,32767, 442, 443, - 444, 445, 316,32767,32767, 366, 364, 424, 316, 111, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 430, - 431,32767,32767,32767,32767, 535, 447,32767,32767,32767, + 448,32767,32767, 415, 416,32767,32767,32767,32767,32767, + 32767,32767,32767, 102,32767, 420, 389, 423, 421, 422, + 439, 440, 437, 438, 441,32767,32767,32767,32767, 442, + 443, 444, 445, 316,32767,32767, 366, 364, 424, 316, + 111,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 430, 431,32767,32767,32767,32767, 487, 538, 447,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 102,32767, 100, 537, 412, 414, 504, 425, 426, 393, - 32767, 511,32767, 102,32767, 513,32767,32767,32767,32767, - 32767,32767,32767, 536,32767, 543, 543,32767, 497, 100, - 195,32767,32767, 512,32767, 195, 195,32767,32767,32767, - 32767,32767,32767,32767,32767, 604, 497, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110,32767, 195, - 110,32767,32767,32767, 100, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 190,32767, 268, 270, 102, - 558, 195,32767, 516,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, + 32767,32767, 102,32767, 100, 540, 412, 414, 507, 425, + 426, 393,32767, 514,32767, 102,32767, 516,32767,32767, + 32767,32767,32767,32767,32767, 539,32767, 546, 546,32767, + 500, 100, 195,32767,32767, 515,32767, 195, 195,32767, + 32767,32767,32767,32767,32767,32767,32767, 609, 500, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 32767, 195, 110,32767,32767,32767, 100, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 190,32767, 268, + 270, 102, 563, 195,32767, 519,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 512,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 497, 435, 138,32767, 138, 543, 427, 428, 429, 499, - 543, 543, 543, 312, 289,32767,32767,32767,32767, 514, - 514, 100, 100, 100, 100, 509,32767,32767,32767,32767, - 111, 99, 99, 99, 99, 99, 103, 101,32767,32767, - 32767,32767, 223, 99,32767, 101, 101,32767,32767, 223, - 225, 212, 101, 227,32767, 562, 563, 223, 101, 227, - 227, 227, 247, 247, 486, 318, 101, 99, 101, 101, - 197, 318, 318,32767, 101, 486, 318, 486, 318, 199, - 318, 318, 318, 486, 318,32767, 101, 318, 214, 99, - 99, 318,32767,32767,32767, 499,32767,32767,32767,32767, - 32767,32767,32767, 222,32767,32767,32767,32767,32767,32767, - 32767,32767, 530,32767, 547, 560, 433, 434, 436, 545, - 458, 459, 460, 461, 462, 463, 464, 466, 592,32767, - 503,32767,32767,32767, 338,32767, 602,32767,32767,32767, + 32767,32767, 500, 435, 138,32767, 138, 546, 427, 428, + 429, 502, 546, 546, 546, 312, 289,32767,32767,32767, + 32767, 517, 100, 100, 100, 100, 512,32767,32767,32767, + 32767, 111, 486, 99, 99, 99, 99, 99, 103, 101, + 32767,32767,32767,32767, 223,32767, 99,32767, 101, 101, + 32767,32767, 223, 225, 212, 101, 227,32767, 567, 568, + 223, 101, 227, 227, 227, 247, 247, 489, 318, 101, + 99, 101, 101, 197, 318, 318,32767, 101, 489, 318, + 489, 318, 199, 318, 318, 318, 489, 318,32767, 101, + 318, 214, 99, 99, 318,32767,32767,32767, 502,32767, + 32767,32767,32767,32767,32767,32767, 222,32767,32767,32767, + 32767,32767,32767,32767,32767, 533,32767, 551, 565, 433, + 434, 436, 550, 548, 458, 459, 460, 461, 462, 463, + 464, 466, 597,32767, 506,32767,32767,32767, 338,32767, + 607,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 608,32767, + 546,32767,32767,32767,32767, 432, 9, 74, 495, 42, + 43, 51, 57, 523, 524, 525, 526, 520, 521, 527, + 522,32767,32767, 528, 573,32767,32767, 547, 600,32767, + 32767,32767,32767,32767,32767, 138,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 533,32767, 136, + 32767,32767,32767,32767,32767,32767,32767,32767, 529,32767, + 32767,32767, 546,32767,32767,32767,32767, 314, 311,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 603,32767, 543,32767,32767,32767, - 32767, 432, 9, 74, 492, 42, 43, 51, 57, 520, - 521, 522, 523, 517, 518, 524, 519,32767,32767, 525, - 568,32767,32767, 544, 595,32767,32767,32767,32767,32767, - 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 530,32767, 136,32767,32767,32767,32767, - 32767,32767,32767,32767, 526,32767,32767,32767, 543,32767, - 32767,32767,32767, 314, 311,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 546,32767,32767,32767,32767, + 32767, 291,32767, 308,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 543,32767,32767,32767,32767,32767, 291,32767, 308, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 286,32767,32767, 381, - 499, 294, 296, 297,32767,32767,32767,32767, 360,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 152, 152, 3, 3, 341, 152, 152, 152, 341, 341, - 152, 341, 341, 341, 152, 152, 152, 152, 152, 152, - 280, 185, 262, 265, 247, 247, 152, 352, 152 + 286,32767,32767, 381, 502, 294, 296, 297,32767,32767, + 32767,32767, 360,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 152, 152, 3, 3, 341, 152, + 152, 152, 341, 341, 152, 341, 341, 341, 152, 152, + 152, 152, 152, 152, 280, 185, 262, 265, 247, 247, + 152, 352, 152 ); protected array $goto = array( - 196, 196, 1034, 1065, 697, 431, 661, 621, 658, 319, - 706, 425, 314, 315, 335, 576, 430, 336, 432, 638, - 654, 655, 852, 672, 673, 674, 853, 167, 167, 167, + 196, 196, 1038, 1069, 701, 353, 433, 665, 856, 710, + 427, 321, 316, 317, 337, 580, 432, 338, 434, 642, + 658, 659, 421, 676, 677, 678, 857, 167, 167, 167, 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, - 189, 190, 191, 192, 218, 216, 219, 536, 537, 421, - 538, 540, 541, 542, 543, 544, 545, 546, 547, 1136, + 189, 190, 191, 192, 218, 216, 219, 539, 540, 423, + 541, 544, 545, 546, 547, 548, 549, 550, 551, 1140, 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, - 176, 178, 215, 217, 220, 238, 243, 244, 246, 257, - 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, - 271, 277, 289, 290, 317, 318, 426, 427, 428, 581, + 176, 178, 215, 217, 220, 238, 243, 244, 255, 257, + 258, 259, 260, 261, 262, 263, 264, 269, 270, 271, + 272, 278, 290, 291, 319, 320, 428, 429, 430, 585, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, - 200, 239, 188, 189, 190, 191, 192, 218, 1136, 201, + 200, 239, 188, 189, 190, 191, 192, 218, 1140, 201, 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, - 212, 213, 214, 855, 1232, 975, 279, 279, 279, 279, - 623, 623, 419, 351, 1269, 600, 1269, 1269, 1269, 1269, - 1269, 1269, 1269, 1269, 1269, 1287, 1287, 599, 1100, 1287, - 709, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 508, 700, 827, 1098, 458, 559, 552, 860, 833, 909, - 904, 905, 918, 861, 906, 858, 907, 908, 859, 1233, - 1234, 912, 500, 886, 501, 252, 252, 843, 1107, 1108, - 507, 1087, 1082, 1083, 1084, 341, 552, 559, 568, 569, - 344, 579, 602, 616, 617, 1235, 1295, 1296, 833, 440, - 833, 22, 250, 250, 250, 250, 245, 253, 694, 573, - 1237, 829, 1237, 893, 851, 893, 893, 1034, 1034, 1237, - 694, 349, 342, 1034, 694, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 848, 1327, 1034, 1034, 1034, 1034, - 1319, 1319, 1319, 1319, 1237, 343, 342, 1040, 1039, 1237, - 1237, 1237, 1237, 868, 996, 1237, 1237, 1237, 913, 355, - 914, 354, 354, 354, 354, 466, 466, 479, 880, 355, - 355, 867, 394, 926, 466, 481, 571, 927, 967, 410, - 705, 942, 355, 355, 942, 848, 355, 660, 1354, 609, - 624, 627, 628, 629, 630, 651, 652, 653, 708, 554, - 1133, 1285, 1285, 355, 355, 1285, 1058, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 539, 539, 1185, 424, - 539, 611, 539, 539, 539, 539, 539, 539, 539, 539, - 539, 566, 682, 1337, 1337, 733, 637, 639, 1043, 1044, - 659, 476, 1312, 1313, 683, 687, 1010, 695, 704, 1006, - 1337, 1298, 438, 408, 409, 631, 633, 635, 670, 5, - 671, 6, 412, 413, 414, 337, 684, 1340, 1340, 415, - 325, 309, 686, 347, 352, 353, 553, 563, 450, 450, - 450, 553, 1309, 563, 1309, 666, 397, 462, 845, 1314, - 1315, 1309, 548, 548, 548, 548, 873, 604, 469, 580, - 470, 471, 403, 554, 878, 848, 958, 1345, 1346, 577, - 614, 870, 550, 615, 550, 255, 255, 1321, 1321, 1321, - 1321, 550, 999, 1018, 477, 971, 1228, 732, 736, 881, - 869, 1070, 1074, 876, 882, 551, 1008, 1003, 1071, 1075, - 978, 980, 0, 1305, 1118, 0, 456, 0, 0, 0, - 0, 969, 969, 969, 969, 0, 0, 456, 963, 970, - 0, 0, 0, 0, 968, 0, 1230, 0, 0, 0, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 931, 1123, 450, 0, 1073, 1116, 885, 619, 1307, - 1307, 1073, 1216, 944, 1015, 433, 1217, 1220, 945, 1221, - 0, 433, 872, 0, 664, 994, 0, 1041, 1041, 0, - 866, 0, 0, 0, 665, 1052, 1048, 1049, 0, 0, - 0, 0, 1227, 324, 275, 324, 1037, 1037, 681, 952, - 0, 0, 1029, 1045, 1046, 396, 399, 560, 601, 605, + 212, 213, 214, 859, 613, 628, 631, 632, 633, 634, + 655, 656, 657, 712, 460, 979, 280, 280, 280, 280, + 479, 1321, 1322, 627, 627, 831, 604, 1276, 1276, 1276, + 1276, 1276, 1276, 1276, 1276, 1276, 1276, 398, 401, 564, + 605, 609, 890, 552, 552, 552, 552, 864, 608, 913, + 908, 909, 922, 865, 910, 862, 911, 912, 863, 465, + 441, 916, 1041, 1041, 685, 956, 1189, 357, 1033, 1049, + 1050, 1091, 1086, 1087, 1088, 1295, 1295, 357, 357, 1295, + 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 698, + 357, 357, 833, 917, 357, 918, 1363, 354, 355, 577, + 1244, 698, 1244, 1244, 426, 698, 615, 558, 1038, 1038, + 1244, 357, 357, 5, 1038, 6, 1038, 1038, 1038, 1038, + 1038, 1038, 1038, 1038, 1038, 625, 662, 1038, 1038, 1038, + 1038, 1328, 1328, 1328, 1328, 351, 1244, 356, 356, 356, + 356, 1244, 1244, 1244, 1244, 1111, 1112, 1244, 1244, 1244, + 344, 563, 556, 897, 855, 897, 897, 1336, 554, 1307, + 554, 554, 482, 603, 1104, 930, 713, 1000, 554, 931, + 484, 396, 946, 345, 344, 946, 511, 704, 872, 1102, + 690, 343, 556, 563, 572, 573, 346, 583, 606, 620, + 621, 575, 852, 884, 458, 664, 871, 22, 1137, 973, + 973, 973, 973, 1044, 1043, 458, 967, 974, 1292, 1292, + 558, 1062, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, + 1292, 1292, 543, 543, 1047, 1048, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 570, 469, 469, 440, + 737, 641, 643, 670, 852, 663, 469, 327, 311, 687, + 691, 1014, 699, 708, 1010, 686, 1017, 1017, 1220, 948, + 1323, 1324, 1221, 1224, 949, 1225, 849, 557, 567, 581, + 618, 557, 339, 567, 877, 1237, 399, 464, 451, 451, + 451, 451, 405, 1318, 837, 1318, 1318, 251, 251, 472, + 584, 473, 474, 1318, 962, 1022, 882, 542, 542, 1354, + 1355, 542, 874, 542, 542, 542, 542, 542, 542, 542, + 542, 971, 412, 709, 249, 249, 249, 249, 246, 252, + 1330, 1330, 1330, 1330, 837, 880, 837, 410, 411, 635, + 637, 639, 674, 619, 675, 1075, 414, 415, 416, 1235, + 688, 740, 886, 417, 1079, 0, 1314, 349, 435, 984, + 885, 873, 1074, 1078, 435, 1122, 503, 0, 504, 1239, + 1045, 1045, 982, 852, 510, 0, 0, 669, 1056, 1052, + 1053, 0, 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 451, 935, 1127, 451, 972, 0, 1077, 0, + 623, 0, 1316, 1316, 1077, 0, 1019, 0, 0, 326, + 276, 326, 326, 0, 876, 1261, 668, 998, 1120, 889, + 1346, 1346, 870, 1240, 1241, 1003, 0, 0, 975, 0, + 736, 0, 847, 0, 1234, 0, 0, 1346, 555, 1012, + 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1242, 1304, 1305, 1349, 1349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1013, 1013 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 254 ); protected array $gotoCheck = array( - 42, 42, 73, 127, 73, 66, 66, 56, 56, 66, - 9, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 86, 86, 26, 86, 86, 86, 27, 42, 42, 42, + 42, 42, 73, 127, 73, 97, 66, 66, 26, 9, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 86, 86, 43, 86, 86, 86, 27, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -927,100 +935,103 @@ class Php8 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 15, 20, 49, 23, 23, 23, 23, - 108, 108, 43, 97, 108, 130, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 170, 170, 8, 8, 170, - 8, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 8, 8, 6, 8, 83, 76, 76, 15, 12, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, - 20, 15, 155, 45, 155, 5, 5, 20, 144, 144, - 155, 15, 15, 15, 15, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 20, 20, 20, 12, 83, - 12, 76, 5, 5, 5, 5, 5, 5, 7, 172, - 73, 7, 73, 25, 25, 25, 25, 73, 73, 73, - 7, 179, 168, 73, 7, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 22, 181, 73, 73, 73, 73, - 9, 9, 9, 9, 73, 168, 168, 118, 118, 73, - 73, 73, 73, 35, 103, 73, 73, 73, 65, 14, - 65, 24, 24, 24, 24, 149, 149, 84, 35, 14, - 14, 35, 62, 73, 149, 84, 104, 73, 93, 93, - 93, 9, 14, 14, 9, 22, 14, 64, 14, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 14, - 150, 171, 171, 14, 14, 171, 114, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 173, 173, 151, 13, - 173, 13, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 48, 116, 182, 182, 48, 48, 48, 119, 119, - 48, 176, 176, 176, 48, 48, 48, 48, 48, 48, - 182, 14, 113, 82, 82, 85, 85, 85, 82, 46, - 82, 46, 82, 82, 82, 29, 82, 182, 182, 82, - 169, 169, 14, 82, 97, 97, 9, 9, 23, 23, - 23, 9, 130, 9, 130, 120, 9, 9, 18, 178, - 178, 130, 107, 107, 107, 107, 39, 107, 9, 9, - 9, 9, 28, 14, 9, 22, 92, 9, 9, 2, - 2, 37, 19, 80, 19, 5, 5, 130, 130, 130, - 130, 19, 50, 110, 157, 50, 160, 50, 99, 16, - 16, 16, 16, 9, 41, 50, 50, 50, 129, 132, - 16, 96, -1, 130, 147, -1, 19, -1, -1, -1, - -1, 19, 19, 19, 19, -1, -1, 19, 19, 19, - -1, -1, -1, -1, 16, -1, 14, -1, -1, -1, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 17, 17, 23, -1, 130, 16, 16, 17, 130, - 130, 130, 79, 79, 17, 117, 79, 79, 79, 79, - -1, 117, 17, -1, 17, 17, -1, 117, 117, -1, - 17, -1, -1, -1, 117, 117, 117, 117, -1, -1, - -1, -1, 17, 24, 24, 24, 89, 89, 89, 89, - -1, -1, 89, 89, 89, 59, 59, 59, 59, 59, + 42, 42, 42, 15, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 83, 49, 23, 23, 23, 23, + 178, 178, 178, 108, 108, 6, 130, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 59, 59, 59, + 59, 59, 45, 107, 107, 107, 107, 15, 107, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 151, + 83, 15, 89, 89, 89, 89, 151, 14, 89, 89, + 89, 15, 15, 15, 15, 172, 172, 14, 14, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 7, + 14, 14, 7, 65, 14, 65, 14, 97, 97, 174, + 73, 7, 73, 73, 13, 7, 13, 14, 73, 73, + 73, 14, 14, 46, 73, 46, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 56, 56, 73, 73, 73, + 73, 9, 9, 9, 9, 181, 73, 24, 24, 24, + 24, 73, 73, 73, 73, 144, 144, 73, 73, 73, + 170, 76, 76, 25, 25, 25, 25, 183, 19, 14, + 19, 19, 84, 8, 8, 73, 8, 103, 19, 73, + 84, 62, 9, 170, 170, 9, 8, 8, 35, 8, + 14, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 104, 22, 35, 19, 64, 35, 76, 150, 19, + 19, 19, 19, 118, 118, 19, 19, 19, 173, 173, + 14, 114, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 175, 175, 119, 119, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 48, 149, 149, 113, + 48, 48, 48, 120, 22, 48, 149, 171, 171, 48, + 48, 48, 48, 48, 48, 116, 107, 107, 79, 79, + 180, 180, 79, 79, 79, 79, 18, 9, 9, 2, + 2, 9, 29, 9, 39, 14, 9, 9, 23, 23, + 23, 23, 28, 130, 12, 130, 130, 5, 5, 9, + 9, 9, 9, 130, 92, 110, 9, 158, 158, 9, + 9, 158, 37, 158, 158, 158, 158, 158, 158, 158, + 158, 93, 93, 93, 5, 5, 5, 5, 5, 5, + 130, 130, 130, 130, 12, 9, 12, 82, 82, 85, + 85, 85, 82, 80, 82, 129, 82, 82, 82, 162, + 82, 99, 41, 82, 132, -1, 130, 82, 117, 96, + 16, 16, 16, 16, 117, 147, 155, -1, 155, 20, + 117, 117, 16, 22, 155, -1, -1, 117, 117, 117, + 117, -1, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 17, 17, 23, 16, -1, 130, -1, + 17, -1, 130, 130, 130, -1, 17, -1, -1, 24, + 24, 24, 24, -1, 17, 20, 17, 17, 16, 16, + 184, 184, 17, 20, 20, 50, -1, -1, 50, -1, + 50, -1, 20, -1, 17, -1, -1, 184, 50, 50, + 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 20, 20, 184, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 107, 107 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 5 ); protected array $gotoBase = array( - 0, 0, -253, 0, 0, 224, 182, 251, 179, -10, - 0, 0, -89, 32, 11, -185, 27, 66, 128, 197, - -229, 0, 5, 163, 308, 260, 18, 22, 115, 118, - 0, 0, 0, 0, 0, -68, 0, 122, 0, 123, - 0, 43, -1, 153, 0, 200, -327, 0, -330, 147, - 460, 0, 0, 0, 0, 0, -33, 0, 0, 540, - 0, 0, 280, 0, 95, 294, -236, 0, 0, 0, - 0, 0, 0, -5, 0, 0, -140, 0, 0, 134, - 119, -19, -88, -75, -152, -74, -698, 0, 0, 296, - 0, 0, 127, 23, 0, 0, 48, -310, 0, 71, - 0, 0, 0, 269, 283, 0, 0, 414, -71, 0, - 103, 0, 0, 124, 83, 0, 100, 273, 17, 104, - 144, 0, 0, 0, 0, 0, 0, 1, 0, 114, - 167, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -47, 0, 0, 50, 0, 281, - 105, 94, 0, 0, 0, -273, 0, 34, 0, 0, - 107, 0, 0, 0, 0, 0, 0, 0, -26, 99, - -56, 110, 230, 125, 0, 0, 90, 0, 67, 241, - 0, 254, 75, 0, 0 + 0, 0, -287, 0, 0, 446, 165, 242, 315, -11, + 0, 0, 145, -75, -73, -187, 56, 75, 114, 53, + 124, 0, 72, 173, 294, 310, 4, 22, 103, 133, + 0, 0, 0, 0, 0, -35, 0, 121, 0, 109, + 0, 60, -1, 3, 0, 179, -467, 0, -319, 157, + 563, 0, 0, 0, 0, 0, 245, 0, 0, 152, + 0, 0, 289, 0, 113, 239, -235, 0, 0, 0, + 0, 0, 0, -5, 0, 0, -36, 0, 0, 8, + 147, -196, -7, -106, -150, 7, -702, 0, 0, -59, + 0, 0, 123, 164, 0, 0, 65, -481, 0, 92, + 0, 0, 0, 292, 308, 0, 0, 175, -58, 0, + 83, 0, 0, 120, 97, 0, 132, 235, 82, 99, + 111, 0, 0, 0, 0, 0, 0, 1, 0, 119, + 178, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 0, 0, 70, 0, 363, + 112, -49, 0, 0, 0, 18, 0, 0, 216, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 10, 84, -6, 127, 230, 141, 0, 0, -123, 0, + 46, 265, 0, 286, 260, 0, 0 ); protected array $gotoDefault = array( - -32768, 512, 740, 4, 741, 935, 816, 825, 597, 530, - 707, 348, 625, 422, 1303, 911, 1122, 578, 844, 1246, - 1254, 457, 847, 330, 730, 923, 894, 895, 400, 386, - 392, 398, 649, 626, 494, 879, 453, 871, 486, 874, - 452, 883, 164, 418, 510, 887, 3, 890, 557, 921, - 973, 387, 898, 388, 677, 900, 562, 902, 903, 395, - 401, 402, 1127, 570, 622, 915, 256, 564, 916, 385, - 917, 925, 390, 393, 688, 465, 505, 499, 411, 1102, - 565, 608, 646, 447, 473, 620, 632, 618, 480, 434, - 416, 329, 957, 965, 487, 463, 979, 350, 987, 738, - 1135, 640, 489, 995, 641, 1002, 1005, 531, 532, 478, - 1017, 272, 1020, 490, 19, 667, 1031, 1032, 668, 642, - 1054, 643, 669, 644, 1056, 472, 598, 1064, 454, 1072, - 1291, 455, 1076, 266, 1079, 278, 417, 435, 1085, 1086, - 9, 1092, 698, 699, 11, 276, 509, 1117, 689, 451, - 1134, 439, 1204, 1206, 558, 491, 1224, 1223, 680, 506, - 1229, 448, 1294, 449, 533, 474, 316, 534, 1338, 308, - 333, 313, 549, 295, 334, 535, 475, 1300, 1308, 331, - 31, 1328, 1339, 575, 613 + -32768, 515, 744, 4, 745, 939, 820, 829, 601, 533, + 711, 350, 629, 424, 1312, 915, 1126, 582, 848, 1253, + 1227, 459, 851, 332, 734, 927, 898, 899, 402, 388, + 394, 400, 653, 630, 497, 883, 455, 875, 489, 878, + 454, 887, 164, 420, 513, 891, 3, 894, 561, 925, + 977, 389, 902, 390, 681, 904, 566, 906, 907, 397, + 403, 404, 1131, 574, 626, 919, 256, 568, 920, 387, + 921, 929, 392, 395, 692, 468, 508, 502, 413, 1106, + 569, 612, 650, 448, 476, 624, 636, 622, 483, 436, + 418, 331, 961, 969, 490, 466, 983, 352, 991, 742, + 1139, 644, 492, 999, 645, 1006, 1009, 534, 535, 481, + 1021, 273, 1024, 493, 19, 671, 1035, 1036, 672, 646, + 1058, 647, 673, 648, 1060, 475, 602, 1068, 456, 1076, + 1300, 457, 1080, 266, 1083, 279, 419, 437, 1089, 1090, + 9, 1096, 702, 703, 11, 277, 512, 1121, 693, 453, + 1138, 452, 1208, 1210, 562, 494, 1228, 480, 296, 1231, + 684, 509, 1236, 449, 1303, 450, 536, 477, 318, 537, + 1347, 310, 335, 315, 553, 297, 336, 538, 478, 1309, + 1317, 333, 31, 1337, 1348, 579, 617 ); protected array $ruleToNonTerminal = array( @@ -1072,20 +1083,21 @@ class Php8 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 156, 150, 150, 155, 155, 158, 159, - 159, 160, 161, 162, 162, 162, 162, 19, 19, 73, - 73, 73, 73, 151, 151, 151, 151, 164, 164, 152, - 152, 154, 154, 154, 157, 157, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 108, 173, - 173, 173, 173, 153, 153, 153, 153, 153, 153, 153, - 153, 59, 59, 167, 167, 167, 167, 174, 174, 163, - 163, 163, 175, 175, 175, 175, 175, 175, 74, 74, - 66, 66, 66, 66, 130, 130, 130, 130, 178, 177, - 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, - 176, 176, 176, 176, 107, 172, 180, 180, 179, 179, - 181, 181, 181, 181, 181, 181, 181, 181, 169, 169, - 169, 169, 168, 183, 182, 182, 182, 182, 182, 182, - 182, 182, 184, 184, 184, 184 + 42, 42, 42, 156, 158, 158, 159, 150, 150, 155, + 155, 160, 161, 161, 162, 163, 164, 164, 164, 164, + 19, 19, 73, 73, 73, 73, 151, 151, 151, 151, + 166, 166, 152, 152, 154, 154, 154, 157, 157, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, + 173, 108, 175, 175, 175, 175, 153, 153, 153, 153, + 153, 153, 153, 153, 59, 59, 169, 169, 169, 169, + 169, 176, 176, 165, 165, 165, 165, 177, 177, 177, + 177, 177, 177, 74, 74, 66, 66, 66, 66, 130, + 130, 130, 130, 180, 179, 168, 168, 168, 168, 168, + 168, 168, 167, 167, 167, 178, 178, 178, 178, 107, + 174, 182, 182, 181, 181, 183, 183, 183, 183, 183, + 183, 183, 183, 171, 171, 171, 171, 170, 185, 184, + 184, 184, 184, 184, 184, 184, 184, 186, 186, 186, + 186 ); protected array $ruleToLength = array( @@ -1137,20 +1149,21 @@ class Php8 extends \PhpParser\ParserAbstract 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, - 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, - 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, - 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, - 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, - 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, - 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, - 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, - 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, - 6, 3, 1, 1, 2, 1 + 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, + 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 0, 3, 0, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, + 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, + 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 4, 4, + 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, + 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, + 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, + 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, + 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, + 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, + 1 ); protected function initReduceCallbacks(): void { @@ -2379,339 +2392,346 @@ class Php8 extends \PhpParser\ParserAbstract list($class, $ctorArgs) = $self->semStack[$stackPos-(2-2)]; $self->semValue = new Expr\New_($class, $ctorArgs, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 486 => static function ($self, $stackPos) { - $self->semValue = array(); - }, - 487 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(4-3)]; + $self->semValue = new Expr\New_($self->semStack[$stackPos-(2-2)], [], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, + 487 => null, 488 => null, 489 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos-(1-1)]); + $self->semValue = array(); }, 490 => static function ($self, $stackPos) { - $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; - }, - 491 => static function ($self, $stackPos) { - $self->semValue = new Node\ClosureUse($self->semStack[$stackPos-(2-2)], $self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = $self->semStack[$stackPos-(4-3)]; }, + 491 => null, 492 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, 493 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; }, 494 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ClosureUse($self->semStack[$stackPos-(2-2)], $self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 495 => static function ($self, $stackPos) { - $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 496 => static function ($self, $stackPos) { - $self->semValue = new Expr\StaticCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 497 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + }, + 498 => static function ($self, $stackPos) { + $self->semValue = new Expr\FuncCall($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, - 498 => null, 499 => static function ($self, $stackPos) { - $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\StaticCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, 500 => static function ($self, $stackPos) { $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 501 => static function ($self, $stackPos) { + 501 => null, + 502 => static function ($self, $stackPos) { + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 503 => static function ($self, $stackPos) { + $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 504 => static function ($self, $stackPos) { $self->semValue = new Name\FullyQualified(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 502 => static function ($self, $stackPos) { + 505 => static function ($self, $stackPos) { $self->semValue = new Name\Relative(substr($self->semStack[$stackPos-(1-1)], 10), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 503 => null, - 504 => null, - 505 => static function ($self, $stackPos) { + 506 => null, + 507 => null, + 508 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(3-2)]; }, - 506 => static function ($self, $stackPos) { + 509 => static function ($self, $stackPos) { $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; }, - 507 => null, - 508 => null, - 509 => static function ($self, $stackPos) { + 510 => null, + 511 => null, + 512 => static function ($self, $stackPos) { $self->semValue = null; }, - 510 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 511 => static function ($self, $stackPos) { - $self->semValue = array(); - }, - 512 => static function ($self, $stackPos) { - $self->semValue = array($self->semStack[$stackPos-(1-1)]); foreach ($self->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; - }, 513 => static function ($self, $stackPos) { - foreach ($self->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = $self->semStack[$stackPos-(1-1)]; + $self->semValue = $self->semStack[$stackPos-(3-2)]; }, 514 => static function ($self, $stackPos) { $self->semValue = array(); }, - 515 => null, + 515 => static function ($self, $stackPos) { + $self->semValue = array($self->semStack[$stackPos-(1-1)]); foreach ($self->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; + }, 516 => static function ($self, $stackPos) { - $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + foreach ($self->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = $self->semStack[$stackPos-(1-1)]; }, 517 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 518 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = array(); }, + 518 => null, 519 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 520 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 521 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 522 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 523 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 524 => static function ($self, $stackPos) { - $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 525 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 526 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(5-1)], $self->semStack[$stackPos-(5-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(5-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 527 => static function ($self, $stackPos) { - $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)])), $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 528 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 529 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(5-1)], $self->semStack[$stackPos-(5-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(5-1)], $self->tokenEndStack[$stackPos])); + }, + 530 => static function ($self, $stackPos) { + $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos-(3-1)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)])), $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + }, + 531 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_SHORT; $self->semValue = new Expr\Array_($self->semStack[$stackPos-(3-2)], $attrs); }, - 529 => static function ($self, $stackPos) { + 532 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_LONG; $self->semValue = new Expr\Array_($self->semStack[$stackPos-(4-3)], $attrs); $self->createdArrays->attach($self->semValue); }, - 530 => static function ($self, $stackPos) { + 533 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(1-1)]; $self->createdArrays->attach($self->semValue); }, - 531 => static function ($self, $stackPos) { + 534 => static function ($self, $stackPos) { $self->semValue = Scalar\String_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->supportsUnicodeEscapes()); }, - 532 => static function ($self, $stackPos) { + 535 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($self->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', $self->phpVersion->supportsUnicodeEscapes()); } }; $self->semValue = new Scalar\InterpolatedString($self->semStack[$stackPos-(3-2)], $attrs); }, - 533 => static function ($self, $stackPos) { + 536 => static function ($self, $stackPos) { $self->semValue = $self->parseLNumber($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->allowsInvalidOctals()); }, - 534 => static function ($self, $stackPos) { + 537 => static function ($self, $stackPos) { $self->semValue = Scalar\Float_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 535 => null, - 536 => null, - 537 => null, - 538 => static function ($self, $stackPos) { + 538 => null, + 539 => null, + 540 => null, + 541 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-2)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)]), true); }, - 539 => static function ($self, $stackPos) { + 542 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(2-1)], '', $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(2-2)], $self->tokenEndStack[$stackPos-(2-2)]), true); }, - 540 => static function ($self, $stackPos) { + 543 => static function ($self, $stackPos) { $self->semValue = $self->parseDocString($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-2)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos-(3-3)], $self->tokenEndStack[$stackPos-(3-3)]), true); }, - 541 => static function ($self, $stackPos) { - $self->semValue = null; - }, - 542 => null, - 543 => null, 544 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; + $self->semValue = null; }, 545 => null, 546 => null, - 547 => null, + 547 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, 548 => null, 549 => null, - 550 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, + 550 => null, 551 => null, 552 => null, - 553 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, + 553 => null, 554 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = $self->semStack[$stackPos-(3-2)]; }, 555 => null, - 556 => static function ($self, $stackPos) { + 556 => null, + 557 => null, + 558 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 559 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 560 => null, + 561 => static function ($self, $stackPos) { $self->semValue = new Expr\MethodCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 557 => static function ($self, $stackPos) { + 562 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafeMethodCall($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 558 => static function ($self, $stackPos) { + 563 => static function ($self, $stackPos) { $self->semValue = null; }, - 559 => null, - 560 => null, - 561 => null, - 562 => static function ($self, $stackPos) { - $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 563 => static function ($self, $stackPos) { - $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, 564 => null, - 565 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 566 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); - }, + 565 => null, + 566 => null, 567 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])), $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 568 => static function ($self, $stackPos) { - $var = $self->semStack[$stackPos-(1-1)]->name; $self->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])) : $var; - }, - 569 => static function ($self, $stackPos) { - $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 570 => null, - 571 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 572 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, - 573 => static function ($self, $stackPos) { - $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 574 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 575 => static function ($self, $stackPos) { + 569 => null, + 570 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 571 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); + }, + 572 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])), $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; + }, + 573 => static function ($self, $stackPos) { + $var = $self->semStack[$stackPos-(1-1)]->name; $self->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])) : $var; + }, + 574 => static function ($self, $stackPos) { $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, + 575 => null, 576 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 577 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 578 => static function ($self, $stackPos) { + $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 579 => static function ($self, $stackPos) { + $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 580 => static function ($self, $stackPos) { $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 577 => null, - 578 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 579 => null, - 580 => null, 581 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; + $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 582 => null, 583 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 584 => null, + 585 => null, + 586 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 587 => null, + 588 => static function ($self, $stackPos) { $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2; }, - 584 => static function ($self, $stackPos) { + 589 => static function ($self, $stackPos) { $self->semValue = new Expr\List_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); $self->semValue->setAttribute('kind', Expr\List_::KIND_LIST); $self->postprocessList($self->semValue); }, - 585 => static function ($self, $stackPos) { + 590 => static function ($self, $stackPos) { $self->semValue = $self->semStack[$stackPos-(1-1)]; $end = count($self->semValue)-1; if ($self->semValue[$end]->value instanceof Expr\Error) array_pop($self->semValue); }, - 586 => null, - 587 => static function ($self, $stackPos) { + 591 => null, + 592 => static function ($self, $stackPos) { /* do nothing -- prevent default action of $$=$self->semStack[$1]. See $551. */ }, - 588 => static function ($self, $stackPos) { + 593 => static function ($self, $stackPos) { $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)]; }, - 589 => static function ($self, $stackPos) { + 594 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, - 590 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 591 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); - }, - 592 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, - 593 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 594 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(4-4)], $self->semStack[$stackPos-(4-1)], true, $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); - }, 595 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, 596 => static function ($self, $stackPos) { - $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), true); + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, 597 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 598 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 599 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(4-4)], $self->semStack[$stackPos-(4-1)], true, $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); + }, + 600 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(3-3)], $self->semStack[$stackPos-(3-1)], false, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 601 => static function ($self, $stackPos) { + $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), true); + }, + 602 => static function ($self, $stackPos) { /* Create an Error node now to remember the position. We'll later either report an error, or convert this into a null element, depending on whether this is a creation or destructuring context. */ $attrs = $self->createEmptyElemAttributes($self->tokenPos); $self->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs); }, - 598 => static function ($self, $stackPos) { + 603 => static function ($self, $stackPos) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)]; }, - 599 => static function ($self, $stackPos) { + 604 => static function ($self, $stackPos) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)]; }, - 600 => static function ($self, $stackPos) { + 605 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(1-1)]); }, - 601 => static function ($self, $stackPos) { + 606 => static function ($self, $stackPos) { $self->semValue = array($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)]); }, - 602 => static function ($self, $stackPos) { + 607 => static function ($self, $stackPos) { $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]); $attrs['rawValue'] = $self->semStack[$stackPos-(1-1)]; $self->semValue = new Node\InterpolatedStringPart($self->semStack[$stackPos-(1-1)], $attrs); }, - 603 => static function ($self, $stackPos) { + 608 => static function ($self, $stackPos) { $self->semValue = new Expr\Variable($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); }, - 604 => null, - 605 => static function ($self, $stackPos) { + 609 => null, + 610 => static function ($self, $stackPos) { $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(4-1)], $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])); }, - 606 => static function ($self, $stackPos) { + 611 => static function ($self, $stackPos) { $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 607 => static function ($self, $stackPos) { + 612 => static function ($self, $stackPos) { $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, - 608 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 609 => static function ($self, $stackPos) { - $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); - }, - 610 => static function ($self, $stackPos) { - $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(6-2)], $self->semStack[$stackPos-(6-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(6-1)], $self->tokenEndStack[$stackPos])); - }, - 611 => static function ($self, $stackPos) { - $self->semValue = $self->semStack[$stackPos-(3-2)]; - }, - 612 => static function ($self, $stackPos) { - $self->semValue = new Scalar\String_($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); - }, 613 => static function ($self, $stackPos) { - $self->semValue = $self->parseNumString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); }, 614 => static function ($self, $stackPos) { + $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); + }, + 615 => static function ($self, $stackPos) { + $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos-(6-2)], $self->semStack[$stackPos-(6-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(6-1)], $self->tokenEndStack[$stackPos])); + }, + 616 => static function ($self, $stackPos) { + $self->semValue = $self->semStack[$stackPos-(3-2)]; + }, + 617 => static function ($self, $stackPos) { + $self->semValue = new Scalar\String_($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 618 => static function ($self, $stackPos) { + $self->semValue = $self->parseNumString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); + }, + 619 => static function ($self, $stackPos) { $self->semValue = $self->parseNumString('-' . $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos])); }, - 615 => null, + 620 => null, ]; } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index 8303c427..17f27a15 100755 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -76,7 +76,7 @@ abstract class PrettyPrinterAbstract implements PrettyPrinter { BinaryOp\BooleanAnd::class => [120, 121, 120], BinaryOp\BooleanOr::class => [130, 131, 130], BinaryOp\Coalesce::class => [140, 140, 141], - Expr\Ternary::class => [150, -1, -1], + Expr\Ternary::class => [150, 150, 150], Expr\Assign::class => [160, -1, -1], Expr\AssignRef::class => [160, -1, -1], AssignOp\Plus::class => [160, -1, -1], diff --git a/vendor/symfony/console/Application.php b/vendor/symfony/console/Application.php index 87eb7a6c..b97d0872 100644 --- a/vendor/symfony/console/Application.php +++ b/vendor/symfony/console/Application.php @@ -75,6 +75,8 @@ class Application implements ResetInterface private array $commands = []; private bool $wantHelps = false; private ?Command $runningCommand = null; + private string $name; + private string $version; private ?CommandLoaderInterface $commandLoader = null; private bool $catchExceptions = true; private bool $catchErrors = false; @@ -89,15 +91,15 @@ class Application implements ResetInterface private ?SignalRegistry $signalRegistry = null; private array $signalsToDispatchEvent = []; - public function __construct( - private string $name = 'UNKNOWN', - private string $version = 'UNKNOWN', - ) { + public function __construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN') + { + $this->name = $name; + $this->version = $version; $this->terminal = new Terminal(); $this->defaultCommand = 'list'; if (\defined('SIGINT') && SignalRegistry::isSupported()) { $this->signalRegistry = new SignalRegistry(); - $this->signalsToDispatchEvent = [\SIGINT, \SIGQUIT, \SIGTERM, \SIGUSR1, \SIGUSR2]; + $this->signalsToDispatchEvent = [\SIGINT, \SIGTERM, \SIGUSR1, \SIGUSR2]; } } @@ -109,7 +111,10 @@ class Application implements ResetInterface $this->dispatcher = $dispatcher; } - public function setCommandLoader(CommandLoaderInterface $commandLoader): void + /** + * @return void + */ + public function setCommandLoader(CommandLoaderInterface $commandLoader) { $this->commandLoader = $commandLoader; } @@ -123,7 +128,10 @@ class Application implements ResetInterface return $this->signalRegistry; } - public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent): void + /** + * @return void + */ + public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent) { $this->signalsToDispatchEvent = $signalsToDispatchEvent; } @@ -216,7 +224,7 @@ class Application implements ResetInterface * * @return int 0 if everything went fine, or an error code */ - public function doRun(InputInterface $input, OutputInterface $output): int + public function doRun(InputInterface $input, OutputInterface $output) { if (true === $input->hasParameterOption(['--version', '-V'], true)) { $output->writeln($this->getLongVersion()); @@ -319,11 +327,17 @@ class Application implements ResetInterface return $exitCode; } - public function reset(): void + /** + * @return void + */ + public function reset() { } - public function setHelperSet(HelperSet $helperSet): void + /** + * @return void + */ + public function setHelperSet(HelperSet $helperSet) { $this->helperSet = $helperSet; } @@ -336,7 +350,10 @@ class Application implements ResetInterface return $this->helperSet ??= $this->getDefaultHelperSet(); } - public function setDefinition(InputDefinition $definition): void + /** + * @return void + */ + public function setDefinition(InputDefinition $definition) { $this->definition = $definition; } @@ -406,8 +423,10 @@ class Application implements ResetInterface /** * Sets whether to catch exceptions or not during commands execution. + * + * @return void */ - public function setCatchExceptions(bool $boolean): void + public function setCatchExceptions(bool $boolean) { $this->catchExceptions = $boolean; } @@ -430,8 +449,10 @@ class Application implements ResetInterface /** * Sets whether to automatically exit after a command execution or not. + * + * @return void */ - public function setAutoExit(bool $boolean): void + public function setAutoExit(bool $boolean) { $this->autoExit = $boolean; } @@ -446,8 +467,10 @@ class Application implements ResetInterface /** * Sets the application name. + * + * @return void */ - public function setName(string $name): void + public function setName(string $name) { $this->name = $name; } @@ -462,16 +485,20 @@ class Application implements ResetInterface /** * Sets the application version. + * + * @return void */ - public function setVersion(string $version): void + public function setVersion(string $version) { $this->version = $version; } /** * Returns the long version of the application. + * + * @return string */ - public function getLongVersion(): string + public function getLongVersion() { if ('UNKNOWN' !== $this->getName()) { if ('UNKNOWN' !== $this->getVersion()) { @@ -498,8 +525,10 @@ class Application implements ResetInterface * If a Command is not enabled it will not be added. * * @param Command[] $commands An array of commands + * + * @return void */ - public function addCommands(array $commands): void + public function addCommands(array $commands) { foreach ($commands as $command) { $this->add($command); @@ -511,8 +540,10 @@ class Application implements ResetInterface * * If a command with the same name already exists, it will be overridden. * If the command is not enabled it will not be added. + * + * @return Command|null */ - public function add(Command $command): ?Command + public function add(Command $command) { $this->init(); @@ -545,9 +576,11 @@ class Application implements ResetInterface /** * Returns a registered command by name or alias. * + * @return Command + * * @throws CommandNotFoundException When given command name does not exist */ - public function get(string $name): Command + public function get(string $name) { $this->init(); @@ -620,7 +653,7 @@ class Application implements ResetInterface $expr = implode('[^:]*:', array_map('preg_quote', explode(':', $namespace))).'[^:]*'; $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces); - if (!$namespaces) { + if (empty($namespaces)) { $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace); if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) { @@ -650,9 +683,11 @@ class Application implements ResetInterface * Contrary to get, this command tries to find the best * match if you give it an abbreviation of a name or alias. * + * @return Command + * * @throws CommandNotFoundException When command name is incorrect or ambiguous */ - public function find(string $name): Command + public function find(string $name) { $this->init(); @@ -674,12 +709,12 @@ class Application implements ResetInterface $expr = implode('[^:]*:', array_map('preg_quote', explode(':', $name))).'[^:]*'; $commands = preg_grep('{^'.$expr.'}', $allCommands); - if (!$commands) { + if (empty($commands)) { $commands = preg_grep('{^'.$expr.'}i', $allCommands); } // if no commands matched or we just matched namespaces - if (!$commands || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) { + if (empty($commands) || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) { if (false !== $pos = strrpos($name, ':')) { // check if a namespace exists and contains commands $this->findNamespace(substr($name, 0, $pos)); @@ -714,7 +749,7 @@ class Application implements ResetInterface $aliases[$nameOrAlias] = $commandName; - return $commandName === $nameOrAlias || !\in_array($commandName, $commands, true); + return $commandName === $nameOrAlias || !\in_array($commandName, $commands); })); } @@ -760,7 +795,7 @@ class Application implements ResetInterface * * @return Command[] */ - public function all(?string $namespace = null): array + public function all(?string $namespace = null) { $this->init(); @@ -901,8 +936,10 @@ class Application implements ResetInterface /** * Configures the input and output instances based on the user arguments and options. + * + * @return void */ - protected function configureIO(InputInterface $input, OutputInterface $output): void + protected function configureIO(InputInterface $input, OutputInterface $output) { if (true === $input->hasParameterOption(['--ansi'], true)) { $output->setDecorated(true); @@ -967,7 +1004,7 @@ class Application implements ResetInterface * * @return int 0 if everything went fine, or an error code */ - protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output): int + protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output) { foreach ($command->getHelperSet() as $helper) { if ($helper instanceof InputAwareInterface) { @@ -984,7 +1021,7 @@ class Application implements ResetInterface if (Terminal::hasSttyAvailable()) { $sttyMode = shell_exec('stty -g'); - foreach ([\SIGINT, \SIGQUIT, \SIGTERM] as $signal) { + foreach ([\SIGINT, \SIGTERM] as $signal) { $this->signalRegistry->register($signal, static fn () => shell_exec('stty '.$sttyMode)); } } @@ -1001,6 +1038,11 @@ class Application implements ResetInterface // If the command is signalable, we call the handleSignal() method if (\in_array($signal, $commandSignals, true)) { $exitCode = $command->handleSignal($signal, $exitCode); + // BC layer for Symfony <= 5 + if (null === $exitCode) { + trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', get_debug_type($command)); + $exitCode = 0; + } } if (false !== $exitCode) { @@ -1018,7 +1060,14 @@ class Application implements ResetInterface foreach ($commandSignals as $signal) { $this->signalRegistry->register($signal, function (int $signal) use ($command): void { - if (false !== $exitCode = $command->handleSignal($signal)) { + $exitCode = $command->handleSignal($signal); + // BC layer for Symfony <= 5 + if (null === $exitCode) { + trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', get_debug_type($command)); + $exitCode = 0; + } + + if (false !== $exitCode) { exit($exitCode); } }); diff --git a/vendor/symfony/console/Attribute/AsCommand.php b/vendor/symfony/console/Attribute/AsCommand.php index 6066d7c5..b337f548 100644 --- a/vendor/symfony/console/Attribute/AsCommand.php +++ b/vendor/symfony/console/Attribute/AsCommand.php @@ -17,12 +17,6 @@ namespace Symfony\Component\Console\Attribute; #[\Attribute(\Attribute::TARGET_CLASS)] class AsCommand { - /** - * @param string $name The name of the command, used when calling it (i.e. "cache:clear") - * @param string|null $description The description of the command, displayed with the help page - * @param string[] $aliases The list of aliases of the command. The command will be executed when using one of them (i.e. "cache:clean") - * @param bool $hidden If true, the command won't be shown when listing all the available commands, but it can still be run as any other command - */ public function __construct( public string $name, public ?string $description = null, diff --git a/vendor/symfony/console/CHANGELOG.md b/vendor/symfony/console/CHANGELOG.md index 25d7f717..9ccb41d9 100644 --- a/vendor/symfony/console/CHANGELOG.md +++ b/vendor/symfony/console/CHANGELOG.md @@ -1,19 +1,6 @@ CHANGELOG ========= -7.1 ---- - - * Add `ArgvInput::getRawTokens()` - -7.0 ---- - - * Add method `__toString()` to `InputInterface` - * Remove `Command::$defaultName` and `Command::$defaultDescription`, use the `AsCommand` attribute instead - * Require explicit argument when calling `*Command::setApplication()`, `*FormatterStyle::setForeground/setBackground()`, `Helper::setHelpSet()`, `Input*::setDefault()` and `Question::setAutocompleterCallback/setValidator()` - * Remove `StringInput::REGEX_STRING` - 6.4 --- diff --git a/vendor/symfony/console/Command/Command.php b/vendor/symfony/console/Command/Command.php index 03da6db4..9f9cb2f5 100644 --- a/vendor/symfony/console/Command/Command.php +++ b/vendor/symfony/console/Command/Command.php @@ -39,6 +39,20 @@ class Command public const FAILURE = 1; public const INVALID = 2; + /** + * @var string|null The default command name + * + * @deprecated since Symfony 6.1, use the AsCommand attribute instead + */ + protected static $defaultName; + + /** + * @var string|null The default command description + * + * @deprecated since Symfony 6.1, use the AsCommand attribute instead + */ + protected static $defaultDescription; + private ?Application $application = null; private ?string $name = null; private ?string $processTitle = null; @@ -56,20 +70,40 @@ class Command public static function getDefaultName(): ?string { - if ($attribute = (new \ReflectionClass(static::class))->getAttributes(AsCommand::class)) { + $class = static::class; + + if ($attribute = (new \ReflectionClass($class))->getAttributes(AsCommand::class)) { return $attribute[0]->newInstance()->name; } - return null; + $r = new \ReflectionProperty($class, 'defaultName'); + + if ($class !== $r->class || null === static::$defaultName) { + return null; + } + + trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); + + return static::$defaultName; } public static function getDefaultDescription(): ?string { - if ($attribute = (new \ReflectionClass(static::class))->getAttributes(AsCommand::class)) { + $class = static::class; + + if ($attribute = (new \ReflectionClass($class))->getAttributes(AsCommand::class)) { return $attribute[0]->newInstance()->description; } - return null; + $r = new \ReflectionProperty($class, 'defaultDescription'); + + if ($class !== $r->class || null === static::$defaultDescription) { + return null; + } + + trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultDescription" for setting a command description is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); + + return static::$defaultDescription; } /** @@ -107,14 +141,22 @@ class Command * Ignores validation errors. * * This is mainly useful for the help command. + * + * @return void */ - public function ignoreValidationErrors(): void + public function ignoreValidationErrors() { $this->ignoreValidationErrors = true; } - public function setApplication(?Application $application): void + /** + * @return void + */ + public function setApplication(?Application $application = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->application = $application; if ($application) { $this->setHelperSet($application->getHelperSet()); @@ -125,7 +167,10 @@ class Command $this->fullDefinition = null; } - public function setHelperSet(HelperSet $helperSet): void + /** + * @return void + */ + public function setHelperSet(HelperSet $helperSet) { $this->helperSet = $helperSet; } @@ -151,8 +196,10 @@ class Command * * Override this to check for x or y and return false if the command cannot * run properly under the current conditions. + * + * @return bool */ - public function isEnabled(): bool + public function isEnabled() { return true; } @@ -180,7 +227,7 @@ class Command * * @see setCode() */ - protected function execute(InputInterface $input, OutputInterface $output): int + protected function execute(InputInterface $input, OutputInterface $output) { throw new LogicException('You must override the execute() method in the concrete command class.'); } @@ -277,13 +324,17 @@ class Command $statusCode = ($this->code)($input, $output); } else { $statusCode = $this->execute($input, $output); + + if (!\is_int($statusCode)) { + throw new \TypeError(sprintf('Return value of "%s::execute()" must be of the type int, "%s" returned.', static::class, get_debug_type($statusCode))); + } } return is_numeric($statusCode) ? (int) $statusCode : 0; } /** - * Supplies suggestions when resolving possible completion options for input (e.g. option or argument). + * Adds suggestions to $suggestions for the current completion input (e.g. option or argument). */ public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void { @@ -401,16 +452,20 @@ class Command /** * Adds an argument. * - * @param $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL - * @param $default The default value (for InputArgument::OPTIONAL mode only) + * @param $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL + * @param $default The default value (for InputArgument::OPTIONAL mode only) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @return $this * * @throws InvalidArgumentException When argument mode is not valid */ - public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static + public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = null */): static { + $suggestedValues = 5 <= \func_num_args() ? func_get_arg(4) : []; + if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) { + throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues))); + } $this->definition->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues)); $this->fullDefinition?->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues)); @@ -420,17 +475,21 @@ class Command /** * Adds an option. * - * @param $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts - * @param $mode The option mode: One of the InputOption::VALUE_* constants - * @param $default The default value (must be null for InputOption::VALUE_NONE) + * @param $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts + * @param $mode The option mode: One of the InputOption::VALUE_* constants + * @param $default The default value (must be null for InputOption::VALUE_NONE) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @return $this * * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static + public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static { + $suggestedValues = 6 <= \func_num_args() ? func_get_arg(5) : []; + if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) { + throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues))); + } $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues)); $this->fullDefinition?->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues)); @@ -636,10 +695,12 @@ class Command /** * Gets a helper instance by name. * + * @return HelperInterface + * * @throws LogicException if no HelperSet is defined * @throws InvalidArgumentException if the helper is not defined */ - public function getHelper(string $name): HelperInterface + public function getHelper(string $name): mixed { if (null === $this->helperSet) { throw new LogicException(sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name)); diff --git a/vendor/symfony/console/Command/CompleteCommand.php b/vendor/symfony/console/Command/CompleteCommand.php index 38aa737f..23be5577 100644 --- a/vendor/symfony/console/Command/CompleteCommand.php +++ b/vendor/symfony/console/Command/CompleteCommand.php @@ -34,7 +34,18 @@ final class CompleteCommand extends Command { public const COMPLETION_API_VERSION = '1'; + /** + * @deprecated since Symfony 6.1 + */ + protected static $defaultName = '|_complete'; + + /** + * @deprecated since Symfony 6.1 + */ + protected static $defaultDescription = 'Internal command to provide shell completion suggestions'; + private array $completionOutputs; + private bool $isDebug = false; /** diff --git a/vendor/symfony/console/Command/DumpCompletionCommand.php b/vendor/symfony/console/Command/DumpCompletionCommand.php index be6f5459..51b613a1 100644 --- a/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -27,6 +27,16 @@ use Symfony\Component\Process\Process; #[AsCommand(name: 'completion', description: 'Dump the shell completion script')] final class DumpCompletionCommand extends Command { + /** + * @deprecated since Symfony 6.1 + */ + protected static $defaultName = 'completion'; + + /** + * @deprecated since Symfony 6.1 + */ + protected static $defaultDescription = 'Dump the shell completion script'; + private array $supportedShells; protected function configure(): void diff --git a/vendor/symfony/console/Command/HelpCommand.php b/vendor/symfony/console/Command/HelpCommand.php index a2a72dab..e6447b05 100644 --- a/vendor/symfony/console/Command/HelpCommand.php +++ b/vendor/symfony/console/Command/HelpCommand.php @@ -27,7 +27,10 @@ class HelpCommand extends Command { private Command $command; - protected function configure(): void + /** + * @return void + */ + protected function configure() { $this->ignoreValidationErrors(); @@ -54,7 +57,10 @@ EOF ; } - public function setCommand(Command $command): void + /** + * @return void + */ + public function setCommand(Command $command) { $this->command = $command; } diff --git a/vendor/symfony/console/Command/LazyCommand.php b/vendor/symfony/console/Command/LazyCommand.php index fd2c300d..b94da666 100644 --- a/vendor/symfony/console/Command/LazyCommand.php +++ b/vendor/symfony/console/Command/LazyCommand.php @@ -27,21 +27,17 @@ use Symfony\Component\Console\Output\OutputInterface; final class LazyCommand extends Command { private \Closure|Command $command; + private ?bool $isEnabled; - public function __construct( - string $name, - array $aliases, - string $description, - bool $isHidden, - \Closure $commandFactory, - private ?bool $isEnabled = true, - ) { + public function __construct(string $name, array $aliases, string $description, bool $isHidden, \Closure $commandFactory, ?bool $isEnabled = true) + { $this->setName($name) ->setAliases($aliases) ->setHidden($isHidden) ->setDescription($description); $this->command = $commandFactory; + $this->isEnabled = $isEnabled; } public function ignoreValidationErrors(): void @@ -49,8 +45,11 @@ final class LazyCommand extends Command $this->getCommand()->ignoreValidationErrors(); } - public function setApplication(?Application $application): void + public function setApplication(?Application $application = null): void { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } if ($this->command instanceof parent) { $this->command->setApplication($application); } @@ -117,8 +116,9 @@ final class LazyCommand extends Command /** * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion */ - public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static + public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static { + $suggestedValues = 5 <= \func_num_args() ? func_get_arg(4) : []; $this->getCommand()->addArgument($name, $mode, $description, $default, $suggestedValues); return $this; @@ -127,8 +127,9 @@ final class LazyCommand extends Command /** * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion */ - public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static + public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static { + $suggestedValues = 6 <= \func_num_args() ? func_get_arg(5) : []; $this->getCommand()->addOption($name, $shortcut, $mode, $description, $default, $suggestedValues); return $this; diff --git a/vendor/symfony/console/Command/ListCommand.php b/vendor/symfony/console/Command/ListCommand.php index 61b4b1b3..5850c3d7 100644 --- a/vendor/symfony/console/Command/ListCommand.php +++ b/vendor/symfony/console/Command/ListCommand.php @@ -25,7 +25,10 @@ use Symfony\Component\Console\Output\OutputInterface; */ class ListCommand extends Command { - protected function configure(): void + /** + * @return void + */ + protected function configure() { $this ->setName('list') diff --git a/vendor/symfony/console/Command/LockableTrait.php b/vendor/symfony/console/Command/LockableTrait.php index f0001cc5..cd7548f0 100644 --- a/vendor/symfony/console/Command/LockableTrait.php +++ b/vendor/symfony/console/Command/LockableTrait.php @@ -26,8 +26,6 @@ trait LockableTrait { private ?LockInterface $lock = null; - private ?LockFactory $lockFactory = null; - /** * Locks a command. */ @@ -41,17 +39,13 @@ trait LockableTrait throw new LogicException('A lock is already in place.'); } - if (null === $this->lockFactory) { - if (SemaphoreStore::isSupported()) { - $store = new SemaphoreStore(); - } else { - $store = new FlockStore(); - } - - $this->lockFactory = (new LockFactory($store)); + if (SemaphoreStore::isSupported()) { + $store = new SemaphoreStore(); + } else { + $store = new FlockStore(); } - $this->lock = $this->lockFactory->createLock($name ?: $this->getName()); + $this->lock = (new LockFactory($store))->createLock($name ?: $this->getName()); if (!$this->lock->acquire($blocking)) { $this->lock = null; diff --git a/vendor/symfony/console/Command/SignalableCommandInterface.php b/vendor/symfony/console/Command/SignalableCommandInterface.php index 40b301d1..f8eb8e52 100644 --- a/vendor/symfony/console/Command/SignalableCommandInterface.php +++ b/vendor/symfony/console/Command/SignalableCommandInterface.php @@ -26,7 +26,9 @@ interface SignalableCommandInterface /** * The method will be called when the application is signaled. * + * @param int|false $previousExitCode + * * @return int|false The exit code to return or false to continue the normal execution */ - public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false; + public function handleSignal(int $signal, /* int|false $previousExitCode = 0 */); } diff --git a/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php index 84e25be7..bfa0ac46 100644 --- a/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ b/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php @@ -22,13 +22,16 @@ use Symfony\Component\Console\Exception\CommandNotFoundException; */ class ContainerCommandLoader implements CommandLoaderInterface { + private ContainerInterface $container; + private array $commandMap; + /** * @param array $commandMap An array with command names as keys and service ids as values */ - public function __construct( - private ContainerInterface $container, - private array $commandMap, - ) { + public function __construct(ContainerInterface $container, array $commandMap) + { + $this->container = $container; + $this->commandMap = $commandMap; } public function get(string $name): Command diff --git a/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php index ae16bf6f..9ced75ae 100644 --- a/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ b/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php @@ -21,12 +21,14 @@ use Symfony\Component\Console\Exception\CommandNotFoundException; */ class FactoryCommandLoader implements CommandLoaderInterface { + private array $factories; + /** * @param callable[] $factories Indexed by command names */ - public function __construct( - private array $factories, - ) { + public function __construct(array $factories) + { + $this->factories = $factories; } public function has(string $name): bool diff --git a/vendor/symfony/console/Completion/CompletionInput.php b/vendor/symfony/console/Completion/CompletionInput.php index 7ba41c08..79c2f659 100644 --- a/vendor/symfony/console/Completion/CompletionInput.php +++ b/vendor/symfony/console/Completion/CompletionInput.php @@ -53,7 +53,7 @@ final class CompletionInput extends ArgvInput * Create an input based on an COMP_WORDS token list. * * @param string[] $tokens the set of split tokens (e.g. COMP_WORDS or argv) - * @param $currentIndex the index of the cursor (e.g. COMP_CWORD) + * @param int $currentIndex the index of the cursor (e.g. COMP_CWORD) */ public static function fromTokens(array $tokens, int $currentIndex): self { diff --git a/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/vendor/symfony/console/Completion/Output/FishCompletionOutput.php index 356a974e..d2c414e4 100644 --- a/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ b/vendor/symfony/console/Completion/Output/FishCompletionOutput.php @@ -21,14 +21,11 @@ class FishCompletionOutput implements CompletionOutputInterface { public function write(CompletionSuggestions $suggestions, OutputInterface $output): void { - $values = []; - foreach ($suggestions->getValueSuggestions() as $value) { - $values[] = $value->getValue().($value->getDescription() ? "\t".$value->getDescription() : ''); - } + $values = $suggestions->getValueSuggestions(); foreach ($suggestions->getOptionSuggestions() as $option) { - $values[] = '--'.$option->getName().($option->getDescription() ? "\t".$option->getDescription() : ''); + $values[] = '--'.$option->getName(); if ($option->isNegatable()) { - $values[] = '--no-'.$option->getName().($option->getDescription() ? "\t".$option->getDescription() : ''); + $values[] = '--no-'.$option->getName(); } } $output->write(implode("\n", $values)); diff --git a/vendor/symfony/console/Completion/Suggestion.php b/vendor/symfony/console/Completion/Suggestion.php index 3251b079..7392965a 100644 --- a/vendor/symfony/console/Completion/Suggestion.php +++ b/vendor/symfony/console/Completion/Suggestion.php @@ -20,7 +20,7 @@ class Suggestion implements \Stringable { public function __construct( private readonly string $value, - private readonly string $description = '', + private readonly string $description = '' ) { } diff --git a/vendor/symfony/console/Cursor.php b/vendor/symfony/console/Cursor.php index 965f996e..69fd3821 100644 --- a/vendor/symfony/console/Cursor.php +++ b/vendor/symfony/console/Cursor.php @@ -18,16 +18,16 @@ use Symfony\Component\Console\Output\OutputInterface; */ final class Cursor { + private OutputInterface $output; /** @var resource */ private $input; /** * @param resource|null $input */ - public function __construct( - private OutputInterface $output, - $input = null, - ) { + public function __construct(OutputInterface $output, $input = null) + { + $this->output = $output; $this->input = $input ?? (\defined('STDIN') ? \STDIN : fopen('php://input', 'r+')); } diff --git a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index f712c614..27705ddb 100644 --- a/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -29,7 +29,10 @@ use Symfony\Component\DependencyInjection\TypedReference; */ class AddConsoleCommandPass implements CompilerPassInterface { - public function process(ContainerBuilder $container): void + /** + * @return void + */ + public function process(ContainerBuilder $container) { $commandServices = $container->findTaggedServiceIds('console.command', true); $lazyCommandMap = []; diff --git a/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/symfony/console/Descriptor/ApplicationDescription.php index 5149fde4..ef9e8a63 100644 --- a/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -24,6 +24,9 @@ class ApplicationDescription { public const GLOBAL_NAMESPACE = '_global'; + private Application $application; + private ?string $namespace; + private bool $showHidden; private array $namespaces; /** @@ -36,11 +39,11 @@ class ApplicationDescription */ private array $aliases = []; - public function __construct( - private Application $application, - private ?string $namespace = null, - private bool $showHidden = false, - ) { + public function __construct(Application $application, ?string $namespace = null, bool $showHidden = false) + { + $this->application = $application; + $this->namespace = $namespace; + $this->showHidden = $showHidden; } public function getNamespaces(): array diff --git a/vendor/symfony/console/Descriptor/DescriptorInterface.php b/vendor/symfony/console/Descriptor/DescriptorInterface.php index 04e5a7c8..ab468a25 100644 --- a/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ b/vendor/symfony/console/Descriptor/DescriptorInterface.php @@ -20,5 +20,8 @@ use Symfony\Component\Console\Output\OutputInterface; */ interface DescriptorInterface { - public function describe(OutputInterface $output, object $object, array $options = []): void; + /** + * @return void + */ + public function describe(OutputInterface $output, object $object, array $options = []); } diff --git a/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php index f12fecb6..d4423fd3 100644 --- a/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ b/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php @@ -226,7 +226,7 @@ class ReStructuredTextDescriptor extends Descriptor $nonDefaultOptions = []; foreach ($definition->getOptions() as $option) { // Skip global options. - if (!\in_array($option->getName(), $globalOptions, true)) { + if (!\in_array($option->getName(), $globalOptions)) { $nonDefaultOptions[] = $option; } } diff --git a/vendor/symfony/console/Descriptor/XmlDescriptor.php b/vendor/symfony/console/Descriptor/XmlDescriptor.php index 8e44c88c..866c7185 100644 --- a/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -208,7 +208,7 @@ class XmlDescriptor extends Descriptor $defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [var_export($option->getDefault(), true)] : ($option->getDefault() ? [$option->getDefault()] : [])); $objectXML->appendChild($defaultsXML = $dom->createElement('defaults')); - if ($defaults) { + if (!empty($defaults)) { foreach ($defaults as $default) { $defaultsXML->appendChild($defaultXML = $dom->createElement('default')); $defaultXML->appendChild($dom->createTextNode($default)); diff --git a/vendor/symfony/console/Event/ConsoleErrorEvent.php b/vendor/symfony/console/Event/ConsoleErrorEvent.php index 1c0d6265..7be2ff83 100644 --- a/vendor/symfony/console/Event/ConsoleErrorEvent.php +++ b/vendor/symfony/console/Event/ConsoleErrorEvent.php @@ -22,15 +22,14 @@ use Symfony\Component\Console\Output\OutputInterface; */ final class ConsoleErrorEvent extends ConsoleEvent { + private \Throwable $error; private int $exitCode; - public function __construct( - InputInterface $input, - OutputInterface $output, - private \Throwable $error, - ?Command $command = null, - ) { + public function __construct(InputInterface $input, OutputInterface $output, \Throwable $error, ?Command $command = null) + { parent::__construct($command, $input, $output); + + $this->error = $error; } public function getError(): \Throwable diff --git a/vendor/symfony/console/Event/ConsoleEvent.php b/vendor/symfony/console/Event/ConsoleEvent.php index 2f9f0778..6ba1615f 100644 --- a/vendor/symfony/console/Event/ConsoleEvent.php +++ b/vendor/symfony/console/Event/ConsoleEvent.php @@ -23,11 +23,16 @@ use Symfony\Contracts\EventDispatcher\Event; */ class ConsoleEvent extends Event { - public function __construct( - protected ?Command $command, - private InputInterface $input, - private OutputInterface $output, - ) { + protected $command; + + private InputInterface $input; + private OutputInterface $output; + + public function __construct(?Command $command, InputInterface $input, OutputInterface $output) + { + $this->command = $command; + $this->input = $input; + $this->output = $output; } /** diff --git a/vendor/symfony/console/Event/ConsoleSignalEvent.php b/vendor/symfony/console/Event/ConsoleSignalEvent.php index b27f08a1..95af1f91 100644 --- a/vendor/symfony/console/Event/ConsoleSignalEvent.php +++ b/vendor/symfony/console/Event/ConsoleSignalEvent.php @@ -20,14 +20,14 @@ use Symfony\Component\Console\Output\OutputInterface; */ final class ConsoleSignalEvent extends ConsoleEvent { - public function __construct( - Command $command, - InputInterface $input, - OutputInterface $output, - private int $handlingSignal, - private int|false $exitCode = 0, - ) { + private int $handlingSignal; + private int|false $exitCode; + + public function __construct(Command $command, InputInterface $input, OutputInterface $output, int $handlingSignal, int|false $exitCode = 0) + { parent::__construct($command, $input, $output); + $this->handlingSignal = $handlingSignal; + $this->exitCode = $exitCode; } public function getHandlingSignal(): int diff --git a/vendor/symfony/console/EventListener/ErrorListener.php b/vendor/symfony/console/EventListener/ErrorListener.php index 49915a49..c9ec2443 100644 --- a/vendor/symfony/console/EventListener/ErrorListener.php +++ b/vendor/symfony/console/EventListener/ErrorListener.php @@ -24,12 +24,17 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; */ class ErrorListener implements EventSubscriberInterface { - public function __construct( - private ?LoggerInterface $logger = null, - ) { + private ?LoggerInterface $logger; + + public function __construct(?LoggerInterface $logger = null) + { + $this->logger = $logger; } - public function onConsoleError(ConsoleErrorEvent $event): void + /** + * @return void + */ + public function onConsoleError(ConsoleErrorEvent $event) { if (null === $this->logger) { return; @@ -46,7 +51,10 @@ class ErrorListener implements EventSubscriberInterface $this->logger->critical('Error thrown while running command "{command}". Message: "{message}"', ['exception' => $error, 'command' => $inputString, 'message' => $error->getMessage()]); } - public function onConsoleTerminate(ConsoleTerminateEvent $event): void + /** + * @return void + */ + public function onConsoleTerminate(ConsoleTerminateEvent $event) { if (null === $this->logger) { return; diff --git a/vendor/symfony/console/Exception/CommandNotFoundException.php b/vendor/symfony/console/Exception/CommandNotFoundException.php index 246f04fa..541b32b2 100644 --- a/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -18,19 +18,19 @@ namespace Symfony\Component\Console\Exception; */ class CommandNotFoundException extends \InvalidArgumentException implements ExceptionInterface { + private array $alternatives; + /** * @param string $message Exception message to throw * @param string[] $alternatives List of similar defined names * @param int $code Exception code * @param \Throwable|null $previous Previous exception used for the exception chaining */ - public function __construct( - string $message, - private array $alternatives = [], - int $code = 0, - ?\Throwable $previous = null, - ) { + public function __construct(string $message, array $alternatives = [], int $code = 0, ?\Throwable $previous = null) + { parent::__construct($message, $code, $previous); + + $this->alternatives = $alternatives; } /** diff --git a/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index 06fa6e40..ae23decb 100644 --- a/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -21,13 +21,19 @@ final class NullOutputFormatterStyle implements OutputFormatterStyleInterface return $text; } - public function setBackground(?string $color): void + public function setBackground(?string $color = null): void { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } // do nothing } - public function setForeground(?string $color): void + public function setForeground(?string $color = null): void { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } // do nothing } diff --git a/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/symfony/console/Formatter/OutputFormatter.php index 8e81e590..3e4897c3 100644 --- a/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/symfony/console/Formatter/OutputFormatter.php @@ -83,7 +83,10 @@ class OutputFormatter implements WrappableOutputFormatterInterface $this->styleStack = new OutputFormatterStyleStack(); } - public function setDecorated(bool $decorated): void + /** + * @return void + */ + public function setDecorated(bool $decorated) { $this->decorated = $decorated; } @@ -93,7 +96,10 @@ class OutputFormatter implements WrappableOutputFormatterInterface return $this->decorated; } - public function setStyle(string $name, OutputFormatterStyleInterface $style): void + /** + * @return void + */ + public function setStyle(string $name, OutputFormatterStyleInterface $style) { $this->styles[strtolower($name)] = $style; } @@ -117,7 +123,10 @@ class OutputFormatter implements WrappableOutputFormatterInterface return $this->formatAndWrap($message, 0); } - public function formatAndWrap(?string $message, int $width): string + /** + * @return string + */ + public function formatAndWrap(?string $message, int $width) { if (null === $message) { return ''; diff --git a/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/vendor/symfony/console/Formatter/OutputFormatterInterface.php index 947347fa..433cd419 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ b/vendor/symfony/console/Formatter/OutputFormatterInterface.php @@ -20,8 +20,10 @@ interface OutputFormatterInterface { /** * Sets the decorated flag. + * + * @return void */ - public function setDecorated(bool $decorated): void; + public function setDecorated(bool $decorated); /** * Whether the output will decorate messages. @@ -30,8 +32,10 @@ interface OutputFormatterInterface /** * Sets a new style. + * + * @return void */ - public function setStyle(string $name, OutputFormatterStyleInterface $style): void; + public function setStyle(string $name, OutputFormatterStyleInterface $style); /** * Checks if output formatter has style with specified name. diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/symfony/console/Formatter/OutputFormatterStyle.php index 20a65b51..21e7f5ab 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -38,13 +38,25 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface $this->color = new Color($this->foreground = $foreground ?: '', $this->background = $background ?: '', $this->options = $options); } - public function setForeground(?string $color): void + /** + * @return void + */ + public function setForeground(?string $color = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->color = new Color($this->foreground = $color ?: '', $this->background, $this->options); } - public function setBackground(?string $color): void + /** + * @return void + */ + public function setBackground(?string $color = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->color = new Color($this->foreground, $this->background = $color ?: '', $this->options); } @@ -53,13 +65,19 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface $this->href = $url; } - public function setOption(string $option): void + /** + * @return void + */ + public function setOption(string $option) { $this->options[] = $option; $this->color = new Color($this->foreground, $this->background, $this->options); } - public function unsetOption(string $option): void + /** + * @return void + */ + public function unsetOption(string $option) { $pos = array_search($option, $this->options); if (false !== $pos) { @@ -69,7 +87,10 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface $this->color = new Color($this->foreground, $this->background, $this->options); } - public function setOptions(array $options): void + /** + * @return void + */ + public function setOptions(array $options) { $this->color = new Color($this->foreground, $this->background, $this->options = $options); } diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index 03741927..3b15098c 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -20,28 +20,38 @@ interface OutputFormatterStyleInterface { /** * Sets style foreground color. + * + * @return void */ - public function setForeground(?string $color): void; + public function setForeground(?string $color); /** * Sets style background color. + * + * @return void */ - public function setBackground(?string $color): void; + public function setBackground(?string $color); /** * Sets some specific style option. + * + * @return void */ - public function setOption(string $option): void; + public function setOption(string $option); /** * Unsets some specific style option. + * + * @return void */ - public function unsetOption(string $option): void; + public function unsetOption(string $option); /** * Sets multiple style options at once. + * + * @return void */ - public function setOptions(array $options): void; + public function setOptions(array $options); /** * Applies the style to a given text. diff --git a/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index 4985213a..62d2ca0e 100644 --- a/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -34,16 +34,20 @@ class OutputFormatterStyleStack implements ResetInterface /** * Resets stack (ie. empty internal arrays). + * + * @return void */ - public function reset(): void + public function reset() { $this->styles = []; } /** * Pushes a style in the stack. + * + * @return void */ - public function push(OutputFormatterStyleInterface $style): void + public function push(OutputFormatterStyleInterface $style) { $this->styles[] = $style; } diff --git a/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php index 412d9976..746cd27e 100644 --- a/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ b/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php @@ -20,6 +20,8 @@ interface WrappableOutputFormatterInterface extends OutputFormatterInterface { /** * Formats a message according to the given styles, wrapping at `$width` (0 means no wrapping). + * + * @return string */ - public function formatAndWrap(?string $message, int $width): string; + public function formatAndWrap(?string $message, int $width); } diff --git a/vendor/symfony/console/Helper/DescriptorHelper.php b/vendor/symfony/console/Helper/DescriptorHelper.php index 300c7b10..eb32bce8 100644 --- a/vendor/symfony/console/Helper/DescriptorHelper.php +++ b/vendor/symfony/console/Helper/DescriptorHelper.php @@ -50,9 +50,11 @@ class DescriptorHelper extends Helper * * format: string, the output format name * * raw_text: boolean, sets output type as raw * + * @return void + * * @throws InvalidArgumentException when the given format is not supported */ - public function describe(OutputInterface $output, ?object $object, array $options = []): void + public function describe(OutputInterface $output, ?object $object, array $options = []) { $options = array_merge([ 'raw_text' => false, diff --git a/vendor/symfony/console/Helper/Dumper.php b/vendor/symfony/console/Helper/Dumper.php index 0cd01e61..a3b8e395 100644 --- a/vendor/symfony/console/Helper/Dumper.php +++ b/vendor/symfony/console/Helper/Dumper.php @@ -21,13 +21,17 @@ use Symfony\Component\VarDumper\Dumper\CliDumper; */ final class Dumper { + private OutputInterface $output; + private ?CliDumper $dumper; + private ?ClonerInterface $cloner; private \Closure $handler; - public function __construct( - private OutputInterface $output, - private ?CliDumper $dumper = null, - private ?ClonerInterface $cloner = null, - ) { + public function __construct(OutputInterface $output, ?CliDumper $dumper = null, ?ClonerInterface $cloner = null) + { + $this->output = $output; + $this->dumper = $dumper; + $this->cloner = $cloner; + if (class_exists(CliDumper::class)) { $this->handler = function ($var): string { $dumper = $this->dumper ??= new CliDumper(null, null, CliDumper::DUMP_LIGHT_ARRAY | CliDumper::DUMP_COMMA_SEPARATOR); diff --git a/vendor/symfony/console/Helper/Helper.php b/vendor/symfony/console/Helper/Helper.php index de090063..05be6478 100644 --- a/vendor/symfony/console/Helper/Helper.php +++ b/vendor/symfony/console/Helper/Helper.php @@ -21,10 +21,16 @@ use Symfony\Component\String\UnicodeString; */ abstract class Helper implements HelperInterface { - protected ?HelperSet $helperSet = null; + protected $helperSet; - public function setHelperSet(?HelperSet $helperSet): void + /** + * @return void + */ + public function setHelperSet(?HelperSet $helperSet = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->helperSet = $helperSet; } @@ -85,7 +91,10 @@ abstract class Helper implements HelperInterface return mb_substr($string, $from, $length, $encoding); } - public static function formatTime(int|float $secs, int $precision = 1): string + /** + * @return string + */ + public static function formatTime(int|float $secs, int $precision = 1) { $secs = (int) floor($secs); @@ -125,7 +134,10 @@ abstract class Helper implements HelperInterface return implode(', ', array_reverse($times)); } - public static function formatMemory(int $memory): string + /** + * @return string + */ + public static function formatMemory(int $memory) { if ($memory >= 1024 * 1024 * 1024) { return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024); @@ -142,7 +154,10 @@ abstract class Helper implements HelperInterface return sprintf('%d B', $memory); } - public static function removeDecoration(OutputFormatterInterface $formatter, ?string $string): string + /** + * @return string + */ + public static function removeDecoration(OutputFormatterInterface $formatter, ?string $string) { $isDecorated = $formatter->isDecorated(); $formatter->setDecorated(false); diff --git a/vendor/symfony/console/Helper/HelperInterface.php b/vendor/symfony/console/Helper/HelperInterface.php index 8c4da3c9..ab626c93 100644 --- a/vendor/symfony/console/Helper/HelperInterface.php +++ b/vendor/symfony/console/Helper/HelperInterface.php @@ -20,8 +20,10 @@ interface HelperInterface { /** * Sets the helper set associated with this helper. + * + * @return void */ - public function setHelperSet(?HelperSet $helperSet): void; + public function setHelperSet(?HelperSet $helperSet); /** * Gets the helper set associated with this helper. @@ -30,6 +32,8 @@ interface HelperInterface /** * Returns the canonical name of this helper. + * + * @return string */ - public function getName(): string; + public function getName(); } diff --git a/vendor/symfony/console/Helper/HelperSet.php b/vendor/symfony/console/Helper/HelperSet.php index 30df9f95..f8c74ca2 100644 --- a/vendor/symfony/console/Helper/HelperSet.php +++ b/vendor/symfony/console/Helper/HelperSet.php @@ -35,7 +35,10 @@ class HelperSet implements \IteratorAggregate } } - public function set(HelperInterface $helper, ?string $alias = null): void + /** + * @return void + */ + public function set(HelperInterface $helper, ?string $alias = null) { $this->helpers[$helper->getName()] = $helper; if (null !== $alias) { diff --git a/vendor/symfony/console/Helper/InputAwareHelper.php b/vendor/symfony/console/Helper/InputAwareHelper.php index 47126bda..6f822597 100644 --- a/vendor/symfony/console/Helper/InputAwareHelper.php +++ b/vendor/symfony/console/Helper/InputAwareHelper.php @@ -21,9 +21,12 @@ use Symfony\Component\Console\Input\InputInterface; */ abstract class InputAwareHelper extends Helper implements InputAwareInterface { - protected InputInterface $input; + protected $input; - public function setInput(InputInterface $input): void + /** + * @return void + */ + public function setInput(InputInterface $input) { $this->input = $input; } diff --git a/vendor/symfony/console/Helper/OutputWrapper.php b/vendor/symfony/console/Helper/OutputWrapper.php index 0ea2b705..2ec819c7 100644 --- a/vendor/symfony/console/Helper/OutputWrapper.php +++ b/vendor/symfony/console/Helper/OutputWrapper.php @@ -49,7 +49,7 @@ final class OutputWrapper private const URL_PATTERN = 'https?://\S+'; public function __construct( - private bool $allowCutUrls = false, + private bool $allowCutUrls = false ) { } diff --git a/vendor/symfony/console/Helper/ProgressBar.php b/vendor/symfony/console/Helper/ProgressBar.php index 7c22b7d5..b406292b 100644 --- a/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/symfony/console/Helper/ProgressBar.php @@ -195,7 +195,7 @@ final class ProgressBar public function getMaxSteps(): int { - return $this->max ?? 0; + return $this->max; } public function getProgress(): int @@ -215,7 +215,7 @@ final class ProgressBar public function getBarOffset(): float { - return floor(null !== $this->max ? $this->percent * $this->barWidth : (null === $this->redrawFreq ? (int) (min(5, $this->barWidth / 15) * $this->writeCount) : $this->step) % $this->barWidth); + return floor($this->max ? $this->percent * $this->barWidth : (null === $this->redrawFreq ? (int) (min(5, $this->barWidth / 15) * $this->writeCount) : $this->step) % $this->barWidth); } public function getEstimated(): float @@ -253,7 +253,7 @@ final class ProgressBar public function getBarCharacter(): string { - return $this->barChar ?? (null !== $this->max ? '=' : $this->emptyBarChar); + return $this->barChar ?? ($this->max ? '=' : $this->emptyBarChar); } public function setEmptyBarCharacter(string $char): void @@ -315,21 +315,7 @@ final class ProgressBar */ public function iterate(iterable $iterable, ?int $max = null): iterable { - if (0 === $max) { - $max = null; - } - - $max ??= is_countable($iterable) ? \count($iterable) : null; - - if (0 === $max) { - $this->max = 0; - $this->stepWidth = 2; - $this->finish(); - - return; - } - - $this->start($max); + $this->start($max ?? (is_countable($iterable) ? \count($iterable) : 0)); foreach ($iterable as $key => $value) { yield $key => $value; @@ -387,15 +373,11 @@ final class ProgressBar $step = 0; } - $redrawFreq = $this->redrawFreq ?? (($this->max ?? 10) / 10); - $prevPeriod = $redrawFreq ? (int) ($this->step / $redrawFreq) : 0; - $currPeriod = $redrawFreq ? (int) ($step / $redrawFreq) : 0; + $redrawFreq = $this->redrawFreq ?? (($this->max ?: 10) / 10); + $prevPeriod = (int) ($this->step / $redrawFreq); + $currPeriod = (int) ($step / $redrawFreq); $this->step = $step; - $this->percent = match ($this->max) { - null => 0, - 0 => 1, - default => (float) $this->step / $this->max, - }; + $this->percent = $this->max ? (float) $this->step / $this->max : 0; $timeInterval = microtime(true) - $this->lastWriteTime; // Draw regardless of other limits @@ -416,20 +398,11 @@ final class ProgressBar } } - public function setMaxSteps(?int $max): void + public function setMaxSteps(int $max): void { - if (0 === $max) { - $max = null; - } - $this->format = null; - if (null === $max) { - $this->max = null; - $this->stepWidth = 4; - } else { - $this->max = max(0, $max); - $this->stepWidth = Helper::width((string) $this->max); - } + $this->max = max(0, $max); + $this->stepWidth = $this->max ? Helper::width((string) $this->max) : 4; } /** @@ -437,16 +410,16 @@ final class ProgressBar */ public function finish(): void { - if (null === $this->max) { + if (!$this->max) { $this->max = $this->step; } - if (($this->step === $this->max || null === $this->max) && !$this->overwrite) { + if ($this->step === $this->max && !$this->overwrite) { // prevent double 100% output return; } - $this->setProgress($this->max ?? $this->step); + $this->setProgress($this->max); } /** @@ -569,14 +542,14 @@ final class ProgressBar }, 'elapsed' => fn (self $bar) => Helper::formatTime(time() - $bar->getStartTime(), 2), 'remaining' => function (self $bar) { - if (null === $bar->getMaxSteps()) { + if (!$bar->getMaxSteps()) { throw new LogicException('Unable to display the remaining time if the maximum number of steps is not set.'); } return Helper::formatTime($bar->getRemaining(), 2); }, 'estimated' => function (self $bar) { - if (null === $bar->getMaxSteps()) { + if (!$bar->getMaxSteps()) { throw new LogicException('Unable to display the estimated time if the maximum number of steps is not set.'); } diff --git a/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/symfony/console/Helper/ProgressIndicator.php index 969d8353..92106caf 100644 --- a/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/symfony/console/Helper/ProgressIndicator.php @@ -31,11 +31,13 @@ class ProgressIndicator 'very_verbose_no_ansi' => ' %message% (%elapsed:6s%, %memory:6s%)', ]; + private OutputInterface $output; private int $startTime; private ?string $format = null; private ?string $message = null; private array $indicatorValues; private int $indicatorCurrent; + private int $indicatorChangeInterval; private float $indicatorUpdateTime; private bool $started = false; @@ -48,12 +50,9 @@ class ProgressIndicator * @param int $indicatorChangeInterval Change interval in milliseconds * @param array|null $indicatorValues Animated indicator characters */ - public function __construct( - private OutputInterface $output, - ?string $format = null, - private int $indicatorChangeInterval = 100, - ?array $indicatorValues = null, - ) { + public function __construct(OutputInterface $output, ?string $format = null, int $indicatorChangeInterval = 100, ?array $indicatorValues = null) + { + $this->output = $output; $format ??= $this->determineBestFormat(); $indicatorValues ??= ['-', '\\', '|', '/']; @@ -64,14 +63,17 @@ class ProgressIndicator } $this->format = self::getFormatDefinition($format); + $this->indicatorChangeInterval = $indicatorChangeInterval; $this->indicatorValues = $indicatorValues; $this->startTime = time(); } /** * Sets the current indicator message. + * + * @return void */ - public function setMessage(?string $message): void + public function setMessage(?string $message) { $this->message = $message; @@ -80,8 +82,10 @@ class ProgressIndicator /** * Starts the indicator output. + * + * @return void */ - public function start(string $message): void + public function start(string $message) { if ($this->started) { throw new LogicException('Progress indicator already started.'); @@ -98,8 +102,10 @@ class ProgressIndicator /** * Advances the indicator. + * + * @return void */ - public function advance(): void + public function advance() { if (!$this->started) { throw new LogicException('Progress indicator has not yet been started.'); @@ -123,8 +129,10 @@ class ProgressIndicator /** * Finish the indicator with message. + * + * @return void */ - public function finish(string $message): void + public function finish(string $message) { if (!$this->started) { throw new LogicException('Progress indicator has not yet been started.'); @@ -148,8 +156,10 @@ class ProgressIndicator * Sets a placeholder formatter for a given name. * * This method also allow you to override an existing placeholder. + * + * @return void */ - public static function setPlaceholderFormatterDefinition(string $name, callable $callable): void + public static function setPlaceholderFormatterDefinition(string $name, callable $callable) { self::$formatters ??= self::initPlaceholderFormatters(); diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 54825c6c..b40b1319 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -34,6 +34,11 @@ use function Symfony\Component\String\s; */ class QuestionHelper extends Helper { + /** + * @var resource|null + */ + private $inputStream; + private static bool $stty = true; private static bool $stdinIsInteractive; @@ -54,15 +59,16 @@ class QuestionHelper extends Helper return $this->getDefaultAnswer($question); } - $inputStream = $input instanceof StreamableInputInterface ? $input->getStream() : null; - $inputStream ??= STDIN; + if ($input instanceof StreamableInputInterface && $stream = $input->getStream()) { + $this->inputStream = $stream; + } try { if (!$question->getValidator()) { - return $this->doAsk($inputStream, $output, $question); + return $this->doAsk($output, $question); } - $interviewer = fn () => $this->doAsk($inputStream, $output, $question); + $interviewer = fn () => $this->doAsk($output, $question); return $this->validateAttempts($interviewer, $output, $question); } catch (MissingInputException $exception) { @@ -83,8 +89,10 @@ class QuestionHelper extends Helper /** * Prevents usage of stty. + * + * @return void */ - public static function disableStty(): void + public static function disableStty() { self::$stty = false; } @@ -92,14 +100,13 @@ class QuestionHelper extends Helper /** * Asks the question to the user. * - * @param resource $inputStream - * * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden */ - private function doAsk($inputStream, OutputInterface $output, Question $question): mixed + private function doAsk(OutputInterface $output, Question $question): mixed { $this->writePrompt($output, $question); + $inputStream = $this->inputStream ?: \STDIN; $autocomplete = $question->getAutocompleterCallback(); if (null === $autocomplete || !self::$stty || !Terminal::hasSttyAvailable()) { @@ -183,8 +190,10 @@ class QuestionHelper extends Helper /** * Outputs the question prompt. + * + * @return void */ - protected function writePrompt(OutputInterface $output, Question $question): void + protected function writePrompt(OutputInterface $output, Question $question) { $message = $question->getQuestion(); @@ -219,8 +228,10 @@ class QuestionHelper extends Helper /** * Outputs an error message. + * + * @return void */ - protected function writeError(OutputInterface $output, \Exception $error): void + protected function writeError(OutputInterface $output, \Exception $error) { if (null !== $this->getHelperSet() && $this->getHelperSet()->has('formatter')) { $message = $this->getHelperSet()->get('formatter')->formatBlock($error->getMessage(), 'error'); diff --git a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index 48d947b7..8ebc8437 100644 --- a/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -25,7 +25,10 @@ use Symfony\Component\Console\Style\SymfonyStyle; */ class SymfonyQuestionHelper extends QuestionHelper { - protected function writePrompt(OutputInterface $output, Question $question): void + /** + * @return void + */ + protected function writePrompt(OutputInterface $output, Question $question) { $text = OutputFormatter::escapeTrailingBackslash($question->getQuestion()); $default = $question->getDefault(); @@ -80,7 +83,10 @@ class SymfonyQuestionHelper extends QuestionHelper $output->write($prompt); } - protected function writeError(OutputInterface $output, \Exception $error): void + /** + * @return void + */ + protected function writeError(OutputInterface $output, \Exception $error) { if ($output instanceof SymfonyStyle) { $output->newLine(); diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 09709a28..1f026dc5 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -45,6 +45,7 @@ class Table private array $rows = []; private array $effectiveColumnWidths = []; private int $numberOfColumns; + private OutputInterface $output; private TableStyle $style; private array $columnStyles = []; private array $columnWidths = []; @@ -54,9 +55,10 @@ class Table private static array $styles; - public function __construct( - private OutputInterface $output, - ) { + public function __construct(OutputInterface $output) + { + $this->output = $output; + self::$styles ??= self::initStyles(); $this->setStyle('default'); @@ -64,8 +66,10 @@ class Table /** * Sets a style definition. + * + * @return void */ - public static function setStyleDefinition(string $name, TableStyle $style): void + public static function setStyleDefinition(string $name, TableStyle $style) { self::$styles ??= self::initStyles(); @@ -190,7 +194,7 @@ class Table /** * @return $this */ - public function setRows(array $rows): static + public function setRows(array $rows) { $this->rows = []; @@ -308,8 +312,10 @@ class Table * | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien | * +---------------+-----------------------+------------------+ + * + * @return void */ - public function render(): void + public function render() { $divider = new TableSeparator(); $isCellWithColspan = static fn ($cell) => $cell instanceof TableCell && $cell->getColspan() >= 2; @@ -719,7 +725,7 @@ class Table foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) { // we need to know if $unmergedRow will be merged or inserted into $rows - if (isset($rows[$unmergedRowKey]) && \is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRow) <= $this->numberOfColumns)) { + if (isset($rows[$unmergedRowKey]) && \is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) { foreach ($unmergedRow as $cellKey => $cell) { // insert cell into row at cellKey position array_splice($rows[$unmergedRowKey], $cellKey, 0, [$cell]); @@ -727,8 +733,8 @@ class Table } else { $row = $this->copyRow($rows, $unmergedRowKey - 1); foreach ($unmergedRow as $column => $cell) { - if ($cell) { - $row[$column] = $cell; + if (!empty($cell)) { + $row[$column] = $unmergedRow[$column]; } } array_splice($rows, $unmergedRowKey, 0, [$row]); diff --git a/vendor/symfony/console/Helper/TableCell.php b/vendor/symfony/console/Helper/TableCell.php index 1c4eeea2..394b2bc9 100644 --- a/vendor/symfony/console/Helper/TableCell.php +++ b/vendor/symfony/console/Helper/TableCell.php @@ -18,16 +18,17 @@ use Symfony\Component\Console\Exception\InvalidArgumentException; */ class TableCell { + private string $value; private array $options = [ 'rowspan' => 1, 'colspan' => 1, 'style' => null, ]; - public function __construct( - private string $value = '', - array $options = [], - ) { + public function __construct(string $value = '', array $options = []) + { + $this->value = $value; + // check option names if ($diff = array_diff(array_keys($options), array_keys($this->options))) { throw new InvalidArgumentException(sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff))); diff --git a/vendor/symfony/console/Helper/TableCellStyle.php b/vendor/symfony/console/Helper/TableCellStyle.php index 49b97f85..9419dcb4 100644 --- a/vendor/symfony/console/Helper/TableCellStyle.php +++ b/vendor/symfony/console/Helper/TableCellStyle.php @@ -67,7 +67,7 @@ class TableCellStyle { return array_filter( $this->getOptions(), - fn ($key) => \in_array($key, self::TAG_OPTIONS, true) && isset($this->options[$key]), + fn ($key) => \in_array($key, self::TAG_OPTIONS) && isset($this->options[$key]), \ARRAY_FILTER_USE_KEY ); } diff --git a/vendor/symfony/console/Helper/TableRows.php b/vendor/symfony/console/Helper/TableRows.php index fb2dc278..97d07726 100644 --- a/vendor/symfony/console/Helper/TableRows.php +++ b/vendor/symfony/console/Helper/TableRows.php @@ -16,9 +16,11 @@ namespace Symfony\Component\Console\Helper; */ class TableRows implements \IteratorAggregate { - public function __construct( - private \Closure $generator, - ) { + private \Closure $generator; + + public function __construct(\Closure $generator) + { + $this->generator = $generator; } public function getIterator(): \Traversable diff --git a/vendor/symfony/console/Input/ArgvInput.php b/vendor/symfony/console/Input/ArgvInput.php index 95703ba5..ab9f28c5 100644 --- a/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/symfony/console/Input/ArgvInput.php @@ -40,11 +40,9 @@ use Symfony\Component\Console\Exception\RuntimeException; */ class ArgvInput extends Input { - /** @var list */ private array $tokens; private array $parsed; - /** @param list|null $argv */ public function __construct(?array $argv = null, ?InputDefinition $definition = null) { $argv ??= $_SERVER['argv'] ?? []; @@ -57,13 +55,18 @@ class ArgvInput extends Input parent::__construct($definition); } - /** @param list $tokens */ - protected function setTokens(array $tokens): void + /** + * @return void + */ + protected function setTokens(array $tokens) { $this->tokens = $tokens; } - protected function parse(): void + /** + * @return void + */ + protected function parse() { $parseOptions = true; $this->parsed = $this->tokens; @@ -345,35 +348,6 @@ class ArgvInput extends Input return $default; } - /** - * Returns un-parsed and not validated tokens. - * - * @param bool $strip Whether to return the raw parameters (false) or the values after the command name (true) - * - * @return list - */ - public function getRawTokens(bool $strip = false): array - { - if (!$strip) { - return $this->tokens; - } - - $parameters = []; - $keep = false; - foreach ($this->tokens as $value) { - if (!$keep && $value === $this->getFirstArgument()) { - $keep = true; - - continue; - } - if ($keep) { - $parameters[] = $value; - } - } - - return $parameters; - } - /** * Returns a stringified representation of the args passed to the command. */ diff --git a/vendor/symfony/console/Input/ArrayInput.php b/vendor/symfony/console/Input/ArrayInput.php index d27ff411..c1bc914c 100644 --- a/vendor/symfony/console/Input/ArrayInput.php +++ b/vendor/symfony/console/Input/ArrayInput.php @@ -25,10 +25,12 @@ use Symfony\Component\Console\Exception\InvalidOptionException; */ class ArrayInput extends Input { - public function __construct( - private array $parameters, - ?InputDefinition $definition = null, - ) { + private array $parameters; + + public function __construct(array $parameters, ?InputDefinition $definition = null) + { + $this->parameters = $parameters; + parent::__construct($definition); } @@ -111,7 +113,10 @@ class ArrayInput extends Input return implode(' ', $params); } - protected function parse(): void + /** + * @return void + */ + protected function parse() { foreach ($this->parameters as $key => $value) { if ('--' === $key) { diff --git a/vendor/symfony/console/Input/Input.php b/vendor/symfony/console/Input/Input.php index 5a8b9a27..1c21573b 100644 --- a/vendor/symfony/console/Input/Input.php +++ b/vendor/symfony/console/Input/Input.php @@ -27,12 +27,12 @@ use Symfony\Component\Console\Exception\RuntimeException; */ abstract class Input implements InputInterface, StreamableInputInterface { - protected InputDefinition $definition; + protected $definition; /** @var resource */ protected $stream; - protected array $options = []; - protected array $arguments = []; - protected bool $interactive = true; + protected $options = []; + protected $arguments = []; + protected $interactive = true; public function __construct(?InputDefinition $definition = null) { @@ -44,7 +44,10 @@ abstract class Input implements InputInterface, StreamableInputInterface } } - public function bind(InputDefinition $definition): void + /** + * @return void + */ + public function bind(InputDefinition $definition) { $this->arguments = []; $this->options = []; @@ -55,10 +58,15 @@ abstract class Input implements InputInterface, StreamableInputInterface /** * Processes command line arguments. + * + * @return void */ - abstract protected function parse(): void; + abstract protected function parse(); - public function validate(): void + /** + * @return void + */ + public function validate() { $definition = $this->definition; $givenArguments = $this->arguments; @@ -75,7 +83,10 @@ abstract class Input implements InputInterface, StreamableInputInterface return $this->interactive; } - public function setInteractive(bool $interactive): void + /** + * @return void + */ + public function setInteractive(bool $interactive) { $this->interactive = $interactive; } @@ -94,7 +105,10 @@ abstract class Input implements InputInterface, StreamableInputInterface return $this->arguments[$name] ?? $this->definition->getArgument($name)->getDefault(); } - public function setArgument(string $name, mixed $value): void + /** + * @return void + */ + public function setArgument(string $name, mixed $value) { if (!$this->definition->hasArgument($name)) { throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); @@ -130,7 +144,10 @@ abstract class Input implements InputInterface, StreamableInputInterface return \array_key_exists($name, $this->options) ? $this->options[$name] : $this->definition->getOption($name)->getDefault(); } - public function setOption(string $name, mixed $value): void + /** + * @return void + */ + public function setOption(string $name, mixed $value) { if ($this->definition->hasNegation($name)) { $this->options[$this->definition->negationToName($name)] = !$value; @@ -158,8 +175,10 @@ abstract class Input implements InputInterface, StreamableInputInterface /** * @param resource $stream + * + * @return void */ - public function setStream($stream): void + public function setStream($stream) { $this->stream = $stream; } diff --git a/vendor/symfony/console/Input/InputArgument.php b/vendor/symfony/console/Input/InputArgument.php index a5d94927..4ef79feb 100644 --- a/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/symfony/console/Input/InputArgument.php @@ -25,47 +25,37 @@ use Symfony\Component\Console\Exception\LogicException; */ class InputArgument { - /** - * Providing an argument is required (e.g. just 'app:foo' is not allowed). - */ public const REQUIRED = 1; - - /** - * Providing an argument is optional (e.g. 'app:foo' and 'app:foo bar' are both allowed). This is the default behavior of arguments. - */ public const OPTIONAL = 2; - - /** - * The argument accepts multiple values and turn them into an array (e.g. 'app:foo bar baz' will result in value ['bar', 'baz']). - */ public const IS_ARRAY = 4; + private string $name; private int $mode; - private string|int|bool|array|float|null $default; + private string|int|bool|array|null|float $default; + private array|\Closure $suggestedValues; + private string $description; /** * @param string $name The argument name - * @param int-mask-of|null $mode The argument mode: a bit mask of self::REQUIRED, self::OPTIONAL and self::IS_ARRAY + * @param int|null $mode The argument mode: a bit mask of self::REQUIRED, self::OPTIONAL and self::IS_ARRAY * @param string $description A description text * @param string|bool|int|float|array|null $default The default value (for self::OPTIONAL mode only) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException When argument mode is not valid */ - public function __construct( - private string $name, - ?int $mode = null, - private string $description = '', - string|bool|int|float|array|null $default = null, - private \Closure|array $suggestedValues = [], - ) { + public function __construct(string $name, ?int $mode = null, string $description = '', string|bool|int|float|array|null $default = null, \Closure|array $suggestedValues = []) + { if (null === $mode) { $mode = self::OPTIONAL; - } elseif ($mode >= (self::IS_ARRAY << 1) || $mode < 1) { + } elseif ($mode > 7 || $mode < 1) { throw new InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode)); } + $this->name = $name; $this->mode = $mode; + $this->description = $description; + $this->suggestedValues = $suggestedValues; $this->setDefault($default); } @@ -100,9 +90,16 @@ class InputArgument /** * Sets the default value. + * + * @return void + * + * @throws LogicException When incorrect default value is given */ - public function setDefault(string|bool|int|float|array|null $default): void + public function setDefault(string|bool|int|float|array|null $default = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } if ($this->isRequired() && null !== $default) { throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); } @@ -126,16 +123,13 @@ class InputArgument return $this->default; } - /** - * Returns true if the argument has values for input completion. - */ public function hasCompletion(): bool { return [] !== $this->suggestedValues; } /** - * Supplies suggestions when command resolves possible completion options for input. + * Adds suggestions to $suggestions for the current completion input. * * @see Command::complete() */ diff --git a/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/symfony/console/Input/InputAwareInterface.php index ba4664cd..0ad27b45 100644 --- a/vendor/symfony/console/Input/InputAwareInterface.php +++ b/vendor/symfony/console/Input/InputAwareInterface.php @@ -21,6 +21,8 @@ interface InputAwareInterface { /** * Sets the Console Input. + * + * @return void */ - public function setInput(InputInterface $input): void; + public function setInput(InputInterface $input); } diff --git a/vendor/symfony/console/Input/InputDefinition.php b/vendor/symfony/console/Input/InputDefinition.php index f27e2974..b7162d77 100644 --- a/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/symfony/console/Input/InputDefinition.php @@ -46,8 +46,10 @@ class InputDefinition /** * Sets the definition of the input. + * + * @return void */ - public function setDefinition(array $definition): void + public function setDefinition(array $definition) { $arguments = []; $options = []; @@ -67,8 +69,10 @@ class InputDefinition * Sets the InputArgument objects. * * @param InputArgument[] $arguments An array of InputArgument objects + * + * @return void */ - public function setArguments(array $arguments = []): void + public function setArguments(array $arguments = []) { $this->arguments = []; $this->requiredCount = 0; @@ -81,8 +85,10 @@ class InputDefinition * Adds an array of InputArgument objects. * * @param InputArgument[] $arguments An array of InputArgument objects + * + * @return void */ - public function addArguments(?array $arguments = []): void + public function addArguments(?array $arguments = []) { if (null !== $arguments) { foreach ($arguments as $argument) { @@ -92,9 +98,11 @@ class InputDefinition } /** + * @return void + * * @throws LogicException When incorrect argument is given */ - public function addArgument(InputArgument $argument): void + public function addArgument(InputArgument $argument) { if (isset($this->arguments[$argument->getName()])) { throw new LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName())); @@ -190,8 +198,10 @@ class InputDefinition * Sets the InputOption objects. * * @param InputOption[] $options An array of InputOption objects + * + * @return void */ - public function setOptions(array $options = []): void + public function setOptions(array $options = []) { $this->options = []; $this->shortcuts = []; @@ -203,8 +213,10 @@ class InputDefinition * Adds an array of InputOption objects. * * @param InputOption[] $options An array of InputOption objects + * + * @return void */ - public function addOptions(array $options = []): void + public function addOptions(array $options = []) { foreach ($options as $option) { $this->addOption($option); @@ -212,9 +224,11 @@ class InputDefinition } /** + * @return void + * * @throws LogicException When option given already exist */ - public function addOption(InputOption $option): void + public function addOption(InputOption $option) { if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) { throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName())); diff --git a/vendor/symfony/console/Input/InputInterface.php b/vendor/symfony/console/Input/InputInterface.php index c177d960..aaed5fd0 100644 --- a/vendor/symfony/console/Input/InputInterface.php +++ b/vendor/symfony/console/Input/InputInterface.php @@ -18,6 +18,9 @@ use Symfony\Component\Console\Exception\RuntimeException; * InputInterface is the interface implemented by all input classes. * * @author Fabien Potencier + * + * @method string __toString() Returns a stringified representation of the args passed to the command. + * InputArguments MUST be escaped as well as the InputOption values passed to the command. */ interface InputInterface { @@ -50,22 +53,28 @@ interface InputInterface * @param string|array $values The value(s) to look for in the raw parameters (can be an array) * @param string|bool|int|float|array|null $default The default value to return if no result is found * @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal + * + * @return mixed */ - public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false): mixed; + public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false); /** * Binds the current Input instance with the given arguments and options. * + * @return void + * * @throws RuntimeException */ - public function bind(InputDefinition $definition): void; + public function bind(InputDefinition $definition); /** * Validates the input. * + * @return void + * * @throws RuntimeException When not enough arguments are given */ - public function validate(): void; + public function validate(); /** * Returns all the given arguments merged with the default values. @@ -77,16 +86,20 @@ interface InputInterface /** * Returns the argument value for a given argument name. * + * @return mixed + * * @throws InvalidArgumentException When argument given doesn't exist */ - public function getArgument(string $name): mixed; + public function getArgument(string $name); /** * Sets an argument value by name. * + * @return void + * * @throws InvalidArgumentException When argument given doesn't exist */ - public function setArgument(string $name, mixed $value): void; + public function setArgument(string $name, mixed $value); /** * Returns true if an InputArgument object exists by name or position. @@ -103,16 +116,20 @@ interface InputInterface /** * Returns the option value for a given option name. * + * @return mixed + * * @throws InvalidArgumentException When option given doesn't exist */ - public function getOption(string $name): mixed; + public function getOption(string $name); /** * Sets an option value by name. * + * @return void + * * @throws InvalidArgumentException When option given doesn't exist */ - public function setOption(string $name, mixed $value): void; + public function setOption(string $name, mixed $value); /** * Returns true if an InputOption object exists by name. @@ -126,13 +143,8 @@ interface InputInterface /** * Sets the input interactivity. - */ - public function setInteractive(bool $interactive): void; - - /** - * Returns a stringified representation of the args passed to the command. * - * InputArguments MUST be escaped as well as the InputOption values passed to the command. + * @return void */ - public function __toString(): string; + public function setInteractive(bool $interactive); } diff --git a/vendor/symfony/console/Input/InputOption.php b/vendor/symfony/console/Input/InputOption.php index 617c348d..bb533801 100644 --- a/vendor/symfony/console/Input/InputOption.php +++ b/vendor/symfony/console/Input/InputOption.php @@ -46,36 +46,32 @@ class InputOption public const VALUE_IS_ARRAY = 8; /** - * The option allows passing a negated variant (e.g. --ansi or --no-ansi). + * The option may have either positive or negative value (e.g. --ansi or --no-ansi). */ public const VALUE_NEGATABLE = 16; private string $name; - private ?string $shortcut; + private string|array|null $shortcut; private int $mode; - private string|int|bool|array|float|null $default; + private string|int|bool|array|null|float $default; + private array|\Closure $suggestedValues; + private string $description; /** * @param string|array|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts - * @param int-mask-of|null $mode The option mode: One of the VALUE_* constants + * @param int|null $mode The option mode: One of the VALUE_* constants * @param string|bool|int|float|array|null $default The default value (must be null for self::VALUE_NONE) * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function __construct( - string $name, - string|array|null $shortcut = null, - ?int $mode = null, - private string $description = '', - string|bool|int|float|array|null $default = null, - private array|\Closure $suggestedValues = [], - ) { + public function __construct(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', string|bool|int|float|array|null $default = null, array|\Closure $suggestedValues = []) + { if (str_starts_with($name, '--')) { $name = substr($name, 2); } - if (!$name) { + if (empty($name)) { throw new InvalidArgumentException('An option name cannot be empty.'); } @@ -105,6 +101,8 @@ class InputOption $this->name = $name; $this->shortcut = $shortcut; $this->mode = $mode; + $this->description = $description; + $this->suggestedValues = $suggestedValues; if ($suggestedValues && !$this->acceptValue()) { throw new LogicException('Cannot set suggested values if the option does not accept a value.'); @@ -175,21 +173,19 @@ class InputOption return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode); } - /** - * Returns true if the option allows passing a negated variant. - * - * @return bool true if mode is self::VALUE_NEGATABLE, false otherwise - */ public function isNegatable(): bool { return self::VALUE_NEGATABLE === (self::VALUE_NEGATABLE & $this->mode); } /** - * Sets the default value. + * @return void */ - public function setDefault(string|bool|int|float|array|null $default): void + public function setDefault(string|bool|int|float|array|null $default = null) { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { throw new LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); } @@ -221,16 +217,13 @@ class InputOption return $this->description; } - /** - * Returns true if the option has values for input completion. - */ public function hasCompletion(): bool { return [] !== $this->suggestedValues; } /** - * Supplies suggestions when command resolves possible completion options for input. + * Adds suggestions to $suggestions for the current completion input. * * @see Command::complete() */ diff --git a/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/symfony/console/Input/StreamableInputInterface.php index 4a0dc017..4b95fcb1 100644 --- a/vendor/symfony/console/Input/StreamableInputInterface.php +++ b/vendor/symfony/console/Input/StreamableInputInterface.php @@ -25,8 +25,10 @@ interface StreamableInputInterface extends InputInterface * This is mainly useful for testing purpose. * * @param resource $stream The input stream + * + * @return void */ - public function setStream($stream): void; + public function setStream($stream); /** * Returns the input stream. diff --git a/vendor/symfony/console/Input/StringInput.php b/vendor/symfony/console/Input/StringInput.php index 83570014..82bd2144 100644 --- a/vendor/symfony/console/Input/StringInput.php +++ b/vendor/symfony/console/Input/StringInput.php @@ -24,6 +24,10 @@ use Symfony\Component\Console\Exception\InvalidArgumentException; */ class StringInput extends ArgvInput { + /** + * @deprecated since Symfony 6.1 + */ + public const REGEX_STRING = '([^\s]+?)(?:\s|(? - * * @throws InvalidArgumentException When unable to parse input (should never happen) */ private function tokenize(string $input): array diff --git a/vendor/symfony/console/Logger/ConsoleLogger.php b/vendor/symfony/console/Logger/ConsoleLogger.php index ad6e49ce..fddef50c 100644 --- a/vendor/symfony/console/Logger/ConsoleLogger.php +++ b/vendor/symfony/console/Logger/ConsoleLogger.php @@ -29,6 +29,7 @@ class ConsoleLogger extends AbstractLogger public const INFO = 'info'; public const ERROR = 'error'; + private OutputInterface $output; private array $verbosityLevelMap = [ LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL, LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL, @@ -51,11 +52,9 @@ class ConsoleLogger extends AbstractLogger ]; private bool $errored = false; - public function __construct( - private OutputInterface $output, - array $verbosityLevelMap = [], - array $formatLevelMap = [], - ) { + public function __construct(OutputInterface $output, array $verbosityLevelMap = [], array $formatLevelMap = []) + { + $this->output = $output; $this->verbosityLevelMap = $verbosityLevelMap + $this->verbosityLevelMap; $this->formatLevelMap = $formatLevelMap + $this->formatLevelMap; } diff --git a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php index 1bc49949..14f9c176 100644 --- a/vendor/symfony/console/Messenger/RunCommandMessageHandler.php +++ b/vendor/symfony/console/Messenger/RunCommandMessageHandler.php @@ -22,9 +22,8 @@ use Symfony\Component\Console\Output\BufferedOutput; */ final class RunCommandMessageHandler { - public function __construct( - private readonly Application $application, - ) { + public function __construct(private readonly Application $application) + { } public function __invoke(RunCommandMessage $message): RunCommandContext diff --git a/vendor/symfony/console/Output/AnsiColorMode.php b/vendor/symfony/console/Output/AnsiColorMode.php index ca40ffb7..5f9f744f 100644 --- a/vendor/symfony/console/Output/AnsiColorMode.php +++ b/vendor/symfony/console/Output/AnsiColorMode.php @@ -63,7 +63,7 @@ enum AnsiColorMode return match ($this) { self::Ansi4 => (string) $this->convertFromRGB($r, $g, $b), self::Ansi8 => '8;5;'.((string) $this->convertFromRGB($r, $g, $b)), - self::Ansi24 => sprintf('8;2;%d;%d;%d', $r, $g, $b), + self::Ansi24 => sprintf('8;2;%d;%d;%d', $r, $g, $b) }; } @@ -72,7 +72,7 @@ enum AnsiColorMode return match ($this) { self::Ansi4 => $this->degradeHexColorToAnsi4($r, $g, $b), self::Ansi8 => $this->degradeHexColorToAnsi8($r, $g, $b), - default => throw new InvalidArgumentException("RGB cannot be converted to {$this->name}."), + default => throw new InvalidArgumentException("RGB cannot be converted to {$this->name}.") }; } diff --git a/vendor/symfony/console/Output/BufferedOutput.php b/vendor/symfony/console/Output/BufferedOutput.php index 3c8d3906..ef5099bf 100644 --- a/vendor/symfony/console/Output/BufferedOutput.php +++ b/vendor/symfony/console/Output/BufferedOutput.php @@ -29,7 +29,10 @@ class BufferedOutput extends Output return $content; } - protected function doWrite(string $message, bool $newline): void + /** + * @return void + */ + protected function doWrite(string $message, bool $newline) { $this->buffer .= $message; diff --git a/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/symfony/console/Output/ConsoleOutput.php index 2ad3dbcf..5837e74a 100644 --- a/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/symfony/console/Output/ConsoleOutput.php @@ -64,19 +64,28 @@ class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface return new ConsoleSectionOutput($this->getStream(), $this->consoleSectionOutputs, $this->getVerbosity(), $this->isDecorated(), $this->getFormatter()); } - public function setDecorated(bool $decorated): void + /** + * @return void + */ + public function setDecorated(bool $decorated) { parent::setDecorated($decorated); $this->stderr->setDecorated($decorated); } - public function setFormatter(OutputFormatterInterface $formatter): void + /** + * @return void + */ + public function setFormatter(OutputFormatterInterface $formatter) { parent::setFormatter($formatter); $this->stderr->setFormatter($formatter); } - public function setVerbosity(int $level): void + /** + * @return void + */ + public function setVerbosity(int $level) { parent::setVerbosity($level); $this->stderr->setVerbosity($level); @@ -87,7 +96,10 @@ class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface return $this->stderr; } - public function setErrorOutput(OutputInterface $error): void + /** + * @return void + */ + public function setErrorOutput(OutputInterface $error) { $this->stderr = $error; } diff --git a/vendor/symfony/console/Output/ConsoleOutputInterface.php b/vendor/symfony/console/Output/ConsoleOutputInterface.php index 1f8f147c..9c0049c8 100644 --- a/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ b/vendor/symfony/console/Output/ConsoleOutputInterface.php @@ -24,7 +24,10 @@ interface ConsoleOutputInterface extends OutputInterface */ public function getErrorOutput(): OutputInterface; - public function setErrorOutput(OutputInterface $error): void; + /** + * @return void + */ + public function setErrorOutput(OutputInterface $error); public function section(): ConsoleSectionOutput; } diff --git a/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/symfony/console/Output/ConsoleSectionOutput.php index 09aa7fe9..f2d7933b 100644 --- a/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -60,10 +60,12 @@ class ConsoleSectionOutput extends StreamOutput * Clears previous output for this section. * * @param int $lines Number of lines to clear. If null, then the entire output of this section is cleared + * + * @return void */ - public function clear(?int $lines = null): void + public function clear(?int $lines = null) { - if (!$this->content || !$this->isDecorated()) { + if (empty($this->content) || !$this->isDecorated()) { return; } @@ -81,8 +83,10 @@ class ConsoleSectionOutput extends StreamOutput /** * Overwrites the previous output with a new message. + * + * @return void */ - public function overwrite(string|iterable $message): void + public function overwrite(string|iterable $message) { $this->clear(); $this->writeln($message); @@ -158,7 +162,10 @@ class ConsoleSectionOutput extends StreamOutput ++$this->lines; } - protected function doWrite(string $message, bool $newline): void + /** + * @return void + */ + protected function doWrite(string $message, bool $newline) { // Simulate newline behavior for consistent output formatting, avoiding extra logic if (!$newline && str_ends_with($message, \PHP_EOL)) { diff --git a/vendor/symfony/console/Output/NullOutput.php b/vendor/symfony/console/Output/NullOutput.php index 40ae3328..f3aa15b1 100644 --- a/vendor/symfony/console/Output/NullOutput.php +++ b/vendor/symfony/console/Output/NullOutput.php @@ -26,7 +26,10 @@ class NullOutput implements OutputInterface { private NullOutputFormatter $formatter; - public function setFormatter(OutputFormatterInterface $formatter): void + /** + * @return void + */ + public function setFormatter(OutputFormatterInterface $formatter) { // do nothing } @@ -37,7 +40,10 @@ class NullOutput implements OutputInterface return $this->formatter ??= new NullOutputFormatter(); } - public function setDecorated(bool $decorated): void + /** + * @return void + */ + public function setDecorated(bool $decorated) { // do nothing } @@ -47,7 +53,10 @@ class NullOutput implements OutputInterface return false; } - public function setVerbosity(int $level): void + /** + * @return void + */ + public function setVerbosity(int $level) { // do nothing } @@ -77,12 +86,18 @@ class NullOutput implements OutputInterface return false; } - public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL) { // do nothing } - public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) { // do nothing } diff --git a/vendor/symfony/console/Output/Output.php b/vendor/symfony/console/Output/Output.php index 2bb10574..00f481e0 100644 --- a/vendor/symfony/console/Output/Output.php +++ b/vendor/symfony/console/Output/Output.php @@ -44,7 +44,10 @@ abstract class Output implements OutputInterface $this->formatter->setDecorated($decorated); } - public function setFormatter(OutputFormatterInterface $formatter): void + /** + * @return void + */ + public function setFormatter(OutputFormatterInterface $formatter) { $this->formatter = $formatter; } @@ -54,7 +57,10 @@ abstract class Output implements OutputInterface return $this->formatter; } - public function setDecorated(bool $decorated): void + /** + * @return void + */ + public function setDecorated(bool $decorated) { $this->formatter->setDecorated($decorated); } @@ -64,7 +70,10 @@ abstract class Output implements OutputInterface return $this->formatter->isDecorated(); } - public function setVerbosity(int $level): void + /** + * @return void + */ + public function setVerbosity(int $level) { $this->verbosity = $level; } @@ -94,12 +103,18 @@ abstract class Output implements OutputInterface return self::VERBOSITY_DEBUG <= $this->verbosity; } - public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL) { $this->write($messages, true, $options); } - public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) { if (!is_iterable($messages)) { $messages = [$messages]; @@ -133,6 +148,8 @@ abstract class Output implements OutputInterface /** * Writes a message to the output. + * + * @return void */ - abstract protected function doWrite(string $message, bool $newline): void; + abstract protected function doWrite(string $message, bool $newline); } diff --git a/vendor/symfony/console/Output/OutputInterface.php b/vendor/symfony/console/Output/OutputInterface.php index 41315fbf..19a81790 100644 --- a/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/symfony/console/Output/OutputInterface.php @@ -36,23 +36,29 @@ interface OutputInterface * @param bool $newline Whether to add a newline * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL + * + * @return void */ - public function write(string|iterable $messages, bool $newline = false, int $options = 0): void; + public function write(string|iterable $messages, bool $newline = false, int $options = 0); /** * Writes a message to the output and adds a newline at the end. * * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL + * + * @return void */ - public function writeln(string|iterable $messages, int $options = 0): void; + public function writeln(string|iterable $messages, int $options = 0); /** * Sets the verbosity of the output. * * @param self::VERBOSITY_* $level + * + * @return void */ - public function setVerbosity(int $level): void; + public function setVerbosity(int $level); /** * Gets the current verbosity of the output. @@ -83,15 +89,20 @@ interface OutputInterface /** * Sets the decorated flag. + * + * @return void */ - public function setDecorated(bool $decorated): void; + public function setDecorated(bool $decorated); /** * Gets the decorated flag. */ public function isDecorated(): bool; - public function setFormatter(OutputFormatterInterface $formatter): void; + /** + * @return void + */ + public function setFormatter(OutputFormatterInterface $formatter); /** * Returns current output formatter instance. diff --git a/vendor/symfony/console/Output/StreamOutput.php b/vendor/symfony/console/Output/StreamOutput.php index 84a7fa73..218bc9ef 100644 --- a/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/symfony/console/Output/StreamOutput.php @@ -63,7 +63,10 @@ class StreamOutput extends Output return $this->stream; } - protected function doWrite(string $message, bool $newline): void + /** + * @return void + */ + protected function doWrite(string $message, bool $newline) { if ($newline) { $message .= \PHP_EOL; diff --git a/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/symfony/console/Output/TrimmedBufferOutput.php index c1862a2b..23a2be8c 100644 --- a/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -45,7 +45,10 @@ class TrimmedBufferOutput extends Output return $content; } - protected function doWrite(string $message, bool $newline): void + /** + * @return void + */ + protected function doWrite(string $message, bool $newline) { $this->buffer .= $message; diff --git a/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/symfony/console/Question/ChoiceQuestion.php index 0ccad051..e449ff68 100644 --- a/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/symfony/console/Question/ChoiceQuestion.php @@ -20,6 +20,7 @@ use Symfony\Component\Console\Exception\InvalidArgumentException; */ class ChoiceQuestion extends Question { + private array $choices; private bool $multiselect = false; private string $prompt = ' > '; private string $errorMessage = 'Value "%s" is invalid'; @@ -29,17 +30,15 @@ class ChoiceQuestion extends Question * @param array $choices The list of available choices * @param mixed $default The default answer to return */ - public function __construct( - string $question, - private array $choices, - mixed $default = null, - ) { + public function __construct(string $question, array $choices, mixed $default = null) + { if (!$choices) { throw new \LogicException('Choice question must have at least 1 choice available.'); } parent::__construct($question, $default); + $this->choices = $choices; $this->setValidator($this->getDefaultValidator()); $this->setAutocompleterValues($choices); } diff --git a/vendor/symfony/console/Question/ConfirmationQuestion.php b/vendor/symfony/console/Question/ConfirmationQuestion.php index 951d6814..40eab242 100644 --- a/vendor/symfony/console/Question/ConfirmationQuestion.php +++ b/vendor/symfony/console/Question/ConfirmationQuestion.php @@ -18,18 +18,18 @@ namespace Symfony\Component\Console\Question; */ class ConfirmationQuestion extends Question { + private string $trueAnswerRegex; + /** * @param string $question The question to ask to the user * @param bool $default The default answer to return, true or false * @param string $trueAnswerRegex A regex to match the "yes" answer */ - public function __construct( - string $question, - bool $default = true, - private string $trueAnswerRegex = '/^y/i', - ) { + public function __construct(string $question, bool $default = true, string $trueAnswerRegex = '/^y/i') + { parent::__construct($question, $default); + $this->trueAnswerRegex = $trueAnswerRegex; $this->setNormalizer($this->getDefaultNormalizer()); } diff --git a/vendor/symfony/console/Question/Question.php b/vendor/symfony/console/Question/Question.php index 46a60c79..94c688fa 100644 --- a/vendor/symfony/console/Question/Question.php +++ b/vendor/symfony/console/Question/Question.php @@ -21,11 +21,13 @@ use Symfony\Component\Console\Exception\LogicException; */ class Question { + private string $question; private ?int $attempts = null; private bool $hidden = false; private bool $hiddenFallback = true; private ?\Closure $autocompleterCallback = null; private ?\Closure $validator = null; + private string|int|bool|null|float $default; private ?\Closure $normalizer = null; private bool $trimmable = true; private bool $multiline = false; @@ -34,10 +36,10 @@ class Question * @param string $question The question to ask to the user * @param string|bool|int|float|null $default The default answer to return if the user enters nothing */ - public function __construct( - private string $question, - private string|bool|int|float|null $default = null, - ) { + public function __construct(string $question, string|bool|int|float|null $default = null) + { + $this->question = $question; + $this->default = $default; } /** @@ -173,8 +175,11 @@ class Question * * @return $this */ - public function setAutocompleterCallback(?callable $callback): static + public function setAutocompleterCallback(?callable $callback = null): static { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } if ($this->hidden && null !== $callback) { throw new LogicException('A hidden question cannot use the autocompleter.'); } @@ -189,8 +194,11 @@ class Question * * @return $this */ - public function setValidator(?callable $validator): static + public function setValidator(?callable $validator = null): static { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->validator = null === $validator ? null : $validator(...); return $this; @@ -258,7 +266,10 @@ class Question return $this->normalizer; } - protected function isAssoc(array $array): bool + /** + * @return bool + */ + protected function isAssoc(array $array) { return (bool) \count(array_filter(array_keys($array), 'is_string')); } diff --git a/vendor/symfony/console/README.md b/vendor/symfony/console/README.md index 92f70e71..e9013182 100644 --- a/vendor/symfony/console/README.md +++ b/vendor/symfony/console/README.md @@ -7,7 +7,14 @@ interfaces. Sponsor ------- -Help Symfony by [sponsoring][1] its development! +The Console component for Symfony 6.4 is [backed][1] by [Les-Tilleuls.coop][2]. + +Les-Tilleuls.coop is a team of 70+ Symfony experts who can help you design, develop and +fix your projects. They provide a wide range of professional services including development, +consulting, coaching, training and audits. They also are highly skilled in JS, Go and DevOps. +They are a worker cooperative! + +Help Symfony by [sponsoring][3] its development! Resources --------- @@ -24,4 +31,6 @@ Credits `Resources/bin/hiddeninput.exe` is a third party binary provided within this component. Find sources and license at https://github.com/Seldaek/hidden-input. -[1]: https://symfony.com/sponsor +[1]: https://symfony.com/backers +[2]: https://les-tilleuls.coop +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/console/Resources/completion.fish b/vendor/symfony/console/Resources/completion.fish index 1853dd80..1c34292a 100644 --- a/vendor/symfony/console/Resources/completion.fish +++ b/vendor/symfony/console/Resources/completion.fish @@ -19,7 +19,11 @@ function _sf_{{ COMMAND_NAME }} set completecmd $completecmd "-c$c" - $completecmd + set sfcomplete ($completecmd) + + for i in $sfcomplete + echo $i + end end complete -c '{{ COMMAND_NAME }}' -a '(_sf_{{ COMMAND_NAME }})' -f diff --git a/vendor/symfony/console/Style/OutputStyle.php b/vendor/symfony/console/Style/OutputStyle.php index 9f62ea31..ddfa8dec 100644 --- a/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/symfony/console/Style/OutputStyle.php @@ -23,12 +23,17 @@ use Symfony\Component\Console\Output\OutputInterface; */ abstract class OutputStyle implements OutputInterface, StyleInterface { - public function __construct( - private OutputInterface $output, - ) { + private OutputInterface $output; + + public function __construct(OutputInterface $output) + { + $this->output = $output; } - public function newLine(int $count = 1): void + /** + * @return void + */ + public function newLine(int $count = 1) { $this->output->write(str_repeat(\PHP_EOL, $count)); } @@ -38,17 +43,26 @@ abstract class OutputStyle implements OutputInterface, StyleInterface return new ProgressBar($this->output, $max); } - public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) { $this->output->write($messages, $newline, $type); } - public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL) { $this->output->writeln($messages, $type); } - public function setVerbosity(int $level): void + /** + * @return void + */ + public function setVerbosity(int $level) { $this->output->setVerbosity($level); } @@ -58,7 +72,10 @@ abstract class OutputStyle implements OutputInterface, StyleInterface return $this->output->getVerbosity(); } - public function setDecorated(bool $decorated): void + /** + * @return void + */ + public function setDecorated(bool $decorated) { $this->output->setDecorated($decorated); } @@ -68,7 +85,10 @@ abstract class OutputStyle implements OutputInterface, StyleInterface return $this->output->isDecorated(); } - public function setFormatter(OutputFormatterInterface $formatter): void + /** + * @return void + */ + public function setFormatter(OutputFormatterInterface $formatter) { $this->output->setFormatter($formatter); } @@ -98,7 +118,10 @@ abstract class OutputStyle implements OutputInterface, StyleInterface return $this->output->isDebug(); } - protected function getErrorOutput(): OutputInterface + /** + * @return OutputInterface + */ + protected function getErrorOutput() { if (!$this->output instanceof ConsoleOutputInterface) { return $this->output; diff --git a/vendor/symfony/console/Style/StyleInterface.php b/vendor/symfony/console/Style/StyleInterface.php index fcc5bc77..6bced158 100644 --- a/vendor/symfony/console/Style/StyleInterface.php +++ b/vendor/symfony/console/Style/StyleInterface.php @@ -20,53 +20,73 @@ interface StyleInterface { /** * Formats a command title. + * + * @return void */ - public function title(string $message): void; + public function title(string $message); /** * Formats a section title. + * + * @return void */ - public function section(string $message): void; + public function section(string $message); /** * Formats a list. + * + * @return void */ - public function listing(array $elements): void; + public function listing(array $elements); /** * Formats informational text. + * + * @return void */ - public function text(string|array $message): void; + public function text(string|array $message); /** * Formats a success result bar. + * + * @return void */ - public function success(string|array $message): void; + public function success(string|array $message); /** * Formats an error result bar. + * + * @return void */ - public function error(string|array $message): void; + public function error(string|array $message); /** * Formats an warning result bar. + * + * @return void */ - public function warning(string|array $message): void; + public function warning(string|array $message); /** * Formats a note admonition. + * + * @return void */ - public function note(string|array $message): void; + public function note(string|array $message); /** * Formats a caution admonition. + * + * @return void */ - public function caution(string|array $message): void; + public function caution(string|array $message); /** * Formats a table. + * + * @return void */ - public function table(array $headers, array $rows): void; + public function table(array $headers, array $rows); /** * Asks a question. @@ -90,21 +110,29 @@ interface StyleInterface /** * Add newline(s). + * + * @return void */ - public function newLine(int $count = 1): void; + public function newLine(int $count = 1); /** * Starts the progress output. + * + * @return void */ - public function progressStart(int $max = 0): void; + public function progressStart(int $max = 0); /** * Advances the progress output X steps. + * + * @return void */ - public function progressAdvance(int $step = 1): void; + public function progressAdvance(int $step = 1); /** * Finishes the progress output. + * + * @return void */ - public function progressFinish(): void; + public function progressFinish(); } diff --git a/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/symfony/console/Style/SymfonyStyle.php index 19ad892e..03bda878 100644 --- a/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/symfony/console/Style/SymfonyStyle.php @@ -40,27 +40,30 @@ class SymfonyStyle extends OutputStyle { public const MAX_LINE_LENGTH = 120; + private InputInterface $input; + private OutputInterface $output; private SymfonyQuestionHelper $questionHelper; private ProgressBar $progressBar; private int $lineLength; private TrimmedBufferOutput $bufferedOutput; - public function __construct( - private InputInterface $input, - private OutputInterface $output, - ) { + public function __construct(InputInterface $input, OutputInterface $output) + { + $this->input = $input; $this->bufferedOutput = new TrimmedBufferOutput(\DIRECTORY_SEPARATOR === '\\' ? 4 : 2, $output->getVerbosity(), false, clone $output->getFormatter()); // Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not. $width = (new Terminal())->getWidth() ?: self::MAX_LINE_LENGTH; $this->lineLength = min($width - (int) (\DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH); - parent::__construct($output); + parent::__construct($this->output = $output); } /** * Formats a message as a block of text. + * + * @return void */ - public function block(string|array $messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = true): void + public function block(string|array $messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = true) { $messages = \is_array($messages) ? array_values($messages) : [$messages]; @@ -69,7 +72,10 @@ class SymfonyStyle extends OutputStyle $this->newLine(); } - public function title(string $message): void + /** + * @return void + */ + public function title(string $message) { $this->autoPrependBlock(); $this->writeln([ @@ -79,7 +85,10 @@ class SymfonyStyle extends OutputStyle $this->newLine(); } - public function section(string $message): void + /** + * @return void + */ + public function section(string $message) { $this->autoPrependBlock(); $this->writeln([ @@ -89,7 +98,10 @@ class SymfonyStyle extends OutputStyle $this->newLine(); } - public function listing(array $elements): void + /** + * @return void + */ + public function listing(array $elements) { $this->autoPrependText(); $elements = array_map(fn ($element) => sprintf(' * %s', $element), $elements); @@ -98,7 +110,10 @@ class SymfonyStyle extends OutputStyle $this->newLine(); } - public function text(string|array $message): void + /** + * @return void + */ + public function text(string|array $message) { $this->autoPrependText(); @@ -110,46 +125,68 @@ class SymfonyStyle extends OutputStyle /** * Formats a command comment. + * + * @return void */ - public function comment(string|array $message): void + public function comment(string|array $message) { $this->block($message, null, null, ' // ', false, false); } - public function success(string|array $message): void + /** + * @return void + */ + public function success(string|array $message) { $this->block($message, 'OK', 'fg=black;bg=green', ' ', true); } - public function error(string|array $message): void + /** + * @return void + */ + public function error(string|array $message) { $this->block($message, 'ERROR', 'fg=white;bg=red', ' ', true); } - public function warning(string|array $message): void + /** + * @return void + */ + public function warning(string|array $message) { $this->block($message, 'WARNING', 'fg=black;bg=yellow', ' ', true); } - public function note(string|array $message): void + /** + * @return void + */ + public function note(string|array $message) { $this->block($message, 'NOTE', 'fg=yellow', ' ! '); } /** * Formats an info message. + * + * @return void */ - public function info(string|array $message): void + public function info(string|array $message) { $this->block($message, 'INFO', 'fg=green', ' ', true); } - public function caution(string|array $message): void + /** + * @return void + */ + public function caution(string|array $message) { $this->block($message, 'CAUTION', 'fg=white;bg=red', ' ! ', true); } - public function table(array $headers, array $rows): void + /** + * @return void + */ + public function table(array $headers, array $rows) { $this->createTable() ->setHeaders($headers) @@ -162,8 +199,10 @@ class SymfonyStyle extends OutputStyle /** * Formats a horizontal table. + * + * @return void */ - public function horizontalTable(array $headers, array $rows): void + public function horizontalTable(array $headers, array $rows) { $this->createTable() ->setHorizontal(true) @@ -182,8 +221,10 @@ class SymfonyStyle extends OutputStyle * * 'A title' * * ['key' => 'value'] * * new TableSeparator() + * + * @return void */ - public function definitionList(string|array|TableSeparator ...$list): void + public function definitionList(string|array|TableSeparator ...$list) { $headers = []; $row = []; @@ -244,18 +285,27 @@ class SymfonyStyle extends OutputStyle return $this->askQuestion($questionChoice); } - public function progressStart(int $max = 0): void + /** + * @return void + */ + public function progressStart(int $max = 0) { $this->progressBar = $this->createProgressBar($max); $this->progressBar->start(); } - public function progressAdvance(int $step = 1): void + /** + * @return void + */ + public function progressAdvance(int $step = 1) { $this->getProgressBar()->advance($step); } - public function progressFinish(): void + /** + * @return void + */ + public function progressFinish() { $this->getProgressBar()->finish(); $this->newLine(2); @@ -316,7 +366,10 @@ class SymfonyStyle extends OutputStyle return $answer; } - public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL) { if (!is_iterable($messages)) { $messages = [$messages]; @@ -328,7 +381,10 @@ class SymfonyStyle extends OutputStyle } } - public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL): void + /** + * @return void + */ + public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) { if (!is_iterable($messages)) { $messages = [$messages]; @@ -340,7 +396,10 @@ class SymfonyStyle extends OutputStyle } } - public function newLine(int $count = 1): void + /** + * @return void + */ + public function newLine(int $count = 1) { parent::newLine($count); $this->bufferedOutput->write(str_repeat("\n", $count)); diff --git a/vendor/symfony/console/Terminal.php b/vendor/symfony/console/Terminal.php index 9eb16aa7..3eda0376 100644 --- a/vendor/symfony/console/Terminal.php +++ b/vendor/symfony/console/Terminal.php @@ -140,7 +140,7 @@ class Terminal // or [w, h] from "wxh" self::$width = (int) $matches[1]; self::$height = isset($matches[4]) ? (int) $matches[4] : (int) $matches[2]; - } elseif (!sapi_windows_vt100_support(fopen('php://stdout', 'w')) && self::hasSttyAvailable()) { + } elseif (!self::hasVt100Support() && self::hasSttyAvailable()) { // only use stty on Windows if the terminal does not support vt100 (e.g. Windows 7 + git-bash) // testing for stty in a Windows 10 vt100-enabled console will implicitly disable vt100 support on STDOUT self::initDimensionsUsingStty(); @@ -154,6 +154,14 @@ class Terminal } } + /** + * Returns whether STDOUT has vt100 support (some Windows 10+ configurations). + */ + private static function hasVt100Support(): bool + { + return \function_exists('sapi_windows_vt100_support') && sapi_windows_vt100_support(fopen('php://stdout', 'w')); + } + /** * Initializes dimensions using the output of an stty columns line. */ diff --git a/vendor/symfony/console/Tester/ApplicationTester.php b/vendor/symfony/console/Tester/ApplicationTester.php index cebb6f8e..58aee54d 100644 --- a/vendor/symfony/console/Tester/ApplicationTester.php +++ b/vendor/symfony/console/Tester/ApplicationTester.php @@ -28,9 +28,11 @@ class ApplicationTester { use TesterTrait; - public function __construct( - private Application $application, - ) { + private Application $application; + + public function __construct(Application $application) + { + $this->application = $application; } /** diff --git a/vendor/symfony/console/Tester/CommandCompletionTester.php b/vendor/symfony/console/Tester/CommandCompletionTester.php index 76cbaf14..a90fe52e 100644 --- a/vendor/symfony/console/Tester/CommandCompletionTester.php +++ b/vendor/symfony/console/Tester/CommandCompletionTester.php @@ -22,9 +22,11 @@ use Symfony\Component\Console\Completion\CompletionSuggestions; */ class CommandCompletionTester { - public function __construct( - private Command $command, - ) { + private Command $command; + + public function __construct(Command $command) + { + $this->command = $command; } /** diff --git a/vendor/symfony/console/Tester/CommandTester.php b/vendor/symfony/console/Tester/CommandTester.php index d39cde7f..2ff813b7 100644 --- a/vendor/symfony/console/Tester/CommandTester.php +++ b/vendor/symfony/console/Tester/CommandTester.php @@ -24,9 +24,11 @@ class CommandTester { use TesterTrait; - public function __construct( - private Command $command, - ) { + private Command $command; + + public function __construct(Command $command) + { + $this->command = $command; } /** diff --git a/vendor/symfony/console/composer.json b/vendor/symfony/console/composer.json index 0ed1bd9a..1610f734 100644 --- a/vendor/symfony/console/composer.json +++ b/vendor/symfony/console/composer.json @@ -16,33 +16,34 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^6.4|^7.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "require-dev": { - "symfony/config": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0", + "symfony/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", "psr/log": "^1|^2|^3" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" }, diff --git a/vendor/symfony/event-dispatcher/Attribute/AsEventListener.php b/vendor/symfony/event-dispatcher/Attribute/AsEventListener.php index 590ada9e..bb931b82 100644 --- a/vendor/symfony/event-dispatcher/Attribute/AsEventListener.php +++ b/vendor/symfony/event-dispatcher/Attribute/AsEventListener.php @@ -19,12 +19,6 @@ namespace Symfony\Component\EventDispatcher\Attribute; #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class AsEventListener { - /** - * @param string|null $event The event name to listen to - * @param string|null $method The method to run when the listened event is triggered - * @param int $priority The priority of this listener if several are declared for the same event - * @param string|null $dispatcher The service id of the event dispatcher to listen to - */ public function __construct( public ?string $event = null, public ?string $method = null, diff --git a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php index 72ce5265..5ba83dad 100644 --- a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php @@ -30,33 +30,47 @@ use Symfony\Contracts\Service\ResetInterface; */ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterface { + protected $logger; + protected $stopwatch; + /** * @var \SplObjectStorage|null */ private ?\SplObjectStorage $callStack = null; + private EventDispatcherInterface $dispatcher; private array $wrappedListeners = []; private array $orphanedEvents = []; + private ?RequestStack $requestStack; private string $currentRequestHash = ''; - public function __construct( - private EventDispatcherInterface $dispatcher, - protected Stopwatch $stopwatch, - protected ?LoggerInterface $logger = null, - private ?RequestStack $requestStack = null, - ) { + public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, ?LoggerInterface $logger = null, ?RequestStack $requestStack = null) + { + $this->dispatcher = $dispatcher; + $this->stopwatch = $stopwatch; + $this->logger = $logger; + $this->requestStack = $requestStack; } - public function addListener(string $eventName, callable|array $listener, int $priority = 0): void + /** + * @return void + */ + public function addListener(string $eventName, callable|array $listener, int $priority = 0) { $this->dispatcher->addListener($eventName, $listener, $priority); } - public function addSubscriber(EventSubscriberInterface $subscriber): void + /** + * @return void + */ + public function addSubscriber(EventSubscriberInterface $subscriber) { $this->dispatcher->addSubscriber($subscriber); } - public function removeListener(string $eventName, callable|array $listener): void + /** + * @return void + */ + public function removeListener(string $eventName, callable|array $listener) { if (isset($this->wrappedListeners[$eventName])) { foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) { @@ -71,7 +85,10 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa $this->dispatcher->removeListener($eventName, $listener); } - public function removeSubscriber(EventSubscriberInterface $subscriber): void + /** + * @return void + */ + public function removeSubscriber(EventSubscriberInterface $subscriber) { $this->dispatcher->removeSubscriber($subscriber); } @@ -209,7 +226,10 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa return array_merge(...array_values($this->orphanedEvents)); } - public function reset(): void + /** + * @return void + */ + public function reset() { $this->callStack = null; $this->orphanedEvents = []; @@ -229,15 +249,19 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa /** * Called before dispatching the event. + * + * @return void */ - protected function beforeDispatch(string $eventName, object $event): void + protected function beforeDispatch(string $eventName, object $event) { } /** * Called after dispatching the event. + * + * @return void */ - protected function afterDispatch(string $eventName, object $event): void + protected function afterDispatch(string $eventName, object $event) { } diff --git a/vendor/symfony/event-dispatcher/Debug/WrappedListener.php b/vendor/symfony/event-dispatcher/Debug/WrappedListener.php index b83115bb..59f7c136 100644 --- a/vendor/symfony/event-dispatcher/Debug/WrappedListener.php +++ b/vendor/symfony/event-dispatcher/Debug/WrappedListener.php @@ -26,20 +26,21 @@ final class WrappedListener private string $name; private bool $called = false; private bool $stoppedPropagation = false; + private Stopwatch $stopwatch; + private ?EventDispatcherInterface $dispatcher; private string $pretty; private string $callableRef; private ClassStub|string $stub; + private ?int $priority = null; private static bool $hasClassStub; - public function __construct( - callable|array $listener, - ?string $name, - private Stopwatch $stopwatch, - private ?EventDispatcherInterface $dispatcher = null, - private ?int $priority = null, - ) { + public function __construct(callable|array $listener, ?string $name, Stopwatch $stopwatch, ?EventDispatcherInterface $dispatcher = null, ?int $priority = null) + { $this->listener = $listener; $this->optimizedListener = $listener instanceof \Closure ? $listener : (\is_callable($listener) ? $listener(...) : null); + $this->stopwatch = $stopwatch; + $this->dispatcher = $dispatcher; + $this->priority = $priority; if (\is_array($listener)) { [$this->name, $this->callableRef] = $this->parseListener($listener); @@ -47,9 +48,9 @@ final class WrappedListener $this->callableRef .= '::'.$listener[1]; } elseif ($listener instanceof \Closure) { $r = new \ReflectionFunction($listener); - if ($r->isAnonymous()) { + if (str_contains($r->name, '{closure')) { $this->pretty = $this->name = 'closure'; - } elseif ($class = $r->getClosureCalledClass()) { + } elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $this->name = $class->name; $this->pretty = $this->name.'::'.$r->name; } else { diff --git a/vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php b/vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php index 53089920..13b4336a 100644 --- a/vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php +++ b/vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php @@ -21,9 +21,11 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; */ class AddEventAliasesPass implements CompilerPassInterface { - public function __construct( - private array $eventAliases, - ) { + private array $eventAliases; + + public function __construct(array $eventAliases) + { + $this->eventAliases = $eventAliases; } public function process(ContainerBuilder $container): void diff --git a/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php index 29a76bbc..866f4e64 100644 --- a/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php +++ b/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php @@ -48,7 +48,10 @@ class RegisterListenersPass implements CompilerPassInterface return $this; } - public function process(ContainerBuilder $container): void + /** + * @return void + */ + public function process(ContainerBuilder $container) { if (!$container->hasDefinition('event_dispatcher') && !$container->hasAlias('event_dispatcher')) { return; diff --git a/vendor/symfony/event-dispatcher/EventDispatcher.php b/vendor/symfony/event-dispatcher/EventDispatcher.php index 43bc16b8..60529892 100644 --- a/vendor/symfony/event-dispatcher/EventDispatcher.php +++ b/vendor/symfony/event-dispatcher/EventDispatcher.php @@ -123,13 +123,19 @@ class EventDispatcher implements EventDispatcherInterface return false; } - public function addListener(string $eventName, callable|array $listener, int $priority = 0): void + /** + * @return void + */ + public function addListener(string $eventName, callable|array $listener, int $priority = 0) { $this->listeners[$eventName][$priority][] = $listener; unset($this->sorted[$eventName], $this->optimized[$eventName]); } - public function removeListener(string $eventName, callable|array $listener): void + /** + * @return void + */ + public function removeListener(string $eventName, callable|array $listener) { if (empty($this->listeners[$eventName])) { return; @@ -157,7 +163,10 @@ class EventDispatcher implements EventDispatcherInterface } } - public function addSubscriber(EventSubscriberInterface $subscriber): void + /** + * @return void + */ + public function addSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { if (\is_string($params)) { @@ -172,7 +181,10 @@ class EventDispatcher implements EventDispatcherInterface } } - public function removeSubscriber(EventSubscriberInterface $subscriber): void + /** + * @return void + */ + public function removeSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { if (\is_array($params) && \is_array($params[0])) { @@ -194,8 +206,10 @@ class EventDispatcher implements EventDispatcherInterface * @param callable[] $listeners The event listeners * @param string $eventName The name of the event to dispatch * @param object $event The event object to pass to the event handlers/listeners + * + * @return void */ - protected function callListeners(iterable $listeners, string $eventName, object $event): void + protected function callListeners(iterable $listeners, string $eventName, object $event) { $stoppable = $event instanceof StoppableEventInterface; diff --git a/vendor/symfony/event-dispatcher/EventDispatcherInterface.php b/vendor/symfony/event-dispatcher/EventDispatcherInterface.php index 99f8b1a0..e95a7b11 100644 --- a/vendor/symfony/event-dispatcher/EventDispatcherInterface.php +++ b/vendor/symfony/event-dispatcher/EventDispatcherInterface.php @@ -27,23 +27,32 @@ interface EventDispatcherInterface extends ContractsEventDispatcherInterface * * @param int $priority The higher this value, the earlier an event * listener will be triggered in the chain (defaults to 0) + * + * @return void */ - public function addListener(string $eventName, callable $listener, int $priority = 0): void; + public function addListener(string $eventName, callable $listener, int $priority = 0); /** * Adds an event subscriber. * * The subscriber is asked for all the events it is * interested in and added as a listener for these events. + * + * @return void */ - public function addSubscriber(EventSubscriberInterface $subscriber): void; + public function addSubscriber(EventSubscriberInterface $subscriber); /** * Removes an event listener from the specified events. + * + * @return void */ - public function removeListener(string $eventName, callable $listener): void; + public function removeListener(string $eventName, callable $listener); - public function removeSubscriber(EventSubscriberInterface $subscriber): void; + /** + * @return void + */ + public function removeSubscriber(EventSubscriberInterface $subscriber); /** * Gets the listeners of a specific event or all listeners sorted by descending priority. diff --git a/vendor/symfony/event-dispatcher/GenericEvent.php b/vendor/symfony/event-dispatcher/GenericEvent.php index 2ac654fb..0ccbbd81 100644 --- a/vendor/symfony/event-dispatcher/GenericEvent.php +++ b/vendor/symfony/event-dispatcher/GenericEvent.php @@ -25,16 +25,19 @@ use Symfony\Contracts\EventDispatcher\Event; */ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate { + protected $subject; + protected $arguments; + /** * Encapsulate an event with $subject and $arguments. * * @param mixed $subject The subject of the event, usually an object or a callable * @param array $arguments Arguments to store in the event */ - public function __construct( - protected mixed $subject = null, - protected array $arguments = [], - ) { + public function __construct(mixed $subject = null, array $arguments = []) + { + $this->subject = $subject; + $this->arguments = $arguments; } /** diff --git a/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php b/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php index a6d078e9..301a805c 100644 --- a/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php +++ b/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php @@ -18,9 +18,11 @@ namespace Symfony\Component\EventDispatcher; */ class ImmutableEventDispatcher implements EventDispatcherInterface { - public function __construct( - private EventDispatcherInterface $dispatcher, - ) { + private EventDispatcherInterface $dispatcher; + + public function __construct(EventDispatcherInterface $dispatcher) + { + $this->dispatcher = $dispatcher; } public function dispatch(object $event, ?string $eventName = null): object @@ -28,22 +30,34 @@ class ImmutableEventDispatcher implements EventDispatcherInterface return $this->dispatcher->dispatch($event, $eventName); } - public function addListener(string $eventName, callable|array $listener, int $priority = 0): never + /** + * @return never + */ + public function addListener(string $eventName, callable|array $listener, int $priority = 0) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } - public function addSubscriber(EventSubscriberInterface $subscriber): never + /** + * @return never + */ + public function addSubscriber(EventSubscriberInterface $subscriber) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } - public function removeListener(string $eventName, callable|array $listener): never + /** + * @return never + */ + public function removeListener(string $eventName, callable|array $listener) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } - public function removeSubscriber(EventSubscriberInterface $subscriber): never + /** + * @return never + */ + public function removeSubscriber(EventSubscriberInterface $subscriber) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } diff --git a/vendor/symfony/event-dispatcher/composer.json b/vendor/symfony/event-dispatcher/composer.json index 598bbdc5..ff281afd 100644 --- a/vendor/symfony/event-dispatcher/composer.json +++ b/vendor/symfony/event-dispatcher/composer.json @@ -16,21 +16,21 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "require-dev": { - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", "psr/log": "^1|^2|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/dependency-injection": "<5.4", "symfony/service-contracts": "<2.5" }, "provide": { diff --git a/vendor/symfony/filesystem/CHANGELOG.md b/vendor/symfony/filesystem/CHANGELOG.md index 80818d1b..fcb7170c 100644 --- a/vendor/symfony/filesystem/CHANGELOG.md +++ b/vendor/symfony/filesystem/CHANGELOG.md @@ -1,16 +1,6 @@ CHANGELOG ========= -7.1 ---- - - * Add the `Filesystem::readFile()` method - -7.0 ---- - - * Add argument `$lock` to `Filesystem::appendToFile()` - 5.4 --- diff --git a/vendor/symfony/filesystem/Exception/IOException.php b/vendor/symfony/filesystem/Exception/IOException.php index 46ab8b4a..df3a0850 100644 --- a/vendor/symfony/filesystem/Exception/IOException.php +++ b/vendor/symfony/filesystem/Exception/IOException.php @@ -20,12 +20,12 @@ namespace Symfony\Component\Filesystem\Exception; */ class IOException extends \RuntimeException implements IOExceptionInterface { - public function __construct( - string $message, - int $code = 0, - ?\Throwable $previous = null, - private ?string $path = null, - ) { + private ?string $path; + + public function __construct(string $message, int $code = 0, ?\Throwable $previous = null, ?string $path = null) + { + $this->path = $path; + parent::__construct($message, $code, $previous); } diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 2cd09747..37556e3d 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -31,10 +31,12 @@ class Filesystem * If the target file is newer, it is overwritten only when the * $overwriteNewerFiles option is set to true. * + * @return void + * * @throws FileNotFoundException When originFile doesn't exist * @throws IOException When copy fails */ - public function copy(string $originFile, string $targetFile, bool $overwriteNewerFiles = false): void + public function copy(string $originFile, string $targetFile, bool $overwriteNewerFiles = false) { $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://'); if ($originIsLocal && !is_file($originFile)) { @@ -85,9 +87,11 @@ class Filesystem /** * Creates a directory recursively. * + * @return void + * * @throws IOException On any directory creation failure */ - public function mkdir(string|iterable $dirs, int $mode = 0777): void + public function mkdir(string|iterable $dirs, int $mode = 0777) { foreach ($this->toIterable($dirs) as $dir) { if (is_dir($dir)) { @@ -126,9 +130,11 @@ class Filesystem * @param int|null $time The touch time as a Unix timestamp, if not supplied the current system time is used * @param int|null $atime The access time as a Unix timestamp, if not supplied the current system time is used * + * @return void + * * @throws IOException When touch fails */ - public function touch(string|iterable $files, ?int $time = null, ?int $atime = null): void + public function touch(string|iterable $files, ?int $time = null, ?int $atime = null) { foreach ($this->toIterable($files) as $file) { if (!($time ? self::box('touch', $file, $time, $atime) : self::box('touch', $file))) { @@ -140,9 +146,11 @@ class Filesystem /** * Removes files or directories. * + * @return void + * * @throws IOException When removal fails */ - public function remove(string|iterable $files): void + public function remove(string|iterable $files) { if ($files instanceof \Traversable) { $files = iterator_to_array($files, false); @@ -164,7 +172,7 @@ class Filesystem } } elseif (is_dir($file)) { if (!$isRecursive) { - $tmpName = \dirname(realpath($file)).'/.'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-_')); + $tmpName = \dirname(realpath($file)).'/.!'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-!')); if (file_exists($tmpName)) { try { @@ -206,9 +214,11 @@ class Filesystem * @param int $umask The mode mask (octal) * @param bool $recursive Whether change the mod recursively or not * + * @return void + * * @throws IOException When the change fails */ - public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false): void + public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false) { foreach ($this->toIterable($files) as $file) { if (!self::box('chmod', $file, $mode & ~$umask)) { @@ -226,9 +236,11 @@ class Filesystem * @param string|int $user A user name or number * @param bool $recursive Whether change the owner recursively or not * + * @return void + * * @throws IOException When the change fails */ - public function chown(string|iterable $files, string|int $user, bool $recursive = false): void + public function chown(string|iterable $files, string|int $user, bool $recursive = false) { foreach ($this->toIterable($files) as $file) { if ($recursive && is_dir($file) && !is_link($file)) { @@ -252,9 +264,11 @@ class Filesystem * @param string|int $group A group name or number * @param bool $recursive Whether change the group recursively or not * + * @return void + * * @throws IOException When the change fails */ - public function chgrp(string|iterable $files, string|int $group, bool $recursive = false): void + public function chgrp(string|iterable $files, string|int $group, bool $recursive = false) { foreach ($this->toIterable($files) as $file) { if ($recursive && is_dir($file) && !is_link($file)) { @@ -275,10 +289,12 @@ class Filesystem /** * Renames a file or a directory. * + * @return void + * * @throws IOException When target file or directory already exists * @throws IOException When origin cannot be renamed */ - public function rename(string $origin, string $target, bool $overwrite = false): void + public function rename(string $origin, string $target, bool $overwrite = false) { // we check that target does not exist if (!$overwrite && $this->isReadable($target)) { @@ -316,9 +332,11 @@ class Filesystem /** * Creates a symbolic link or copy a directory. * + * @return void + * * @throws IOException When symlink fails */ - public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false): void + public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false) { self::assertFunctionExists('symlink'); @@ -352,10 +370,12 @@ class Filesystem * * @param string|string[] $targetFiles The target file(s) * + * @return void + * * @throws FileNotFoundException When original file is missing or not a file * @throws IOException When link fails, including if link already exists */ - public function hardlink(string $originFile, string|iterable $targetFiles): void + public function hardlink(string $originFile, string|iterable $targetFiles) { self::assertFunctionExists('link'); @@ -509,9 +529,11 @@ class Filesystem * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) * + * @return void + * * @throws IOException When file type is unknown */ - public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = []): void + public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = []) { $targetDir = rtrim($targetDir, '/\\'); $originDir = rtrim($originDir, '/\\'); @@ -633,9 +655,11 @@ class Filesystem * * @param string|resource $content The data to write into the file * + * @return void + * * @throws IOException if the file cannot be written to */ - public function dumpFile(string $filename, $content): void + public function dumpFile(string $filename, $content) { if (\is_array($content)) { throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); @@ -678,9 +702,11 @@ class Filesystem * @param string|resource $content The content to append * @param bool $lock Whether the file should be locked when writing to it * + * @return void + * * @throws IOException If the file is not writable */ - public function appendToFile(string $filename, $content, bool $lock = false): void + public function appendToFile(string $filename, $content/* , bool $lock = false */) { if (\is_array($content)) { throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); @@ -692,30 +718,13 @@ class Filesystem $this->mkdir($dir); } + $lock = \func_num_args() > 2 && func_get_arg(2); + if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND | ($lock ? \LOCK_EX : 0))) { throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); } } - /** - * Returns the content of a file as a string. - * - * @throws IOException If the file cannot be read - */ - public function readFile(string $filename): string - { - if (is_dir($filename)) { - throw new IOException(sprintf('Failed to read file "%s": File is a directory.', $filename)); - } - - $content = self::box('file_get_contents', $filename); - if (false === $content) { - throw new IOException(sprintf('Failed to read file "%s": ', $filename).self::$lastError, 0, null, $filename); - } - - return $content; - } - private function toIterable(string|iterable $files): iterable { return is_iterable($files) ? $files : [$files]; diff --git a/vendor/symfony/filesystem/Path.php b/vendor/symfony/filesystem/Path.php index db9ce4be..948e1c41 100644 --- a/vendor/symfony/filesystem/Path.php +++ b/vendor/symfony/filesystem/Path.php @@ -346,13 +346,13 @@ final class Path $extension = ltrim($extension, '.'); // No extension for paths - if (str_ends_with($path, '/')) { + if ('/' === substr($path, -1)) { return $path; } // No actual extension in path - if (!$actualExtension) { - return $path.(str_ends_with($path, '.') ? '' : '.').$extension; + if (empty($actualExtension)) { + return $path.('.' === substr($path, -1) ? '' : '.').$extension; } return substr($path, 0, -\strlen($actualExtension)).$extension; @@ -668,7 +668,7 @@ final class Path } // Only add slash if previous part didn't end with '/' or '\' - if (!\in_array(substr($finalPath, -1), ['/', '\\'], true)) { + if (!\in_array(substr($finalPath, -1), ['/', '\\'])) { $finalPath .= '/'; } diff --git a/vendor/symfony/filesystem/composer.json b/vendor/symfony/filesystem/composer.json index c781e55b..fd75755b 100644 --- a/vendor/symfony/filesystem/composer.json +++ b/vendor/symfony/filesystem/composer.json @@ -16,12 +16,12 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "symfony/process": "^5.4|^6.4|^7.0" }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, diff --git a/vendor/symfony/finder/Comparator/Comparator.php b/vendor/symfony/finder/Comparator/Comparator.php index c3d40e70..bd685834 100644 --- a/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/symfony/finder/Comparator/Comparator.php @@ -16,16 +16,16 @@ namespace Symfony\Component\Finder\Comparator; */ class Comparator { + private string $target; private string $operator; - public function __construct( - private string $target, - string $operator = '==', - ) { + public function __construct(string $target, string $operator = '==') + { if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) { throw new \InvalidArgumentException(sprintf('Invalid operator "%s".', $operator)); } + $this->target = $target; $this->operator = $operator; } diff --git a/vendor/symfony/finder/Finder.php b/vendor/symfony/finder/Finder.php index 0894dcde..0fd283c1 100644 --- a/vendor/symfony/finder/Finder.php +++ b/vendor/symfony/finder/Finder.php @@ -124,7 +124,7 @@ class Finder implements \IteratorAggregate, \Countable public function depth(string|int|array $levels): static { foreach ((array) $levels as $level) { - $this->depths[] = new NumberComparator($level); + $this->depths[] = new Comparator\NumberComparator($level); } return $this; @@ -152,7 +152,7 @@ class Finder implements \IteratorAggregate, \Countable public function date(string|array $dates): static { foreach ((array) $dates as $date) { - $this->dates[] = new DateComparator($date); + $this->dates[] = new Comparator\DateComparator($date); } return $this; @@ -307,7 +307,7 @@ class Finder implements \IteratorAggregate, \Countable public function size(string|int|array $sizes): static { foreach ((array) $sizes as $size) { - $this->sizes[] = new NumberComparator($size); + $this->sizes[] = new Comparator\NumberComparator($size); } return $this; @@ -397,8 +397,10 @@ class Finder implements \IteratorAggregate, \Countable * @see ignoreVCS() * * @param string|string[] $pattern VCS patterns to ignore + * + * @return void */ - public static function addVCSPattern(string|array $pattern): void + public static function addVCSPattern(string|array $pattern) { foreach ((array) $pattern as $p) { self::$vcsPatterns[] = $p; @@ -436,7 +438,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByExtension(): static { - $this->sort = SortableIterator::SORT_BY_EXTENSION; + $this->sort = Iterator\SortableIterator::SORT_BY_EXTENSION; return $this; } @@ -452,7 +454,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByName(bool $useNaturalSort = false): static { - $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL : SortableIterator::SORT_BY_NAME; + $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL : Iterator\SortableIterator::SORT_BY_NAME; return $this; } @@ -468,7 +470,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByCaseInsensitiveName(bool $useNaturalSort = false): static { - $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE; + $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : Iterator\SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE; return $this; } @@ -484,7 +486,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortBySize(): static { - $this->sort = SortableIterator::SORT_BY_SIZE; + $this->sort = Iterator\SortableIterator::SORT_BY_SIZE; return $this; } @@ -500,7 +502,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByType(): static { - $this->sort = SortableIterator::SORT_BY_TYPE; + $this->sort = Iterator\SortableIterator::SORT_BY_TYPE; return $this; } @@ -518,7 +520,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByAccessedTime(): static { - $this->sort = SortableIterator::SORT_BY_ACCESSED_TIME; + $this->sort = Iterator\SortableIterator::SORT_BY_ACCESSED_TIME; return $this; } @@ -550,7 +552,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByChangedTime(): static { - $this->sort = SortableIterator::SORT_BY_CHANGED_TIME; + $this->sort = Iterator\SortableIterator::SORT_BY_CHANGED_TIME; return $this; } @@ -568,7 +570,7 @@ class Finder implements \IteratorAggregate, \Countable */ public function sortByModifiedTime(): static { - $this->sort = SortableIterator::SORT_BY_MODIFIED_TIME; + $this->sort = Iterator\SortableIterator::SORT_BY_MODIFIED_TIME; return $this; } @@ -586,8 +588,9 @@ class Finder implements \IteratorAggregate, \Countable * * @see CustomFilterIterator */ - public function filter(\Closure $closure, bool $prune = false): static + public function filter(\Closure $closure /* , bool $prune = false */): static { + $prune = 1 < \func_num_args() ? func_get_arg(1) : false; $this->filters[] = $closure; if ($prune) { @@ -671,7 +674,7 @@ class Finder implements \IteratorAggregate, \Countable $iterator = $this->searchInDirectory($this->dirs[0]); if ($this->sort || $this->reverseSorting) { - $iterator = (new SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator(); + $iterator = (new Iterator\SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator(); } return $iterator; @@ -687,7 +690,7 @@ class Finder implements \IteratorAggregate, \Countable } if ($this->sort || $this->reverseSorting) { - $iterator = (new SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator(); + $iterator = (new Iterator\SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator(); } return $iterator; @@ -790,13 +793,13 @@ class Finder implements \IteratorAggregate, \Countable $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs); if ($exclude) { - $iterator = new ExcludeDirectoryFilterIterator($iterator, $exclude); + $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $exclude); } $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST); if ($minDepth > 0 || $maxDepth < \PHP_INT_MAX) { - $iterator = new DepthRangeFilterIterator($iterator, $minDepth, $maxDepth); + $iterator = new Iterator\DepthRangeFilterIterator($iterator, $minDepth, $maxDepth); } if ($this->mode) { @@ -804,23 +807,23 @@ class Finder implements \IteratorAggregate, \Countable } if ($this->names || $this->notNames) { - $iterator = new FilenameFilterIterator($iterator, $this->names, $this->notNames); + $iterator = new Iterator\FilenameFilterIterator($iterator, $this->names, $this->notNames); } if ($this->contains || $this->notContains) { - $iterator = new FilecontentFilterIterator($iterator, $this->contains, $this->notContains); + $iterator = new Iterator\FilecontentFilterIterator($iterator, $this->contains, $this->notContains); } if ($this->sizes) { - $iterator = new SizeRangeFilterIterator($iterator, $this->sizes); + $iterator = new Iterator\SizeRangeFilterIterator($iterator, $this->sizes); } if ($this->dates) { - $iterator = new DateRangeFilterIterator($iterator, $this->dates); + $iterator = new Iterator\DateRangeFilterIterator($iterator, $this->dates); } if ($this->filters) { - $iterator = new CustomFilterIterator($iterator, $this->filters); + $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters); } if ($this->paths || $notPaths) { diff --git a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index 3450c49d..82a9df30 100644 --- a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -23,8 +23,8 @@ namespace Symfony\Component\Finder\Iterator; */ abstract class MultiplePcreFilterIterator extends \FilterIterator { - protected array $matchRegexps = []; - protected array $noMatchRegexps = []; + protected $matchRegexps = []; + protected $noMatchRegexps = []; /** * @param \Iterator $iterator The Iterator to filter @@ -80,7 +80,11 @@ abstract class MultiplePcreFilterIterator extends \FilterIterator */ protected function isRegex(string $str): bool { - $availableModifiers = 'imsxuADUn'; + $availableModifiers = 'imsxuADU'; + + if (\PHP_VERSION_ID >= 80200) { + $availableModifiers .= 'n'; + } if (preg_match('/^(.{3,}?)['.$availableModifiers.']*$/', $str, $m)) { $start = substr($m[1], 0, 1); diff --git a/vendor/symfony/finder/SplFileInfo.php b/vendor/symfony/finder/SplFileInfo.php index 2afc3782..867e8e81 100644 --- a/vendor/symfony/finder/SplFileInfo.php +++ b/vendor/symfony/finder/SplFileInfo.php @@ -18,17 +18,19 @@ namespace Symfony\Component\Finder; */ class SplFileInfo extends \SplFileInfo { + private string $relativePath; + private string $relativePathname; + /** * @param string $file The file name * @param string $relativePath The relative path * @param string $relativePathname The relative path name */ - public function __construct( - string $file, - private string $relativePath, - private string $relativePathname, - ) { + public function __construct(string $file, string $relativePath, string $relativePathname) + { parent::__construct($file); + $this->relativePath = $relativePath; + $this->relativePathname = $relativePathname; } /** diff --git a/vendor/symfony/finder/composer.json b/vendor/symfony/finder/composer.json index 2b70600d..bbc9d7f2 100644 --- a/vendor/symfony/finder/composer.json +++ b/vendor/symfony/finder/composer.json @@ -16,10 +16,10 @@ } ], "require": { - "php": ">=8.2" + "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.0|^7.0" }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" }, diff --git a/vendor/symfony/options-resolver/OptionConfigurator.php b/vendor/symfony/options-resolver/OptionConfigurator.php index e708c2ce..3aa37288 100644 --- a/vendor/symfony/options-resolver/OptionConfigurator.php +++ b/vendor/symfony/options-resolver/OptionConfigurator.php @@ -15,10 +15,13 @@ use Symfony\Component\OptionsResolver\Exception\AccessException; final class OptionConfigurator { - public function __construct( - private string $name, - private OptionsResolver $resolver, - ) { + private string $name; + private OptionsResolver $resolver; + + public function __construct(string $name, OptionsResolver $resolver) + { + $this->name = $name; + $this->resolver = $resolver; $this->resolver->setDefined($name); } diff --git a/vendor/symfony/options-resolver/OptionsResolver.php b/vendor/symfony/options-resolver/OptionsResolver.php index fc378ce3..8a0a8c4b 100644 --- a/vendor/symfony/options-resolver/OptionsResolver.php +++ b/vendor/symfony/options-resolver/OptionsResolver.php @@ -490,7 +490,7 @@ class OptionsResolver implements Options * @throws UndefinedOptionsException If the option is undefined * @throws AccessException If called from a lazy option or normalizer */ - public function setNormalizer(string $option, \Closure $normalizer): static + public function setNormalizer(string $option, \Closure $normalizer) { if ($this->locked) { throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.'); @@ -574,7 +574,7 @@ class OptionsResolver implements Options * @throws UndefinedOptionsException If the option is undefined * @throws AccessException If called from a lazy option or normalizer */ - public function setAllowedValues(string $option, mixed $allowedValues): static + public function setAllowedValues(string $option, mixed $allowedValues) { if ($this->locked) { throw new AccessException('Allowed values cannot be set from a lazy option or normalizer.'); @@ -614,7 +614,7 @@ class OptionsResolver implements Options * @throws UndefinedOptionsException If the option is undefined * @throws AccessException If called from a lazy option or normalizer */ - public function addAllowedValues(string $option, mixed $allowedValues): static + public function addAllowedValues(string $option, mixed $allowedValues) { if ($this->locked) { throw new AccessException('Allowed values cannot be added from a lazy option or normalizer.'); @@ -654,7 +654,7 @@ class OptionsResolver implements Options * @throws UndefinedOptionsException If the option is undefined * @throws AccessException If called from a lazy option or normalizer */ - public function setAllowedTypes(string $option, string|array $allowedTypes): static + public function setAllowedTypes(string $option, string|array $allowedTypes) { if ($this->locked) { throw new AccessException('Allowed types cannot be set from a lazy option or normalizer.'); @@ -688,7 +688,7 @@ class OptionsResolver implements Options * @throws UndefinedOptionsException If the option is undefined * @throws AccessException If called from a lazy option or normalizer */ - public function addAllowedTypes(string $option, string|array $allowedTypes): static + public function addAllowedTypes(string $option, string|array $allowedTypes) { if ($this->locked) { throw new AccessException('Allowed types cannot be added from a lazy option or normalizer.'); diff --git a/vendor/symfony/options-resolver/composer.json b/vendor/symfony/options-resolver/composer.json index e70640d6..9f2daf4e 100644 --- a/vendor/symfony/options-resolver/composer.json +++ b/vendor/symfony/options-resolver/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3" }, "autoload": { diff --git a/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/symfony/polyfill-mbstring/Mbstring.php index 2e0b9694..1ad33a86 100755 --- a/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -48,6 +48,8 @@ namespace Symfony\Polyfill\Mbstring; * - mb_strstr - Finds first occurrence of a string within another * - mb_strwidth - Return width of string * - mb_substr_count - Count the number of substring occurrences + * - mb_ucfirst - Make a string's first character uppercase + * - mb_lcfirst - Make a string's first character lowercase * * Not implemented: * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) @@ -80,6 +82,21 @@ final class Mbstring public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) { + if (\is_array($s)) { + if (PHP_VERSION_ID < 70200) { + trigger_error('mb_convert_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + + return null; + } + + $r = []; + foreach ($s as $str) { + $r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding); + } + + return $r; + } + if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) { $fromEncoding = self::mb_detect_encoding($s, $fromEncoding); } else { @@ -410,7 +427,7 @@ final class Mbstring public static function mb_check_encoding($var = null, $encoding = null) { - if (PHP_VERSION_ID < 70200 && \is_array($var)) { + if (\PHP_VERSION_ID < 70200 && \is_array($var)) { trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); return null; @@ -437,7 +454,6 @@ final class Mbstring } return true; - } public static function mb_detect_encoding($str, $encodingList = null, $strict = false) @@ -827,7 +843,7 @@ final class Mbstring return $code; } - public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, string $encoding = null): string + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string { if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); @@ -835,17 +851,8 @@ final class Mbstring if (null === $encoding) { $encoding = self::mb_internal_encoding(); - } - - try { - $validEncoding = @self::mb_check_encoding('', $encoding); - } catch (\ValueError $e) { - throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - - // BC for PHP 7.3 and lower - if (!$validEncoding) { - throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } else { + self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given'); } if (self::mb_strlen($pad_string, $encoding) <= 0) { @@ -871,6 +878,34 @@ final class Mbstring } } + public static function mb_ucfirst(string $string, ?string $encoding = null): string + { + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } else { + self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); + } + + $firstChar = mb_substr($string, 0, 1, $encoding); + $firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding); + + return $firstChar.mb_substr($string, 1, null, $encoding); + } + + public static function mb_lcfirst(string $string, ?string $encoding = null): string + { + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } else { + self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); + } + + $firstChar = mb_substr($string, 0, 1, $encoding); + $firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding); + + return $firstChar.mb_substr($string, 1, null, $encoding); + } + private static function getSubpart($pos, $part, $haystack, $encoding) { if (false === $pos) { @@ -944,4 +979,18 @@ final class Mbstring return $encoding; } + + private static function assertEncoding(string $encoding, string $errorFormat): void + { + try { + $validEncoding = @self::mb_check_encoding('', $encoding); + } catch (\ValueError $e) { + throw new \ValueError(\sprintf($errorFormat, $encoding)); + } + + // BC for PHP 7.3 and lower + if (!$validEncoding) { + throw new \ValueError(\sprintf($errorFormat, $encoding)); + } + } } diff --git a/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/symfony/polyfill-mbstring/bootstrap.php index ecf1a035..6e4b5fce 100755 --- a/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -136,6 +136,14 @@ if (!function_exists('mb_str_pad')) { function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } } +if (!function_exists('mb_ucfirst')) { + function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); } +} + +if (!function_exists('mb_lcfirst')) { + function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-mbstring/bootstrap80.php b/vendor/symfony/polyfill-mbstring/bootstrap80.php index 2f9fb5b4..ec2ae427 100755 --- a/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -132,6 +132,14 @@ if (!function_exists('mb_str_pad')) { function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } } +if (!function_exists('mb_ucfirst')) { + function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); } +} + +if (!function_exists('mb_lcfirst')) { + function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php b/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php index eb5952ee..5ff93fca 100755 --- a/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php +++ b/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php @@ -32,7 +32,7 @@ if (\PHP_VERSION_ID >= 70400 && extension_loaded('curl')) { } if (is_object($value) ? !method_exists($value, '__toString') : !is_scalar($value)) { - throw new \TypeError('Cannot assign '.gettype($value).' to property CURLStringFile::$data of type string'); + throw new TypeError('Cannot assign '.gettype($value).' to property CURLStringFile::$data of type string'); } $this->name = 'data://application/octet-stream;base64,'.base64_encode($value); diff --git a/vendor/symfony/process/CHANGELOG.md b/vendor/symfony/process/CHANGELOG.md index f7b68b5d..e26819b5 100644 --- a/vendor/symfony/process/CHANGELOG.md +++ b/vendor/symfony/process/CHANGELOG.md @@ -1,11 +1,6 @@ CHANGELOG ========= -7.1 ---- - - * Add `Process::setIgnoredSignals()` to disable signal propagation to the child process - 6.4 --- diff --git a/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/symfony/process/Exception/ProcessFailedException.php index 499809ee..19b40570 100644 --- a/vendor/symfony/process/Exception/ProcessFailedException.php +++ b/vendor/symfony/process/Exception/ProcessFailedException.php @@ -47,7 +47,10 @@ class ProcessFailedException extends RuntimeException $this->process = $process; } - public function getProcess(): Process + /** + * @return Process + */ + public function getProcess() { return $this->process; } diff --git a/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/symfony/process/Exception/ProcessTimedOutException.php index 252e1112..1cecdae7 100644 --- a/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ b/vendor/symfony/process/Exception/ProcessTimedOutException.php @@ -38,17 +38,26 @@ class ProcessTimedOutException extends RuntimeException )); } - public function getProcess(): Process + /** + * @return Process + */ + public function getProcess() { return $this->process; } - public function isGeneralTimeout(): bool + /** + * @return bool + */ + public function isGeneralTimeout() { return self::TYPE_GENERAL === $this->timeoutType; } - public function isIdleTimeout(): bool + /** + * @return bool + */ + public function isIdleTimeout() { return self::TYPE_IDLE === $this->timeoutType; } diff --git a/vendor/symfony/process/ExecutableFinder.php b/vendor/symfony/process/ExecutableFinder.php index ceb7a558..8c7bf58d 100644 --- a/vendor/symfony/process/ExecutableFinder.php +++ b/vendor/symfony/process/ExecutableFinder.php @@ -23,16 +23,20 @@ class ExecutableFinder /** * Replaces default suffixes of executable. + * + * @return void */ - public function setSuffixes(array $suffixes): void + public function setSuffixes(array $suffixes) { $this->suffixes = $suffixes; } /** * Adds new possible suffix to check for executable. + * + * @return void */ - public function addSuffix(string $suffix): void + public function addSuffix(string $suffix) { $this->suffixes[] = $suffix; } diff --git a/vendor/symfony/process/InputStream.php b/vendor/symfony/process/InputStream.php index cd91029e..931217c8 100644 --- a/vendor/symfony/process/InputStream.php +++ b/vendor/symfony/process/InputStream.php @@ -28,8 +28,10 @@ class InputStream implements \IteratorAggregate /** * Sets a callback that is called when the write buffer becomes empty. + * + * @return void */ - public function onEmpty(?callable $onEmpty = null): void + public function onEmpty(?callable $onEmpty = null) { $this->onEmpty = null !== $onEmpty ? $onEmpty(...) : null; } @@ -39,8 +41,10 @@ class InputStream implements \IteratorAggregate * * @param resource|string|int|float|bool|\Traversable|null $input The input to append as scalar, * stream resource or \Traversable + * + * @return void */ - public function write(mixed $input): void + public function write(mixed $input) { if (null === $input) { return; @@ -53,16 +57,20 @@ class InputStream implements \IteratorAggregate /** * Closes the write buffer. + * + * @return void */ - public function close(): void + public function close() { $this->open = false; } /** * Tells whether the write buffer is closed or not. + * + * @return bool */ - public function isClosed(): bool + public function isClosed() { return !$this->open; } diff --git a/vendor/symfony/process/Messenger/RunProcessContext.php b/vendor/symfony/process/Messenger/RunProcessContext.php index 5e223040..b5ade072 100644 --- a/vendor/symfony/process/Messenger/RunProcessContext.php +++ b/vendor/symfony/process/Messenger/RunProcessContext.php @@ -27,7 +27,7 @@ final class RunProcessContext Process $process, ) { $this->exitCode = $process->getExitCode(); - $this->output = !$process->isStarted() || $process->isOutputDisabled() ? null : $process->getOutput(); - $this->errorOutput = !$process->isStarted() || $process->isOutputDisabled() ? null : $process->getErrorOutput(); + $this->output = $process->isOutputDisabled() ? null : $process->getOutput(); + $this->errorOutput = $process->isOutputDisabled() ? null : $process->getErrorOutput(); } } diff --git a/vendor/symfony/process/PhpProcess.php b/vendor/symfony/process/PhpProcess.php index 01d88954..6e2ab59f 100644 --- a/vendor/symfony/process/PhpProcess.php +++ b/vendor/symfony/process/PhpProcess.php @@ -55,7 +55,10 @@ class PhpProcess extends Process throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); } - public function start(?callable $callback = null, array $env = []): void + /** + * @return void + */ + public function start(?callable $callback = null, array $env = []) { if (null === $this->getCommandLine()) { throw new RuntimeException('Unable to find the PHP executable.'); diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php index fd3ad875..bf2e8e85 100644 --- a/vendor/symfony/process/Process.php +++ b/vendor/symfony/process/Process.php @@ -15,7 +15,6 @@ use Symfony\Component\Process\Exception\InvalidArgumentException; use Symfony\Component\Process\Exception\LogicException; use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\Exception\ProcessSignaledException; -use Symfony\Component\Process\Exception\ProcessStartFailedException; use Symfony\Component\Process\Exception\ProcessTimedOutException; use Symfony\Component\Process\Exception\RuntimeException; use Symfony\Component\Process\Pipes\UnixPipes; @@ -77,7 +76,6 @@ class Process implements \IteratorAggregate private bool $tty = false; private bool $pty; private array $options = ['suppress_errors' => true, 'bypass_shell' => true]; - private array $ignoredSignals = []; private WindowsPipes|UnixPipes $processPipes; @@ -91,7 +89,7 @@ class Process implements \IteratorAggregate * * User-defined errors must use exit codes in the 64-113 range. */ - public static array $exitCodes = [ + public static $exitCodes = [ 0 => 'OK', 1 => 'General error', 2 => 'Misuse of shell builtins', @@ -202,7 +200,10 @@ class Process implements \IteratorAggregate throw new \BadMethodCallException('Cannot serialize '.__CLASS__); } - public function __wakeup(): void + /** + * @return void + */ + public function __wakeup() { throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); } @@ -236,11 +237,11 @@ class Process implements \IteratorAggregate * * @return int The exit status code * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException In case a callback is provided and output has been disabled + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running + * @throws ProcessTimedOutException When process timed out + * @throws ProcessSignaledException When process stopped after receiving signal + * @throws LogicException In case a callback is provided and output has been disabled * * @final */ @@ -287,11 +288,13 @@ class Process implements \IteratorAggregate * @param callable|null $callback A PHP callback to run whenever there is some * output available on STDOUT or STDERR * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running - * @throws LogicException In case a callback is provided and output has been disabled + * @return void + * + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running + * @throws LogicException In case a callback is provided and output has been disabled */ - public function start(?callable $callback = null, array $env = []): void + public function start(?callable $callback = null, array $env = []) { if ($this->isRunning()) { throw new RuntimeException('Process is already running.'); @@ -309,7 +312,12 @@ class Process implements \IteratorAggregate $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->getDefaultEnv(), $env, 'strcasecmp') : $this->getDefaultEnv(); if (\is_array($commandline = $this->commandline)) { - $commandline = array_values(array_map(strval(...), $commandline)); + $commandline = implode(' ', array_map($this->escapeArgument(...), $commandline)); + + if ('\\' !== \DIRECTORY_SEPARATOR) { + // exec is mandatory to deal with sending a signal to the process + $commandline = 'exec '.$commandline; + } } else { $commandline = $this->replacePlaceholders($commandline, $env); } @@ -320,11 +328,6 @@ class Process implements \IteratorAggregate // last exit code is output on the fourth pipe and caught to work around --enable-sigchild $descriptors[3] = ['pipe', 'w']; - if (\is_array($commandline)) { - // exec is mandatory to deal with sending a signal to the process - $commandline = 'exec '.$this->buildShellCommandline($commandline); - } - // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;'; $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; @@ -341,34 +344,10 @@ class Process implements \IteratorAggregate throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd)); } - $lastError = null; - set_error_handler(function ($type, $msg) use (&$lastError) { - $lastError = $msg; - - return true; - }); - - $oldMask = []; - - if ($this->ignoredSignals && \function_exists('pcntl_sigprocmask')) { - // we block signals we want to ignore, as proc_open will use fork / posix_spawn which will copy the signal mask this allow to block - // signals in the child process - pcntl_sigprocmask(\SIG_BLOCK, $this->ignoredSignals, $oldMask); - } - - try { - $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); - } finally { - if ($this->ignoredSignals && \function_exists('pcntl_sigprocmask')) { - // we restore the signal mask here to avoid any side effects - pcntl_sigprocmask(\SIG_SETMASK, $oldMask); - } - - restore_error_handler(); - } + $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); if (!\is_resource($process)) { - throw new ProcessStartFailedException($this, $lastError); + throw new RuntimeException('Unable to launch a new process.'); } $this->process = $process; $this->status = self::STATUS_STARTED; @@ -393,8 +372,8 @@ class Process implements \IteratorAggregate * @param callable|null $callback A PHP callback to run whenever there is some * output available on STDOUT or STDERR * - * @throws ProcessStartFailedException When process can't be launched - * @throws RuntimeException When process is already running + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running * * @see start() * @@ -970,7 +949,7 @@ class Process implements \IteratorAggregate */ public function getCommandLine(): string { - return $this->buildShellCommandline($this->commandline); + return \is_array($this->commandline) ? implode(' ', array_map($this->escapeArgument(...), $this->commandline)) : $this->commandline; } /** @@ -1162,9 +1141,11 @@ class Process implements \IteratorAggregate * In case you run a background process (with the start method), you should * trigger this method regularly to ensure the process timeout * + * @return void + * * @throws ProcessTimedOutException In case the timeout was reached */ - public function checkTimeout(): void + public function checkTimeout() { if (self::STATUS_STARTED !== $this->status) { return; @@ -1202,8 +1183,10 @@ class Process implements \IteratorAggregate * * Enabling the "create_new_console" option allows a subprocess to continue * to run after the main process exited, on both Windows and *nix + * + * @return void */ - public function setOptions(array $options): void + public function setOptions(array $options) { if ($this->isRunning()) { throw new RuntimeException('Setting options while the process is running is not possible.'); @@ -1221,20 +1204,6 @@ class Process implements \IteratorAggregate } } - /** - * Defines a list of posix signals that will not be propagated to the process. - * - * @param list<\SIG*> $signals - */ - public function setIgnoredSignals(array $signals): void - { - if ($this->isRunning()) { - throw new RuntimeException('Setting ignored signals while the process is running is not possible.'); - } - - $this->ignoredSignals = $signals; - } - /** * Returns whether TTY is supported on the current operating system. */ @@ -1311,8 +1280,10 @@ class Process implements \IteratorAggregate * Updates the status of the process, reads pipes. * * @param bool $blocking Whether to use a blocking read call + * + * @return void */ - protected function updateStatus(bool $blocking): void + protected function updateStatus(bool $blocking) { if (self::STATUS_STARTED !== $this->status) { return; @@ -1484,11 +1455,6 @@ class Process implements \IteratorAggregate */ private function doSignal(int $signal, bool $throwException): bool { - // Signal seems to be send when sigchild is enable, this allow blocking the signal correctly in this case - if ($this->isSigchildEnabled() && \in_array($signal, $this->ignoredSignals)) { - return false; - } - if (null === $pid = $this->getPid()) { if ($throwException) { throw new LogicException('Cannot send signal on a non running process.'); @@ -1531,18 +1497,8 @@ class Process implements \IteratorAggregate return true; } - private function buildShellCommandline(string|array $commandline): string + private function prepareWindowsCommandLine(string $cmd, array &$env): string { - if (\is_string($commandline)) { - return $commandline; - } - - return implode(' ', array_map($this->escapeArgument(...), $commandline)); - } - - private function prepareWindowsCommandLine(string|array $cmd, array &$env): string - { - $cmd = $this->buildShellCommandline($cmd); $uid = uniqid('', true); $cmd = preg_replace_callback( '/"(?:( diff --git a/vendor/symfony/process/composer.json b/vendor/symfony/process/composer.json index dda5575e..317c07e7 100644 --- a/vendor/symfony/process/composer.json +++ b/vendor/symfony/process/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=8.2" + "php": ">=8.1" }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" }, diff --git a/vendor/symfony/stopwatch/README.md b/vendor/symfony/stopwatch/README.md index 824ddfd6..13a9dfa5 100644 --- a/vendor/symfony/stopwatch/README.md +++ b/vendor/symfony/stopwatch/README.md @@ -6,8 +6,8 @@ The Stopwatch component provides a way to profile code. Getting Started --------------- -```bash -composer require symfony/stopwatch +``` +$ composer require symfony/stopwatch ``` ```php diff --git a/vendor/symfony/stopwatch/Section.php b/vendor/symfony/stopwatch/Section.php index 912e391f..2a34db16 100644 --- a/vendor/symfony/stopwatch/Section.php +++ b/vendor/symfony/stopwatch/Section.php @@ -23,6 +23,8 @@ class Section */ private array $events = []; + private ?float $origin; + private bool $morePrecision; private ?string $id = null; /** @@ -34,10 +36,10 @@ class Section * @param float|null $origin Set the origin of the events in this section, use null to set their origin to their start time * @param bool $morePrecision If true, time is stored as float to keep the original microsecond precision */ - public function __construct( - private ?float $origin = null, - private bool $morePrecision = false, - ) { + public function __construct(?float $origin = null, bool $morePrecision = false) + { + $this->origin = $origin; + $this->morePrecision = $morePrecision; } /** diff --git a/vendor/symfony/stopwatch/Stopwatch.php b/vendor/symfony/stopwatch/Stopwatch.php index 53ef69f7..538898f1 100644 --- a/vendor/symfony/stopwatch/Stopwatch.php +++ b/vendor/symfony/stopwatch/Stopwatch.php @@ -23,6 +23,8 @@ class_exists(Section::class); */ class Stopwatch implements ResetInterface { + private bool $morePrecision; + /** * @var Section[] */ @@ -36,9 +38,9 @@ class Stopwatch implements ResetInterface /** * @param bool $morePrecision If true, time is stored as float to keep the original microsecond precision */ - public function __construct( - private bool $morePrecision = false, - ) { + public function __construct(bool $morePrecision = false) + { + $this->morePrecision = $morePrecision; $this->reset(); } @@ -55,9 +57,11 @@ class Stopwatch implements ResetInterface * * @param string|null $id The id of the session to re-open, null to create a new one * + * @return void + * * @throws \LogicException When the section to re-open is not reachable */ - public function openSection(?string $id = null): void + public function openSection(?string $id = null) { $current = end($this->activeSections); @@ -77,9 +81,11 @@ class Stopwatch implements ResetInterface * * @see getSectionEvents() * + * @return void + * * @throws \LogicException When there's no started section to be stopped */ - public function stopSection(string $id): void + public function stopSection(string $id) { $this->stop('__section__'); @@ -143,8 +149,10 @@ class Stopwatch implements ResetInterface /** * Resets the stopwatch to its original state. + * + * @return void */ - public function reset(): void + public function reset() { $this->sections = $this->activeSections = ['__root__' => new Section(null, $this->morePrecision)]; } diff --git a/vendor/symfony/stopwatch/StopwatchEvent.php b/vendor/symfony/stopwatch/StopwatchEvent.php index 08be4892..1a85d80c 100644 --- a/vendor/symfony/stopwatch/StopwatchEvent.php +++ b/vendor/symfony/stopwatch/StopwatchEvent.php @@ -25,6 +25,7 @@ class StopwatchEvent private float $origin; private string $category; + private bool $morePrecision; /** * @var float[] @@ -41,14 +42,11 @@ class StopwatchEvent * * @throws \InvalidArgumentException When the raw time is not valid */ - public function __construct( - float $origin, - ?string $category = null, - private bool $morePrecision = false, - ?string $name = null, - ) { + public function __construct(float $origin, ?string $category = null, bool $morePrecision = false, ?string $name = null) + { $this->origin = $this->formatTime($origin); $this->category = \is_string($category) ? $category : 'default'; + $this->morePrecision = $morePrecision; $this->name = $name ?? 'default'; } @@ -103,7 +101,7 @@ class StopwatchEvent */ public function isStarted(): bool { - return (bool) $this->started; + return !empty($this->started); } /** @@ -118,8 +116,10 @@ class StopwatchEvent /** * Stops all non already stopped periods. + * + * @return void */ - public function ensureStopped(): void + public function ensureStopped() { while (\count($this->started)) { $this->stop(); diff --git a/vendor/symfony/stopwatch/composer.json b/vendor/symfony/stopwatch/composer.json index 35568695..4aa02b5f 100644 --- a/vendor/symfony/stopwatch/composer.json +++ b/vendor/symfony/stopwatch/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/service-contracts": "^2.5|^3" }, "autoload": { diff --git a/vendor/symfony/string/AbstractString.php b/vendor/symfony/string/AbstractString.php index 253d2dcb..f55c7216 100644 --- a/vendor/symfony/string/AbstractString.php +++ b/vendor/symfony/string/AbstractString.php @@ -39,8 +39,8 @@ abstract class AbstractString implements \Stringable, \JsonSerializable public const PREG_SPLIT_DELIM_CAPTURE = \PREG_SPLIT_DELIM_CAPTURE; public const PREG_SPLIT_OFFSET_CAPTURE = \PREG_SPLIT_OFFSET_CAPTURE; - protected string $string = ''; - protected ?bool $ignoreCase = false; + protected $string = ''; + protected $ignoreCase = false; abstract public function __construct(string $string = ''); diff --git a/vendor/symfony/string/AbstractUnicodeString.php b/vendor/symfony/string/AbstractUnicodeString.php index f3acb2e1..4e085010 100644 --- a/vendor/symfony/string/AbstractUnicodeString.php +++ b/vendor/symfony/string/AbstractUnicodeString.php @@ -220,21 +220,6 @@ abstract class AbstractUnicodeString extends AbstractString return $str; } - /** - * @param string $locale In the format language_region (e.g. tr_TR) - */ - public function localeLower(string $locale): static - { - if (null !== $transliterator = $this->getLocaleTransliterator($locale, 'Lower')) { - $str = clone $this; - $str->string = $transliterator->transliterate($str->string); - - return $str; - } - - return $this->lower(); - } - public function match(string $regexp, int $flags = 0, int $offset = 0): array { $match = ((\PREG_PATTERN_ORDER | \PREG_SET_ORDER) & $flags) ? 'preg_match_all' : 'preg_match'; @@ -361,8 +346,8 @@ abstract class AbstractUnicodeString extends AbstractString public function snake(): static { - $str = $this->camel(); - $str->string = mb_strtolower(preg_replace(['/(\p{Lu}+)(\p{Lu}\p{Ll})/u', '/([\p{Ll}0-9])(\p{Lu})/u'], '\1_\2', $str->string), 'UTF-8'); + $str = clone $this; + $str->string = str_replace(' ', '_', mb_strtolower(preg_replace(['/(\p{Lu}+)(\p{Lu}\p{Ll})/u', '/([\p{Ll}0-9])(\p{Lu})/u'], '\1 \2', $str->string), 'UTF-8')); return $str; } @@ -378,21 +363,6 @@ abstract class AbstractUnicodeString extends AbstractString return $str; } - /** - * @param string $locale In the format language_region (e.g. tr_TR) - */ - public function localeTitle(string $locale): static - { - if (null !== $transliterator = $this->getLocaleTransliterator($locale, 'Title')) { - $str = clone $this; - $str->string = $transliterator->transliterate($str->string); - - return $str; - } - - return $this->title(); - } - public function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static { if (" \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}" !== $chars && !preg_match('//u', $chars)) { @@ -480,21 +450,6 @@ abstract class AbstractUnicodeString extends AbstractString return $str; } - /** - * @param string $locale In the format language_region (e.g. tr_TR) - */ - public function localeUpper(string $locale): static - { - if (null !== $transliterator = $this->getLocaleTransliterator($locale, 'Upper')) { - $str = clone $this; - $str->string = $transliterator->transliterate($str->string); - - return $str; - } - - return $this->upper(); - } - public function width(bool $ignoreAnsiDecoration = true): int { $width = 0; @@ -632,33 +587,4 @@ abstract class AbstractUnicodeString extends AbstractString return $width; } - - private function getLocaleTransliterator(string $locale, string $id): ?\Transliterator - { - $rule = $locale.'-'.$id; - if (\array_key_exists($rule, self::$transliterators)) { - return self::$transliterators[$rule]; - } - - if (null !== $transliterator = self::$transliterators[$rule] = \Transliterator::create($rule)) { - return $transliterator; - } - - // Try to find a parent locale (nl_BE -> nl) - if (false === $i = strpos($locale, '_')) { - return null; - } - - $parentRule = substr_replace($locale, '-'.$id, $i); - - // Parent locale was already cached, return and store as current locale - if (\array_key_exists($parentRule, self::$transliterators)) { - return self::$transliterators[$rule] = self::$transliterators[$parentRule]; - } - - // Create transliterator based on parent locale and cache the result on both initial and parent locale values - $transliterator = \Transliterator::create($parentRule); - - return self::$transliterators[$rule] = self::$transliterators[$parentRule] = $transliterator; - } } diff --git a/vendor/symfony/string/ByteString.php b/vendor/symfony/string/ByteString.php index e6b56ae1..6389dbd1 100644 --- a/vendor/symfony/string/ByteString.php +++ b/vendor/symfony/string/ByteString.php @@ -11,7 +11,6 @@ namespace Symfony\Component\String; -use Random\Randomizer; use Symfony\Component\String\Exception\ExceptionInterface; use Symfony\Component\String\Exception\InvalidArgumentException; use Symfony\Component\String\Exception\RuntimeException; @@ -56,10 +55,6 @@ class ByteString extends AbstractString throw new InvalidArgumentException('The length of the alphabet must in the [2^1, 2^56] range.'); } - if (\PHP_VERSION_ID >= 80300) { - return new static((new Randomizer())->getBytesFromString($alphabet, $length)); - } - $ret = ''; while ($length > 0) { $urandomLength = (int) ceil(2 * $length * $bits / 8.0); @@ -347,8 +342,8 @@ class ByteString extends AbstractString public function snake(): static { - $str = $this->camel(); - $str->string = strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1_\2', $str->string)); + $str = clone $this; + $str->string = str_replace(' ', '_', strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1 \2', $str->string))); return $str; } diff --git a/vendor/symfony/string/CHANGELOG.md b/vendor/symfony/string/CHANGELOG.md index 621cedfc..31a3b54d 100644 --- a/vendor/symfony/string/CHANGELOG.md +++ b/vendor/symfony/string/CHANGELOG.md @@ -1,11 +1,6 @@ CHANGELOG ========= -7.1 ---- - - * Add `localeLower()`, `localeUpper()`, `localeTitle()` methods to `AbstractUnicodeString` - 6.2 --- diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php index 56f03b7f..77ebc134 100644 --- a/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/vendor/symfony/string/Inflector/EnglishInflector.php @@ -25,8 +25,32 @@ final class EnglishInflector implements InflectorInterface // Fourth entry: Whether the suffix may succeed a consonant // Fifth entry: singular suffix, normal - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['a', 1, true, true, ['on', 'um']], + // bacteria (bacterium) + ['airetcab', 8, true, true, 'bacterium'], + + // corpora (corpus) + ['aroproc', 7, true, true, 'corpus'], + + // criteria (criterion) + ['airetirc', 8, true, true, 'criterion'], + + // curricula (curriculum) + ['alucirruc', 9, true, true, 'curriculum'], + + // genera (genus) + ['areneg', 6, true, true, 'genus'], + + // media (medium) + ['aidem', 5, true, true, 'medium'], + + // memoranda (memorandum) + ['adnaromem', 9, true, true, 'memorandum'], + + // phenomena (phenomenon) + ['anemonehp', 9, true, true, 'phenomenon'], + + // strata (stratum) + ['atarts', 6, true, true, 'stratum'], // nebulae (nebula) ['ea', 2, true, true, 'a'], @@ -141,7 +165,7 @@ final class EnglishInflector implements InflectorInterface // shoes (shoe) ['se', 2, true, true, ['', 'e']], - // status (status) + // status (status) ['sutats', 6, true, true, 'status'], // tags (tag) @@ -241,7 +265,7 @@ final class EnglishInflector implements InflectorInterface // albums (album) ['mubla', 5, true, true, 'albums'], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) + // bacteria (bacterium), curricula (curriculum), media (medium), memoranda (memorandum), phenomena (phenomenon), strata (stratum) ['mu', 2, true, true, 'a'], // men (man), women (woman) @@ -250,20 +274,11 @@ final class EnglishInflector implements InflectorInterface // people (person) ['nosrep', 6, true, true, ['persons', 'people']], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['noi', 3, true, true, 'ions'], + // criteria (criterion) + ['noiretirc', 9, true, true, 'criteria'], - // coupon (coupons) - ['nop', 3, true, true, 'pons'], - - // seasons (season), treasons (treason), poisons (poison), lessons (lesson) - ['nos', 3, true, true, 'sons'], - - // icons (icon) - ['noc', 3, true, true, 'cons'], - - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['no', 2, true, true, 'a'], + // phenomena (phenomenon) + ['nonemonehp', 10, true, true, 'phenomena'], // echoes (echo) ['ohce', 4, true, true, 'echoes'], @@ -274,6 +289,9 @@ final class EnglishInflector implements InflectorInterface // atlases (atlas) ['salta', 5, true, true, 'atlases'], + // aliases (alias) + ['saila', 5, true, true, 'aliases'], + // irises (iris) ['siri', 4, true, true, 'irises'], diff --git a/vendor/symfony/string/LazyString.php b/vendor/symfony/string/LazyString.php index 8f2bbbf8..3d893ef9 100644 --- a/vendor/symfony/string/LazyString.php +++ b/vendor/symfony/string/LazyString.php @@ -129,7 +129,7 @@ class LazyString implements \Stringable, \JsonSerializable } elseif ($callback instanceof \Closure) { $r = new \ReflectionFunction($callback); - if ($r->isAnonymous() || !$class = $r->getClosureCalledClass()) { + if (str_contains($r->name, '{closure') || !$class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { return $r->name; } diff --git a/vendor/symfony/string/Slugger/AsciiSlugger.php b/vendor/symfony/string/Slugger/AsciiSlugger.php index d2545329..a9693d49 100644 --- a/vendor/symfony/string/Slugger/AsciiSlugger.php +++ b/vendor/symfony/string/Slugger/AsciiSlugger.php @@ -11,7 +11,7 @@ namespace Symfony\Component\String\Slugger; -use Symfony\Component\Emoji\EmojiTransliterator; +use Symfony\Component\Intl\Transliterator\EmojiTransliterator; use Symfony\Component\String\AbstractUnicodeString; use Symfony\Component\String\UnicodeString; use Symfony\Contracts\Translation\LocaleAwareInterface; @@ -55,6 +55,7 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface 'zh' => 'Han-Latin', ]; + private ?string $defaultLocale; private \Closure|array $symbolsMap = [ 'en' => ['@' => 'at', '&' => 'and'], ]; @@ -67,14 +68,16 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface */ private array $transliterators = []; - public function __construct( - private ?string $defaultLocale = null, - array|\Closure|null $symbolsMap = null, - ) { + public function __construct(?string $defaultLocale = null, array|\Closure|null $symbolsMap = null) + { + $this->defaultLocale = $defaultLocale; $this->symbolsMap = $symbolsMap ?? $this->symbolsMap; } - public function setLocale(string $locale): void + /** + * @return void + */ + public function setLocale(string $locale) { $this->defaultLocale = $locale; } @@ -92,7 +95,7 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface public function withEmoji(bool|string $emoji = true): static { if (false !== $emoji && !class_exists(EmojiTransliterator::class)) { - throw new \LogicException(sprintf('You cannot use the "%s()" method as the "symfony/emoji" package is not installed. Try running "composer require symfony/emoji".', __METHOD__)); + throw new \LogicException(sprintf('You cannot use the "%s()" method as the "symfony/intl" package is not installed. Try running "composer require symfony/intl".', __METHOD__)); } $new = clone $this; diff --git a/vendor/symfony/string/UnicodeString.php b/vendor/symfony/string/UnicodeString.php index 4b16caf9..75af2da4 100644 --- a/vendor/symfony/string/UnicodeString.php +++ b/vendor/symfony/string/UnicodeString.php @@ -362,7 +362,10 @@ class UnicodeString extends AbstractUnicodeString return $prefix === grapheme_extract($this->string, \strlen($prefix), \GRAPHEME_EXTR_MAXBYTES); } - public function __wakeup(): void + /** + * @return void + */ + public function __wakeup() { if (!\is_string($this->string)) { throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); diff --git a/vendor/symfony/string/composer.json b/vendor/symfony/string/composer.json index 10d0ee62..56c13688 100644 --- a/vendor/symfony/string/composer.json +++ b/vendor/symfony/string/composer.json @@ -16,19 +16,18 @@ } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/error-handler": "^6.4|^7.0", - "symfony/emoji": "^7.1", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/translation-contracts": "<2.5"