From 9d678f08078835efafdfc93257765381585a8cf9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 08:50:56 +0200 Subject: [PATCH] Bump rector/rector from 1.0.0 to 1.0.3 (#172) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Staab --- composer.json | 2 +- composer.lock | 102 +- vendor/composer/installed.json | 116 +- vendor/composer/installed.php | 52 +- vendor/composer/pcre/src/MatchAllResult.php | 2 +- .../pcre/src/MatchAllStrictGroupsResult.php | 2 +- vendor/composer/pcre/src/Preg.php | 46 +- vendor/composer/pcre/src/Regex.php | 8 +- vendor/composer/xdebug-handler/CHANGELOG.md | 7 +- vendor/composer/xdebug-handler/README.md | 15 +- vendor/composer/xdebug-handler/composer.json | 8 +- .../composer/xdebug-handler/src/Process.php | 1 + vendor/composer/xdebug-handler/src/Status.php | 35 +- .../xdebug-handler/src/XdebugHandler.php | 147 +- vendor/phpstan/phpstan/phpstan.phar | Bin 22443929 -> 22562101 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- vendor/rector/rector/README.md | 19 +- .../rector/bin/add-phpstan-self-replace.php | 6 +- vendor/rector/rector/bin/rector | 2 +- vendor/rector/rector/bin/rector.php | 12 +- vendor/rector/rector/composer.json | 2 +- vendor/rector/rector/config/config.php | 4 +- .../rector/rector/config/set/code-quality.php | 5 +- .../rector/rector/config/set/coding-style.php | 2 +- vendor/rector/rector/config/set/dead-code.php | 89 +- .../rector/rector/config/set/early-return.php | 2 +- .../rector/config/set/gmagick-to-imagick.php | 2 +- .../rector/rector/config/set/instanceof.php | 2 +- .../rector/config/set/level/up-to-php53.php | 2 +- .../rector/config/set/level/up-to-php54.php | 2 +- .../rector/config/set/level/up-to-php55.php | 2 +- .../rector/config/set/level/up-to-php56.php | 2 +- .../rector/config/set/level/up-to-php70.php | 2 +- .../rector/config/set/level/up-to-php71.php | 2 +- .../rector/config/set/level/up-to-php72.php | 2 +- .../rector/config/set/level/up-to-php73.php | 2 +- .../rector/config/set/level/up-to-php74.php | 2 +- .../rector/config/set/level/up-to-php80.php | 2 +- .../rector/config/set/level/up-to-php81.php | 2 +- .../rector/config/set/level/up-to-php82.php | 2 +- .../rector/config/set/level/up-to-php83.php | 2 +- vendor/rector/rector/config/set/naming.php | 2 +- vendor/rector/rector/config/set/php52.php | 2 +- vendor/rector/rector/config/set/php53.php | 2 +- vendor/rector/rector/config/set/php54.php | 2 +- vendor/rector/rector/config/set/php55.php | 2 +- vendor/rector/rector/config/set/php56.php | 2 +- vendor/rector/rector/config/set/php70.php | 2 +- vendor/rector/rector/config/set/php71.php | 2 +- vendor/rector/rector/config/set/php72.php | 2 +- vendor/rector/rector/config/set/php73.php | 2 +- vendor/rector/rector/config/set/php74.php | 2 +- vendor/rector/rector/config/set/php80.php | 2 +- vendor/rector/rector/config/set/php81.php | 2 +- vendor/rector/rector/config/set/php82.php | 2 +- vendor/rector/rector/config/set/php83.php | 2 +- .../rector/config/set/privatization.php | 2 +- .../rector/config/set/strict-booleans.php | 2 +- .../rector/config/set/type-declaration.php | 43 +- .../ClassMethod/ArgumentAdderRector.php | 2 +- .../ReplaceArgumentDefaultValueRector.php | 2 +- ...tionArgumentDefaultValueReplacerRector.php | 2 +- .../RemoveMethodCallParamRector.php | 2 +- .../VariableDimFetchAssignResolver.php | 3 + .../InlineArrayReturnAssignRector.php | 1 + ...llyCalledStaticMethodToNonStaticRector.php | 4 +- .../CompleteDynamicPropertiesRector.php | 6 +- ...SelfStaticMethodCallOnFinalClassRector.php | 100 ++ .../Rector/Concat/JoinStringConcatRector.php | 2 +- ...seIdenticalOverEqualWithSameTypeRector.php | 18 +- .../SimplifyForeachToCoalescingRector.php | 7 +- ...rayMergeOfNonArraysToSimpleArrayRector.php | 2 +- .../FuncCall/SimplifyRegexPatternRector.php | 2 +- .../Rector/If_/ExplicitBoolCompareRector.php | 5 +- .../Rector/If_/SimplifyIfReturnBoolRector.php | 12 +- .../AbsolutizeRequireAndIncludePathRector.php | 2 +- .../Application/UseImportsAdder.php | 2 +- ...yQualifiedNameClassNameImportSkipVoter.php | 2 +- .../ClassNameImport/ShortNameResolver.php | 2 +- .../rules/CodingStyle/Naming/ClassNaming.php | 2 +- .../NodeAnalyzer/UseImportNameMatcher.php | 2 +- .../CatchExceptionNameMatchingTypeRector.php | 2 +- ...itedMethodVisibilitySameAsParentRector.php | 11 + .../EncapsedStringsToSprintfRector.php | 2 +- .../Stmt/NewlineAfterStatementRector.php | 1 + ...RemoveUselessAliasInUseStatementRector.php | 2 +- ...assKeywordForClassNameResolutionRector.php | 2 +- .../PhpDoc/TagRemover/VarTagRemover.php | 17 +- .../RemoveUnusedVariableAssignRector.php | 22 +- .../ClassLike/RemoveAnnotationRector.php | 2 +- .../RemoveUnusedPrivateMethodRector.php | 21 +- .../RemoveUnusedPromotedPropertyRector.php | 26 +- .../Expression/RemoveDeadStmtRector.php | 5 +- .../Rector/For_/RemoveDeadContinueRector.php | 1 + .../Foreach_/RemoveUnusedForeachKeyRector.php | 12 +- .../FunctionLike/RemoveDeadReturnRector.php | 1 + .../RemoveUnusedPrivatePropertyRector.php | 11 +- .../SideEffect/PureFunctionDetector.php | 2 + .../SideEffect/SideEffectNodeDetector.php | 2 +- .../NodeAnalyzer/IfAndAnalyzer.php | 12 +- ...geIfElseValueAssignToEarlyReturnRector.php | 1 + .../InflectorSingularResolver.php | 4 +- .../Guard/BreakingVariableRenameGuard.php | 13 +- .../rules/Naming/Naming/PropertyNaming.php | 2 +- ...iableToMatchMethodCallReturnTypeRector.php | 2 +- .../rules/Naming/RectorNamingInflector.php | 4 +- .../PropertyRenameFactory.php | 7 +- .../StringClassNameToClassConstantRector.php | 2 +- .../rector/rules/Php55/RegexMatcher.php | 2 +- .../rules/Php70/EregToPcreTransformer.php | 2 +- .../Assign/AssignArrayToStringRector.php | 10 +- .../NodeFactory/AnonymousFunctionFactory.php | 2 +- .../ParseStrWithResultArgumentRector.php | 1 + .../FuncCall/ArrayKeyFirstLastRector.php | 1 + .../Rector/FuncCall/RegexDashEscapeRector.php | 2 +- .../AddLiteralSeparatorToNumberRector.php | 2 +- .../DoctrineConverterAttributeDecorator.php | 38 + ...SensioParamConverterAttributeDecorator.php | 3 +- .../ConverterAttributeDecoratorInterface.php | 11 + .../NodeFactory/NestedAttrGroupsFactory.php | 2 +- ...AttributeGroupNamedArgumentManipulator.php | 21 +- .../Class_/AnnotationToAttributeRector.php | 8 +- .../Rector/Identical/StrEndsWithRector.php | 14 +- .../NestedAnnotationToAttributeRector.php | 9 +- .../Switch_/ChangeSwitchToMatchRector.php | 4 + .../ValueObject/AnnotationToAttribute.php | 20 +- .../rules/Php81/NodeFactory/EnumFactory.php | 2 +- .../NullToStrictStringFuncCallArgRector.php | 35 +- .../SpatieEnumMethodCallToEnumConstRector.php | 2 +- .../Property/ReadOnlyPropertyRector.php | 6 +- .../New_/FilesystemIteratorSkipDotsRector.php | 21 +- .../AddSensitiveParameterAttributeRector.php | 2 +- .../ClassConst/AddTypeToConstRector.php | 7 +- ...rideAttributeToOverriddenMethodsRector.php | 3 + .../NodeManipulator/VisibilityManipulator.php | 2 +- .../Class_/FinalizeTestCaseClassRector.php | 3 + .../ClassMethod/ArgumentRemoverRector.php | 2 +- .../Rector/Class_/RemoveInterfacesRector.php | 2 +- .../Rector/Class_/RemoveTraitUseRector.php | 2 +- .../FuncCall/RemoveFuncCallArgRector.php | 2 +- .../Rector/FuncCall/RemoveFuncCallRector.php | 2 +- .../RenameClassConstFetchRector.php | 2 +- .../ClassMethod/RenameAnnotationRector.php | 2 +- .../ConstFetch/RenameConstantRector.php | 2 +- .../Rector/FuncCall/RenameFunctionRector.php | 2 +- ...nctionLikeParamWithinCallLikeArgRector.php | 188 +++ .../Rector/MethodCall/RenameMethodRector.php | 2 +- .../Rector/Name/RenameClassRector.php | 2 +- .../PropertyFetch/RenamePropertyRector.php | 2 +- .../StaticCall/RenameStaticMethodRector.php | 2 +- .../Rector/String_/RenameStringRector.php | 2 +- ...nameFunctionLikeParamWithinCallLikeArg.php | 74 + .../AbstractFalsyScalarRuleFixerRector.php | 2 +- .../PropertyAssignToMethodCallRector.php | 2 +- .../PropertyFetchToMethodCallRector.php | 2 +- .../AttributeKeyToClassConstFetchRector.php | 2 +- .../ReturnTypeWillChangeRector.php | 2 +- .../Rector/ClassMethod/WrapReturnRector.php | 2 +- ...dAllowDynamicPropertiesAttributeRector.php | 2 +- .../Class_/AddInterfaceByTraitRector.php | 2 +- .../Rector/Class_/MergeInterfacesRector.php | 2 +- .../Class_/ParentClassToTraitsRector.php | 2 +- .../ConstFetchToClassConstFetchRector.php | 47 + .../RectorConfigBuilderRector.php | 104 +- .../FuncCall/FuncCallToConstFetchRector.php | 2 +- .../FuncCall/FuncCallToMethodCallRector.php | 2 +- .../Rector/FuncCall/FuncCallToNewRector.php | 2 +- .../FuncCall/FuncCallToStaticCallRector.php | 2 +- .../MethodCall/MethodCallToFuncCallRector.php | 2 +- .../MethodCallToPropertyFetchRector.php | 2 +- .../MethodCallToStaticCallRector.php | 2 +- .../ReplaceParentCallByPropertyCallRector.php | 2 +- .../Rector/New_/NewToStaticCallRector.php | 2 +- .../StaticCall/StaticCallToFuncCallRector.php | 2 +- .../StaticCallToMethodCallRector.php | 2 +- .../StaticCall/StaticCallToNewRector.php | 2 +- .../String_/StringToClassConstantRector.php | 2 +- .../ConstFetchToClassConstFetch.php | 45 + .../ValueObject/ParentClassToTraits.php | 2 +- ...AutowiredClassMethodOrPropertyAnalyzer.php | 2 +- .../NodeAnalyzer/CallerParamMatcher.php | 13 + .../PHPStan/ObjectTypeSpecifier.php | 2 +- ...amTypeBasedOnPHPUnitDataProviderRector.php | 2 +- .../AddParamTypeDeclarationRector.php | 2 +- .../AddReturnTypeDeclarationRector.php | 2 +- ...rnTypeFromStrictScalarReturnExprRector.php | 2 +- ...TestsVoidReturnTypeWhereNoReturnRector.php | 102 ++ ...ChildDoctrineRepositoryClassTypeRector.php | 188 +++ ...LikeWithinCallLikeArgDeclarationRector.php | 186 +++ .../AddPropertyTypeDeclarationRector.php | 2 +- .../TypedPropertyFromStrictSetUpRector.php | 29 +- .../DeclareStrictTypesRector.php | 3 + .../GenericClassStringTypeNormalizer.php | 6 +- .../TypeAnalyzer/ReturnStrictTypeAnalyzer.php | 14 +- ...nctionLikeWithinCallLikeArgDeclaration.php | 78 + .../ChangeConstantVisibilityRector.php | 2 +- .../ChangeMethodVisibilityRector.php | 2 +- .../Application/ApplicationFileProcessor.php | 14 +- .../rector/src/Application/FileProcessor.php | 17 +- .../src/Application/VersionResolver.php | 4 +- .../src/Autoloading/AdditionalAutoloader.php | 4 +- .../Autoloading/BootstrapFilesIncluder.php | 5 +- .../PhpDoc/DoctrineAnnotationTagValueNode.php | 6 +- .../PhpDocInfo/PhpDocInfo.php | 21 + .../PhpDocManipulator/PhpDocClassRenamer.php | 2 +- .../BetterPhpDocParser/PhpDocNodeMapper.php | 2 +- .../ArrayItemClassNameDecorator.php | 62 + .../PhpDocParser/BetterPhpDocParser.php | 4 +- .../DoctrineAnnotationDecorator.php | 54 +- .../StaticDoctrineAnnotationParser.php | 18 + .../Printer/DocBlockInliner.php | 2 +- .../Printer/PhpDocInfoPrinter.php | 2 +- .../AbstractValuesAwareNode.php | 1 + .../DoctrineAnnotation/CurlyListNode.php | 3 +- .../Type/FullyQualifiedIdentifierTypeNode.php | 2 +- .../src/Bootstrap/RectorConfigsResolver.php | 4 +- .../rector/src/Caching/CacheFactory.php | 2 +- .../ValueObject/Storage/FileCacheStorage.php | 6 +- .../Annotation/AnnotationExtractor.php | 2 +- .../Output/ConsoleOutputFormatter.php | 4 +- .../Output/JsonOutputFormatter.php | 2 +- .../ValueObject/RectorWithLineChange.php | 6 +- .../Levels => Config/Level}/DeadCodeLevel.php | 4 +- .../Level/TypeDeclarationLevel.php} | 55 +- .../rector/rector/src/Config/RectorConfig.php | 21 +- .../rector/src/Config/RegisteredService.php | 41 + .../src/Configuration/ConfigInitializer.php | 9 +- .../Configuration/ConfigurationFactory.php | 4 +- .../Levels/LevelRulesResolver.php | 2 +- .../Parameter/SimpleParameterProvider.php | 2 +- .../src/Configuration/RectorConfigBuilder.php | 75 +- .../Configuration/VendorMissAnalyseGuard.php | 4 +- .../src/Console/Command/CustomRuleCommand.php | 16 +- .../src/Console/Command/DetectNodeCommand.php | 70 + .../src/Console/Command/ListRulesCommand.php | 12 +- .../src/Console/Command/ProcessCommand.php | 10 +- .../src/Console/Command/SetupCICommand.php | 12 +- .../src/Console/Command/WorkerCommand.php | 24 +- .../rector/src/Console/ConsoleApplication.php | 16 +- vendor/rector/rector/src/Console/ExitCode.php | 2 +- .../Formatter/ColorConsoleDiffFormatter.php | 12 +- .../src/Console/Formatter/ConsoleDiffer.php | 4 +- .../src/Console/ProcessConfigureDecorator.php | 6 +- .../rector/src/Console/Style/RectorStyle.php | 12 +- .../src/Console/Style/SymfonyStyleFactory.php | 10 +- .../RelatedConfigInterface.php | 12 + .../src/CustomRules/SimpleNodeDumper.php | 173 ++ .../Laravel/ContainerMemento.php | 2 +- .../LazyContainerFactory.php | 39 +- .../RectorContainerFactory.php | 2 +- .../rector/src/Differ/DefaultDiffer.php | 4 +- .../rector/src/FileSystem/FilePathHelper.php | 6 +- .../rector/src/FileSystem/FilesFinder.php | 2 +- .../src/FileSystem/InitFilePathsResolver.php | 4 +- .../rector/src/FileSystem/JsonFileSystem.php | 4 +- .../Parser/FileInfoParser.php | 54 - .../rector/src/Git/RepositoryHelper.php | 4 +- .../NodeAnalyzer/TerminatedNodeAnalyzer.php | 1 + .../ArrayCallableMethodMatcher.php | 2 +- .../ArrayCallableDynamicMethod.php | 40 +- .../NodeManipulator/PropertyManipulator.php | 2 +- .../src/NodeManipulator/StmtsManipulator.php | 1 + .../PHPStanServicesFactory.php | 29 +- .../NodeTypeResolver/Node/AttributeKey.php | 4 + .../Scope/PHPStanNodeScopeResolver.php | 23 +- .../NameImportingPhpDocNodeVisitor.php | 2 +- .../TypeComparator/TypeComparator.php | 3 + .../ExprScopeFromStmtNodeVisitor.php | 5 +- .../UnreachableStatementNodeVisitor.php | 19 +- .../PHPStanStaticTypeMapper.php | 2 +- .../TypeMapper/ArrayTypeMapper.php | 5 +- .../TypeMapper/ConditionalTypeMapper.php | 2 +- .../TypeMapper/IntersectionTypeMapper.php | 2 +- .../TypeMapper/ObjectTypeMapper.php | 2 +- .../TypeMapper/UnionTypeMapper.php | 4 +- .../Application/ParallelFileProcessor.php | 30 +- .../Command/WorkerCommandLineFactory.php | 8 +- .../ProjectComposerJsonPhpVersionResolver.php | 6 +- .../src/Php/PolyfillPackagesProvider.php | 4 +- .../AnnotationToAttributeMapper.php | 4 +- .../ArrayAnnotationToAttributeMapper.php | 2 +- ...rayItemNodeAnnotationToAttributeMapper.php | 2 +- ...rlyListNodeAnnotationToAttributeMapper.php | 2 +- .../AttributeArrayNameInliner.php | 5 +- .../ExprParameterReflectionTypeCorrector.php | 103 -- .../NodeFactory/NamedArgsFactory.php | 2 +- .../NodeFactory/PhpAttributeGroupFactory.php | 59 +- .../PhpNestedAttributeGroupFactory.php | 61 +- .../src/PhpParser/Node/BetterNodeFinder.php | 2 +- .../src/PhpParser/Parser/InlineCodeParser.php | 4 +- .../src/PhpParser/Parser/SimplePhpParser.php | 55 +- .../Printer/BetterStandardPrinter.php | 12 +- .../Printer/FormatPerservingPrinter.php | 2 +- .../Contract/Rector/PostRectorInterface.php | 3 + .../Rector/UnusedImportRemovingPostRector.php | 34 +- .../rector/src/Skipper/Skipper/Skipper.php | 2 +- .../Mapper/ScalarStringToTypeMapper.php | 2 +- .../PhpDoc/PhpDocTypeMapper.php | 2 +- .../PhpDocParser/IdentifierTypeMapper.php | 2 +- .../Type/FullyQualifiedObjectType.php | 2 +- .../src/Testing/Fixture/FixtureFileFinder.php | 2 +- .../Testing/Fixture/FixtureFileUpdater.php | 2 +- .../src/Testing/Fixture/FixtureSplitter.php | 2 +- .../Testing/Fixture/FixtureTempFileDumper.php | 2 +- .../PHPUnit/AbstractRectorTestCase.php | 10 +- .../Testing/TestingParser/TestingParser.php | 2 +- .../rector/rector/src/Util/MemoryLimiter.php | 2 +- .../rector/src/Util/NewLineSplitter.php | 21 + vendor/rector/rector/src/Util/NodePrinter.php | 53 + vendor/rector/rector/src/Util/StringUtils.php | 2 +- .../rector/src/Validation/RectorAssert.php | 2 +- .../rector/src/ValueObject/Configuration.php | 2 +- .../src/ValueObject/Error/SystemError.php | 4 +- .../src/ValueObject/FileProcessResult.php | 2 +- .../rector/src/ValueObject/ProcessResult.php | 2 +- .../src/ValueObject/Reporting/FileDiff.php | 8 +- .../ClassMethodReturnTypeOverrideGuard.php | 4 + .../ClassMethodReturnVendorLockResolver.php | 3 + .../ParentClassMethodTypeOverrideGuard.php | 4 + .../rector/src/functions/node_helper.php | 21 +- .../stubs-rector/Internal/Constants.php | 19 + .../templates/rector-github-action-check.yaml | 4 +- vendor/rector/rector/vendor/autoload.php | 2 +- vendor/rector/rector/vendor/bin/php-parse | 6 +- vendor/rector/rector/vendor/bin/yaml-lint | 94 ++ .../vendor/clue/ndjson-react/composer.json | 4 +- .../vendor/clue/ndjson-react/src/Decoder.php | 10 +- .../vendor/clue/ndjson-react/src/Encoder.php | 6 +- .../vendor/composer/InstalledVersions.php | 10 +- .../vendor/composer/autoload_classmap.php | 1289 +++++++-------- .../rector/vendor/composer/autoload_files.php | 2 +- .../rector/vendor/composer/autoload_psr4.php | 55 +- .../rector/vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 1412 +++++++++-------- .../rector/vendor/composer/installed.json | 357 +++-- .../rector/vendor/composer/installed.php | 4 +- .../rector/vendor/composer/pcre/composer.json | 4 +- .../composer/pcre/src/MatchAllResult.php | 4 +- .../pcre/src/MatchAllStrictGroupsResult.php | 4 +- .../pcre/src/MatchAllWithOffsetsResult.php | 2 +- .../vendor/composer/pcre/src/MatchResult.php | 2 +- .../pcre/src/MatchStrictGroupsResult.php | 2 +- .../pcre/src/MatchWithOffsetsResult.php | 2 +- .../composer/pcre/src/PcreException.php | 2 +- .../rector/vendor/composer/pcre/src/Preg.php | 41 +- .../rector/vendor/composer/pcre/src/Regex.php | 10 +- .../composer/pcre/src/ReplaceResult.php | 2 +- .../pcre/src/UnexpectedNullMatchException.php | 2 +- .../vendor/composer/semver/composer.json | 4 +- .../vendor/composer/semver/src/Comparator.php | 4 +- .../composer/semver/src/CompilingMatcher.php | 6 +- .../composer/semver/src/Constraint/Bound.php | 2 +- .../semver/src/Constraint/Constraint.php | 2 +- .../src/Constraint/ConstraintInterface.php | 2 +- .../src/Constraint/MatchAllConstraint.php | 2 +- .../src/Constraint/MatchNoneConstraint.php | 2 +- .../semver/src/Constraint/MultiConstraint.php | 2 +- .../vendor/composer/semver/src/Interval.php | 4 +- .../vendor/composer/semver/src/Intervals.php | 12 +- .../vendor/composer/semver/src/Semver.php | 4 +- .../composer/semver/src/VersionParser.php | 10 +- .../composer/xdebug-handler/composer.json | 4 +- .../composer/xdebug-handler/src/PhpConfig.php | 2 +- .../composer/xdebug-handler/src/Process.php | 4 +- .../composer/xdebug-handler/src/Status.php | 6 +- .../xdebug-handler/src/XdebugHandler.php | 6 +- .../vendor/doctrine/inflector/composer.json | 4 +- .../Inflector/CachedWordInflector.php | 2 +- .../GenericLanguageInflectorFactory.php | 4 +- .../lib/Doctrine/Inflector/Inflector.php | 4 +- .../Doctrine/Inflector/InflectorFactory.php | 14 +- .../lib/Doctrine/Inflector/Language.php | 2 +- .../Inflector/LanguageInflectorFactory.php | 4 +- .../Doctrine/Inflector/NoopWordInflector.php | 2 +- .../Inflector/Rules/English/Inflectible.php | 40 +- .../Rules/English/InflectorFactory.php | 6 +- .../Inflector/Rules/English/Rules.php | 10 +- .../Inflector/Rules/English/Uninflected.php | 4 +- .../Inflector/Rules/French/Inflectible.php | 10 +- .../Rules/French/InflectorFactory.php | 6 +- .../Doctrine/Inflector/Rules/French/Rules.php | 10 +- .../Inflector/Rules/French/Uninflected.php | 4 +- .../Rules/NorwegianBokmal/Inflectible.php | 10 +- .../NorwegianBokmal/InflectorFactory.php | 6 +- .../Inflector/Rules/NorwegianBokmal/Rules.php | 10 +- .../Rules/NorwegianBokmal/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Pattern.php | 2 +- .../lib/Doctrine/Inflector/Rules/Patterns.php | 2 +- .../Rules/Portuguese/Inflectible.php | 10 +- .../Rules/Portuguese/InflectorFactory.php | 6 +- .../Inflector/Rules/Portuguese/Rules.php | 10 +- .../Rules/Portuguese/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Ruleset.php | 2 +- .../Inflector/Rules/Spanish/Inflectible.php | 20 +- .../Rules/Spanish/InflectorFactory.php | 6 +- .../Inflector/Rules/Spanish/Rules.php | 10 +- .../Inflector/Rules/Spanish/Uninflected.php | 4 +- .../Doctrine/Inflector/Rules/Substitution.php | 2 +- .../Inflector/Rules/Substitutions.php | 4 +- .../Inflector/Rules/Transformation.php | 4 +- .../Inflector/Rules/Transformations.php | 4 +- .../Inflector/Rules/Turkish/Inflectible.php | 10 +- .../Rules/Turkish/InflectorFactory.php | 6 +- .../Inflector/Rules/Turkish/Rules.php | 10 +- .../Inflector/Rules/Turkish/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Word.php | 2 +- .../Doctrine/Inflector/RulesetInflector.php | 4 +- .../lib/Doctrine/Inflector/WordInflector.php | 2 +- .../vendor/evenement/evenement/composer.json | 4 +- .../evenement/evenement/src/EventEmitter.php | 2 +- .../evenement/src/EventEmitterInterface.php | 2 +- .../evenement/src/EventEmitterTrait.php | 2 +- .../vendor/fidry/cpu-core-counter/README.md | 2 +- .../fidry/cpu-core-counter/bin/diagnose.php | 10 +- .../fidry/cpu-core-counter/bin/execute.php | 6 +- .../fidry/cpu-core-counter/composer.json | 8 +- .../cpu-core-counter/src/CpuCoreCounter.php | 6 +- .../fidry/cpu-core-counter/src/Diagnoser.php | 4 +- .../src/Executor/ProcOpenExecutor.php | 2 +- .../src/Executor/ProcessExecutor.php | 2 +- .../src/Finder/CmiCmdletLogicalFinder.php | 38 + .../src/Finder/CmiCmdletPhysicalFinder.php | 39 + .../src/Finder/CpuCoreFinder.php | 2 +- .../src/Finder/CpuInfoFinder.php | 2 +- .../src/Finder/DummyCpuCoreFinder.php | 2 +- .../src/Finder/FinderRegistry.php | 8 +- .../src/Finder/HwLogicalFinder.php | 2 +- .../src/Finder/HwPhysicalFinder.php | 2 +- .../src/Finder/LscpuLogicalFinder.php | 2 +- .../src/Finder/LscpuPhysicalFinder.php | 2 +- .../src/Finder/NProcFinder.php | 4 +- .../src/Finder/NProcessorFinder.php | 2 +- .../src/Finder/NullCpuCoreFinder.php | 2 +- .../src/Finder/OnlyInPowerShellFinder.php | 43 + .../src/Finder/OnlyOnOSFamilyFinder.php | 2 +- .../src/Finder/ProcOpenBasedFinder.php | 6 +- .../src/Finder/SkipOnOSFamilyFinder.php | 2 +- .../Finder/WindowsRegistryLogicalFinder.php | 40 + .../src/Finder/WmicLogicalFinder.php | 2 +- .../src/Finder/WmicPhysicalFinder.php | 2 +- .../src/Finder/_NProcessorFinder.php | 2 +- .../src/NumberOfCpuCoreNotFound.php | 2 +- .../illuminate/container/BoundMethod.php | 4 +- .../vendor/illuminate/container/Container.php | 8 +- .../container/ContextualBindingBuilder.php | 6 +- .../container/EntryNotFoundException.php | 4 +- .../container/RewindableGenerator.php | 2 +- .../vendor/illuminate/container/Util.php | 2 +- .../vendor/illuminate/container/composer.json | 2 +- .../contracts/Auth/Access/Authorizable.php | 2 +- .../illuminate/contracts/Auth/Access/Gate.php | 2 +- .../contracts/Auth/Authenticatable.php | 2 +- .../contracts/Auth/CanResetPassword.php | 2 +- .../illuminate/contracts/Auth/Factory.php | 2 +- .../illuminate/contracts/Auth/Guard.php | 2 +- .../Auth/Middleware/AuthenticatesRequests.php | 2 +- .../contracts/Auth/MustVerifyEmail.php | 2 +- .../contracts/Auth/PasswordBroker.php | 2 +- .../contracts/Auth/PasswordBrokerFactory.php | 2 +- .../contracts/Auth/StatefulGuard.php | 2 +- .../contracts/Auth/SupportsBasicAuth.php | 2 +- .../contracts/Auth/UserProvider.php | 2 +- .../contracts/Broadcasting/Broadcaster.php | 2 +- .../contracts/Broadcasting/Factory.php | 2 +- .../Broadcasting/HasBroadcastChannel.php | 2 +- .../contracts/Broadcasting/ShouldBeUnique.php | 2 +- .../Broadcasting/ShouldBroadcast.php | 2 +- .../Broadcasting/ShouldBroadcastNow.php | 2 +- .../illuminate/contracts/Bus/Dispatcher.php | 2 +- .../contracts/Bus/QueueingDispatcher.php | 2 +- .../illuminate/contracts/Cache/Factory.php | 2 +- .../illuminate/contracts/Cache/Lock.php | 2 +- .../contracts/Cache/LockProvider.php | 2 +- .../contracts/Cache/LockTimeoutException.php | 2 +- .../illuminate/contracts/Cache/Repository.php | 4 +- .../illuminate/contracts/Cache/Store.php | 2 +- .../contracts/Config/Repository.php | 2 +- .../contracts/Console/Application.php | 2 +- .../contracts/Console/Isolatable.php | 2 +- .../illuminate/contracts/Console/Kernel.php | 2 +- .../Console/PromptsForMissingInput.php | 2 +- .../Container/BindingResolutionException.php | 4 +- .../Container/CircularDependencyException.php | 4 +- .../contracts/Container/Container.php | 4 +- .../Container/ContextualBindingBuilder.php | 2 +- .../illuminate/contracts/Cookie/Factory.php | 2 +- .../contracts/Cookie/QueueingFactory.php | 2 +- .../contracts/Database/Eloquent/Builder.php | 4 +- .../contracts/Database/Eloquent/Castable.php | 2 +- .../Database/Eloquent/CastsAttributes.php | 4 +- .../Eloquent/CastsInboundAttributes.php | 4 +- .../Eloquent/DeviatesCastableAttributes.php | 2 +- .../Eloquent/SerializesCastableAttributes.php | 4 +- .../Eloquent/SupportsPartialRelations.php | 2 +- .../Database/Events/MigrationEvent.php | 2 +- .../contracts/Database/ModelIdentifier.php | 2 +- .../contracts/Database/Query/Builder.php | 2 +- .../Database/Query/ConditionExpression.php | 2 +- .../contracts/Database/Query/Expression.php | 4 +- .../contracts/Debug/ExceptionHandler.php | 2 +- .../contracts/Encryption/DecryptException.php | 2 +- .../contracts/Encryption/EncryptException.php | 2 +- .../contracts/Encryption/Encrypter.php | 2 +- .../contracts/Encryption/StringEncrypter.php | 2 +- .../contracts/Events/Dispatcher.php | 2 +- .../Events/ShouldDispatchAfterCommit.php | 2 +- .../Events/ShouldHandleEventsAfterCommit.php | 2 +- .../illuminate/contracts/Filesystem/Cloud.php | 2 +- .../contracts/Filesystem/Factory.php | 2 +- .../Filesystem/FileNotFoundException.php | 2 +- .../contracts/Filesystem/Filesystem.php | 2 +- .../Filesystem/LockTimeoutException.php | 2 +- .../contracts/Foundation/Application.php | 4 +- .../Foundation/CachesConfiguration.php | 2 +- .../contracts/Foundation/CachesRoutes.php | 2 +- .../Foundation/ExceptionRenderer.php | 2 +- .../contracts/Foundation/MaintenanceMode.php | 2 +- .../illuminate/contracts/Hashing/Hasher.php | 2 +- .../illuminate/contracts/Http/Kernel.php | 2 +- .../illuminate/contracts/Mail/Attachable.php | 2 +- .../illuminate/contracts/Mail/Factory.php | 2 +- .../illuminate/contracts/Mail/MailQueue.php | 2 +- .../illuminate/contracts/Mail/Mailable.php | 4 +- .../illuminate/contracts/Mail/Mailer.php | 2 +- .../contracts/Notifications/Dispatcher.php | 2 +- .../contracts/Notifications/Factory.php | 2 +- .../contracts/Pagination/CursorPaginator.php | 2 +- .../Pagination/LengthAwarePaginator.php | 2 +- .../contracts/Pagination/Paginator.php | 2 +- .../illuminate/contracts/Pipeline/Hub.php | 2 +- .../contracts/Pipeline/Pipeline.php | 2 +- .../contracts/Process/InvokedProcess.php | 2 +- .../contracts/Process/ProcessResult.php | 2 +- .../contracts/Queue/ClearableQueue.php | 2 +- .../Queue/EntityNotFoundException.php | 2 +- .../contracts/Queue/EntityResolver.php | 2 +- .../illuminate/contracts/Queue/Factory.php | 2 +- .../vendor/illuminate/contracts/Queue/Job.php | 2 +- .../illuminate/contracts/Queue/Monitor.php | 2 +- .../illuminate/contracts/Queue/Queue.php | 2 +- .../contracts/Queue/QueueableCollection.php | 2 +- .../contracts/Queue/QueueableEntity.php | 2 +- .../contracts/Queue/ShouldBeEncrypted.php | 2 +- .../contracts/Queue/ShouldBeUnique.php | 2 +- .../Queue/ShouldBeUniqueUntilProcessing.php | 2 +- .../contracts/Queue/ShouldQueue.php | 2 +- .../Queue/ShouldQueueAfterCommit.php | 2 +- .../illuminate/contracts/Redis/Connection.php | 2 +- .../illuminate/contracts/Redis/Connector.php | 2 +- .../illuminate/contracts/Redis/Factory.php | 2 +- .../Redis/LimiterTimeoutException.php | 2 +- .../contracts/Routing/BindingRegistrar.php | 2 +- .../contracts/Routing/Registrar.php | 2 +- .../contracts/Routing/ResponseFactory.php | 2 +- .../contracts/Routing/UrlGenerator.php | 2 +- .../contracts/Routing/UrlRoutable.php | 2 +- .../Middleware/AuthenticatesSessions.php | 2 +- .../illuminate/contracts/Session/Session.php | 2 +- .../contracts/Support/Arrayable.php | 2 +- .../Support/CanBeEscapedWhenCastToString.php | 2 +- .../contracts/Support/DeferrableProvider.php | 2 +- .../Support/DeferringDisplayableValue.php | 2 +- .../illuminate/contracts/Support/Htmlable.php | 2 +- .../illuminate/contracts/Support/Jsonable.php | 2 +- .../contracts/Support/MessageBag.php | 2 +- .../contracts/Support/MessageProvider.php | 2 +- .../contracts/Support/Renderable.php | 2 +- .../contracts/Support/Responsable.php | 2 +- .../contracts/Support/ValidatedData.php | 2 +- .../Translation/HasLocalePreference.php | 2 +- .../contracts/Translation/Loader.php | 2 +- .../contracts/Translation/Translator.php | 2 +- .../contracts/Validation/DataAwareRule.php | 2 +- .../contracts/Validation/Factory.php | 2 +- .../contracts/Validation/ImplicitRule.php | 2 +- .../contracts/Validation/InvokableRule.php | 2 +- .../illuminate/contracts/Validation/Rule.php | 2 +- .../Validation/UncompromisedVerifier.php | 2 +- .../Validation/ValidatesWhenResolved.php | 2 +- .../contracts/Validation/ValidationRule.php | 2 +- .../contracts/Validation/Validator.php | 4 +- .../Validation/ValidatorAwareRule.php | 4 +- .../illuminate/contracts/View/Engine.php | 2 +- .../illuminate/contracts/View/Factory.php | 2 +- .../vendor/illuminate/contracts/View/View.php | 4 +- .../View/ViewCompilationException.php | 2 +- .../vendor/illuminate/contracts/composer.json | 2 +- .../vendor/nette/utils/src/HtmlStringable.php | 2 +- .../utils/src/Iterators/CachingIterator.php | 4 +- .../nette/utils/src/Iterators/Mapper.php | 2 +- .../vendor/nette/utils/src/SmartObject.php | 4 +- .../vendor/nette/utils/src/StaticClass.php | 2 +- .../vendor/nette/utils/src/Translator.php | 2 +- .../nette/utils/src/Utils/ArrayHash.php | 4 +- .../nette/utils/src/Utils/ArrayList.php | 4 +- .../vendor/nette/utils/src/Utils/Arrays.php | 6 +- .../vendor/nette/utils/src/Utils/Callback.php | 4 +- .../vendor/nette/utils/src/Utils/DateTime.php | 4 +- .../nette/utils/src/Utils/FileSystem.php | 4 +- .../vendor/nette/utils/src/Utils/Floats.php | 4 +- .../vendor/nette/utils/src/Utils/Helpers.php | 4 +- .../vendor/nette/utils/src/Utils/Html.php | 6 +- .../vendor/nette/utils/src/Utils/Image.php | 4 +- .../vendor/nette/utils/src/Utils/Json.php | 4 +- .../nette/utils/src/Utils/ObjectHelpers.php | 6 +- .../nette/utils/src/Utils/ObjectMixin.php | 4 +- .../nette/utils/src/Utils/Paginator.php | 4 +- .../vendor/nette/utils/src/Utils/Random.php | 4 +- .../nette/utils/src/Utils/Reflection.php | 4 +- .../vendor/nette/utils/src/Utils/Strings.php | 6 +- .../vendor/nette/utils/src/Utils/Type.php | 4 +- .../nette/utils/src/Utils/Validators.php | 4 +- .../nette/utils/src/Utils/exceptions.php | 2 +- .../vendor/nette/utils/src/compatibility.php | 6 +- .../vendor/nette/utils/src/exceptions.php | 2 +- .../vendor/nikic/php-parser/bin/php-parse | 2 +- .../vendor/ondram/ci-detector/README.md | 131 +- .../vendor/ondram/ci-detector/composer.json | 39 +- .../rector/vendor/ondram/ci-detector/ecs.php | 24 + .../ondram/ci-detector/src/Ci/AbstractCi.php | 8 +- .../ondram/ci-detector/src/Ci/AppVeyor.php | 8 +- .../ci-detector/src/Ci/AwsCodeBuild.php | 8 +- .../ci-detector/src/Ci/AzurePipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Bamboo.php | 8 +- .../ci-detector/src/Ci/BitbucketPipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Buddy.php | 8 +- .../ondram/ci-detector/src/Ci/CiInterface.php | 6 +- .../ondram/ci-detector/src/Ci/Circle.php | 8 +- .../ondram/ci-detector/src/Ci/Codeship.php | 8 +- .../ci-detector/src/Ci/Continuousphp.php | 8 +- .../ondram/ci-detector/src/Ci/Drone.php | 8 +- .../ci-detector/src/Ci/GitHubActions.php | 8 +- .../ondram/ci-detector/src/Ci/GitLab.php | 8 +- .../ondram/ci-detector/src/Ci/Jenkins.php | 8 +- .../ondram/ci-detector/src/Ci/SourceHut.php | 8 +- .../ondram/ci-detector/src/Ci/TeamCity.php | 8 +- .../ondram/ci-detector/src/Ci/Travis.php | 8 +- .../ondram/ci-detector/src/Ci/Wercker.php | 11 +- .../ondram/ci-detector/src/CiDetector.php | 19 +- .../ci-detector/src/CiDetectorInterface.php | 6 +- .../vendor/ondram/ci-detector/src/Env.php | 2 +- .../src/Exception/CiNotDetectedException.php | 2 +- .../ondram/ci-detector/src/TrinaryLogic.php | 23 +- .../src/Ast/Type/CallableTypeNode.php | 10 +- .../phpdoc-parser/src/Parser/PhpDocParser.php | 41 +- .../phpdoc-parser/src/Parser/TypeParser.php | 76 +- .../phpdoc-parser/src/Printer/Printer.php | 7 +- .../rector/vendor/psr/container/composer.json | 2 +- .../src/ContainerExceptionInterface.php | 2 +- .../psr/container/src/ContainerInterface.php | 2 +- .../src/NotFoundExceptionInterface.php | 2 +- .../rector/vendor/psr/log/composer.json | 2 +- .../vendor/psr/log/src/AbstractLogger.php | 2 +- .../psr/log/src/InvalidArgumentException.php | 2 +- .../rector/vendor/psr/log/src/LogLevel.php | 2 +- .../psr/log/src/LoggerAwareInterface.php | 2 +- .../vendor/psr/log/src/LoggerAwareTrait.php | 2 +- .../vendor/psr/log/src/LoggerInterface.php | 2 +- .../rector/vendor/psr/log/src/LoggerTrait.php | 2 +- .../rector/vendor/psr/log/src/NullLogger.php | 2 +- .../vendor/psr/simple-cache/composer.json | 2 +- .../psr/simple-cache/src/CacheException.php | 2 +- .../psr/simple-cache/src/CacheInterface.php | 2 +- .../src/InvalidArgumentException.php | 2 +- .../rector/vendor/react/cache/composer.json | 4 +- .../vendor/react/cache/src/ArrayCache.php | 6 +- .../vendor/react/cache/src/CacheInterface.php | 4 +- .../vendor/react/child-process/composer.json | 4 +- .../react/child-process/src/Process.php | 20 +- .../rector/vendor/react/dns/composer.json | 4 +- .../react/dns/src/BadServerException.php | 2 +- .../vendor/react/dns/src/Config/Config.php | 2 +- .../vendor/react/dns/src/Config/HostsFile.php | 2 +- .../vendor/react/dns/src/Model/Message.php | 4 +- .../vendor/react/dns/src/Model/Record.php | 2 +- .../react/dns/src/Protocol/BinaryDumper.php | 8 +- .../vendor/react/dns/src/Protocol/Parser.php | 8 +- .../react/dns/src/Query/CachingExecutor.php | 8 +- .../dns/src/Query/CancellationException.php | 2 +- .../react/dns/src/Query/CoopExecutor.php | 4 +- .../react/dns/src/Query/ExecutorInterface.php | 2 +- .../react/dns/src/Query/FallbackExecutor.php | 4 +- .../react/dns/src/Query/HostsFileExecutor.php | 10 +- .../vendor/react/dns/src/Query/Query.php | 6 +- .../react/dns/src/Query/RetryExecutor.php | 6 +- .../src/Query/SelectiveTransportExecutor.php | 4 +- .../dns/src/Query/TcpTransportExecutor.php | 18 +- .../react/dns/src/Query/TimeoutException.php | 2 +- .../react/dns/src/Query/TimeoutExecutor.php | 8 +- .../dns/src/Query/UdpTransportExecutor.php | 20 +- .../react/dns/src/RecordNotFoundException.php | 2 +- .../vendor/react/dns/src/Resolver/Factory.php | 34 +- .../react/dns/src/Resolver/Resolver.php | 10 +- .../dns/src/Resolver/ResolverInterface.php | 2 +- .../vendor/react/event-loop/composer.json | 4 +- .../vendor/react/event-loop/src/ExtEvLoop.php | 6 +- .../react/event-loop/src/ExtEventLoop.php | 6 +- .../react/event-loop/src/ExtLibevLoop.php | 16 +- .../react/event-loop/src/ExtLibeventLoop.php | 6 +- .../vendor/react/event-loop/src/ExtUvLoop.php | 8 +- .../vendor/react/event-loop/src/Factory.php | 4 +- .../vendor/react/event-loop/src/Loop.php | 2 +- .../react/event-loop/src/LoopInterface.php | 2 +- .../react/event-loop/src/SignalsHandler.php | 2 +- .../react/event-loop/src/StreamSelectLoop.php | 8 +- .../event-loop/src/Tick/FutureTickQueue.php | 2 +- .../react/event-loop/src/Timer/Timer.php | 4 +- .../react/event-loop/src/Timer/Timers.php | 4 +- .../react/event-loop/src/TimerInterface.php | 2 +- .../rector/vendor/react/promise/composer.json | 4 +- .../src/CancellablePromiseInterface.php | 2 +- .../react/promise/src/CancellationQueue.php | 2 +- .../vendor/react/promise/src/Deferred.php | 2 +- .../promise/src/Exception/LengthException.php | 2 +- .../promise/src/ExtendedPromiseInterface.php | 2 +- .../react/promise/src/FulfilledPromise.php | 2 +- .../vendor/react/promise/src/LazyPromise.php | 2 +- .../vendor/react/promise/src/Promise.php | 2 +- .../react/promise/src/PromiseInterface.php | 2 +- .../react/promise/src/PromisorInterface.php | 2 +- .../react/promise/src/RejectedPromise.php | 2 +- .../src/UnhandledRejectionException.php | 2 +- .../vendor/react/promise/src/functions.php | 2 +- .../react/promise/src/functions_include.php | 4 +- .../rector/vendor/react/socket/composer.json | 4 +- .../vendor/react/socket/src/Connection.php | 14 +- .../react/socket/src/ConnectionInterface.php | 4 +- .../vendor/react/socket/src/Connector.php | 12 +- .../react/socket/src/ConnectorInterface.php | 2 +- .../vendor/react/socket/src/DnsConnector.php | 8 +- .../vendor/react/socket/src/FdServer.php | 8 +- .../react/socket/src/FixedUriConnector.php | 2 +- .../src/HappyEyeBallsConnectionBuilder.php | 14 +- .../socket/src/HappyEyeBallsConnector.php | 10 +- .../react/socket/src/LimitingServer.php | 4 +- .../react/socket/src/SecureConnector.php | 10 +- .../vendor/react/socket/src/SecureServer.php | 8 +- .../rector/vendor/react/socket/src/Server.php | 8 +- .../react/socket/src/ServerInterface.php | 4 +- .../vendor/react/socket/src/SocketServer.php | 6 +- .../react/socket/src/StreamEncryption.php | 6 +- .../vendor/react/socket/src/TcpConnector.php | 8 +- .../vendor/react/socket/src/TcpServer.php | 8 +- .../react/socket/src/TimeoutConnector.php | 8 +- .../vendor/react/socket/src/UnixConnector.php | 8 +- .../vendor/react/socket/src/UnixServer.php | 8 +- .../rector/vendor/react/stream/composer.json | 4 +- .../react/stream/src/CompositeStream.php | 4 +- .../react/stream/src/DuplexResourceStream.php | 8 +- .../stream/src/DuplexStreamInterface.php | 2 +- .../stream/src/ReadableResourceStream.php | 8 +- .../stream/src/ReadableStreamInterface.php | 4 +- .../vendor/react/stream/src/ThroughStream.php | 4 +- .../rector/vendor/react/stream/src/Util.php | 2 +- .../stream/src/WritableResourceStream.php | 8 +- .../stream/src/WritableStreamInterface.php | 4 +- .../rector/extension-installer/rector.php | 4 +- .../src/GeneratedConfig.php | 2 +- .../src/PluginInstaller.php | 10 +- .../vendor/rector/rector-doctrine/README.md | 7 +- .../rector/rector-doctrine/composer.json | 30 +- .../config/sets/attributes/doctrine.php | 18 +- .../config/sets/attributes/gedmo.php | 2 +- .../config/sets/attributes/mongodb.php | 2 +- .../config/sets/doctrine-bundle-210.php | 2 +- .../config/sets/doctrine-code-quality.php | 3 +- .../config/sets/doctrine-collection-22.php | 11 + .../config/sets/doctrine-common-20.php | 2 +- .../config/sets/doctrine-dbal-210.php | 2 +- .../config/sets/doctrine-dbal-211.php | 16 +- .../config/sets/doctrine-dbal-30.php | 2 +- .../config/sets/doctrine-dbal-40.php | 2 +- .../config/sets/doctrine-orm-213.php | 2 +- .../config/sets/doctrine-orm-214.php | 2 +- .../config/sets/doctrine-orm-25.php | 2 +- .../config/sets/doctrine-orm-29.php | 5 +- .../config/yaml-to-annotations.php | 75 +- .../vendor/rector/rector-doctrine/easy-ci.php | 10 - .../vendor/rector/rector-doctrine/rector.php | 22 - ...ntSubscriberInterfaceToAttributeRector.php | 4 +- .../EmbeddableClassAnnotationTransformer.php | 26 - .../EntityClassAnnotationTransformer.php | 37 - .../InheritanceClassAnnotationTransformer.php | 60 - ...oftDeletableClassAnnotationTransformer.php | 47 - .../TableClassAnnotationTransformer.php | 52 - .../ColumnAnnotationTransformer.php | 37 - .../EmbeddedPropertyAnnotationTransformer.php | 37 - ...edmoTimestampableAnnotationTransformer.php | 38 - .../IdAnnotationTransformer.php | 26 - .../IdColumnAnnotationTransformer.php | 33 - .../IdGeneratorAnnotationTransformer.php | 41 - .../ManyToOneAnnotationTransformer.php | 37 - .../OneToManyAnnotationTransformer.php | 37 - .../YamlToAnnotationTransformer.php | 68 - .../EmbeddableClassAttributeTransformer.php | 26 + .../EntityClassAttributeTransformer.php | 38 + .../InheritanceClassAttributeTransformer.php | 72 + ...SoftDeletableClassAttributeTransformer.php | 45 + .../TableClassAttributeTransformer.php | 51 + .../ColumnAttributeTransformer.php | 50 + .../EmbeddedPropertyAttributeTransformer.php | 44 + ...GedmoTimestampableAttributeTransformer.php | 41 + .../IdAttributeTransformer.php | 29 + .../IdColumnAttributeTransformer.php | 34 + .../IdGeneratorAttributeTransformer.php | 64 + .../JoinColumnAttributeTransformer.php | 56 + .../ManyToOneAttributeTransformer.php | 47 + .../OneToManyAttributeTransformer.php | 45 + .../OrderByAttributeTransformer.php | 46 + .../YamlToAttributeTransformer.php | 91 ++ .../ClassAnnotationTransformerInterface.php | 11 - .../ClassAttributeTransformerInterface.php | 16 + ...PropertyAnnotationTransformerInterface.php | 12 - .../PropertyAttributeTransformerInterface.php | 19 + .../rules/CodeQuality/DocTagNodeFactory.php | 20 - .../CodeQuality/EntityMappingResolver.php | 8 +- .../CodeQuality/Enum/EntityMappingKey.php | 31 + .../Helper/NodeValueNormalizer.php | 37 + .../NodeFactory/ArrayItemNodeFactory.php | 61 - .../NodeFactory/AttributeFactory.php | 36 + .../RemoveEmptyTableAttributeRector.php | 8 +- ... YamlToAttributeDoctrineMappingRector.php} | 47 +- ...rectDefaultTypesOnEntityPropertyRector.php | 3 +- .../CodeQuality/Utils/CaseStringHelper.php | 2 +- .../CodeQuality/ValueObject/EntityMapping.php | 35 +- .../ReplaceFetchAllMethodCallRector.php | 119 ++ .../rector-doctrine/src/Enum/MappingClass.php | 76 + .../src/NodeAnalyzer/AttributeFinder.php | 5 +- .../ColumnPropertyTypeResolver.php | 9 +- .../NullabilityColumnPropertyTypeResolver.php | 3 +- .../ToManyRelationPropertyTypeResolver.php | 4 +- .../ToOneRelationPropertyTypeResolver.php | 2 +- .../src/PhpDoc/ShortClassExpander.php | 2 +- .../src/Set/DoctrineSetList.php | 8 + .../config/set/downgrade-php72.php | 2 +- .../config/set/downgrade-php73.php | 2 +- .../config/set/downgrade-php74.php | 2 +- .../config/set/downgrade-php80.php | 2 +- .../config/set/downgrade-php81.php | 2 +- .../config/set/downgrade-php82.php | 2 +- .../config/set/downgrade-php83.php | 12 + .../config/set/level/down-to-php71.php | 2 +- .../config/set/level/down-to-php72.php | 2 +- .../config/set/level/down-to-php73.php | 2 +- .../config/set/level/down-to-php74.php | 2 +- .../config/set/level/down-to-php80.php | 2 +- .../config/set/level/down-to-php81.php | 5 +- .../config/set/level/down-to-php82.php | 10 + .../DowngradeParameterTypeWideningRector.php | 2 +- .../DowngradeArrayKeyFirstLastRector.php | 6 + .../DowngradeTrailingCommasInUnsetRector.php | 1 + ...owngradeTrailingCommasInParamUseRector.php | 1 + .../DowngradeAttributeToAnnotationRector.php | 2 +- .../DowngradeTypedClassConstRector.php | 66 + .../src/NodeManipulator/PropertyDecorator.php | 4 +- .../Set/ValueObject/DowngradeLevelSetList.php | 4 + .../src/Set/ValueObject/DowngradeSetList.php | 4 + .../Symfony/Component/Annotation/Route.php | 2 +- .../vendor/rector/rector-phpunit/README.md | 7 +- .../config/sets/annotations-to-attributes.php | 2 +- .../sets/level/deprecated-level-set.php | 2 +- .../config/sets/phpunit-code-quality.php | 2 +- .../config/sets/phpunit-exception.php | 2 +- .../config/sets/phpunit-specific-method.php | 2 +- .../rector-phpunit/config/sets/phpunit100.php | 2 +- .../rector-phpunit/config/sets/phpunit40.php | 2 +- .../rector-phpunit/config/sets/phpunit50.php | 2 +- .../rector-phpunit/config/sets/phpunit60.php | 2 +- .../rector-phpunit/config/sets/phpunit70.php | 2 +- .../config/sets/phpunit80-dms.php | 2 +- .../rector-phpunit/config/sets/phpunit80.php | 2 +- .../rector-phpunit/config/sets/phpunit90.php | 2 +- .../rector-phpunit/config/sets/phpunit91.php | 2 +- .../config/sets/remove-mocks.php | 2 +- .../vendor/rector/rector-phpunit/rector.php | 29 - .../TestWithAnnotationToAttributeRector.php | 2 +- .../AnnotationWithValueToAttributeRector.php | 2 +- ...rsAnnotationWithValueToAttributeRector.php | 17 +- .../TicketAnnotationToAttributeRector.php | 2 +- .../Class_/TestWithToDataProviderRector.php | 4 +- ...NullableObjectToAssertInstanceofRector.php | 8 +- .../UseSpecificWillMethodRector.php | 23 +- .../RemoveDataProviderTestPrefixRector.php | 2 +- .../src/PhpDoc/DataProviderMethodRenamer.php | 2 +- .../Class_/PreferPHPUnitSelfCallRector.php | 6 +- .../vendor/rector/rector-symfony/README.md | 27 +- .../rector/rector-symfony/composer.json | 2 +- .../fosrest/annotations-to-attributes.php | 2 +- .../sets/jms/annotations-to-attributes.php | 2 +- .../sensiolabs/annotations-to-attributes.php | 2 +- .../swiftmailer-to-symfony-mailer.php | 2 +- .../symfony/annotations-to-attributes.php | 2 +- .../config/sets/symfony/configs.php | 2 +- .../symfony/level/deprecated-level-set.php | 2 +- .../sets/symfony/symfony-code-quality.php | 2 +- .../symfony/symfony-constructor-injection.php | 2 +- .../config/sets/symfony/symfony25.php | 2 +- .../config/sets/symfony/symfony26.php | 2 +- .../config/sets/symfony/symfony27.php | 2 +- .../config/sets/symfony/symfony28.php | 2 +- .../config/sets/symfony/symfony30.php | 2 +- .../config/sets/symfony/symfony31.php | 2 +- .../config/sets/symfony/symfony32.php | 2 +- .../config/sets/symfony/symfony33.php | 2 +- .../config/sets/symfony/symfony34.php | 2 +- .../config/sets/symfony/symfony40.php | 2 +- .../config/sets/symfony/symfony41.php | 2 +- .../config/sets/symfony/symfony42.php | 2 +- .../config/sets/symfony/symfony43.php | 2 +- .../config/sets/symfony/symfony44.php | 2 +- .../config/sets/symfony/symfony50-types.php | 2 +- .../config/sets/symfony/symfony50.php | 2 +- .../config/sets/symfony/symfony51.php | 2 +- .../symfony52-validator-attributes.php | 2 +- .../config/sets/symfony/symfony52.php | 2 +- .../config/sets/symfony/symfony53.php | 2 +- .../config/sets/symfony/symfony54.php | 2 +- .../symfony/symfony6/symfony-return-types.php | 2 +- .../config/sets/symfony/symfony60.php | 2 +- .../config/sets/symfony/symfony61.php | 2 +- .../config/sets/symfony/symfony62.php | 4 +- .../config/sets/symfony/symfony63.php | 2 +- .../config/sets/symfony/symfony64.php | 2 +- .../twig/twig-underscore-to-namespace.php | 2 +- .../config/sets/twig/twig112.php | 2 +- .../config/sets/twig/twig127.php | 2 +- .../config/sets/twig/twig134.php | 2 +- .../config/sets/twig/twig140.php | 2 +- .../config/sets/twig/twig20.php | 2 +- .../config/sets/twig/twig240.php | 2 +- .../vendor/rector/rector-symfony/rector.php | 43 - .../ClassMethod/ActionSuffixRemoverRector.php | 2 +- .../EventListenerToEventSubscriberRector.php | 2 +- .../StringExtensionToConfigBuilderRector.php | 2 +- .../NestedConfigCallsFactory.php | 2 +- ...iceSettersToSettersAutodiscoveryRector.php | 2 +- .../MethodCall/RedirectToRouteRector.php | 2 +- .../Rector/StaticCall/ParseFileRector.php | 2 +- .../RemoveDefaultGetBlockPrefixRector.php | 2 +- .../StringToArrayArgumentProcessRector.php | 2 +- ...plateShortNotationToBundleSyntaxRector.php | 2 +- .../ConsoleExecuteReturnIntRector.php | 1 + .../FuncCall/ReplaceServiceArgumentRector.php | 2 +- ...mentValueResolverToValueResolverRector.php | 4 +- ...ssageHandlerInterfaceToAttributeRector.php | 9 +- .../Symfony/ContainerServiceProvider.php | 4 +- .../Symfony/Routing/SymfonyRoutesProvider.php | 4 +- .../FormTypeStringToTypeProvider.php | 2 +- .../src/Helper/TemplateGuesser.php | 2 +- .../ValueObject/IntlBundleClassToNewClass.php | 2 +- .../ValueObjectFactory/ServiceMapFactory.php | 6 +- .../rector/rector/vendor/scoper-autoload.php | 98 +- .../rector/vendor/sebastian/diff/ChangeLog.md | 7 + .../rector/vendor/sebastian/diff/LICENSE | 2 +- .../vendor/sebastian/diff/composer.json | 2 +- .../vendor/sebastian/diff/src/Chunk.php | 2 +- .../rector/vendor/sebastian/diff/src/Diff.php | 2 +- .../vendor/sebastian/diff/src/Differ.php | 8 +- .../src/Exception/ConfigurationException.php | 4 +- .../diff/src/Exception/Exception.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../rector/vendor/sebastian/diff/src/Line.php | 2 +- .../LongestCommonSubsequenceCalculator.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 8 +- .../src/Output/AbstractChunkOutputBuilder.php | 2 +- .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 +- .../src/Output/DiffOutputBuilderInterface.php | 2 +- .../Output/StrictUnifiedDiffOutputBuilder.php | 12 +- .../src/Output/UnifiedDiffOutputBuilder.php | 9 +- .../vendor/sebastian/diff/src/Parser.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../vendor/symfony/console/Application.php | 88 +- .../symfony/console/Attribute/AsCommand.php | 2 +- .../console/CI/GithubActionReporter.php | 4 +- .../rector/vendor/symfony/console/Color.php | 4 +- .../symfony/console/Command/Command.php | 32 +- .../console/Command/CompleteCommand.php | 26 +- .../console/Command/DumpCompletionCommand.php | 16 +- .../symfony/console/Command/HelpCommand.php | 14 +- .../symfony/console/Command/LazyCommand.php | 20 +- .../symfony/console/Command/ListCommand.php | 16 +- .../symfony/console/Command/LockableTrait.php | 12 +- .../Command/SignalableCommandInterface.php | 2 +- .../console/Command/TraceableCommand.php | 22 +- .../CommandLoader/CommandLoaderInterface.php | 6 +- .../CommandLoader/ContainerCommandLoader.php | 8 +- .../CommandLoader/FactoryCommandLoader.php | 6 +- .../console/Completion/CompletionInput.php | 11 +- .../Completion/CompletionSuggestions.php | 4 +- .../Output/BashCompletionOutput.php | 6 +- .../Output/CompletionOutputInterface.php | 6 +- .../Output/FishCompletionOutput.php | 6 +- .../Completion/Output/ZshCompletionOutput.php | 6 +- .../symfony/console/Completion/Suggestion.php | 2 +- .../vendor/symfony/console/ConsoleEvents.php | 10 +- .../rector/vendor/symfony/console/Cursor.php | 4 +- .../DataCollector/CommandDataCollector.php | 18 +- .../symfony/console/Debug/CliRequest.php | 8 +- .../AddConsoleCommandPass.php | 22 +- .../Descriptor/ApplicationDescription.php | 8 +- .../symfony/console/Descriptor/Descriptor.php | 16 +- .../Descriptor/DescriptorInterface.php | 4 +- .../console/Descriptor/JsonDescriptor.php | 12 +- .../console/Descriptor/MarkdownDescriptor.php | 16 +- .../Descriptor/ReStructuredTextDescriptor.php | 18 +- .../console/Descriptor/TextDescriptor.php | 16 +- .../console/Descriptor/XmlDescriptor.php | 12 +- .../Exception/CommandNotFoundException.php | 2 +- .../console/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/InvalidOptionException.php | 2 +- .../console/Exception/LogicException.php | 2 +- .../Exception/MissingInputException.php | 2 +- .../Exception/NamespaceNotFoundException.php | 2 +- .../Exception/RunCommandFailedException.php | 4 +- .../console/Exception/RuntimeException.php | 2 +- .../console/Formatter/NullOutputFormatter.php | 2 +- .../Formatter/NullOutputFormatterStyle.php | 2 +- .../console/Formatter/OutputFormatter.php | 6 +- .../Formatter/OutputFormatterInterface.php | 2 +- .../Formatter/OutputFormatterStyle.php | 4 +- .../OutputFormatterStyleInterface.php | 2 +- .../Formatter/OutputFormatterStyleStack.php | 6 +- .../WrappableOutputFormatterInterface.php | 2 +- .../console/Helper/DebugFormatterHelper.php | 2 +- .../console/Helper/DescriptorHelper.php | 18 +- .../vendor/symfony/console/Helper/Dumper.php | 10 +- .../console/Helper/FormatterHelper.php | 4 +- .../vendor/symfony/console/Helper/Helper.php | 6 +- .../console/Helper/HelperInterface.php | 2 +- .../symfony/console/Helper/HelperSet.php | 4 +- .../console/Helper/InputAwareHelper.php | 6 +- .../symfony/console/Helper/OutputWrapper.php | 2 +- .../symfony/console/Helper/ProcessHelper.php | 10 +- .../symfony/console/Helper/ProgressBar.php | 14 +- .../console/Helper/ProgressIndicator.php | 8 +- .../symfony/console/Helper/QuestionHelper.php | 41 +- .../console/Helper/SymfonyQuestionHelper.php | 14 +- .../vendor/symfony/console/Helper/Table.php | 27 +- .../symfony/console/Helper/TableCell.php | 4 +- .../symfony/console/Helper/TableCellStyle.php | 4 +- .../symfony/console/Helper/TableRows.php | 2 +- .../symfony/console/Helper/TableSeparator.php | 2 +- .../symfony/console/Helper/TableStyle.php | 6 +- .../symfony/console/Input/ArgvInput.php | 4 +- .../symfony/console/Input/ArrayInput.php | 6 +- .../vendor/symfony/console/Input/Input.php | 6 +- .../symfony/console/Input/InputArgument.php | 14 +- .../console/Input/InputAwareInterface.php | 2 +- .../symfony/console/Input/InputDefinition.php | 6 +- .../symfony/console/Input/InputInterface.php | 6 +- .../symfony/console/Input/InputOption.php | 16 +- .../Input/StreamableInputInterface.php | 2 +- .../symfony/console/Input/StringInput.php | 4 +- .../symfony/console/Logger/ConsoleLogger.php | 12 +- .../console/Messenger/RunCommandContext.php | 2 +- .../console/Messenger/RunCommandMessage.php | 4 +- .../Messenger/RunCommandMessageHandler.php | 12 +- .../symfony/console/Output/AnsiColorMode.php | 4 +- .../symfony/console/Output/BufferedOutput.php | 2 +- .../symfony/console/Output/ConsoleOutput.php | 4 +- .../console/Output/ConsoleOutputInterface.php | 2 +- .../console/Output/ConsoleSectionOutput.php | 8 +- .../symfony/console/Output/NullOutput.php | 6 +- .../vendor/symfony/console/Output/Output.php | 6 +- .../console/Output/OutputInterface.php | 4 +- .../symfony/console/Output/StreamOutput.php | 40 +- .../console/Output/TrimmedBufferOutput.php | 6 +- .../console/Question/ChoiceQuestion.php | 4 +- .../console/Question/ConfirmationQuestion.php | 2 +- .../symfony/console/Question/Question.php | 6 +- .../console/SignalRegistry/SignalMap.php | 2 +- .../console/SignalRegistry/SignalRegistry.php | 2 +- .../console/SingleCommandApplication.php | 8 +- .../symfony/console/Style/OutputStyle.php | 10 +- .../symfony/console/Style/StyleInterface.php | 2 +- .../symfony/console/Style/SymfonyStyle.php | 40 +- .../vendor/symfony/console/Terminal.php | 4 +- .../vendor/symfony/console/composer.json | 2 +- .../deprecation-contracts/function.php | 4 +- .../Exception/ExceptionInterface.php | 2 +- .../Exception/FileNotFoundException.php | 2 +- .../filesystem/Exception/IOException.php | 2 +- .../Exception/IOExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../filesystem/Exception/RuntimeException.php | 2 +- .../vendor/symfony/filesystem/Filesystem.php | 8 +- .../rector/vendor/symfony/filesystem/Path.php | 6 +- .../vendor/symfony/filesystem/composer.json | 2 +- .../symfony/finder/Comparator/Comparator.php | 2 +- .../finder/Comparator/DateComparator.php | 2 +- .../finder/Comparator/NumberComparator.php | 2 +- .../Exception/AccessDeniedException.php | 2 +- .../Exception/DirectoryNotFoundException.php | 2 +- .../rector/vendor/symfony/finder/Finder.php | 26 +- .../vendor/symfony/finder/Gitignore.php | 2 +- .../rector/vendor/symfony/finder/Glob.php | 2 +- .../finder/Iterator/CustomFilterIterator.php | 2 +- .../Iterator/DateRangeFilterIterator.php | 4 +- .../Iterator/DepthRangeFilterIterator.php | 2 +- .../ExcludeDirectoryFilterIterator.php | 4 +- .../Iterator/FileTypeFilterIterator.php | 2 +- .../Iterator/FilecontentFilterIterator.php | 4 +- .../Iterator/FilenameFilterIterator.php | 4 +- .../symfony/finder/Iterator/LazyIterator.php | 2 +- .../Iterator/MultiplePcreFilterIterator.php | 2 +- .../finder/Iterator/PathFilterIterator.php | 4 +- .../Iterator/RecursiveDirectoryIterator.php | 6 +- .../Iterator/SizeRangeFilterIterator.php | 4 +- .../finder/Iterator/SortableIterator.php | 2 +- .../Iterator/VcsIgnoredFilterIterator.php | 4 +- .../vendor/symfony/finder/SplFileInfo.php | 2 +- .../vendor/symfony/finder/composer.json | 2 +- .../Resources/unidata/caseFolding.php | 2 +- .../Resources/unidata/lowerCase.php | 2 +- .../Resources/unidata/titleCaseRegexp.php | 2 +- .../Resources/unidata/upperCase.php | 2 +- .../process/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../process/Exception/LogicException.php | 2 +- .../Exception/ProcessFailedException.php | 4 +- .../Exception/ProcessSignaledException.php | 4 +- .../Exception/ProcessTimedOutException.php | 4 +- .../Exception/RunProcessFailedException.php | 4 +- .../process/Exception/RuntimeException.php | 2 +- .../symfony/process/ExecutableFinder.php | 4 +- .../vendor/symfony/process/InputStream.php | 4 +- .../process/Messenger/RunProcessContext.php | 4 +- .../process/Messenger/RunProcessMessage.php | 2 +- .../Messenger/RunProcessMessageHandler.php | 8 +- .../symfony/process/PhpExecutableFinder.php | 2 +- .../vendor/symfony/process/PhpProcess.php | 6 +- .../vendor/symfony/process/PhpSubprocess.php | 6 +- .../symfony/process/Pipes/AbstractPipes.php | 4 +- .../symfony/process/Pipes/PipesInterface.php | 2 +- .../symfony/process/Pipes/UnixPipes.php | 4 +- .../symfony/process/Pipes/WindowsPipes.php | 6 +- .../rector/vendor/symfony/process/Process.php | 33 +- .../vendor/symfony/process/ProcessUtils.php | 4 +- .../vendor/symfony/process/composer.json | 2 +- .../service-contracts/Attribute/Required.php | 2 +- .../Attribute/SubscribedService.php | 6 +- .../service-contracts/ResetInterface.php | 2 +- .../service-contracts/ServiceLocatorTrait.php | 6 +- .../ServiceProviderInterface.php | 4 +- .../ServiceSubscriberInterface.php | 4 +- .../ServiceSubscriberTrait.php | 8 +- .../symfony/service-contracts/composer.json | 2 +- .../symfony/yaml/Command/LintCommand.php | 243 +++ .../rector/vendor/symfony/yaml/Dumper.php | 140 ++ .../rector/vendor/symfony/yaml/Escaper.php | 74 + .../symfony/yaml/Exception/DumpException.php | 20 + .../yaml/Exception/ExceptionInterface.php | 20 + .../symfony/yaml/Exception/ParseException.php | 125 ++ .../yaml/Exception/RuntimeException.php | 20 + .../rector/vendor/symfony/yaml/Inline.php | 735 +++++++++ .../rector/rector/vendor/symfony/yaml/LICENSE | 19 + .../rector/vendor/symfony/yaml/Parser.php | 1062 +++++++++++++ .../rector/vendor/symfony/yaml/README.md | 13 + .../symfony/yaml/Resources/bin/yaml-lint | 35 + .../vendor/symfony/yaml/Tag/TaggedValue.php | 46 + .../rector/vendor/symfony/yaml/Unescaper.php | 120 ++ .../rector/vendor/symfony/yaml/Yaml.php | 91 ++ .../rector/vendor/symfony/yaml/composer.json | 41 + .../symplify/easy-parallel/composer.json | 18 +- .../symplify/easy-parallel/config/config.php | 4 +- .../vendor/symplify/easy-parallel/ecs.php | 11 - .../symplify/easy-parallel/phpstan.neon | 17 - .../vendor/symplify/easy-parallel/rector.php | 26 - .../CommandLine/WorkerCommandLineFactory.php | 10 +- .../src/Contract/SerializableInterface.php | 2 +- .../src/CpuCoreCountProvider.php | 6 +- .../easy-parallel/src/Enum/Action.php | 2 +- .../easy-parallel/src/Enum/Content.php | 2 +- .../easy-parallel/src/Enum/ReactCommand.php | 2 +- .../easy-parallel/src/Enum/ReactEvent.php | 2 +- .../ParallelShouldNotHappenException.php | 2 +- .../CommandFromReflectionFactory.php | 6 +- .../easy-parallel/src/ScheduleFactory.php | 4 +- .../src/ValueObject/EasyParallelConfig.php | 2 +- .../src/ValueObject/ParallelProcess.php | 22 +- .../src/ValueObject/ProcessPool.php | 6 +- .../src/ValueObject/Schedule.php | 2 +- .../src/ValueObject/RuleDefinition.php | 2 +- .../vendor/webmozart/assert/composer.json | 6 +- .../vendor/webmozart/assert/src/Assert.php | 2 +- .../assert/src/InvalidArgumentException.php | 2 +- .../vendor/webmozart/assert/src/Mixin.php | 2 +- vendor/sebastian/diff/ChangeLog.md | 7 + vendor/sebastian/diff/src/Differ.php | 4 +- .../src/Exception/ConfigurationException.php | 2 +- .../symfony/console/Helper/QuestionHelper.php | 14 +- vendor/symfony/console/Helper/Table.php | 10 +- vendor/symfony/console/Input/InputOption.php | 2 +- .../symfony/console/Output/StreamOutput.php | 43 +- vendor/symfony/process/Process.php | 14 + .../string/Inflector/EnglishInflector.php | 6 + 1197 files changed, 11349 insertions(+), 5610 deletions(-) create mode 100644 vendor/rector/rector/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php create mode 100644 vendor/rector/rector/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php create mode 100644 vendor/rector/rector/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php create mode 100644 vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php create mode 100644 vendor/rector/rector/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php create mode 100644 vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php create mode 100644 vendor/rector/rector/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php create mode 100644 vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php rename vendor/rector/rector/src/{Configuration/Levels => Config/Level}/DeadCodeLevel.php (98%) rename vendor/rector/rector/src/{Configuration/Levels/TypeCoverageLevel.php => Config/Level/TypeDeclarationLevel.php} (75%) create mode 100644 vendor/rector/rector/src/Config/RegisteredService.php create mode 100644 vendor/rector/rector/src/Console/Command/DetectNodeCommand.php create mode 100644 vendor/rector/rector/src/Contract/DependencyInjection/RelatedConfigInterface.php create mode 100644 vendor/rector/rector/src/CustomRules/SimpleNodeDumper.php delete mode 100644 vendor/rector/rector/src/FileSystemRector/Parser/FileInfoParser.php delete mode 100644 vendor/rector/rector/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php create mode 100644 vendor/rector/rector/src/Util/NewLineSplitter.php create mode 100644 vendor/rector/rector/src/Util/NodePrinter.php create mode 100644 vendor/rector/rector/stubs-rector/Internal/Constants.php create mode 100755 vendor/rector/rector/vendor/bin/yaml-lint create mode 100644 vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php create mode 100644 vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php create mode 100644 vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php create mode 100644 vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php create mode 100644 vendor/rector/rector/vendor/ondram/ci-detector/ecs.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-collection-22.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/easy-ci.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAttributeTransformerInterface.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAnnotationTransformerInterface.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAttributeTransformerInterface.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/DocTagNodeFactory.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php rename vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/{YamlToAnnotationsDoctrineMappingRector.php => YamlToAttributeDoctrineMappingRector.php} (68%) create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php83.php create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php82.php create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-phpunit/rector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/rector.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Dumper.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Escaper.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Inline.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/LICENSE create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Parser.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/README.md create mode 100755 vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Unescaper.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/Yaml.php create mode 100644 vendor/rector/rector/vendor/symfony/yaml/composer.json delete mode 100644 vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php delete mode 100644 vendor/rector/rector/vendor/symplify/easy-parallel/phpstan.neon delete mode 100644 vendor/rector/rector/vendor/symplify/easy-parallel/rector.php diff --git a/composer.json b/composer.json index 06a69c69b..81c0a69b1 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "require": { "php": ">=7.4", - "rector/rector": "1.0.0", + "rector/rector": "1.0.3", "friendsofphp/php-cs-fixer": "3.38.2", "redaxo/php-cs-fixer-config": "^1.0" }, diff --git a/composer.lock b/composer.lock index 461feff69..c5b239ad2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ccab04eed3a7c7e235a61e0828e18595", + "content-hash": "aade00242bab9470bd3e4bc5df576908", "packages": [ { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -59,7 +59,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -75,7 +75,7 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/semver", @@ -160,16 +160,16 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -180,7 +180,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -204,9 +204,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -222,7 +222,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -319,16 +319,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.57", + "version": "1.10.66", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", - "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", "shasum": "" }, "require": { @@ -377,7 +377,7 @@ "type": "tidelift" } ], - "time": "2024-01-24T11:51:34+00:00" + "time": "2024-03-28T16:17:31+00:00" }, { "name": "psr/container", @@ -529,21 +529,21 @@ }, { "name": "rector/rector", - "version": "1.0.0", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6" + "reference": "c59507a9090b465d65e1aceed91e5b81986e375b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/362258a1f6369fc88d02d469a5478d220f78b0e6", - "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/c59507a9090b465d65e1aceed91e5b81986e375b", + "reference": "c59507a9090b465d65e1aceed91e5b81986e375b", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.56" + "phpstan/phpstan": "^1.10.57" }, "conflict": { "rector/rector-doctrine": "*", @@ -573,7 +573,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.0" + "source": "https://github.com/rectorphp/rector/tree/1.0.3" }, "funding": [ { @@ -581,7 +581,7 @@ "type": "github" } ], - "time": "2024-02-06T13:38:07+00:00" + "time": "2024-03-14T15:04:18+00:00" }, { "name": "redaxo/php-cs-fixer-config", @@ -626,16 +626,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -680,7 +680,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -688,20 +688,20 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "symfony/console", - "version": "v5.4.35", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931" + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/dbdf6adcb88d5f83790e1efb57ef4074309d3931", - "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931", + "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", "shasum": "" }, "require": { @@ -771,7 +771,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.35" + "source": "https://github.com/symfony/console/tree/v5.4.36" }, "funding": [ { @@ -787,7 +787,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:28:09+00:00" + "time": "2024-02-20T16:33:57+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1768,16 +1768,16 @@ }, { "name": "symfony/process", - "version": "v5.4.35", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb" + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb", + "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", "shasum": "" }, "require": { @@ -1810,7 +1810,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.35" + "source": "https://github.com/symfony/process/tree/v5.4.36" }, "funding": [ { @@ -1826,7 +1826,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-02-12T15:49:53+00:00" }, { "name": "symfony/service-contracts", @@ -1975,16 +1975,16 @@ }, { "name": "symfony/string", - "version": "v5.4.35", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "c209c4d0559acce1c9a2067612cfb5d35756edc2" + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/c209c4d0559acce1c9a2067612cfb5d35756edc2", - "reference": "c209c4d0559acce1c9a2067612cfb5d35756edc2", + "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", "shasum": "" }, "require": { @@ -2041,7 +2041,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.35" + "source": "https://github.com/symfony/string/tree/v5.4.36" }, "funding": [ { @@ -2057,7 +2057,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-02-01T08:49:30+00:00" } ], "packages-dev": [], diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 8f1a45222..360e1e30e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -2,17 +2,17 @@ "packages": [ { "name": "composer/pcre", - "version": "3.1.1", - "version_normalized": "3.1.1.0", + "version": "3.1.3", + "version_normalized": "3.1.3.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -23,7 +23,7 @@ "phpstan/phpstan-strict-rules": "^1.1", "symfony/phpunit-bridge": "^5" }, - "time": "2023-10-11T07:11:09+00:00", + "time": "2024-03-19T10:26:25+00:00", "type": "library", "extra": { "branch-alias": { @@ -56,7 +56,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -160,17 +160,17 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.3", - "version_normalized": "3.0.3.0", + "version": "3.0.4", + "version_normalized": "3.0.4.0", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -181,9 +181,9 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, - "time": "2022-02-25T21:32:43+00:00", + "time": "2024-03-26T18:29:49+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -207,9 +207,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -325,17 +325,17 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.57", - "version_normalized": "1.10.57.0", + "version": "1.10.66", + "version_normalized": "1.10.66.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", - "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", "shasum": "" }, "require": { @@ -344,7 +344,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2024-01-24T11:51:34+00:00", + "time": "2024-03-28T16:17:31+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -547,22 +547,22 @@ }, { "name": "rector/rector", - "version": "1.0.0", - "version_normalized": "1.0.0.0", + "version": "1.0.3", + "version_normalized": "1.0.3.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6" + "reference": "c59507a9090b465d65e1aceed91e5b81986e375b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/362258a1f6369fc88d02d469a5478d220f78b0e6", - "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/c59507a9090b465d65e1aceed91e5b81986e375b", + "reference": "c59507a9090b465d65e1aceed91e5b81986e375b", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.56" + "phpstan/phpstan": "^1.10.57" }, "conflict": { "rector/rector-doctrine": "*", @@ -570,7 +570,7 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, - "time": "2024-02-06T13:38:07+00:00", + "time": "2024-03-14T15:04:18+00:00", "bin": [ "bin/rector" ], @@ -594,7 +594,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.0" + "source": "https://github.com/rectorphp/rector/tree/1.0.3" }, "funding": [ { @@ -650,17 +650,17 @@ }, { "name": "sebastian/diff", - "version": "4.0.5", - "version_normalized": "4.0.5.0", + "version": "4.0.6", + "version_normalized": "4.0.6.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -670,7 +670,7 @@ "phpunit/phpunit": "^9.3", "symfony/process": "^4.2 || ^5" }, - "time": "2023-05-07T05:35:17+00:00", + "time": "2024-03-02T06:30:58+00:00", "type": "library", "extra": { "branch-alias": { @@ -707,7 +707,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -719,17 +719,17 @@ }, { "name": "symfony/console", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.36", + "version_normalized": "5.4.36.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931" + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/dbdf6adcb88d5f83790e1efb57ef4074309d3931", - "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931", + "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", "shasum": "" }, "require": { @@ -767,7 +767,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2024-01-23T14:28:09+00:00", + "time": "2024-02-20T16:33:57+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -801,7 +801,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.35" + "source": "https://github.com/symfony/console/tree/v5.4.36" }, "funding": [ { @@ -1837,24 +1837,24 @@ }, { "name": "symfony/process", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.36", + "version_normalized": "5.4.36.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb" + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb", + "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-php80": "^1.16" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-02-12T15:49:53+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1882,7 +1882,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.35" + "source": "https://github.com/symfony/process/tree/v5.4.36" }, "funding": [ { @@ -2053,17 +2053,17 @@ }, { "name": "symfony/string", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.36", + "version_normalized": "5.4.36.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "c209c4d0559acce1c9a2067612cfb5d35756edc2" + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/c209c4d0559acce1c9a2067612cfb5d35756edc2", - "reference": "c209c4d0559acce1c9a2067612cfb5d35756edc2", + "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", "shasum": "" }, "require": { @@ -2083,7 +2083,7 @@ "symfony/translation-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0|^6.0" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-02-01T08:49:30+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2122,7 +2122,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.35" + "source": "https://github.com/symfony/string/tree/v5.4.36" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 6d7c3bc39..3603444be 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => '8685e9aa67903241507864d94d816beea5ffe27a', + 'reference' => '37d2bd0a8bcfffaba45aa42f1b2ae8b0cfa6fd22', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,16 +13,16 @@ '__root__' => array( 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => '8685e9aa67903241507864d94d816beea5ffe27a', + 'reference' => '37d2bd0a8bcfffaba45aa42f1b2ae8b0cfa6fd22', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => false, ), 'composer/pcre' => array( - 'pretty_version' => '3.1.1', - 'version' => '3.1.1.0', - 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', + 'pretty_version' => '3.1.3', + 'version' => '3.1.3.0', + 'reference' => '5b16e25a5355f1f3afdfc2f954a0a80aec4826a8', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), @@ -38,9 +38,9 @@ 'dev_requirement' => false, ), 'composer/xdebug-handler' => array( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', + 'pretty_version' => '3.0.4', + 'version' => '3.0.4.0', + 'reference' => '4f988f8fdf580d53bdb2d1278fe93d1ed5462255', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), @@ -56,9 +56,9 @@ 'dev_requirement' => false, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.57', - 'version' => '1.10.57.0', - 'reference' => '1627b1d03446904aaa77593f370c5201d2ecc34e', + 'pretty_version' => '1.10.66', + 'version' => '1.10.66.0', + 'reference' => '94779c987e4ebd620025d9e5fdd23323903950bd', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), @@ -104,9 +104,9 @@ ), ), 'rector/rector' => array( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'reference' => '362258a1f6369fc88d02d469a5478d220f78b0e6', + 'pretty_version' => '1.0.3', + 'version' => '1.0.3.0', + 'reference' => 'c59507a9090b465d65e1aceed91e5b81986e375b', 'type' => 'library', 'install_path' => __DIR__ . '/../rector/rector', 'aliases' => array(), @@ -122,18 +122,18 @@ 'dev_requirement' => false, ), 'sebastian/diff' => array( - 'pretty_version' => '4.0.5', - 'version' => '4.0.5.0', - 'reference' => '74be17022044ebaaecfdf0c5cd504fc9cd5a7131', + 'pretty_version' => '4.0.6', + 'version' => '4.0.6.0', + 'reference' => 'ba01945089c3a293b01ba9badc29ad55b106b0bc', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => 'dbdf6adcb88d5f83790e1efb57ef4074309d3931', + 'pretty_version' => 'v5.4.36', + 'version' => '5.4.36.0', + 'reference' => '39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -263,9 +263,9 @@ 'dev_requirement' => false, ), 'symfony/process' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => 'cbc28e34015ad50166fc2f9c8962d28d0fe861eb', + 'pretty_version' => 'v5.4.36', + 'version' => '5.4.36.0', + 'reference' => '4fdf34004f149cc20b2f51d7d119aa500caad975', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), @@ -290,9 +290,9 @@ 'dev_requirement' => false, ), 'symfony/string' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => 'c209c4d0559acce1c9a2067612cfb5d35756edc2', + 'pretty_version' => 'v5.4.36', + 'version' => '5.4.36.0', + 'reference' => '4e232c83622bd8cd32b794216aa29d0d266d353b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), diff --git a/vendor/composer/pcre/src/MatchAllResult.php b/vendor/composer/pcre/src/MatchAllResult.php index 4310c5366..b22b52d6e 100644 --- a/vendor/composer/pcre/src/MatchAllResult.php +++ b/vendor/composer/pcre/src/MatchAllResult.php @@ -35,7 +35,7 @@ final class MatchAllResult /** * @param 0|positive-int $count - * @param array> $matches + * @param array> $matches */ public function __construct(int $count, array $matches) { diff --git a/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index 69dcd0625..b7ec39743 100644 --- a/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php +++ b/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php @@ -35,7 +35,7 @@ final class MatchAllStrictGroupsResult /** * @param 0|positive-int $count - * @param array> $matches + * @param array> $matches */ public function __construct(int $count, array $matches) { diff --git a/vendor/composer/pcre/src/Preg.php b/vendor/composer/pcre/src/Preg.php index 6fe01722a..2f54a9936 100644 --- a/vendor/composer/pcre/src/Preg.php +++ b/vendor/composer/pcre/src/Preg.php @@ -20,7 +20,7 @@ class Preg /** * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|1 * @@ -42,7 +42,7 @@ public static function match(string $pattern, string $subject, ?array &$matches * Variant of `match()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|1 * @throws UnexpectedNullMatchException @@ -61,7 +61,7 @@ public static function matchStrictGroups(string $pattern, string $subject, ?arra * Runs preg_match with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_OFFSET_CAPTURE are always set, no other flags are supported * @return 0|1 * @@ -79,7 +79,7 @@ public static function matchWithOffsets(string $pattern, string $subject, ?array /** * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|positive-int * @@ -102,7 +102,7 @@ public static function matchAll(string $pattern, string $subject, ?array &$match * Variant of `match()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|positive-int * @throws UnexpectedNullMatchException @@ -121,7 +121,7 @@ public static function matchAllStrictGroups(string $pattern, string $subject, ?a * Runs preg_match_all with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported * @return 0|positive-int * @@ -147,7 +147,7 @@ public static function matchAllWithOffsets(string $pattern, string $subject, ?ar * * @param-out int<0, max> $count */ - public static function replace($pattern, $replacement, $subject, int $limit = -1, int &$count = null): string + public static function replace($pattern, $replacement, $subject, int $limit = -1, ?int &$count = null): string { if (!is_scalar($subject)) { if (is_array($subject)) { @@ -167,14 +167,14 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1 /** * @param string|string[] $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int $count Set by method * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set * * @param-out int<0, max> $count */ - public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, int &$count = null, int $flags = 0): string + public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string { if (!is_scalar($subject)) { if (is_array($subject)) { @@ -196,10 +196,10 @@ public static function replaceCallback($pattern, callable $replacement, $subject * Variant of `replaceCallback()` which outputs non-null matches (or throws) * * @param string $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int $count Set by method - * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+ + * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set * * @param-out int<0, max> $count */ @@ -211,14 +211,14 @@ public static function replaceCallbackStrictGroups(string $pattern, callable $re } /** - * @param array): string> $pattern + * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern * @param string $subject * @param int $count Set by method * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set * * @param-out int<0, max> $count */ - public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, int &$count = null, int $flags = 0): string + public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string { if (!is_scalar($subject)) { if (is_array($subject)) { @@ -291,7 +291,7 @@ public static function grep(string $pattern, array $array, int $flags = 0): arra * Variant of match() which returns a bool instead of int * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array $matches @@ -305,7 +305,7 @@ public static function isMatch(string $pattern, string $subject, ?array &$matche * Variant of `isMatch()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @throws UnexpectedNullMatchException * @@ -320,7 +320,7 @@ public static function isMatchStrictGroups(string $pattern, string $subject, ?ar * Variant of matchAll() which returns a bool instead of int * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array> $matches @@ -334,7 +334,7 @@ public static function isMatchAll(string $pattern, string $subject, ?array &$mat * Variant of `isMatchAll()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array> $matches @@ -350,7 +350,7 @@ public static function isMatchAllStrictGroups(string $pattern, string $subject, * Runs preg_match with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array}> $matches @@ -366,7 +366,7 @@ public static function isMatchWithOffsets(string $pattern, string $subject, ?arr * Runs preg_match_all with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array}>> $matches @@ -391,16 +391,18 @@ private static function checkSetOrder(int $flags): void } /** - * @param array $matches + * @param array $matches * @return array * @throws UnexpectedNullMatchException */ private static function enforceNonNullMatches(string $pattern, array $matches, string $variantMethod) { foreach ($matches as $group => $match) { - if (null === $match) { - throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.'); + if (is_string($match) || (is_array($match) && is_string($match[0]))) { + continue; } + + throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.'); } /** @var array */ diff --git a/vendor/composer/pcre/src/Regex.php b/vendor/composer/pcre/src/Regex.php index 112fa3250..21564a471 100644 --- a/vendor/composer/pcre/src/Regex.php +++ b/vendor/composer/pcre/src/Regex.php @@ -120,7 +120,7 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1 /** * @param string|string[] $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ @@ -135,9 +135,9 @@ public static function replaceCallback($pattern, callable $replacement, $subject * Variant of `replaceCallback()` which outputs non-null matches (or throws) * * @param string $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject - * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+ + * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ public static function replaceCallbackStrictGroups($pattern, callable $replacement, $subject, int $limit = -1, int $flags = 0): ReplaceResult { @@ -147,7 +147,7 @@ public static function replaceCallbackStrictGroups($pattern, callable $replaceme } /** - * @param array): string> $pattern + * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern * @param string $subject * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ diff --git a/vendor/composer/xdebug-handler/CHANGELOG.md b/vendor/composer/xdebug-handler/CHANGELOG.md index c5b5bcf4e..49fdc45d4 100644 --- a/vendor/composer/xdebug-handler/CHANGELOG.md +++ b/vendor/composer/xdebug-handler/CHANGELOG.md @@ -1,5 +1,9 @@ ## [Unreleased] +## [3.0.4] - 2024-03-26 + * Added: Functional tests. + * Fixed: Incompatibility with PHPUnit 10. + ## [3.0.3] - 2022-02-25 * Added: support for composer/pcre versions 2 and 3. @@ -108,7 +112,8 @@ * Break: the following class was renamed: - `Composer\XdebugHandler` -> `Composer\XdebugHandler\XdebugHandler` -[Unreleased]: https://github.com/composer/xdebug-handler/compare/3.0.3...HEAD +[Unreleased]: https://github.com/composer/xdebug-handler/compare/3.0.4...HEAD +[3.0.3]: https://github.com/composer/xdebug-handler/compare/3.0.3...3.0.4 [3.0.2]: https://github.com/composer/xdebug-handler/compare/3.0.2...3.0.3 [3.0.2]: https://github.com/composer/xdebug-handler/compare/3.0.1...3.0.2 [3.0.1]: https://github.com/composer/xdebug-handler/compare/3.0.0...3.0.1 diff --git a/vendor/composer/xdebug-handler/README.md b/vendor/composer/xdebug-handler/README.md index 56618fc14..f7f581ac2 100644 --- a/vendor/composer/xdebug-handler/README.md +++ b/vendor/composer/xdebug-handler/README.md @@ -51,6 +51,7 @@ The constructor takes a single parameter, `$envPrefix`, which is upper-cased and * [Process configuration](#process-configuration) * [Troubleshooting](#troubleshooting) * [Extending the library](#extending-the-library) +* [Examples](#examples) ### How it works @@ -64,6 +65,8 @@ A temporary ini file is created from the loaded (and scanned) ini files, with an * The application runs and exits. * The main process exits with the exit code from the restarted process. +See [Examples](#examples) for further information. + #### Signal handling Asynchronous signal handling is automatically enabled if the pcntl extension is loaded. `SIGINT` is set to `SIG_IGN` in the parent process and restored to `SIG_DFL` in the restarted process (if no other handler has been set). @@ -74,7 +77,7 @@ From PHP 7.4 on Windows, `CTRL+C` and `CTRL+BREAK` handling is automatically ena There are a few things to be aware of when running inside a restarted process. * Extensions set on the command-line will not be loaded. -* Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles). +* Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles-array). * Php sub-processes may be loaded with Xdebug enabled - see [Process configuration](#process-configuration). ### Helper methods @@ -200,12 +203,12 @@ Uses environment variables to remove Xdebug from the new process and persist the >_If the new process calls a PHP sub-process, Xdebug will not be loaded in that sub-process._ -This strategy can be used in the restart by calling [setPersistent()](#setpersistent). +This strategy can be used in the restart by calling [setPersistent()](#setpersistent-self). #### Sub-processes The `PhpConfig` helper class makes it easy to invoke a PHP sub-process (with or without Xdebug loaded), regardless of whether there has been a restart. -Each of its methods returns an array of PHP options (to add to the command-line) and sets up the environment for the required strategy. The [getRestartSettings()](#getrestartsettings) method is used internally. +Each of its methods returns an array of PHP options (to add to the command-line) and sets up the environment for the required strategy. The [getRestartSettings()](#getrestartsettings-array) method is used internally. * `useOriginal()` - Xdebug will be loaded in the new process. * `useStandard()` - Xdebug will **not** be loaded in the new process - see [standard settings](#standard-settings). @@ -245,7 +248,7 @@ The API is defined by classes and their accessible elements that are not annotat By default the process will restart if Xdebug is loaded and not running with `xdebug.mode=off`. Extending this method allows an application to decide, by returning a boolean (or equivalent) value. It is only called if `MYAPP_ALLOW_XDEBUG` is empty, so it will not be called in the restarted process (where this variable contains internal data), or if the restart has been overridden. -Note that the [setMainScript()](#setmainscriptscript) and [setPersistent()](#setpersistent) setters can be used here, if required. +Note that the [setMainScript()](#setmainscriptstring-script-self) and [setPersistent()](#setpersistent-self) setters can be used here, if required. #### _restart(array $command): void_ An application can extend this to modify the temporary ini file, its location given in the `tmpIni` property. New settings can be safely appended to the end of the data, which is `PHP_EOL` terminated. @@ -294,5 +297,9 @@ class MyRestarter extends XdebugHandler } ``` +### Examples +The `tests\App` directory contains command-line scripts that demonstrate the internal workings in a variety of scenarios. +See [Functional Test Scripts](./tests/App/README.md). + ## License composer/xdebug-handler is licensed under the MIT License, see the LICENSE file for details. diff --git a/vendor/composer/xdebug-handler/composer.json b/vendor/composer/xdebug-handler/composer.json index 6b649dab3..d205dc102 100644 --- a/vendor/composer/xdebug-handler/composer.json +++ b/vendor/composer/xdebug-handler/composer.json @@ -14,7 +14,7 @@ } ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues" }, "require": { @@ -23,9 +23,9 @@ "composer/pcre": "^1 || ^2 || ^3" }, "require-dev": { - "symfony/phpunit-bridge": "^6.0", "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1" + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "autoload": { "psr-4": { @@ -38,7 +38,7 @@ } }, "scripts": { - "test": "@php vendor/bin/simple-phpunit", + "test": "@php vendor/bin/phpunit", "phpstan": "@php vendor/bin/phpstan analyse" } } diff --git a/vendor/composer/xdebug-handler/src/Process.php b/vendor/composer/xdebug-handler/src/Process.php index c612200bb..4e9f076bb 100644 --- a/vendor/composer/xdebug-handler/src/Process.php +++ b/vendor/composer/xdebug-handler/src/Process.php @@ -41,6 +41,7 @@ public static function escape(string $arg, bool $meta = true, bool $module = fal $quote = strpbrk($arg, " \t") !== false || $arg === ''; $arg = Preg::replace('/(\\\\*)"/', '$1$1\\"', $arg, -1, $dquotes); + $dquotes = (bool) $dquotes; if ($meta) { $meta = $dquotes || Preg::isMatch('/%[^%]+%/', $arg); diff --git a/vendor/composer/xdebug-handler/src/Status.php b/vendor/composer/xdebug-handler/src/Status.php index b434f8592..96c5944a2 100644 --- a/vendor/composer/xdebug-handler/src/Status.php +++ b/vendor/composer/xdebug-handler/src/Status.php @@ -82,14 +82,33 @@ public function setLogger(LoggerInterface $logger): void public function report(string $op, ?string $data): void { if ($this->logger !== null || $this->debug) { - $callable = [$this, 'report'.$op]; - - if (!is_callable($callable)) { - throw new \InvalidArgumentException('Unknown op handler: '.$op); + $param = (string) $data; + + switch($op) { + case self::CHECK: + $this->reportCheck($param); + break; + case self::ERROR: + $this->reportError($param); + break; + case self::INFO: + $this->reportInfo($param); + break; + case self::NORESTART: + $this->reportNoRestart(); + break; + case self::RESTART: + $this->reportRestart(); + break; + case self::RESTARTED: + $this->reportRestarted(); + break; + case self::RESTARTING: + $this->reportRestarting($param); + break; + default: + throw new \InvalidArgumentException('Unknown op handler: '.$op); } - - $params = $data !== null ? [$data] : []; - call_user_func_array($callable, $params); } } @@ -180,7 +199,7 @@ private function reportRestarting(string $command): void { $text = sprintf('Process restarting (%s)', $this->getEnvAllow()); $this->output($text); - $text = 'Running '.$command; + $text = 'Running: '.$command; $this->output($text); } diff --git a/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/composer/xdebug-handler/src/XdebugHandler.php index 9052bfa43..37fc313a5 100644 --- a/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -143,9 +143,9 @@ public function check(): void if (!((bool) $envArgs[0]) && $this->requiresRestart(self::$xdebugActive)) { // Restart required $this->notify(Status::RESTART); + $command = $this->prepareRestart(); - if ($this->prepareRestart()) { - $command = $this->getCommand(); + if ($command !== null) { $this->restart($command); } return; @@ -183,9 +183,9 @@ public function check(): void * Returns an array of php.ini locations with at least one entry * * The equivalent of calling php_ini_loaded_file then php_ini_scanned_files. - * The loaded ini location is the first entry and may be empty. + * The loaded ini location is the first entry and may be an empty string. * - * @return string[] + * @return non-empty-list */ public static function getAllIniFiles(): array { @@ -267,7 +267,7 @@ protected function requiresRestart(bool $default): bool /** * Allows an extending class to access the tmpIni * - * @param string[] $command * + * @param non-empty-list $command */ protected function restart(array $command): void { @@ -277,24 +277,26 @@ protected function restart(array $command): void /** * Executes the restarted command then deletes the tmp ini * - * @param string[] $command + * @param non-empty-list $command * @phpstan-return never */ private function doRestart(array $command): void { - $this->tryEnableSignals(); - $this->notify(Status::RESTARTING, implode(' ', $command)); - if (PHP_VERSION_ID >= 70400) { $cmd = $command; + $displayCmd = sprintf('[%s]', implode(', ', $cmd)); } else { $cmd = Process::escapeShellCommand($command); if (defined('PHP_WINDOWS_VERSION_BUILD')) { // Outer quotes required on cmd string below PHP 8 $cmd = '"'.$cmd.'"'; } + $displayCmd = $cmd; } + $this->tryEnableSignals(); + $this->notify(Status::RESTARTING, $displayCmd); + $process = proc_open($cmd, [], $pipes); if (is_resource($process)) { $exitCode = proc_close($process); @@ -318,52 +320,74 @@ private function doRestart(array $command): void } /** - * Returns true if everything was written for the restart + * Returns the command line array if everything was written for the restart * * If any of the following fails (however unlikely) we must return false to * stop potential recursion: * - tmp ini file creation * - environment variable creation + * + * @return non-empty-list|null */ - private function prepareRestart(): bool + private function prepareRestart(): ?array { + if (!$this->cli) { + $this->notify(Status::ERROR, 'Unsupported SAPI: '.PHP_SAPI); + return null; + } + + if (($argv = $this->checkServerArgv()) === null) { + $this->notify(Status::ERROR, '$_SERVER[argv] is not as expected'); + return null; + } + + if (!$this->checkConfiguration($info)) { + $this->notify(Status::ERROR, $info); + return null; + } + + $mainScript = (string) $this->script; + if (!$this->checkMainScript($mainScript, $argv)) { + $this->notify(Status::ERROR, 'Unable to access main script: '.$mainScript); + return null; + } + + $tmpDir = sys_get_temp_dir(); + $iniError = 'Unable to create temp ini file at: '.$tmpDir; + + if (($tmpfile = @tempnam($tmpDir, '')) === false) { + $this->notify(Status::ERROR, $iniError); + return null; + } + $error = null; $iniFiles = self::getAllIniFiles(); $scannedInis = count($iniFiles) > 1; - $tmpDir = sys_get_temp_dir(); - if (!$this->cli) { - $error = 'Unsupported SAPI: '.PHP_SAPI; - } elseif (!$this->checkConfiguration($info)) { - $error = $info; - } elseif (!$this->checkMainScript()) { - $error = 'Unable to access main script: '.$this->script; - } elseif (!$this->writeTmpIni($iniFiles, $tmpDir, $error)) { - $error = $error !== null ? $error : 'Unable to create temp ini file at: '.$tmpDir; - } elseif (!$this->setEnvironment($scannedInis, $iniFiles)) { - $error = 'Unable to set environment variables'; + if (!$this->writeTmpIni($tmpfile, $iniFiles, $error)) { + $this->notify(Status::ERROR, $error ?? $iniError); + @unlink($tmpfile); + return null; } - if ($error !== null) { - $this->notify(Status::ERROR, $error); + if (!$this->setEnvironment($scannedInis, $iniFiles, $tmpfile)) { + $this->notify(Status::ERROR, 'Unable to set environment variables'); + @unlink($tmpfile); + return null; } - return $error === null; + $this->tmpIni = $tmpfile; + + return $this->getCommand($argv, $tmpfile, $mainScript); } /** * Returns true if the tmp ini file was written * - * @param string[] $iniFiles All ini files used in the current process + * @param non-empty-list $iniFiles All ini files used in the current process */ - private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error): bool + private function writeTmpIni(string $tmpFile, array $iniFiles, ?string &$error): bool { - if (($tmpfile = @tempnam($tmpDir, '')) === false) { - return false; - } - - $this->tmpIni = $tmpfile; - // $iniFiles has at least one item and it may be empty if ($iniFiles[0] === '') { array_shift($iniFiles); @@ -380,7 +404,7 @@ private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error): return false; } // Check and remove directives after HOST and PATH sections - if (Preg::isMatchWithOffsets($sectionRegex, $data, $matches, PREG_OFFSET_CAPTURE)) { + if (Preg::isMatchWithOffsets($sectionRegex, $data, $matches)) { $data = substr($data, 0, $matches[0][1]); } $content .= Preg::replace($xdebugRegex, ';$1', $data).PHP_EOL; @@ -400,25 +424,26 @@ private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error): // Work-around for https://bugs.php.net/bug.php?id=75932 $content .= 'opcache.enable_cli=0'.PHP_EOL; - return (bool) @file_put_contents($this->tmpIni, $content); + return (bool) @file_put_contents($tmpFile, $content); } /** * Returns the command line arguments for the restart * - * @return string[] + * @param non-empty-list $argv + * @return non-empty-list */ - private function getCommand(): array + private function getCommand(array $argv, string $tmpIni, string $mainScript): array { $php = [PHP_BINARY]; - $args = array_slice($_SERVER['argv'], 1); + $args = array_slice($argv, 1); if (!$this->persistent) { // Use command-line options - array_push($php, '-n', '-c', $this->tmpIni); + array_push($php, '-n', '-c', $tmpIni); } - return array_merge($php, [$this->script], $args); + return array_merge($php, [$mainScript], $args); } /** @@ -426,9 +451,9 @@ private function getCommand(): array * * No need to update $_SERVER since this is set in the restarted process. * - * @param string[] $iniFiles All ini files used in the current process + * @param non-empty-list $iniFiles All ini files used in the current process */ - private function setEnvironment(bool $scannedInis, array $iniFiles): bool + private function setEnvironment(bool $scannedInis, array $iniFiles, string $tmpIni): bool { $scanDir = getenv('PHP_INI_SCAN_DIR'); $phprc = getenv('PHPRC'); @@ -440,7 +465,7 @@ private function setEnvironment(bool $scannedInis, array $iniFiles): bool if ($this->persistent) { // Use the environment to persist the settings - if (!putenv('PHP_INI_SCAN_DIR=') || !putenv('PHPRC='.$this->tmpIni)) { + if (!putenv('PHP_INI_SCAN_DIR=') || !putenv('PHPRC='.$tmpIni)) { return false; } } @@ -495,15 +520,17 @@ private function mergeLoadedConfig(array $loadedConfig, array $iniConfig): strin /** * Returns true if the script name can be used + * + * @param non-empty-list $argv */ - private function checkMainScript(): bool + private function checkMainScript(string &$mainScript, array $argv): bool { - if ($this->script !== null) { + if ($mainScript !== '') { // Allow an application to set -- for standard input - return file_exists($this->script) || '--' === $this->script; + return file_exists($mainScript) || '--' === $mainScript; } - if (file_exists($this->script = $_SERVER['argv'][0])) { + if (file_exists($mainScript = $argv[0])) { return true; } @@ -512,7 +539,7 @@ private function checkMainScript(): bool $main = end($trace); if ($main !== false && isset($main['file'])) { - return file_exists($this->script = $main['file']); + return file_exists($mainScript = $main['file']); } return false; @@ -521,7 +548,7 @@ private function checkMainScript(): bool /** * Adds restart settings to the environment * - * @param string[] $envArgs + * @param non-empty-list $envArgs */ private function setEnvRestartSettings(array $envArgs): void { @@ -619,6 +646,28 @@ private function tryEnableSignals(): void } } + /** + * Returns $_SERVER['argv'] if it is as expected + * + * @return non-empty-list|null + */ + private function checkServerArgv(): ?array + { + $result = []; + + if (isset($_SERVER['argv']) && is_array($_SERVER['argv'])) { + foreach ($_SERVER['argv'] as $value) { + if (!is_string($value)) { + return null; + } + + $result[] = $value; + } + } + + return count($result) > 0 ? $result : null; + } + /** * Sets static properties $xdebugActive, $xdebugVersion and $xdebugMode */ diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index d06f90920658204e6676bd1d5c1d5fb529578a66..fd8f0c0d8033be3429e17ed2d3736257441d5655 100755 GIT binary patch delta 369560 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�mN_(1c^Y_pfl>V#NQ9HNftJ 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

3G@olN5cl;CNa?Y? zKsHtmTHb84c|DG|Tn8<0V*STK%bO-LHlRstb8QF}J8DC?bv$v@t`mQ{(@rNXuezcM zZpxjtyjHlzSq}CejBy`h$+p4 z^|CJvTOh8pCZQWFVBy;aO8c*N1^i=}G4s#c18b1T6a~32phNo-?9p6U6?gn^@%Qt>!@Dttw9$MZO zjxyx^c^6#`^wjdkI8%iMo%R&=DA226r>=CwOUuh6_|}yYcR(INr=gVKt>qOmR=dGl z;0&xR_%}Wx(~GAiZdRZ1ujS7KjXv6iBakkhVFE z4$$(N0?J(RcCEm=Ol6kjv>RFr?t8e25^BBZN}!fk?oh@P1AexkAApcWI4ZTLKqoA;w!PLqyOXf8cAc>;qdEzEi8KKs> z5Xj8Nz12-?NejDa`O5&*dQg5h;mmkg2;~u&1&Jm`i}$6vA?kTiA(^C**B6?~08{x>4QW)Ke1NfGn1g&ND5*CSC5Bj9{ugJW( z8k(tTxd{LN9D?KWIBgU+I;Wq@2@A7R^i_7PZD zL|^pma0<-0tdDSDqJr;Ubv5fNoNcUZ^=S|Q8#fLdicXxyvKlNE?RY|EpUpjkA?rWO zJ%fY2;b;AYJ!YT9pM~TUKR{sLtm5`0P}o`gbf=Dk1X?;UNNB=( zak>CKyMCtg2MZL$nykKnqaCb&aKjk{3=#AW)_7DgmVm~gR5nDAI#})HV&J9!Q0<_G zU9BA|2=}b9bP-*#`v?a6^otS_a4TiE(ga*%jkAUcqQ{fZAS8Y88P-;_6Blsl8vu_#%jBYO~NU^1p9eotvaL~{Z!KEMi{dV zqU3Q6fe}bYOCi40jMMhz`b1;IdXLxcY*_YaB4oR(WzdP+P7vg3_C=Z=6-kq|QS@ja zBJ)+UQP!3`QyR95q%Z@{?9J1(?dVJt);2FiSQ|d$Wg6B?FC(`1!BpWS zWEEY_?l{sdBbYz><28TO2IBch?1%ewfllfxO7G#2D4pJLey={;7MqVy!w1V;>DF(c z&&Sho|X@UKo|01&%O3(fl0*5zs zZ$~x@wcEIHd#8e9eX~$FJ5ZJ-HVL7E?|^RhX#&4SyI>0c9$c(;A^6$-u226#(Ho|W~#gH;ae3OzM24fc!7I|@(v zU*k?%B(P-G!Q({&>o%2H(}TMp;qWmq#;`*VvjQhsED#23?7c*=ShBMGC4yy>m8HB6 zO=!$(g79goK+xtrV8qFEz_0da{FQVM9D3n3LB2ON=Ix`VG7I|mbuE8^#ws%3XgoEP zS(49ELEt#>CJxq<_p#pmrGnPUD#Dftq9Dq`>GU!|N9Rduye-~h><-$G6^uweXy4S ztF^peC2JS(E2N_Oc1gd2`J{i;*g4D8*nxU>{RwYXyrqq%#7sdJH#LD}{x@{Ga11aT z{oz#jP2oQOtJB0a!U4~Exv@qd7gl!jcN4id{{j1L1Ezo`yo|!W*!Z?U-DYbA>c&rG z6!;5Mi(L!0H0dwNzX6Lyi%^=gP9VXIcOWJ_SSMJbQ1&jj@A!$ARQ`dD2K=rSEo^7u zM%z+PSdsoeKwxTYN$1xK5_f&Y;(wt?u&&1!(|r9Pe?{z|Syx<0aS{`{LeK{uJA}Mi;u%9x-6-NG#Zn$+q3DwcVMZ z3lz5t4F`#hV#P81>9Ys$KSUS&!8>A=b_dvu-5ry$2XQQS+nah z%)%wsI(M~gDK+kCo{b7Q-axE=yGt;bva-FlCP3EO>RSHSuq-CX;{$=a-*!USS@b?k z#Uu`f(c@guMCMdjp=wefCI`+CF|zK9M0N_6fqjsRG#sJrSzNJSWgIuc4qxM~cf4 z&MX#ERg@!$)F=z2f1I(oXpEbB7X-mJ@G@sj5L66C{t;|8c`jJYi+jRBjV5jAsf(@| zO*|kd#H`}_0fDozveXX+VH9P&et@5dWBy36W|+z>>BUFd5ghii=&@8c9k%yl;n*-$ zz!6)_B{&#vRxm5>9Kh3+2#i^$}sq+M`YGr{Vtl?;vvI10)n#X-Sk4J_B)3KzFuE3+6x=A=P>j$DHHxtSPSOv4P0+^G0|xoKsqoQwZ31fj1ELe*#T^M4(&NLAnp{ z2m|pqO-eH%i%B*KcmShP{%@E>bvKi01+DLD^(U~oBn?U(*IScP53_}aA~GS+yDP=^{qzR zLpq^5)!SV1(rQDGtKoHDrJNY*&cf>m;dN~(Z`lc4vER3}qs04`5mMmN6YfDQMAqZK|W-39OUD=j2ju5X0b@lqXv>N?QNV&S_TPA>v! za!`?Vc6-T&`;eG_G=ViOWy z6VhmnN}O9pgLM-^+>op(RN|dUo`g!gc?ofD$hjCM3Fgaip@}KF&6gg83z!vsRMU=D zufi@N??r!Za8$Sxg5BnFWe9N#WfVgN10?=x3;}Ck!qK?=@;{ES9{o#!7);@8EcT7R zgfdll(&_Fn^4Uj1K{my?dEm`Jp%(6kFOJtW^9pqT&t`~m<4Kl% zil{c8Oi;!m*x+3AsyoC+uM@z4CN0U(Re&DC*!cZI$XW}!&`s*cfq_MQA#TlsE_BDO zFv2f`8`dI%jYkaj1!C6to>>`!)Q}m!hp_9YXs7nPGFA#{*fV0*Tv_do)4mATi4#D` z`a}d9&>u6~5#ZxNIjc`JJQ-Lk#I(7nqaYZx5s|Pa2x^0qK`(d}+`ND;8_*GJf*7}1 z+zb)f=0(rv!7AbmqNB_>$(O4|pd0VrhR8O44>$Lg_zQQ0viVbY8EOa!(wX}9k%G9c z5ZUHU4^N$Rru4p&{f-1bCvv!R!kSV}2xp)v;*A&SQPxsHiJn|{pY#=Q6>)AsNKy^6 zB7(^RxON%+gykaGjVB|-x%txITbMG~nllak3c%RkU%B=NQ*HCSzsaI~Y09}RJ8$b&Xm00a#d@D_1tJ~Y%F zTwR|4OJ>XvVLuV3#vc`kN#k92TMrcu2n3*c(%zv`4-T9N*W!1EMQ@n`(0EcdRXEdj z=>(gL7tJpPaz02Dpv&4J9*sX_)o;si2$jVPGM=e|#iQ|Dj#VH4ZJIdK<`kMJ0Ee|h zuo(vf1e9^V2mxZe^u^-EDw70ugLp9>Xow9%0MLJ69-_o})Ifk3%*l{B8=jzuTxv}@ zTHxU0@lxv@1;Gxqy1mA#A*5J<)9eufq*xiE$LuL)3Y?7sjL5!HI!OR9Yl2`h2TC6) zpcbpRJyL)VD?>yXzdlxmI5I~X5{jKv=14xHC4UaotjW015^rl`We6*4PRGqnpZSiF zS~mO)QD%)kLx5SMGK7`c(Y4>eJ~BtbE$Y@a@WKX?HyaY6X1LWIE9e!hB6(cnP7!a$ zqYP_@P&1xCvNFT?#@`~Y3_<5(rB3e!BR}H=fvK~Pnwlf_CtU&8(HiVagY%prre(DjY z%#QqL2y;gi8eZ6*AxKCFMGK(IGX$v^@n}3*APQ|M2XwPp0vka9ninmfCG~17wz4R+ z|KbCturoXgFb$6C^TL-L;#u}&Az9c z#PcP$9m}HaDd0h4hJ(Pg0D5p4-KEdPEz{$Pap}zsrk^ZdBS`UtTu_81tQbD zC}qBIcp*HE=aDW8ghL%a-DtxCVS^ES=0(pI2)!Txt;K&X9HD3}l$~$AqqHr8FBVF^ z{~4IZJ4qoX4Nm^4!UiBPjn|nGllK2;`wp%03_GAB_KbBB5pjl{I7c$0K-ifF9L|vljo34MWK9?k ztXd0EXe|3X%>XpKd}E$OAu&Qkp|QiR7>2Mjyhdssjb$odjF>TBQVuZ;v1j;F-F%6+ zEJh#z4X=2~rR+E>Mj#4J3H7;>8WJNAisodVQ06S4y{$7xP#QZ?5>p@oja_0F!w_x8 zYK<6%pfV*4SlBvCM3%J!x{$KxlEoAVFLMNaUh85Z#!Mxo2!OMB5<7s&SXUQ6JHqls zl96BJ{L3QAFp6Prkh<8qvfbd+V!BLP2X27yGS=CcYQ~av*suh5n)ec19S$P6p1fs& zWCTYloO*XgMR9tb+Jfde;UHEhQ46cXxK%18M(`P%tBB@8v>9u;#4v=HwFe|@Cl!0PWo`XvTdSHvIK$XHFjQ& zAT?IQ5sQX*`M!&$?(7ScJ+ov%rKw;jK^LmD4!1}86i7%Aq{hzT5s>Bs3lAMYRRLTQ z!CO}G{Vhk_a9HalQ7J^K`9sc&l2H=jYOE8Es5BkS_!O;w3oC@MIYFhbq!|&emcyty zBGvF1v;YecGw-iK^;tSxk~yN+*c1rq>IM4u%_;EBjh7`8XpD7(f|n(e4iN-~5H>d` zU2jf?=(?4X1ztq71qv&WxH4Uc$L=duN@NxpAi#|s6vZ&aw&4?y-!p~Qz#FTmCsRO? z4)JcdfG)6KSs-_Yeyb$x5&p)ma*8Ps@5UZ462lP3<|^v!<0{72Z`V+E%iKaI;@upD zEd8O$1wE@p?Xi>S*GMWBF>t|Vsa{%30~ncmx?*hzYtZJ5vWsw{|Ew#vuT>W@6iHlP z#K3hCX6(($t`yN=hN%T1$1a*6l*|_n6-)FA!#u$I6^YTrFcA{R8h=Zeh=x-^k5>>@ z(Py1x2?23&BKvMooR7P5W$Pr>jtoSYoC?Mlp;}xhMjLj;0~>13P)Rk3bO@behet6C z0dwul(@gyEU z4?AY!o029(I$v1%ro`dHFcEBL4@0YjQ3>!LWYDRlk^~@}D*bs!rmy+L+WM;v} z=|l=x^ETBpqF7=@x(qf383t_Bi{%!=FB(0KnYHKGC!FBlh^1G;Hf31{zfi9%Ar-p#LZqV~R zB;nU$Pw2H<(i0GWhtCNKv8#7e9aA(BiFanQJ5VuB*V0-RD67 zUNBRjEjRF>!uj_k<0yjiRxp{1kh|CZK;xaf7f%Z!+73so2rQe`KqAs1G>`3k80L+) z7@`G3pq&FeZ$JoIuQ3v>KoSv^$1Xe|_zrK?ERjs74wOjD7$Wdk&mD1hg^bLIv13&O zL3QjR2;$@z0}B?|oFnx32qi^iU55>?OJqb49XsJdtQ?yjadE!pq+Z$REByhIMn#w$ zy9c@DLy5)0PZ1Z#8W%*vbv0L7*+&w`0C91wKY>U%otQ7eg*siZe9l^x-CW^HjZ7)#jtJyoj(K|l5F*h z#E6Jv2lRb0SeT|m61@}Y5CX^Ab}V%PG0X=7Pe@t^!2(iI83%|1caTOLu}rItvhvoluGqh=F6vVF?pKZ{i`CX3oVEvD&SC0Sjlm zc@D-=h^Sorccq_^CKXKl)1AP$@XvBYut@l#zkaI_-sE z9G+KxE$OCWMu?k-=LOd{i#IdXkR2-xB8`97)TQx!p zt%#=E`>pg;*yAiL$T=K3Yq88CyHGipd#Vnz5H z>zr63Ub1F|u(o{bFcHCr=(VoqwMMbup)5*pGRV8Mxz>nKr~r8Rs$|Uo!}`Mb8uYTq zUz0d27$KtE*p*rlON9V8cBmJ_5Xa_d=8|2F>sYsclGKJs5>eec8RFP9Q0R|VqpDi6 z0V1YAL>s%nC59nzt(`d|^>v9$AjTqu%?YxvOZ;j}gotBf9R@K1F>5YRqBKi@r%!7o z-hfDg5H?SS5Q|VZ)_1f-xWM~2 zB_o9;0*|}aNrrGSB7Y$kVf7=-a%wgD3W%EXV^qaLB0}991XcEi`~_%nO8cSJn3RWe zfzm%Dg%R;&h=Ci*G(^a?7cq4kev$MgO9By1$8N=m5eS;oLc=c-pHqxL&iEX6w7i3LyCWp7FKqrz;$~TZbgXr?KW4(0V?KC^r#K=L7HiS#;*lfpUBpw0Eh(dVLUy`$FCC5(nA>lVexUEMX$1 z4j=YwM8)ZNU$XGpLW1bJR+bqtb!vEYU$V3#YJdo=%X}bNy0b+1gU6o|f8P?Jg>8RI zRy`~cBD(HbMw!Hj%d4;fgk1|Let>=5{x6A#ioiN{8wt@*{REp30P$tR2afBGGLm{Focw`o}Y-3`;e5eMhwHcL6EG>$fQNcRy6F9m9guOB8&^s za_sp6F$^(s>{$shEXTHt^;X3&3o;Im$ji#Q0RrII1VnJU~Bk9 zeKPtcmX{~-Nh8;?j%^ULb3>5@Vx& z^yF`4)9{5_;R)KlW#xJBxIwZx60kSKQ8pNX`$0X z!i{>pae7*6c%(iwEixn}EIh;%VvLB0#5+!Z^u~?GZ^~WhmCAC5F5OM(DPhy5hld+O zL#G=JDPbvLq4=`x^mL;ka+)C|JUlftB5b-T#Q?9|Dj&`bb|u72-}9aEd|{oIs@^pxqQRDHVM7@n$+oR*TF8i|EUiwHC7 zr>BJ*&Ei1PU*&4Z-hgWm*ZwRog~LGy2X`~1n9}sq^{F8#;nP#njbY)_^EX5EpZ90C2q=}UR18fhLL&|SLS$->bA`wDu_;s6>W(uEX2#riN zrKN|5q@;wVq?`M+ht&VT}f-uAj*dR>>labg$h( ztsMV=SAHnh*$S-u&o3KGgh> zCN3(!)}M@lAcjdSi#iJWsh?XCX5z~<6LOJo_zbkPhr`xLp`E>p{^U|khrC6U{{FdAaFx(&p>>>EHPeXUC1ke`j*}p=#pJH+52zXY9C~^D5GX zPq0;!Ar4#=estn^jRvKyy`&pd#CF zW9*Gb9XKca+n!&I_3vTJ3ycS8#3V!bE12b04OcX;6Y*|N=uo2~x9zwKSj~2P#V;x{ z(~0YKB7~U4csp)&Hx*ufUE1NHoV%1luvjEkO{z2ujf#7Dj)r*f*%Q=c8n!#;F{PP# zj=!2@YnneAN2$q4IsfYWw&eNt-22!f6ZjRMXo(Bqg^wjRTydZr8-7ccoGexHLi>z# z=Zi4xXE|>eB_~BPE^3e*m2@&!@4%<}$jMbXZ%mexM>hPz$#N2a3fNsv`tr%$6sRLc;^UwlN(nI_qi z5WYhkhTDVw@GK>NbGVY!d2^-p*g?4Lm$bx{)2~*en!oh2n&iv4tOx#Bgw1o+vkTkyTpqyz}05TeYan#Rs%x znsPG+xeK~zXRdnwxwo{$DBHZyl{j*f_h?BkKKXquStjFd#A=8O*YQ0qiRT7{tB418 zexH_n%d0SCFyYVc){-c~Uo6p*7iIj;540qJaK-!ONO$2wEpg+2->fBDWZZ51k3D}K zgWi^jZEnZ^grnyUTW$*)5d|Oiikj@UZElIxw=|ftGqy*R4L_wwP0kVS_GfD1%h!Zx zNCn|{glWir!Y8?CNTCh?yq$*B+wy-d(~#Au*x2*6ym0_V$$0fmH5rNmofph)N}ZbI z5MHnbs59n%>U2v@7NdAK)T9%?>i~9i8_sE>hNzBwq!#2BxT*Q9aT@Zjj6d(KAzf5Q zuBZvfxGhL*&j&xRA>R;gqqBz0<@CGNXgoLOYsfgltwqzIYwoc7Gd1K(8Si{fO#*Gq zDLFxSIoAm-45}U~1zvHL_dv-x1ruV+Cp}P;A5apM&X)fHl{CVJFMa{Vl5fTs&t|cP zUR09?S#wE*hWgc9R5@4riyDp4jiD$u;fKmKB#?-fTh5(F1L0&YBDY@bd#y6p9z-#n zo7s9{W%xDMAeY<;hY&t#l7`G7e2#~POtILzZ)R%92bM~i5TPOG93;l^_*FI8WfAoh z(U5!_!Nj_7QA-_(1E=qUZ<6zCtJP#A);aR`_ zuUlk%hNFgzY35-zr=`O*WQ~#!=%pcjEloaGuOagZANWWu7^%oJYH~=%J@CA)2~(hzU{1}6Q0@Phsv zApC&Q8WJP}-+K>S`DJ4@9xzhWws7Sr- zhoAsX*EQr8pK6_!NHCu-4Xaa)QsB%Is)iiR|8UaKJrE@h>L)N;YAHRQGsaGN_&tRXkJ&TBN} z8h0B*s?BsiBxtehvtQGYRYc?x!Nsl8kQy%URe|zLX zlJ^NWOQ$8D@fn9SBoEDr@5Q$vU)=Kyyt87Je5OHqYn{19x?b%aa46HDw>SqsveJ*glaf9qT9 zB!qh(>9qW@Ga7PQ#{cwzhGg0_=PKmq%A3Y$36D-6qs4nsEw$(@itT4RUQ6c5S_$gK zYu?b1i|F}1r6m#krT*B;gnunw916A$(URVT-)GX2euTdiEXJ)1)skq!*ACK>0fZ9* z6}&n^OCkxkd7$v&GfYduh}fiBZdQnv4CjvZ6~>vaFe^5(F%f>T5eF;6 ze-S36;bRS25^iBCG`>;BRV507O+r2qgzu;qGtZ6{$w#Bi0|>A0Bc$RxMQKSN!V5yg z5&r3DEr}((kl8>>o?H82&cv)LtIvrIYSw}nXRXja>%Z5KPn#_tCm5Rc+|*<(>C8>U zzx(nFYEj49&;foacHN%ntXx4Q#wJ+eh{LSl40&*u-TjFR-+KzGkPUwlH7*EE2j;Be zKgL$MZo~IQ{!2vX!nIY~bmYVRwd5OHe*6IqS&JDzW^BioVrRqg$IQ!fgND2$6F;1I z`DP8tl{M?jSHGZXwdFG}X~+U|cUACj_dv5?W3GiyzZ7~a?-U@6`GULAECnwpmAhpS z7u_k*f0@n;J`?u*7S{YCj=BaaF=JP$v3=qp%YdFzjTHZc~Q&1aY{=J?z}M1`rt+L1c7gV(-s?< zd)7}yocU>(*_9i-FvEJ@QJjzU75zhA@DJ}ZC+xUB+tFccSs&pR;P+|x3Y7A<9FP!rE zh`y6OmyG_f2mkS6C&JscWX2aPb0TA8EdiVm5W>5@;6&nWT7vmmg-*ner4s_e`O_~u zk*8d_)r*|SOmJM(S;H50RgucK%{6Y8OE69S`C`(`%Ix~AY?Jm}^}eg*8A+qQ(r zSNeOhd;e|F2qkJqOV|5vaeT5QcfS6)3;p~hzr(60)1>VDl~GT?B>2E$Z~snA3JeQn zKDYMvXIII!!N2I}{oejV*iA?)i3J+aRQV}(j{4BQH^U3*+~KJ!e%+X`wnS(vPvp1P zMgr!`kM?(`RX_RVIWX+3L=jbn1o|KOr&bpaIktN1AZlZ`0p2f{>xmS_*o& z(Ql0N-%Dmz)W{uv4Xj2_YV>E9e#K*U-#7Xv{5>yyD3_>1cfv|{jyXYAktIjN+-4n0||_r)?eGG>#EyO#bxclR?J+(9ZcpR8QBHTvLr41#Jr?PYSDEsismza`>j6D< z#}eod$M~~Ov~vcZW)EMcRoIse2q4Sn_6i7+kn-`-%U*7M6w;K7`_GqyDK^Ama};ZFxT*S>O;GYpu2qCH(( zRQbq}j;pI2rhrG=Dnsd?XDWwjsA_xV2MW4oW93o>EVy;V6;IlKf)9`luf(^}>M9-R z#>17R3L5);rHd2IIZ?S9C49FMoFS*EvNKKcsl-+DzYd+~K%@RRF%mD69A4RxMsp`- zC}`P7Ct?+_7fyK5gUc%`R20b;E8x>x$2G8VW2GmphZAEIH1GI{f%br{%F*PU~?snp^L zzzs(nX{VwiPfw*o-1to@Apoy|aKoy`a-Hr<|9a-gdS_Vo#?u@fnscNCZ%=co=uWde zDwf+*{Bx&08&-)yA>j1%O>#9Onc&7A6OlGR86NoJpQ>eop=4%uL@dy`PdqTIq?## zXSy-(*vELqRMRo{1gKbWd?0n)c3gwU(}X_*M;_-AMOym7v=h%F3|nzLm_EJv*r86a zH0g*6p1*#qGqss@WQUwSKT^;j4DC)A_#YXnqC1n0^v4aFVLV=Nm~=!*Kh_^PhSxZD zJnaC)9Uxmx_5w_r-eUFXR)Cz8A_NejX<9 z#P?~w`BYA2$Itdrhb%M#8MOPkaYU2Hwtz7ZU>460K0YN4`-?zVb<8wqt%aX%fyL8 zlAzPmr#%>R+BEhwyQ$^z^l4^5qywHly?PdG@ja~qrydV%q0g8G$8pcth4*Z z(>oB;oBgRXz2>(cX^vme+M`h}gMeqo=^xoYkgUnielZ3laUPATYc_fsz^XpHid zN(0|{pNge_2A%3=M_r52stObd)LVB7RCK}HpTtiAl zpNj9JY2wPGHMl9h@@Q{*Zr; q5%YNB85sj+mGxZ9BRaUliC5ujobpI#)4ALyNam%v8c;`{VX>*2;>mZq%W?;<^%&_f;sV?7a$whTb|} zG2Yf(0m*YJUbCafez`lXb3V2T?^ro^)D@QebW}+TP99CMr?q#F+IYc~lPG}f{86-} z!Wahm9>?sUQ~gnU8g}g{-tma>3L5|Q(JPMhMUP|e*cH1|V|a-#@qMgTIAkrDpRSvd zJT!S^Zpxe~k0W4fG`|1&&{)FyhObO3@q%*^C2_FAR5G8gGL-cGpLu;ue>0VIV?AEX z*_DM>Q(LCX;&%}D=yMtIgZ$_R zUYyfDKceAuE1YpXv}$Lf9lf}^WQ@Ia0&SKJZeCQZdEf>`^DiSLaZ`zso?TjUipif2 zpHX76%F3@@+YQ^9E`Gh_v=#9Pie*c-3Jl`73ByUx&7a7K>w&Biqm^h+%m6S0ycX%| z@2uN~4cnPc-d-|E0a=5qJJX`X62dmTSUFZ@rC8R7t%N#1GY*$bgWu8H;_CHey6@fWp0c7Q%!!hF!i0Xjx>2|y;4SlxOxv8s@YuMnFvkf4xJOd z9qDs#)xSXKg6;Kd3HATDevG}4j~lJ3{^_Fu&|gt4HgZQi8U2$zjh*omJZI*v>fY#Y zOKlT>GP%>cORi}zz_WF?Ypk34;-hL4QyA%C64<)7uG9J{HJ%K`zNvN5($9ePcWYSf zaV9m)x(}orz3M{ek(v+L?hw7EI*{R#GNF1PUJ@T_2TL~9`ha&>jfU2*sb0-a+N_eG zXpDxz@Y*_N@d!kQiR6ZU=e@vcrndI z9>RPgzuxq%MRjBTM%3Yb>j!}Mv8xKmS6#P<#J)EIH^f(K=s2$%ueW1(VUc_xyJI~& z&&06Kkl&}C70?paZiAwpZJHE$T|b7Mv`V;F4#yGpsGLB({WVT843V$6lG8$K+xM15Pel~_8r8+G-J z^DT7F|4Ci`KQ_d#{`D{YQ$vW=;2nO0Es|g>;Ce@?9tdGRUiEBsiFA{_>e=QH?aXGc z`cGNoEYuOrzgD-7HTrE;oM;zxF?DQzvNZ6&>3gWby_xnz<;5-5e)a5BO4=XIChAUONA;6V7_cu}l* zjcli5QZ?(n{bx2{Wq8q7=}x!ARu{8=mcW&cd#d^a>%jkBdWxk_XMB3N>RJ=dXfC$% zASgX_#bJY~hV8;vk6!hpL8clRI~X1ftqG@G%I=`e3rCI6{os;SGtIz*7Q%#$rl z9YObc9lJwdWm0fR?*;cvH&|c9O1)5NeIf3RI;L-dg}p6Z`$k<5>ls;M*jlhE4OYN# zT3lL}%R1babhdyT9ihW%iDQBsg6PYq>zvsN$I+-0eD<)GHS<U!l-Z8v!MS1o%(6Nc#_?NP12lx~#tGk~iq=|vRlJKtbyLF6~R=uf<4s^BWC z{zAn1${Uj93k>3NChLhUbtX3kvK5Ct%O5`ey*idI{i`~TH5x(;?bK9VXB`L_=u5}^ zT)k9MRRZ~%`_+6~d*pIz#u(d9R1?g{CwPIT>iw|YALHC#b2J2`cKVKLTa)Z?X4Ext!Gfr2!LsF{GL z!HFIlal_9#?45`kouy&jVNXn*Ra(}45n0VO-0+en^Mx{l#9zbC?*}(CYT4d`VLc(i zc!PC$t$ca>>;@N%688TGZ=o%7_xH0J(OFvPdP4&jBPDerL~!G?h7up9#G;p(jN>sA zhJzG)1IXhsi{hBoVf#*}Ovze~Rgd`}Rn0`7PpO-rV5G6=IWC}Q)G}U>=vW2A^RsFd z)L~`q&uym(|GCtX@j&B%n^jqLn_1scuox8QU4d-#Vt?;MJB3saVaxCQ zMy)?+FVwOI5$$&u_~zGIU#6%S7E6cTt)0SpQcpwzjdT?-yShicn5z5l zBK_N}%;Vg)%Qv@o`JeLpABxK^tcvF1Vr<>htQE2<{jzVX`_kJ3>&~(MwH3|3&^4=$ z@-HjQO4xybvuro;K7Z2)J7(l+=|#J`we~wrGpqe^3o)8p?LjwAs@|mB`Qf7~R$NiO zjhm|3fdaLtEkoi9ns2LFhhOTZQLGLf+i?ZfwDPCw9;|6@D?h6Wz)x`~Wrz2FtJv83 zt;7_=61i%2{vw8XZ>g5M_j%I3_G1#b%2l&lBbEqu&9n6!p50$)Yx+K9Yc)G=i1jkr z?K-(t;YTRVgnhCX!Ly1E3`d^^8W;|~+Q zyzWS=p~jyb-h>#6F?z|U^-c|Y1{C{Kt9c4GR|uS6hmQ4#Z?BJMrA3ZxVnOfd#xuBx z#?+-14GPZe4ADJ3YQJDz_14s_yuN=iFGNA`m73J+tW$~oF94RLUS}tGs58BVgPabu zCiQw;&fiMiN)D@eEbz>^a{^wpS^m}n0+n$cDtC_~yR4b9NZ+Stc%XQXM75mX1m+P##6T|+UmW6{;#)oov zzx{Q_Gi_PnKpLF6IZf(b-2EPoyc3&j<`40b*;p7 zV%Q)?Xp!Xj+8TDnKn!y!s*%`tVZU=qQ4QPGtdtk0(0$_m;bIW!steE;xZ(bX+fd0P+Setv9?DHJU72aZXF01 zh_`M(Etw=)HKf>CEEDne)OlRZ8>|5oct44aSVQe;=Hi+GE))-V*x5WjL*h;8;il0t z^RbRmCz`x$;ns<}xH5t#M*vTbT%%4EO~Itq?wGKJKlNgxoO*9>Jj#xW;^w{(0}i_z z*$E>?3}z}wq!SMT#I0`J!!8E>9fvN^@8d=v@vH;Q+1;4MYUAIfYd&uXPd+DVZWjykMi#IRQFf$e4omo8YBU2JMQ@W0r|Zbu-4jucaT z`>C{9{XxH|QAv9~+qj1vwvgN(`ej+`gt=v4(W_%ruqLa~i}sw}_>+}F{X;s6>Bh3I zmY9_&MB0MJP1ZtCj5%o?_(aL*=$yuHSts-{b1*GzJOhJWJ)P)ZOB%cwnJKpOXl8mr zqc=8vZ@=^X@2<1iK0z6p747KmrVe;nW1gQ&%Pl*7V0c2+4YwzpcrBZM&6n;Tajgd) zf&TZ&C?-?df$q#_cvSCN?H?^|NxvR_@eH9*EXp)1suCYBm>)N=ipLMT5 zlg?Ur983Ixf33==B?rK;{?=+Q(v`Sf?Mk;7TrCc4p{9LHuX?d-XGrM@*@;!`R6`7V zV|W$oW{6=pim{`lu((d$M^sJ3_gE#R7G!FZE8U$~^(yN$ru=W^i==O^uev#uDc|bL zRiW(c5+(7Ybq}kItkwvD`>$LbV;#2s%2fwC=26uoHUdTTqT^*(N3wSE-^rau52s(P zV25qY*^^diuPy4gQ`JtQ$wCZZjEe5Mch!zvVx*6*CbyJuztgqhcB;pF&l4xkhJAL| z+QTxtYixU!*jsWMRae;c4b0n%y1r6n5)XU23EfLeZ#vys*K*>s zqd9O@{q1;vb53{?6VG{OeBRWqa9jK>x-I_px0@io!>xAo+0UC?7t^mUG`&V3b8t1& zv0=DMUW7(CKVLI|x)Y zu%jx*`a!9xf$7h%@52UPkgFTmwim-jsT2m#r_IU`6a=wkXB#3IYKnR7Vy&oH8S~$6h-g)9 zPt`X3#iSH6e_}oz>8Yy?i7Yi1G~)5%V;B02vSBc588Q0(HpgzEbBMaFq@i|=KRZ~} zolqzxHQsMH$IgFS(hPTMjF(%Fgcxn^TX*L*{Go(3$-)8i<`eZEbmHVjl}vQVDW0fT zC?A^;FI$>(swvji+5v!FpEWT@Md-!Pnrv*K-<>@QdS%~)MJcc(Zn}yt3ksg%OFwvf zLN9fpYwvZ`wfC#KbM(1IL3@JWhcvy4zFulNZJT8@1oTm+;q_m0(z|yXHDyH1@X>K2 zV!8$CLX8oUn3yrq@nUeeBseZ{Q2gk@F;kKf2boiawG}NU425(1O&w)MBh>FVdC80> za5!M{@-#+DQY4RvOB^N8oAfZ?fXNN7?CW*V!Od6Q>74P3}-|$m9%x)Z{om zEW#uqPe>ZvLLOn1#0|ma8 z!`%9jK44d7YA*{jfLEEx!y{a;mt;RMDJecCI&n%8-sxy+-_!CLoj6#iQiHUqM<~9NCUI2Upy+r=sW7>;iyJxRafrymB#?R8gc*!*y9}$TeTB&h z+{;aFHetpP2q`!D^~7roB|?oHA!Z;|sF8w}g&D(OSve|;DGW9@|MyV2$#a59+IC3; zhs6vUHDyrrNI_-7Ow#5nPjv0{W&uY?FOSlUx! z5(k^fBlX~O$kag=YJlE{OrBn$(%i5|jfoy5a0tVz8*>hs+-8MJ^(lJb$WbGr2Z?nU zDy`v>qoT3Z#kA7OjZYk%Ffc}F!BB&=W(PAdA#fY>a}TxZb7P`M#6=H`j{%JQ+JqV+0S=ow$A?;J6XrSvi-Cx$k?HA@nUO4O6w3?LyUsqXG?oYh6n$*!&^t7eEiBpxks>B~&`>dJsUDyX#z&itb7Uk`eQfHex9aB6BQaT+ zURsQiW8+4N{KE91(Bp{7(?u^89lK8qTtu-U^N7jOQ!f=dA=;AK0L4d4ZZq^!kX%+B@Q|cYLKTMTrHUInI&sjbxTHiODnzO~$jsc8Lqb8#n>s8Fk%~HM#5ggP zwCA8@H5V{MDtc^OVsw1GIfb<0M-6QrO+uuF87=m-unI6$s;ygs`x@56{Dp>#+tiBSh%!F2FHoU zJv;*T9yPfe!=-|vwTVNsEwYmenh-N;C=R3MC=>j36zy7gBtBJ3*A1<#I_Vyx(ToI86bp5N?QO8^T-%W8mnH9y?9iNI0T9bL&5pD$s4Oa z<6nWv6SI@RJak7eT6R-H*BXZ=_E(F(2koB5WVnFl^Nc`v?emOD5LA{CYW}?Qc}6&>KhMDXIWA@lq6zylQgHpLCc}Z>#Q!ldeqRQlP~jA9vRu4icAeoe+i$gas)4nZ{; z!(il(8G`^hDY!?DA-F($!GF6w^*x-i%@tPsnvo8De$5yn#?wjHGcKvo`_AYM#fLJY z!08}LQ~GO$1AK502?rm{$l6ezF$-QP%gBbg|=o)HQ7 z-d{XSIFu1VyKKwop{3ow$k=HIo9||vg-v(OT$i^JYWZ&&$`MfRXh8gZp+Nekc;U-+gNC{|7;_cynWqsG-!TkyfW*^ysR9xN z!{$;ad#ZOe9+pvzmpRbVbB01Yy4PszXAd187@ncX;i{Y#IT_PzpuP<63V1lcxYWkX zVornMDXRFvu!)$tKY!Hlt1Vz+ds=ha;N46mX4HQ>R>hSc4I^wQvYn=;&jcD@C1#GD zo-%&aLfZ>`+Z!*^IVTNOHUirOnDUaro>q-DMk$1{s?4Q4?`Pa@$B40_%CKH8ep3|d zJ6m(q3nvYMw3EBBR3?0{G6#wRHNE4cq|rgf0vSa0G~ksNUm0%O3i+*u{y$f%=;y)4 z&++P78-s(;Rth@cQN%qP$T^4iPdIrR-09jbhT&xAf&c@7{4OZetN?=}o$6-jE;Ci6{hbY4Xnc1=XF|Jr8h$4N znF~GdYZ%f@wjt19+Z_6g&S1yn2v@oq9O!6ogAWlU0F*#QBmE5{&EFK`V{z{XuixOZ zKb8?kn6eL5^zP+39&oyc;UP>pWK4qmsYW~6uFg0KulM}L$qwp|8GFz~r3o*G%Ui7rF4Qptq}xKiHf9eE$pM%eHX)zVRLCcgCoq$k^9O%os4^ zu4d^{zBPv0P_Is=3Ighy3?=0JVDu7*!eP?`Cr4P`XvDK3LOF^)Hja_g>_%gy4L!Ke z_?}G2r33AK$GFi!_%obV{9p{gOMtOtLI%O~z#-#g0#TXRwAjk-^v!*S1Y4mq8tDsR zhI~ibRA?CIMX&5PJi^^$)Ch_ifwwkoni{I0Kjs)F*orD5CN{VBAC88;%Ex^=mcG2e zFiA#-ylq$~qjlp9N7UB69I%(C(%FT^;6RF|Ak|aIeh5T;iM^(Jh9S|0esFV_PiIJ8 z(L({BgzxSJQ=NDF&_Mg$vMM;3*~5`8v75cuqwuorR(jcX+wD)F@q?%iaNal1osOA5 z<54%N{IEc#q8myF)GrVh4+>A#6ws43FS_oAOPx)QH2m%PXS%`zWCgcBooP#d-?}AS zOYa!6^3Q|gM~Nb@_WKK`-y2GoCFk{YqU{>rEYN`RqeQ&c_(r%7lzx;rfObvE3oVAr zp+gkVyEaGzw2K)!%YPx7!xUwhc6T&gE`_dW58ZwU)xv>Gp<%T0`_P**8vSKx zCmXurNNAZ0bvhh6Sw=^H9@;?Y`*T9m5+G@OsDUm`3C*=J=Q?&nsFt>$9QqV?5zO#F zdgz-(jG;lZLTA{*$1_4b;Ezd|CqF%OwheuLd}yH!UDhe=R4@9)Z=nae(%}hVxGtRi z{gke>UrfrM_{5tFUUL<+Z%e5PR+bJ>(Y>j96Dj<*Uw`^-zX3<)QST)=vvu(8z6s8B z`J%}FzI4e`vnLFJ?mL27YFr1mF0JlBH|l0z4J_;((U-!Aw-L%+%1oR*sbccPCw!`Rc-{E7IuH73mdG=H3^z`Wb&{ zIz3|`6kl3B2lAhe?m{P~NB=efD*lYZe)b#IQnApZCftp30{+aO9uTzCLks$Q81cuJ zPAW*=>ER5${)p;N8w~?%Y|RG3NnV7P_8g5qLpyyQ{i*6PGc}!D6E)cmT4x(Tla58B zj*IcvOv=Kc{? zD}xK8`nyAgJzjqH@WUu)`j$;}k}c@cqx-@+p=3YyIOjkQKOMaV-YiULH5VAW&?2f8gJ`jf8KHCSOEjW1Yvr+T1-Hp6k(wZm$A z&~@9af~dEAl=Rk_s4SVeRJX50@9l1`9;_*RRlqpblj`qAEf(_)g3?Q?6NOd@qd)!` zm1-x*762`jx9tb6vk@{wwCF~7dazl~_9ynrdV_|aOIhemW9OtaO`#X7 zwrKpJo>QCGc>>Z;mwZM0!YHQ9l9Kp_MfEH~-=< zC>koY%q*zI(x=h9BU|Eq=~o9|+BbwQ!6gtJ~=_JxWw^YNEU6=xQFRsp>t`Z`j6 zV`QETdf!QMq|?#{?mG?{Uk0nG?8Wil-lQM9_WsL>{(dg|%G(g6n=OtqPO$O);qDZb zeZfO$?DHj_@0d3SN83{~Uj?68GdyWVt!ergy5{4M#mTh%+)DQmRHIw{)AO*Zbbur6 z5%E@gLJxKA?K+O;Z5`B6v7sbhMYmt*iEm6D&g|h(IJIOhomw)lq$ds8yka(ic7Fto zpzUgdUb#uXJ<#u$7h$G%M}InY($jtV(xMN8Lc+`z7rU93+B|yA&JCW6o35rgukMt; zX|~Sy5`)$4&F$lJqgUlZx_9cpoi=8&NiVOQ7*l9?cRT*x#@{>C@a~SDH<>!-7Mbq! zGFzO>eFm=gr+2$;-yQ&0Y`3C5{;ao!^ABg*(ZayZe-0MLM?X4lbL7|saO>tSHErlp zG-e>&&+MV1FUL*)=`#G7rgx+yh`4_bS6+fW@e9nI_krJu}lpi><)cXgm$ zG+BGP!Y#Wj-W*zTW7b1^`lU_gJwhE%&8l~X5=E8^&9cublfzy`*1Kl1N8inQWNZHO z{rj_4%dnGYDq-Wk%()O%I?Il3J(lTY3l$$^D&RF)*4v={F4KV)M`bq629r(JbjX)w zwTG9pGH|>(gf#j6M%&S<4>G^B7b(H@gG_ue{y}CKMwQHxL-%8uxpe=b%sF;KypnFb zoq0e>_npj~+)f}+QFUYH3pOGxy>vO#Uqg`$@8uJ-EiB1&un}Zc(isCX-H7?mv+~SU zav1RYEGIbr+pN#&!8^0cZK%&5vz8Mf6tC~OJ1dFM_4j5iAyna)c|%6~KAd%1Ozl8- z+GNeQp^q-l+TlR!x@6vWr9qEo?G$Td0_|8ni_?I5K;}5w*eBD@hQ9m$tfy6U$Iw}K zQX#poXV;c(DDD+4Asq_exs!*#Mfh8czi09H9R8Nz?|J+!#a}-DmeF_aEMNUTy|;U< z&WkP_lzPew)NjxA1a-k&MPb>4H)+{}jWZ)DePeBc6X>$D<%J1@*3g7OYd`2gIEghuTM8ml(Dlh5V{%=`s>V+%Z~Yiz*^ zKX{`k!4J+)h_i>lJul<*{p!26FzLm)9jND<1xICOA25Gq0Z!4MEoev2JXi2Dq55YF zHWJ!#ae*s=#9edMaQgXz|a{Y8TNR_XsAB7V7m;mW*0mQQ!@+Z(87WO2RSs(F0iKuGYWPPfu9TA zw6Y*g3BBK&+ZB?03^<~$EKpLUSIHoDDN2{Uc`mBVGX*#$zVJ+e1GIaiU_ZSzw_q=U zobRXD(kpKj%*I!@zMs;CE^(Q7M$WAm*o*jJlfE=4sL&xH4u8Y&_Y`$Vh<|T9jdg?Y&Pu=E8O0&^LlDGUQ?kJi(h0R2~Csp=xRC~JUr0JH9 zj@~$9d@t(KebDqpV#U+#{@X{`zyQNrgK%8v5di@^g75}TVYoF9VWt%C!eif0p~t?T zI%byW-cvM9&zyl_pU&JtFMhb|>j=?og6_S!p0vkHbF=Xf;{=o(V=z$15@dytnp(#;M;YxXMz3f@r&u{Zbp=U&2b>V`i z*3$(~Z3vzRQ+uLwvDQ060lN=vNH26bvH^d9zt_R#$Q$KwYzICHng30wnwqk+E2hx% z{UW#Zp$8)3;yXaY2T}fF=PW$3YY;uMYw+O#P)zzbLRI!)1%36#;8}mQd_(Yo!RY(c z#uV9D1;XKn*kvBo#q6+w+ol+`Kp9Bun_^a-U79glmpe0EH$Qh?ddh5FR{ES7xifXS z*}4?njErZ}=jdjqUe`=;dN%*)28l-zV*-Sn)K8M=)5x}22x z>GRXmf^;L&)9`a)Mpl+iI8(PMd%-;2{EWrvx|I3Id1l6(T-~$l)gY*@#vu*GboZlPL)vZ@A-6%23Y+ZU@ zN@^~O5Te(^zP+)YGlYol-DWQ`*9R`iVhnBsG#4II#;4~tmyW3cu}XyOW@pTqVIlUP zCsabu{&{Wigo!I-BO=8Joc#$^AEfioojEUkK9(Nq&)>`(-?5mUk~Kda1CVn@n&lgO zHs-iMl6Hs|N*DK3K-Hf^a1eQCNO#bWEyl1zv8uv9D`N3Cg#KAE^iXb#${v`Qt#c{7 zvTioLvTn|eQ-w+2ZKg@zaqpa>kLIj>%US475j5fC+RP4c+qxygh6UVy12wj>B=<~+(g1#?|oea8#qwS#QZ=*Xc$ENV}OTrbYTqx=!; znrsRu%q*f4{vU1M9T(Nn{r#C;dR>;feOXXJ1Qr!5DwZf%A&MGHz!tj_V@!-uNj1fS zDNbw*rW>PT5}gCunxP3O=&Cm(U>ZdnFW$iOai^5Km^H1F+rFMcjGV_cfUI|Koi&C%xaaIg6f&zqCI zV8T59li%=Y^{q$hj{U^qm-w^l%pI-ta~*PJ!33ml zk>!97WX*(m^Cm1zqJb%yHd;NnyFc9-mk9?*Y-TQ@`PUPI)+A@@X-;;gH+>`(68f>Y z%r-RP38hmck*HZz~D>z_G+|Jg2cAohge-QA*_#=wY<0c4Q_AvJT#!iOLb zrav@a?qhG4%nmeHbI6CzU3`OlBCjcgrj#t(_oh z0`w+KvUHpPi8}WIT9A<0nf{iV`92Tqks0IR(S)fB!!pP4U;Abj!Yf?g3f~%JX9fj1 zbtzAhmJH7{D~Jlp$n3&v?#a9XU(e0@LSMaPumky|^vo|>m^<$|B(p%(RGnk!=U~`p zuXnd*KRkK*0}o_Rc<71N!?kErVQwF1zrm;hACX zw}C;AZYlGl(^E1p)9itnUGUvZrh#tnk!j(-jLCe>?Ph)S5X;}s&MY77An+o~#;N@B z{Ta)q(z9R9@}tGqaol7YveAcc{5m5^<=M{KI(imX?L?oA#x?l`KHU4;j3wRp_>iF; z{pj)qy}c>>HWgdliwity^pSZQ`t~E!!fB3mXwt3HC|a1XDwu8wFYu-ZwFR)GBZsb~ zUEKS$rIAPG1=Ev}LpRXTJ6}qql^s@TlzRMK+t5j?=}~hRKicreQxVIq9Dj;mIsUZg zRGIywmJR)DGyc7Ye_QbHeLnQBtrxwpk%oU?KYy~8$Ih9o^57jqCtn@S+s&V>38Vq@ zC;RcAe;76PIr{#A7yNnDvE}9m6cI*S9dCup|NB}QLmb=L$fNUU8h^6WhU4!z+!AXy z=32t}w;$!c{4I4qj(`+LKPg?nxBgxFDZH%d)uBSL@%}irE1Oap&I`2qw^cOjr&4_j zr4*$$K0vL9r)zlSwHWSi-=%q;wrAA1>`YJ!V#=BO4i(|Ah|I9rRRuy^c*Gg>h&7&M!fT8 zvkOb7swjS=c;)M*II_f_xY!=4ccW!6=8Z zkDX7H$(tu{D}7u=J6*347hM^Cz*D8q`FKUopD=Igl=&I7C}^*F&9~j$cC9RZ0P+8? z*SI2=qJfdm=~&vwK!^Si?M1(Ty)@(&P@%M9OsNkIxVJQd_Bwmg3y~UI!9y~lbb9kU zz9plyfKYY>iCc2-Ev+N8{Ksey`b7@fU|vcWzO-9bX|U3oqxD>sTXgQ+d30|M5OA|j z7+rGTgys=uaNp6T*b{FH+S`nzCU~}v2aNWVwC38=Y4f{^`%2^Z>~WGQIBH%8lzssPyO!F2=2eD^t5>GA1_zZoEsx4c%X)m z=d99^Wcu7=1(~Xf7SO@er)zMf|PAbrxViAO=uKdJcp1=@U&d9AWg!^F}OwWXe~0}&L-qZ z>DoL(%5~C6gNnF$u@X!yi1w*EiVGQsYrUBT$(cP_uP^Z{rL81nusgf|S)h#;W|X_L zbx)5#^0A>Mq=)Z%?~h2d%G!%%^h-f*y25vmN|(J0JZPlk zO@ut)zP@xVX@d%sY^)8DvQh5mM|w%Gen?2V4_!LF&PV#Fn2^I(T3PsUAj^12jSjYz z5HgZkKkNxIu$MMQuti4+kXGoY1AfcTL?fr>s0u>XtiO1ev}Spga<<&m-wAmlLdtW; ze37OT|Fx5T@gxLS1T3xUwDgz23V-@@hmZVNJl^KB_mTD2PeM9f;?-0`jy%N*IT5%MS@i{v1M%f9oZ_TTD!STR+T@sj2xHL)Vbc}p$W5PuEukUy~>@)hJH z7(JRBKEytHSxt_(w2O7LpcPhRlz#pdHHlWc)M$dGsopJMBpH})cL1X$z@KGB*Ww9s zSc95_*o7VmNQCWxGcP2{Q>s|2CQDT;5$I^eO2W1HmAUmjmioStEMi4#3}lM*+d?%N z;VqfwsmWP)DSM_GiRh%94Qe?-w6&d@_(}&>t4OsMD?Q&CY5I@~&?04wQWL)rM=`DT zEY?dE>r|wTm!y3|MOG4NX@50o;~`bGR*{}=tmKO*NP>&WnZ!dnK3Gjc-KBR2t4JX7 z3d$s0G*v|+BtBF{&Uw&`LG{Q#_YUOJ0wwf*d zRs{|_Pt;_pm6d$00$a(qRbEvJg4p8kP|UXNQ;`&QJhwHf&M#GwcL=lMzai3D6s#jm z?#s^R#;HKP?&$DO(p1@q+z}gy(!I9_eQ)qb{wz3EPr~W@>MC!E9Z``nD(U_6kdR@_ z)YnK}WQCu|o#Y=?h|5Jc*p*ta4uLn-m8M_}SefGWvn(vyhX1h#`dK<#Z>lU#d1!nBH^j#CZfpV8 z;CaUoOdjHkCK@a33@OJl?o%VRv_+)`06oX5NZa-<4AI0gOy-thEOAO2vOt!AsIRK2 zb#*A$+og3MWT+C-`kt4mk8ZD_Z3jgPU5 zPYxj{@~dyn^1(s-G0H_j)DlsDo?16H_M?F_>wS3cs=60iG3$Fq zT-M9~uwH)?s;%K9mj5-R?sSUM1OM)Dtw)F>qclw2x^PypO4dFZ$Q23Ub0WNHWLkJ{ zeK55SZwRI(n~#OC%H-C>#@`!Xf7*wSc%e4r9=SJU@!j1MM3eDn2w3(eREadTv_6hj ze^lSr0osv=YG;SBA-i?Ne@!T^LG}2yZZn~kF?F9Ql&$BL_B!IA@;2)sTCt~3sR-l? z66>QTxVn9vim+UW4&=7B4S?ocd0!myTQkFfjW9Yas%{|9kFNvE$jU%N zA8uFoJRKHO_kqGsl+r2Qj}RItc8FL28J#3NV8~?jlC1#(JF_K-@WL zQ#XuIYpc3=-X*RMso5RFS1yi(jK4YKFpg$rju~{~-8+t%}PUwRHG_Mk_0Wc5ll& zoiF`qz;V4?4+*^vqK8!n8@oBz!&gKH(Lw5hIuDl9U+(p{0msASCUcxC_NA)|zthmA zrH$!yacLvmbB6#;`Cw?BUWXd9SzgZ(;HT}^{c&G4_i&?87{AA%#u#cn+}O*t5^kOj zIIg8~Ig20U5Ae?&ZtUn(%l>_%onG8-3uHOER-k#z4;IIFm`ncmjUDLRp2vMy!Nh@R z>U+5{n7{o)!Vq(YQtCEk8!+-f_gF7qRXd)i#^AD3& z)cV6Wmi1$ki68Y?R0rc}e2(XyK^@7l*3@GMHmv#MKKEm}t9zroW)A4P@I-?LZJ1LR zxaWznWO!RXE2F->AGNNk^X0$3P}f(j2*p4;F0ek3Tld!u^>Hv5&!1L*a$qw@A{VnF zJPTisA)$OcSIGVDEh6JklseTO2J5uY;2lsERBJ@C9t%iFaY1lr1P0fpPaQw&AGPDly zk;58hw?h!RhE8hs*eZ9xkiXL%seBgQsDB-s+eKJ_!oO0zcxhdID2}vyf?R4hH~6r> zUm|2E*O(eVap&bn>gPu}dghQN!)zSzm221{^cTSLf78pB?aTorVpp%m&)sSHNA*6` zKdv?$W<|peWg4{N!}@6oK(q~Sct-|%{BXxqmC+JD?n*R#LwZBF2j6FFtT)IQxGA$L zHwJ*WxrPhjl`jCl4(+XK8D|pT^)_PI@9~x{t?X`xtf@mRY^yIk*YqQjQ3K_{o z<~GP%njhZKo94b>t6_5&N07Gbb5_96&x5gTlm%ui%Uc$YC~~ZKZNPf_d0C`o9q^## z(I5HjS+t*|2GOGTYmvUURR~hjXSmgcuP@t2*6-Q=DoOHT_P5m#rwwUf3)ym!MWXJL zV`MIZAUs*`y~p@084Aaw3}wEm!DG+jlSr(tP{+#^YOggB^&WdF{wDEm>#ZxuAgcKT zY9@7hy$4Hs$c}Z>yxSVgvhr0~qXzWxTGJX39X(AhffhE^ddpx07St!g*vsEJfFu>@ z-AJ&KL(7w8TvZeQ_1m7s=LY6q>%D1F)^?xun9L%U@)sfIJ!LCNqq_pfn#}rztbWlD z%q>@68_*0ZP5hyuqXS_Mgb%;Bp^pOHo)_LFk46eCRbU=~kppcp5W<&E)%rB4uQ^BR z4s?>$ri~?hnMC54)V{l@vXo5=w*0crDmoAhbIXb}V6epdHiYtvJL?jIC7f9-2ZGUi%*5`MqjqK~rSahH-G!Qz88Qh}!nZ*qNpmzxaLN zNxkU%Tm7Wo-n><%NmKM8{P>gl1Rqvb9Sn)$(%NX$8~KBJ{p-TkTxmqn$cz4})6Wxn zd!nztmGdJ)Qw-IM!7VVLSY`Et`Zj!AXT4th?)m@NP1k<<64Ar>A9uq6P0#v26C8aaD`e!^WE{?qZFouco1 zm#O~KZbszjAN(I6e)0&t_J06PbdvrN0XH1t${U`Pk9Yg>sSiedu1e@U(LS;L16?|F zNlr>mnuNbQb?q{#3%)tDcWU3M^W=%$y1|1zcMD~Fi8_{k8%KEmI$ z7;t3|H!M>SY{l@27oAqD-_aZ$VH{mJIr_onD4sb4Z1!ZY}lW?5JCyy`;7pbN2fFZgW{d`1;!AAsdlg=2$U)XDSTO822 zjq891QpJU#k&T8ZVSskMjZP63@7|X)Ez_`r24T&qOnH3lK?4`DeD@Bq(xJ3xoKc9y z!gqXSI3)%Oa_)i8+->+!6h_X)uCu?LvRucbEiut|%WT3jxFC%c_Olb@t8X;)6iHBC z8(JD_%xp$4#XCD66=qy;+alfwH#+5VRa&>!83hZCpTGtX){%fH|J6u@}415U=-?H>`M9nV5-g_^Mbvm%Yv%<_x*=apx2K-v&1ktPMDQK z5!+KuV#FtBf$vaA913Z=7Q`5%mbD%G@Iv>@+FbNs~w!vv9UoNM#nryCI0=ay`t4YO^6AmWvKYzM`$5-V+| z?pWJ()~S1K;cVcii9{R#FB63x@?3N*o|9khHd zJkz9cHo+|AW5(Hvg%#$JGi-4D<`(NWH}}q`_pyB@&M9$_Elga3iYIM4K5dY#L?pb( z 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 diff --git a/vendor/phpstan/phpstan/phpstan.phar.asc b/vendor/phpstan/phpstan/phpstan.phar.asc index ea93270d1..34ef3f53e 100644 --- a/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmWw+a0ACgkQUcZzBf/C -5cAToQ/8D3XHtsO5mN1k9HUQKwSQIhWnFVVleRidk9vFRSZhPJjV7HelLNZw5bnp -ojHGINUlqFHuOxlGGbdYSAQAcix6Jb+CE0kCI5mI3+OBfL2NiF9LHTgG6mMPLsSx -Lvk0Q4Wbl14Zc33252pEiWkRIUGQREM2nYmmYF35SJfhABZhF0wxWTQEBLSDKyn4 -qoeVC55RtafIUJ0x/auxvszp6Z6ca7Z1fmjFyIglhwHLt0iSv2nWcxQKNng/AqHr -a80J7qrcI8L1H69ScargAvh1X/CNp3YCMfDHj15NVOO7tZO+aEFtQARpw8JW+CJx -zEfw6+B0Dk5AMt2KPxDgVKXth+3rKRQ5nF0bo3cyEEikrfVMqhHWu6d0crpDtRfW -hQ5k3bSVbk5aY805pzU3PbGMea0eWY35igiWa/Kyu33dPvXxI/zkRF2zkL76d7K5 -JzWidcs9enz7hTqFTG3bKODogtaIlvN/vjw4hNrojhfam941DT6cicepntq6o6fy -H40f1xQ4W4no7dRs+2HDg63BeYyxKeoya+yCWQY0/q/xFdp5xNS6rMNE9XHXKIPY -3rUw7lbQELr/b1/Ob3o8zhrbpu/BKjkxCrU5bNlUspvBk5c2MA+DmYtbhTZBkUa/ -j99L6ysyNAmoCyy1uRkUR86qsYA3NjpVJntgmSZmbf79vjKa45M= -=9AJu +iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmYFl+cACgkQUcZzBf/C +5cAS1g//S99FoemVRWTmzdRPtlwFVnYom0MA1cx6Wgz6d3Tjj2AGKl3o/mY6+V5+ +Gqm0LEwuMlBHmHcBG/ZajpcDy0s5eBNY0t7wNCL2juXz9I89z8TJC6ypYVLFqKRR +iNqCeqR4i23ZTdqNWnvS8w3ZzrLa5z+mY9AEAz+mjK2k2fZjpAYP6YoFsNYYUQ+z +WaU0YgYloJhdUZqF722KjTW0oP7nJ5cz5r43dPkR54XjO2ieq+HsOXk2JGClMrLh +XG3yrceo03TQOdi2mp3xiX1vOe/BRApn0mQW94afHpzzgBwoK/GOx8KHbFfpDqhe +l3xsnLLOl2UoeHF3FQVM4UiCAGWDZnW6kBZr4mfEWg9liRMV57B3CwQaqcPqCtoY +Ti6tN2jgcBoKfowpiYx6u8NuRg+ZYkG25VEJpVuFOFt9lnlD7PeaEVTRasPsV+4P +TJaILAttW/HcEk5oS1yVHy9Fi7EcNozzEEnSkGUX2lcOawhdnhNrt9t3foW0zWAz +405nt/BNMtMcSscgoR/61/u9DbwJasW6VFoT/oup0bPvk2ok3v/xaSlkal8Wy5OY +K8DF5JGnEIWM/Dwl9ubsI+C+L1JZTHa0eePN8IE3bwoE6IBGgERL81B1kfdgIT+X +yuqEIQRRe1zdDDAgaxMrjYf3JntMli5Bd66G+ykmM1hfK/C+NPM= +=LVUD -----END PGP SIGNATURE----- diff --git a/vendor/rector/rector/README.md b/vendor/rector/rector/README.md index 40bc46cac..4008c23e5 100644 --- a/vendor/rector/rector/README.md +++ b/vendor/rector/rector/README.md @@ -43,19 +43,18 @@ And modify it: ```php use Rector\Config\RectorConfig; -use Rector\Set\ValueObject\SetList; use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector; -return static function (RectorConfig $rectorConfig): void { +return RectorConfig::configure() // register single rule - $rectorConfig->rule(TypedPropertyFromStrictConstructorRector::class); - - // here we can define, what sets of rules will be applied - // tip: use "SetList" class to autocomplete sets with your IDE - $rectorConfig->sets([ - SetList::CODE_QUALITY - ]); -}; + ->withRules([ + TypedPropertyFromStrictConstructorRector::class + ]) + // here we can define, what prepared sets of rules will be applied + ->withPreparedSets( + deadCode: true, + codeQuality: true + ); ``` Then dry run Rector: diff --git a/vendor/rector/rector/bin/add-phpstan-self-replace.php b/vendor/rector/rector/bin/add-phpstan-self-replace.php index ec53d1904..0dde35884 100644 --- a/vendor/rector/rector/bin/add-phpstan-self-replace.php +++ b/vendor/rector/rector/bin/add-phpstan-self-replace.php @@ -2,10 +2,10 @@ // this is part of downgrade build declare (strict_types=1); -namespace RectorPrefix202402; +namespace RectorPrefix202403; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Json; require __DIR__ . '/../vendor/autoload.php'; $composerJsonFileContents = FileSystem::read(__DIR__ . '/../composer.json'); $composerJson = Json::decode($composerJsonFileContents, Json::FORCE_ARRAY); diff --git a/vendor/rector/rector/bin/rector b/vendor/rector/rector/bin/rector index 34935be51..5886e17ec 100755 --- a/vendor/rector/rector/bin/rector +++ b/vendor/rector/rector/bin/rector @@ -1,5 +1,5 @@ #!/usr/bin/env php 'mb_strrpos', 'mbsubstr' => 'mb_substr', ]); - $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, CompleteMissingIfElseBracketRector::class, RemoveUselessIsObjectCheckRector::class]); + $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, CompleteMissingIfElseBracketRector::class, RemoveUselessIsObjectCheckRector::class, StaticToSelfStaticMethodCallOnFinalClassRector::class]); }; diff --git a/vendor/rector/rector/config/set/coding-style.php b/vendor/rector/rector/config/set/coding-style.php index f652d1e2d..1bacd93e2 100644 --- a/vendor/rector/rector/config/set/coding-style.php +++ b/vendor/rector/rector/config/set/coding-style.php @@ -1,7 +1,7 @@ rules([ - UnwrapFutureCompatibleIfPhpVersionRector::class, - RecastingRemovalRector::class, - RemoveDeadStmtRector::class, - RemoveDuplicatedArrayKeyRector::class, - RemoveUnusedForeachKeyRector::class, - RemoveParentCallWithoutParentRector::class, - RemoveEmptyClassMethodRector::class, - RemoveDoubleAssignRector::class, - SimplifyMirrorAssignRector::class, - RemoveUnusedPrivatePropertyRector::class, - RemoveUnusedPrivateClassConstantRector::class, - RemoveUnusedPrivateMethodRector::class, - RemoveDeadReturnRector::class, - RemoveDeadContinueRector::class, - RemoveDeadIfForeachForRector::class, - RemoveAndTrueRector::class, - RemoveConcatAutocastRector::class, - SimplifyUselessVariableRector::class, - RemoveDuplicatedCaseInSwitchRector::class, - RemoveNullPropertyInitializationRector::class, - RemoveUnreachableStatementRector::class, - SimplifyIfElseWithSameContentRector::class, - TernaryToBooleanOrFalseToBooleanAndRector::class, - RemoveDeadTryCatchRector::class, - RemoveUnusedVariableAssignRector::class, - RemoveUnusedNonEmptyArrayBeforeForeachRector::class, - RemoveDeadConditionAboveReturnRector::class, - RemoveUnusedConstructorParamRector::class, - RemoveDeadInstanceOfRector::class, - RemoveTypedPropertyDeadInstanceOfRector::class, - RemoveDeadLoopRector::class, - RemoveUnusedPrivateMethodParameterRector::class, - // docblock - RemoveUselessParamTagRector::class, - RemoveUselessReturnTagRector::class, - RemoveNonExistingVarAnnotationRector::class, - RemoveUselessVarTagRector::class, - RemoveUnusedPromotedPropertyRector::class, - RemoveAlwaysTrueIfConditionRector::class, - RemoveDeadZeroAndOneOperationRector::class, - RemovePhpVersionIdCheckRector::class, - RemoveUselessReturnExprInConstructRector::class, - ]); + $rectorConfig->rules(DeadCodeLevel::RULES); }; diff --git a/vendor/rector/rector/config/set/early-return.php b/vendor/rector/rector/config/set/early-return.php index 80e3d1548..6a1732e1d 100644 --- a/vendor/rector/rector/config/set/early-return.php +++ b/vendor/rector/rector/config/set/early-return.php @@ -1,7 +1,7 @@ rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, AddClosureVoidReturnTypeWhereNoReturnRector::class, AddFunctionVoidReturnTypeWhereNoReturnRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromStrictFluentReturnRector::class, ReturnTypeFromReturnNewRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class, StrictStringParamConcatRector::class, MergeDateTimePropertyTypeDeclarationRector::class]); + // the rule order matters, as its used in withTypeCoverageLevel() method + // place the safest rules first, follow by more complex ones + $rectorConfig->rules(TypeDeclarationLevel::RULES); }; diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php index 4ec7ae266..26551219d 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php @@ -29,7 +29,7 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\ClassMethod\ArgumentAdderRector\ArgumentAdderRectorTest */ diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php index e19a81a00..811e12ae6 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php @@ -15,7 +15,7 @@ use Rector\ValueObject\MethodName; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api used in rector-symfony * @see \Rector\Tests\Arguments\Rector\ClassMethod\ReplaceArgumentDefaultValueRector\ReplaceArgumentDefaultValueRectorTest diff --git a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php index 13cb2727b..2cb2a1182 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://php.watch/versions/8.1/version_compare-operator-restrictions * @changelog https://github.com/rectorphp/rector/issues/6271 diff --git a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php index 5b716cdb9..65a5c577b 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\MethodCall\RemoveMethodCallParamRector\RemoveMethodCallParamRectorTest */ diff --git a/vendor/rector/rector/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php b/vendor/rector/rector/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php index 96c9935af..9042e13cb 100644 --- a/vendor/rector/rector/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php +++ b/vendor/rector/rector/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php @@ -47,6 +47,9 @@ public function resolveFromStmtsAndVariable(array $stmts, Variable $variable) : } $assign = $stmtExpr; $keyExpr = $this->matchKeyOnArrayDimFetchOfVariable($assign, $variable); + if ($assign->var instanceof ArrayDimFetch && $assign->var->var instanceof ArrayDimFetch) { + return []; + } $keysAndExprs[] = new KeyAndExpr($keyExpr, $assign->expr, $stmt->getComments()); } // we can only work with same variable diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php index afa99d3ae..8eb831519 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php @@ -152,6 +152,7 @@ private function areAssignExclusiveToDimFetch(array $stmts) : bool { \end($stmts); $lastKey = \key($stmts); + \reset($stmts); foreach ($stmts as $key => $stmt) { if ($key === $lastKey) { // skip last item diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php index 158ff7f38..98cec8fd3 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php @@ -121,7 +121,7 @@ private function refactorClassMethod(Class_ $class, ClassMethod $classMethod) : if (!$node instanceof StaticCall) { return null; } - if (!$this->isName($node->class, 'self')) { + if (!$this->isNames($node->class, ['self', 'static'])) { return null; } if (!$this->isName($node->name, $classMethodName)) { @@ -151,7 +151,7 @@ private function isClassMethodCalledInAnotherStaticClassMethod(Class_ $class, Cl if (!$node instanceof StaticCall) { return null; } - if (!$this->isName($node->class, 'self')) { + if (!$this->isNames($node->class, ['self', 'static'])) { return null; } if (!$this->isName($node->name, $currentClassMethodName)) { diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php index d645dbab3..f4a5abbb8 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php @@ -4,6 +4,7 @@ namespace Rector\CodeQuality\Rector\Class_; use PhpParser\Node; +use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\Class_; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ReflectionProvider; @@ -154,7 +155,10 @@ private function shouldSkipClass(Class_ $class) : bool if ($classReflection->hasMethod('__set')) { return \true; } - return $classReflection->hasMethod('__get'); + if ($classReflection->hasMethod('__get')) { + return \true; + } + return $class->extends instanceof FullyQualified && !$this->reflectionProvider->hasClass($class->extends->toString()); } /** * @param array $fetchedLocalPropertyNameToTypes diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php new file mode 100644 index 000000000..63be2ed32 --- /dev/null +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php @@ -0,0 +1,100 @@ +> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Class_ + { + if (!$node->isFinal()) { + return null; + } + $hasChanged = \false; + $this->traverseNodesWithCallable($node->stmts, function (Node $subNode) use(&$hasChanged, $node) : ?StaticCall { + if (!$subNode instanceof StaticCall) { + return null; + } + if (!$this->isName($subNode->class, ObjectReference::STATIC)) { + return null; + } + // skip dynamic method + if (!$subNode->name instanceof Identifier) { + return null; + } + $methodName = (string) $this->getName($subNode->name); + $targetClassMethod = $node->getMethod($methodName); + // skip call non-existing method from current class to ensure transformation is safe + if (!$targetClassMethod instanceof ClassMethod) { + return null; + } + // avoid overlapped change + if (!$targetClassMethod->isStatic()) { + return null; + } + $hasChanged = \true; + $subNode->class = new Name('self'); + return $subNode; + }); + if ($hasChanged) { + return $node; + } + return null; + } +} diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php index 3506599b0..a21b590cd 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Concat; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php index d06416fdc..c8f08e1da 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php @@ -55,21 +55,29 @@ public function getNodeTypes() : array public function refactor(Node $node) : ?Node { $leftStaticType = $this->nodeTypeResolver->getNativeType($node->left); + $rightStaticType = $this->nodeTypeResolver->getNativeType($node->right); // objects can be different by content - if ($leftStaticType instanceof ObjectType) { + if ($leftStaticType instanceof ObjectType || $rightStaticType instanceof ObjectType) { return null; } - if ($leftStaticType instanceof MixedType) { + if ($leftStaticType instanceof MixedType || $rightStaticType instanceof MixedType) { return null; } - $rightStaticType = $this->nodeTypeResolver->getNativeType($node->right); - if ($rightStaticType instanceof MixedType) { - return null; + if ($leftStaticType->isString()->yes() && $rightStaticType->isString()->yes()) { + return $this->processIdenticalOrNotIdentical($node); } // different types if (!$leftStaticType->equals($rightStaticType)) { return null; } + return $this->processIdenticalOrNotIdentical($node); + } + /** + * @param \PhpParser\Node\Expr\BinaryOp\Equal|\PhpParser\Node\Expr\BinaryOp\NotEqual $node + * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\NotIdentical + */ + private function processIdenticalOrNotIdentical($node) + { if ($node instanceof Equal) { return new Identical($node->left, $node->right); } diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php index 8e77d2743..09a41657e 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php @@ -88,15 +88,16 @@ public function refactor(Node $node) : ?Node return null; } $nextStmt = $node->stmts[$key + 1] ?? null; + if (!$nextStmt instanceof Return_) { + continue; + } $return = $this->processForeachNodeWithReturnInside($foreach, $foreachReturnOrAssign, $nextStmt); if (!$return instanceof Return_) { continue; } $node->stmts[$key] = $return; // cleanup next return - if ($nextStmt instanceof Return_) { - unset($node->stmts[$key + 1]); - } + unset($node->stmts[$key + 1]); $hasChanged = \true; } } diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php index bc91e3fea..d34120d57 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/ArrayMergeOfNonArraysToSimpleArrayRector.php @@ -78,7 +78,7 @@ public function refactor(Node $node) : ?Node if (!$nestedArrayItemItem instanceof ArrayItem) { continue; } - $array->items[] = new ArrayItem($nestedArrayItemItem->value, $nestedArrayItemItem->key); + $array->items[] = $nestedArrayItemItem->unpack ? $nestedArrayItemItem : new ArrayItem($nestedArrayItemItem->value, $nestedArrayItemItem->key); $isAssigned = \true; } } diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php index 6280e6d57..d2a1952ee 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\FuncCall; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\NodeNameResolver\Regex\RegexPatternDetector; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php index abeede7f4..635d3dc12 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/If_/ExplicitBoolCompareRector.php @@ -22,6 +22,7 @@ use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\ElseIf_; use PhpParser\Node\Stmt\If_; +use PHPStan\Type\MixedType; use PHPStan\Type\ObjectType; use Rector\NodeTypeResolver\TypeAnalyzer\ArrayTypeAnalyzer; use Rector\NodeTypeResolver\TypeAnalyzer\StringTypeAnalyzer; @@ -110,8 +111,8 @@ public function refactor(Node $node) : ?Node if ($conditionNode instanceof Bool_) { return null; } - $conditionStaticType = $this->getType($conditionNode); - if ($conditionStaticType->isBoolean()->yes()) { + $conditionStaticType = $this->nodeTypeResolver->getNativeType($conditionNode); + if ($conditionStaticType instanceof MixedType || $conditionStaticType->isBoolean()->yes()) { return null; } $binaryOp = $this->resolveNewConditionNode($conditionNode, $isNegated); diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfReturnBoolRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfReturnBoolRector.php index 43a3667c3..d73692c17 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfReturnBoolRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfReturnBoolRector.php @@ -5,7 +5,9 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\BinaryOp\Equal; use PhpParser\Node\Expr\BinaryOp\Identical; +use PhpParser\Node\Expr\BinaryOp\NotEqual; use PhpParser\Node\Expr\BinaryOp\NotIdentical; use PhpParser\Node\Expr\BooleanNot; use PhpParser\Node\Stmt\Else_; @@ -140,7 +142,7 @@ private function shouldSkipIfAndReturn(If_ $if, Return_ $return) : bool if (\strpos($condString, '!=') === \false) { return !$this->valueResolver->isTrueOrFalse($return->expr); } - return !$if->cond instanceof NotIdentical; + return !$if->cond instanceof NotIdentical && !$if->cond instanceof NotEqual; } private function processReturnTrue(If_ $if, Return_ $nextReturn) : Return_ { @@ -155,6 +157,10 @@ private function processReturnFalse(If_ $if, Return_ $nextReturn) : ?Return_ $notIdentical = new NotIdentical($if->cond->left, $if->cond->right); return new Return_($this->exprBoolCaster->boolCastOrNullCompareIfNeeded($notIdentical)); } + if ($if->cond instanceof Equal) { + $notIdentical = new NotEqual($if->cond->left, $if->cond->right); + return new Return_($this->exprBoolCaster->boolCastOrNullCompareIfNeeded($notIdentical)); + } if (!$nextReturn->expr instanceof Expr) { return null; } @@ -207,6 +213,10 @@ private function resolveReturn(Expr $innerExpr, If_ $if, Return_ $return) : ?Ret $if->cond = new Identical($if->cond->left, $if->cond->right); return $this->processReturnTrue($if, $return); } + if ($if->cond instanceof NotEqual && $this->valueResolver->isTrue($expr)) { + $if->cond = new Equal($if->cond->left, $if->cond->right); + return $this->processReturnTrue($if, $return); + } return $this->processReturnFalse($if, $return); } return null; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php index e626e00a3..dfe7b423a 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Include_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\Include_; diff --git a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php index 6e979b7cc..5f41c249a 100644 --- a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php +++ b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Application; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Declare_; diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php index bc32afc19..9fa3232bc 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use Rector\CodingStyle\ClassNameImport\ShortNameResolver; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php index 3a57f1f2c..9fc16023c 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport; -use RectorPrefix202402\Nette\Utils\Reflection; +use RectorPrefix202403\Nette\Utils\Reflection; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; diff --git a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php index d7e64241a..a1b59bf7d 100644 --- a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php +++ b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Naming; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Stmt\ClassLike; diff --git a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php index af4556239..74bbee363 100644 --- a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php +++ b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\NodeAnalyzer; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\GroupUse; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php index 5d494e5e2..ea1f564c2 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Catch_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php index e9b99cbfc..9894fb534 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php @@ -85,17 +85,28 @@ public function refactor(Node $node) : ?Node if (!$classReflection instanceof ClassReflection) { return null; } + if ($classReflection->isAnonymous()) { + return null; + } $parentClassReflections = $classReflection->getParents(); if ($parentClassReflections === []) { return null; } $hasChanged = \false; + $interfaces = $classReflection->getInterfaces(); foreach ($node->getMethods() as $classMethod) { if ($classMethod->isMagic()) { continue; } /** @var string $methodName */ $methodName = $this->getName($classMethod->name); + if ($classMethod->isPublic()) { + foreach ($interfaces as $interface) { + if ($interface->hasNativeMethod($methodName)) { + continue 2; + } + } + } foreach ($parentClassReflections as $parentClassReflection) { $nativeClassReflection = $parentClassReflection->getNativeReflection(); // the class reflection above takes also @method annotations into an account diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php index 5a402387f..a52d8729d 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Encapsed; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php index af445b8cb..41d1f8a62 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php @@ -89,6 +89,7 @@ private function processAddNewLine($node, bool $hasChanged, int $jumpToKey = 0) } \end($node->stmts); $totalKeys = \key($node->stmts); + \reset($node->stmts); for ($key = $jumpToKey; $key < $totalKeys; ++$key) { if (!isset($node->stmts[$key], $node->stmts[$key + 1])) { break; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php index d4c9abbac..ba055d68d 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Stmt; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Namespace_; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php index c384c91e0..760544d08 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\String_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/VarTagRemover.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/VarTagRemover.php index 38048cc77..9c0b8084c 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/VarTagRemover.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/VarTagRemover.php @@ -14,6 +14,7 @@ use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\DeadCode\PhpDoc\DeadVarTagValueNodeAnalyzer; +use Rector\NodeTypeResolver\TypeComparator\TypeComparator; use Rector\PHPStanStaticTypeMapper\DoctrineTypeAnalyzer; final class VarTagRemover { @@ -42,13 +43,19 @@ final class VarTagRemover * @var \Rector\Comments\NodeDocBlock\DocBlockUpdater */ private $docBlockUpdater; - public function __construct(DoctrineTypeAnalyzer $doctrineTypeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, DeadVarTagValueNodeAnalyzer $deadVarTagValueNodeAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, DocBlockUpdater $docBlockUpdater) + /** + * @readonly + * @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator + */ + private $typeComparator; + public function __construct(DoctrineTypeAnalyzer $doctrineTypeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, DeadVarTagValueNodeAnalyzer $deadVarTagValueNodeAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, DocBlockUpdater $docBlockUpdater, TypeComparator $typeComparator) { $this->doctrineTypeAnalyzer = $doctrineTypeAnalyzer; $this->phpDocInfoFactory = $phpDocInfoFactory; $this->deadVarTagValueNodeAnalyzer = $deadVarTagValueNodeAnalyzer; $this->phpDocTypeChanger = $phpDocTypeChanger; $this->docBlockUpdater = $docBlockUpdater; + $this->typeComparator = $typeComparator; } public function removeVarTagIfUseless(PhpDocInfo $phpDocInfo, Property $property) : bool { @@ -92,7 +99,15 @@ public function removeVarPhpTagValueNodeIfNotComment($node, Type $type) : void if ($this->phpDocTypeChanger->isAllowed($varTagValueNode->type)) { return; } + // keep subtypes like positive-int + if ($this->shouldKeepSubtypes($type, $phpDocInfo->getVarType())) { + return; + } $phpDocInfo->removeByType(VarTagValueNode::class); $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); } + private function shouldKeepSubtypes(Type $type, Type $varType) : bool + { + return !$this->typeComparator->areTypesEqual($type, $varType) && $this->typeComparator->isSubtype($varType, $type); + } } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Assign/RemoveUnusedVariableAssignRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Assign/RemoveUnusedVariableAssignRector.php index ffaefe89b..61ea27c1b 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Assign/RemoveUnusedVariableAssignRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Assign/RemoveUnusedVariableAssignRector.php @@ -95,10 +95,7 @@ public function refactorWithScope(Node $node, Scope $scope) return null; } // we cannot be sure here - if ($this->containsCompactFuncCall($node)) { - return null; - } - if ($this->containsFileIncludes($node)) { + if ($this->shouldSkip($stmts)) { return null; } $assignedVariableNamesByStmtPosition = $this->resolvedAssignedVariablesByStmtPosition($stmts); @@ -165,24 +162,19 @@ private function isVariableUsedInFollowingStmts($functionLike, int $assignStmtPo return \false; } /** - * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike + * @param Stmt[] $stmts */ - private function containsCompactFuncCall($functionLike) : bool + private function shouldSkip(array $stmts) : bool { - $compactFuncCall = $this->betterNodeFinder->findFirst($functionLike, function (Node $node) : bool { + return (bool) $this->betterNodeFinder->findFirst($stmts, function (Node $node) : bool { + if ($node instanceof Include_) { + return \true; + } if (!$node instanceof FuncCall) { return \false; } return $this->isName($node, 'compact'); }); - return $compactFuncCall instanceof FuncCall; - } - /** - * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike - */ - private function containsFileIncludes($functionLike) : bool - { - return (bool) $this->betterNodeFinder->findInstancesOf($functionLike, [Include_::class]); } /** * @param array $stmts diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php index 9fd1e5b50..a889bbb05 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php @@ -17,7 +17,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\DeadCode\Rector\ClassLike\RemoveAnnotationRector\RemoveAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php index df31a1a88..fef110f15 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php @@ -82,10 +82,17 @@ public function getNodeTypes() : array */ public function refactorWithScope(Node $node, Scope $scope) : ?Node { - if ($this->hasDynamicMethodCallOnFetchThis($node)) { + $classMethods = $node->getMethods(); + if ($classMethods === []) { return null; } - if ($node->getMethods() === []) { + $filter = static function (ClassMethod $classMethod) : bool { + return $classMethod->isPrivate(); + }; + if (\array_filter($classMethods, $filter) === []) { + return null; + } + if ($this->hasDynamicMethodCallOnFetchThis($classMethods)) { return null; } $hasChanged = \false; @@ -113,7 +120,7 @@ private function shouldSkip(ClassMethod $classMethod, ?ClassReflection $classRef if (!$classReflection instanceof ClassReflection) { return \true; } - // unreliable to detect trait, interface doesn't make sense + // unreliable to detect trait, interface, anonymous class: doesn't make sense if ($classReflection->isTrait()) { return \true; } @@ -123,7 +130,6 @@ private function shouldSkip(ClassMethod $classMethod, ?ClassReflection $classRef if ($classReflection->isAnonymous()) { return \true; } - // skips interfaces by default too if (!$classMethod->isPrivate()) { return \true; } @@ -133,9 +139,12 @@ private function shouldSkip(ClassMethod $classMethod, ?ClassReflection $classRef } return $classReflection->hasMethod(MethodName::CALL); } - private function hasDynamicMethodCallOnFetchThis(Class_ $class) : bool + /** + * @param ClassMethod[] $classMethods + */ + private function hasDynamicMethodCallOnFetchThis(array $classMethods) : bool { - foreach ($class->getMethods() as $classMethod) { + foreach ($classMethods as $classMethod) { $isFound = (bool) $this->betterNodeFinder->findFirst((array) $classMethod->getStmts(), function (Node $subNode) : bool { if (!$subNode instanceof MethodCall) { return \false; diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php index 4c12d77e8..6d2a9f301 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPromotedPropertyRector.php @@ -9,11 +9,13 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\TraitUse; use PHPStan\Analyser\Scope; +use PHPStan\Reflection\ClassReflection; use Rector\DeadCode\NodeAnalyzer\PropertyWriteonlyAnalyzer; use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\NodeFinder\PropertyFetchFinder; use Rector\Privatization\NodeManipulator\VisibilityManipulator; use Rector\Rector\AbstractScopeAwareRector; +use Rector\Reflection\ReflectionResolver; use Rector\ValueObject\MethodName; use Rector\ValueObject\PhpVersionFeature; use Rector\ValueObject\Visibility; @@ -45,12 +47,18 @@ final class RemoveUnusedPromotedPropertyRector extends AbstractScopeAwareRector * @var \Rector\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; - public function __construct(PropertyFetchFinder $propertyFetchFinder, VisibilityManipulator $visibilityManipulator, PropertyWriteonlyAnalyzer $propertyWriteonlyAnalyzer, BetterNodeFinder $betterNodeFinder) + /** + * @readonly + * @var \Rector\Reflection\ReflectionResolver + */ + private $reflectionResolver; + public function __construct(PropertyFetchFinder $propertyFetchFinder, VisibilityManipulator $visibilityManipulator, PropertyWriteonlyAnalyzer $propertyWriteonlyAnalyzer, BetterNodeFinder $betterNodeFinder, ReflectionResolver $reflectionResolver) { $this->propertyFetchFinder = $propertyFetchFinder; $this->visibilityManipulator = $visibilityManipulator; $this->propertyWriteonlyAnalyzer = $propertyWriteonlyAnalyzer; $this->betterNodeFinder = $betterNodeFinder; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition() : RuleDefinition { @@ -101,6 +109,9 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if (!$constructClassMethod instanceof ClassMethod) { return null; } + if ($constructClassMethod->params === []) { + return null; + } if ($this->shouldSkipClass($node)) { return null; } @@ -142,11 +153,24 @@ private function shouldSkipClass(Class_ $class) : bool if ($class->attrGroups !== []) { return \true; } + $magicGetMethod = $class->getMethod(MethodName::__GET); + if ($magicGetMethod instanceof ClassMethod) { + return \true; + } foreach ($class->stmts as $stmt) { if ($stmt instanceof TraitUse) { return \true; } } + $classReflection = $this->reflectionResolver->resolveClassReflection($class); + if ($classReflection instanceof ClassReflection) { + $interfaces = $classReflection->getInterfaces(); + foreach ($interfaces as $interface) { + if ($interface->hasNativeMethod(MethodName::CONSTRUCT)) { + return \true; + } + } + } return \false; } } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php index d1b1129bb..38ce28d42 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Expression/RemoveDeadStmtRector.php @@ -84,12 +84,13 @@ public function refactor(Node $node) if ($livingCode === [$node->expr]) { return null; } - $node->expr = \array_shift($livingCode); + $newNode = clone $node; + $newNode->expr = \array_shift($livingCode); $newNodes = []; foreach ($livingCode as $singleLivingCode) { $newNodes[] = new Expression($singleLivingCode); } - $newNodes[] = $node; + $newNodes[] = $newNode; return $newNodes; } private function hasGetMagic(Expression $expression) : bool diff --git a/vendor/rector/rector/rules/DeadCode/Rector/For_/RemoveDeadContinueRector.php b/vendor/rector/rector/rules/DeadCode/Rector/For_/RemoveDeadContinueRector.php index 17e756c16..1bd7165c9 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/For_/RemoveDeadContinueRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/For_/RemoveDeadContinueRector.php @@ -63,6 +63,7 @@ private function canRemoveLastStatement(array $stmts) : bool } \end($stmts); $lastKey = \key($stmts); + \reset($stmts); $lastStmt = $stmts[$lastKey]; return $this->isRemovable($lastStmt); } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php index 715755f5d..a38dddff5 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php @@ -6,9 +6,9 @@ use PhpParser\Node; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Foreach_; +use PhpParser\NodeFinder; use Rector\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\NodeManipulator\StmtsManipulator; -use Rector\PhpParser\Node\BetterNodeFinder; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -19,17 +19,17 @@ final class RemoveUnusedForeachKeyRector extends AbstractRector { /** * @readonly - * @var \Rector\PhpParser\Node\BetterNodeFinder + * @var \PhpParser\NodeFinder */ - private $betterNodeFinder; + private $nodeFinder; /** * @readonly * @var \Rector\NodeManipulator\StmtsManipulator */ private $stmtsManipulator; - public function __construct(BetterNodeFinder $betterNodeFinder, StmtsManipulator $stmtsManipulator) + public function __construct(NodeFinder $nodeFinder, StmtsManipulator $stmtsManipulator) { - $this->betterNodeFinder = $betterNodeFinder; + $this->nodeFinder = $nodeFinder; $this->stmtsManipulator = $stmtsManipulator; } public function getRuleDefinition() : RuleDefinition @@ -72,7 +72,7 @@ public function refactor(Node $node) : ?Node continue; } $keyVar = $stmt->keyVar; - $isNodeUsed = (bool) $this->betterNodeFinder->findFirst($stmt->stmts, function (Node $node) use($keyVar) : bool { + $isNodeUsed = (bool) $this->nodeFinder->findFirst($stmt->stmts, function (Node $node) use($keyVar) : bool { return $this->nodeComparator->areNodesEqual($node, $keyVar); }); if ($isNodeUsed) { diff --git a/vendor/rector/rector/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php b/vendor/rector/rector/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php index eb6e6888f..f44997268 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php @@ -68,6 +68,7 @@ public function refactor(Node $node) : ?Node } \end($node->stmts); $lastStmtKey = \key($node->stmts); + \reset($node->stmts); $lastStmt = $node->stmts[$lastStmtKey]; if ($lastStmt instanceof If_) { if (!$this->isBareIfWithOnlyStmtEmptyReturn($lastStmt)) { diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php index 4183e1406..41083d090 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Property; +use PhpParser\Node\Stmt\Return_; use PhpParser\Node\Stmt\TraitUse; use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; @@ -141,8 +142,8 @@ private function shouldSkipClass(Class_ $class) : bool } private function removePropertyAssigns(Class_ $class, string $propertyName) : void { - $this->traverseNodesWithCallable($class, function (Node $node) use($class, $propertyName) : ?int { - if (!$node instanceof Expression) { + $this->traverseNodesWithCallable($class, function (Node $node) use($class, $propertyName) { + if (!$node instanceof Expression && !$node instanceof Return_) { return null; } if (!$node->expr instanceof Assign) { @@ -152,7 +153,11 @@ private function removePropertyAssigns(Class_ $class, string $propertyName) : vo if (!$this->propertyFetchFinder->isLocalPropertyFetchByName($assign->var, $class, $propertyName)) { return null; } - return NodeTraverser::REMOVE_NODE; + if ($node instanceof Expression) { + return NodeTraverser::REMOVE_NODE; + } + $node->expr = $node->expr->expr; + return $node; }); } } diff --git a/vendor/rector/rector/rules/DeadCode/SideEffect/PureFunctionDetector.php b/vendor/rector/rector/rules/DeadCode/SideEffect/PureFunctionDetector.php index 0be20e52c..7ddedb837 100644 --- a/vendor/rector/rector/rules/DeadCode/SideEffect/PureFunctionDetector.php +++ b/vendor/rector/rector/rules/DeadCode/SideEffect/PureFunctionDetector.php @@ -233,6 +233,8 @@ final class PureFunctionDetector 'array_splice', 'next', 'prev', + 'sort', + 'ksort', // stream 'stream_filter_append', ]; diff --git a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php index a08f62a61..eee05a118 100644 --- a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php +++ b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\DeadCode\SideEffect; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrayDimFetch; diff --git a/vendor/rector/rector/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php b/vendor/rector/rector/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php index 3e917fbef..5be20fb06 100644 --- a/vendor/rector/rector/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php +++ b/vendor/rector/rector/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php @@ -42,14 +42,8 @@ public function isIfStmtExprUsedInNextReturn(If_ $if, Return_ $return) : bool return \false; } $ifExprs = $this->betterNodeFinder->findInstanceOf($if->stmts, Expr::class); - foreach ($ifExprs as $ifExpr) { - $isExprFoundInReturn = (bool) $this->betterNodeFinder->findFirst($return->expr, function (Node $node) use($ifExpr) : bool { - return $this->nodeComparator->areNodesEqual($node, $ifExpr); - }); - if ($isExprFoundInReturn) { - return \true; - } - } - return \false; + return (bool) $this->betterNodeFinder->findFirst($return->expr, function (Node $node) use($ifExprs) : bool { + return $this->nodeComparator->isNodeEqual($node, $ifExprs); + }); } } diff --git a/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php b/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php index dba61fc3f..f29a833af 100644 --- a/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php +++ b/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php @@ -101,6 +101,7 @@ public function refactor(Node $node) : ?StmtsAwareInterface } \end($if->stmts); $lastIfStmtKey = \key($if->stmts); + \reset($if->stmts); /** @var Assign $assign */ $assign = $this->stmtsManipulator->getUnwrappedLastStmt($if->stmts); $returnLastIf = new Return_($assign->expr); diff --git a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php index 299e9a5ff..d2942565b 100644 --- a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php +++ b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming\ExpectedNameResolver; -use RectorPrefix202402\Doctrine\Inflector\Inflector; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Doctrine\Inflector\Inflector; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Util\StringUtils; /** * @see \Rector\Tests\Naming\ExpectedNameResolver\InflectorSingularResolverTest diff --git a/vendor/rector/rector/rules/Naming/Guard/BreakingVariableRenameGuard.php b/vendor/rector/rector/rules/Naming/Guard/BreakingVariableRenameGuard.php index dd5fa21af..987ff0b21 100644 --- a/vendor/rector/rector/rules/Naming/Guard/BreakingVariableRenameGuard.php +++ b/vendor/rector/rector/rules/Naming/Guard/BreakingVariableRenameGuard.php @@ -73,7 +73,7 @@ public function __construct(BetterNodeFinder $betterNodeFinder, ConflictingNameR $this->nodeNameResolver = $nodeNameResolver; } /** - * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure $functionLike + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Expr\ArrowFunction $functionLike */ public function shouldSkipVariable(string $currentName, string $expectedName, $functionLike, Variable $variable) : bool { @@ -85,7 +85,7 @@ public function shouldSkipVariable(string $currentName, string $expectedName, $f if ($this->conflictingNameResolver->hasNameIsInFunctionLike($expectedName, $functionLike)) { return \true; } - if ($this->overridenExistingNamesResolver->hasNameInClassMethodForNew($currentName, $functionLike)) { + if (!$functionLike instanceof ArrowFunction && $this->overridenExistingNamesResolver->hasNameInClassMethodForNew($currentName, $functionLike)) { return \true; } if ($this->isVariableAlreadyDefined($variable, $currentName)) { @@ -94,7 +94,7 @@ public function shouldSkipVariable(string $currentName, string $expectedName, $f if ($this->hasConflictVariable($functionLike, $expectedName)) { return \true; } - return $this->isUsedInClosureUsesName($expectedName, $functionLike); + return $functionLike instanceof Closure && $this->isUsedInClosureUsesName($expectedName, $functionLike); } /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Expr\ArrowFunction $classMethod @@ -151,11 +151,14 @@ private function isVariableAlreadyDefined(Variable $variable, string $currentVar return $trinaryLogic->maybe(); } /** - * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure $functionLike + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Expr\ArrowFunction $functionLike */ private function hasConflictVariable($functionLike, string $newName) : bool { - return $this->betterNodeFinder->hasInstanceOfName((array) $functionLike->stmts, Variable::class, $newName); + if ($functionLike instanceof ArrowFunction) { + return $this->betterNodeFinder->hasInstanceOfName(\array_merge([$functionLike->expr], $functionLike->params), Variable::class, $newName); + } + return $this->betterNodeFinder->hasInstanceOfName(\array_merge((array) $functionLike->stmts, $functionLike->params), Variable::class, $newName); } /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure $functionLike diff --git a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php index 608b7ceb9..95220f3e3 100644 --- a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php +++ b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Naming; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\ObjectType; use PHPStan\Type\StaticType; diff --git a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php index 3119df397..4c85747d6 100644 --- a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php +++ b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Rector\Assign; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php index 80637ab80..de367265c 100644 --- a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php +++ b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming; -use RectorPrefix202402\Doctrine\Inflector\Inflector; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Doctrine\Inflector\Inflector; +use RectorPrefix202403\Nette\Utils\Strings; final class RectorNamingInflector { /** diff --git a/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php b/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php index ac7bd6e02..b991c2a35 100644 --- a/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php +++ b/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php @@ -7,6 +7,7 @@ use PhpParser\Node\Stmt\Property; use Rector\Naming\ValueObject\PropertyRename; use Rector\NodeNameResolver\NodeNameResolver; +use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; final class PropertyRenameFactory { /** @@ -22,6 +23,10 @@ public function createFromExpectedName(ClassLike $classLike, Property $property, { $currentName = $this->nodeNameResolver->getName($property); $className = (string) $this->nodeNameResolver->getName($classLike); - return new PropertyRename($property, $expectedName, $currentName, $classLike, $className, $property->props[0]); + try { + return new PropertyRename($property, $expectedName, $currentName, $classLike, $className, $property->props[0]); + } catch (InvalidArgumentException $exception) { + } + return null; } } diff --git a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index 610c04813..dbab9ff54 100644 --- a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/class_name_scalars https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md#form * diff --git a/vendor/rector/rector/rules/Php55/RegexMatcher.php b/vendor/rector/rector/rules/Php55/RegexMatcher.php index b38a801f6..6613efc5e 100644 --- a/vendor/rector/rector/rules/Php55/RegexMatcher.php +++ b/vendor/rector/rector/rules/Php55/RegexMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php55; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php index bf8e4223b..414564275 100644 --- a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php +++ b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php70; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Php70\Exception\InvalidEregException; /** * @changelog https://gist.github.com/lifthrasiir/704754/7e486f43e62fd1c9d3669330c251f8ca4a59a3f8 diff --git a/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php b/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php index ab81c5378..9255c4380 100644 --- a/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php +++ b/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php @@ -17,6 +17,7 @@ use PhpParser\Node\Stmt\Namespace_; use PhpParser\Node\Stmt\Property; use PhpParser\NodeTraverser; +use PHPStan\Type\UnionType; use Rector\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\PhpParser\NodeFinder\PropertyFetchFinder; use Rector\Rector\AbstractRector; @@ -180,10 +181,17 @@ private function isReAssignedAsArray(Assign $assign, string $variableName, Varia */ private function refactorAssign(Assign $assign, $node) : ?Assign { + if (!$assign->var instanceof Variable) { + return null; + } if (!$this->isEmptyString($assign->expr)) { return null; } - if (!$assign->var instanceof Variable) { + $type = $this->nodeTypeResolver->getNativeType($assign->var); + if ($type->isArray()->yes()) { + return null; + } + if ($type instanceof UnionType) { return null; } $variableAssignArrayDimFetches = $this->findSameNamedVariableAssigns($assign->var, $node); diff --git a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php index b1a4c0a9a..6f3b46e9d 100644 --- a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php +++ b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php72\NodeFactory; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/rules/Php72/Rector/FuncCall/ParseStrWithResultArgumentRector.php b/vendor/rector/rector/rules/Php72/Rector/FuncCall/ParseStrWithResultArgumentRector.php index 50d706403..2d4730231 100644 --- a/vendor/rector/rector/rules/Php72/Rector/FuncCall/ParseStrWithResultArgumentRector.php +++ b/vendor/rector/rector/rules/Php72/Rector/FuncCall/ParseStrWithResultArgumentRector.php @@ -59,6 +59,7 @@ private function processStrWithResult(StmtsAwareInterface $stmtsAware, bool $has } \end($stmtsAware->stmts); $totalKeys = \key($stmtsAware->stmts); + \reset($stmtsAware->stmts); for ($key = $jumpToKey; $key < $totalKeys; ++$key) { if (!isset($stmtsAware->stmts[$key], $stmtsAware->stmts[$key + 1])) { break; diff --git a/vendor/rector/rector/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php b/vendor/rector/rector/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php index 29c474356..7948b7694 100644 --- a/vendor/rector/rector/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php +++ b/vendor/rector/rector/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php @@ -104,6 +104,7 @@ private function processArrayKeyFirstLast(StmtsAwareInterface $stmtsAware, bool \end($stmtsAware->stmts); /** @var int $totalKeys */ $totalKeys = \key($stmtsAware->stmts); + \reset($stmtsAware->stmts); for ($key = $jumpToKey; $key < $totalKeys; ++$key) { if (!isset($stmtsAware->stmts[$key], $stmtsAware->stmts[$key + 1])) { break; diff --git a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php index 0b4eb2c28..d917bc4e1 100644 --- a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php +++ b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php73\Rector\FuncCall; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\NodeTypeResolver\Node\AttributeKey; diff --git a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php index a2d66578b..8f9ba639c 100644 --- a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php +++ b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php @@ -14,7 +14,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/numeric_literal_separator * @changelog https://github.com/nikic/PHP-Parser/pull/615 diff --git a/vendor/rector/rector/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php b/vendor/rector/rector/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php new file mode 100644 index 000000000..642291177 --- /dev/null +++ b/vendor/rector/rector/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php @@ -0,0 +1,38 @@ +args as $arg) { + if (!$arg->name instanceof Identifier) { + continue; + } + if ($arg->name->toString() !== 'nullable') { + continue; + } + $value = $arg->value; + if (!$value instanceof String_) { + continue; + } + if (!\in_array($value->value, ['true', 'false'], \true)) { + continue; + } + $arg->value = $value->value === 'true' ? new ConstFetch(new Name('true')) : new ConstFetch(new Name('false')); + break; + } + } +} diff --git a/vendor/rector/rector/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php b/vendor/rector/rector/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php index cff6828e3..5e12cd19a 100644 --- a/vendor/rector/rector/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php +++ b/vendor/rector/rector/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php @@ -4,7 +4,8 @@ namespace Rector\Php80\AttributeDecorator; use PhpParser\Node\Attribute; -final class SensioParamConverterAttributeDecorator +use Rector\Php80\Contract\ConverterAttributeDecoratorInterface; +final class SensioParamConverterAttributeDecorator implements ConverterAttributeDecoratorInterface { public function getAttributeName() : string { diff --git a/vendor/rector/rector/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php b/vendor/rector/rector/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php new file mode 100644 index 000000000..1e53f1920 --- /dev/null +++ b/vendor/rector/rector/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php @@ -0,0 +1,11 @@ +phpNestedAttributeGroupFactory->createNested($doctrineAnnotationTagValueNode, $nestedDoctrineTagAndAnnotationToAttribute->getNestedAnnotationToAttribute()); $attributeGroups = \array_merge($attributeGroups, $nestedAttributeGroups); } - return $attributeGroups; + return \array_unique($attributeGroups, \SORT_REGULAR); } } diff --git a/vendor/rector/rector/rules/Php80/NodeManipulator/AttributeGroupNamedArgumentManipulator.php b/vendor/rector/rector/rules/Php80/NodeManipulator/AttributeGroupNamedArgumentManipulator.php index 3d5763427..7d0af0549 100644 --- a/vendor/rector/rector/rules/Php80/NodeManipulator/AttributeGroupNamedArgumentManipulator.php +++ b/vendor/rector/rector/rules/Php80/NodeManipulator/AttributeGroupNamedArgumentManipulator.php @@ -5,17 +5,20 @@ use PhpParser\Node\AttributeGroup; use Rector\NodeTypeResolver\Node\AttributeKey; -use Rector\Php80\AttributeDecorator\SensioParamConverterAttributeDecorator; +use Rector\Php80\Contract\ConverterAttributeDecoratorInterface; final class AttributeGroupNamedArgumentManipulator { /** + * @var ConverterAttributeDecoratorInterface[] * @readonly - * @var \Rector\Php80\AttributeDecorator\SensioParamConverterAttributeDecorator */ - private $sensioParamConverterAttributeDecorator; - public function __construct(SensioParamConverterAttributeDecorator $sensioParamConverterAttributeDecorator) + private $converterAttributeDecorators; + /** + * @param ConverterAttributeDecoratorInterface[] $converterAttributeDecorators + */ + public function __construct(array $converterAttributeDecorators) { - $this->sensioParamConverterAttributeDecorator = $sensioParamConverterAttributeDecorator; + $this->converterAttributeDecorators = $converterAttributeDecorators; } /** * @param AttributeGroup[] $attributeGroups @@ -25,10 +28,12 @@ public function decorate(array $attributeGroups) : void foreach ($attributeGroups as $attributeGroup) { foreach ($attributeGroup->attrs as $attr) { $phpAttributeName = $attr->name->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); - if ($this->sensioParamConverterAttributeDecorator->getAttributeName() !== $phpAttributeName) { - continue; + foreach ($this->converterAttributeDecorators as $converterAttributeDecorator) { + if ($converterAttributeDecorator->getAttributeName() !== $phpAttributeName) { + continue; + } + $converterAttributeDecorator->decorate($attr); } - $this->sensioParamConverterAttributeDecorator->decorate($attr); } } } diff --git a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php index 01c0bf11d..aa3e6b481 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php @@ -37,7 +37,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/attributes_v2 * @changelog https://wiki.php.net/rfc/new_in_initializers @@ -110,7 +110,7 @@ public function getRuleDefinition() : RuleDefinition class SymfonyRoute { /** - * @Route("/path", name="action") + * @Route("/path", name="action") api route */ public function action() { @@ -122,7 +122,7 @@ public function action() class SymfonyRoute { - #[Route(path: '/path', name: 'action')] + #[Route(path: '/path', name: 'action')] // api route public function action() { } @@ -150,7 +150,7 @@ public function refactor(Node $node) : ?Node return null; } $uses = $this->useImportsResolver->resolveBareUses(); - // 1. bare tags without annotation class, e.g. "@inject" + // 1. bare tags without annotation class, e.g. "@require" $genericAttributeGroups = $this->processGenericTags($phpDocInfo); // 2. Doctrine annotation classes $annotationAttributeGroups = $this->processDoctrineAnnotationClasses($phpDocInfo, $uses); diff --git a/vendor/rector/rector/rules/Php80/Rector/Identical/StrEndsWithRector.php b/vendor/rector/rector/rules/Php80/Rector/Identical/StrEndsWithRector.php index 917e32751..71e80bf6c 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Identical/StrEndsWithRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Identical/StrEndsWithRector.php @@ -163,12 +163,18 @@ private function refactorSubstrCompare(BinaryOp $binaryOp) return null; } $substrCompareFuncCall = $funcCallAndExpr->getFuncCall(); - if (\count($substrCompareFuncCall->getArgs()) < 2) { + $args = $substrCompareFuncCall->getArgs(); + if (\count($args) < 2) { + return null; + } + $haystack = $args[0]->value; + $needle = $args[1]->value; + $thirdArgValue = $args[2]->value; + $isCaseInsensitiveValue = isset($args[4]) ? $this->valueResolver->getValue($args[4]->value) : null; + // is case insensitive → not valid replacement + if ($isCaseInsensitiveValue === \true) { return null; } - $haystack = $substrCompareFuncCall->getArgs()[0]->value; - $needle = $substrCompareFuncCall->getArgs()[1]->value; - $thirdArgValue = $substrCompareFuncCall->getArgs()[2]->value; if (!$this->isUnaryMinusStrlenFuncCallArgValue($thirdArgValue, $needle) && !$this->isHardCodedLNumberAndString($thirdArgValue, $needle)) { return null; } diff --git a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php index 5b2f360e7..d43de8d5f 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php @@ -29,7 +29,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php80\Rector\Property\NestedAnnotationToAttributeRector\NestedAnnotationToAttributeRectorTest * @@ -177,8 +177,13 @@ private function transformDoctrineAnnotationClassesToAttributeGroups(PhpDocInfo } private function matchAnnotationToAttribute(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode) : ?\Rector\Php80\ValueObject\NestedAnnotationToAttribute { + $doctrineResolvedClass = $doctrineAnnotationTagValueNode->identifierTypeNode->getAttribute(PhpDocAttributeKey::RESOLVED_CLASS); foreach ($this->nestedAnnotationsToAttributes as $nestedAnnotationToAttribute) { - $doctrineResolvedClass = $doctrineAnnotationTagValueNode->identifierTypeNode->getAttribute(PhpDocAttributeKey::RESOLVED_CLASS); + foreach ($nestedAnnotationToAttribute->getAnnotationPropertiesToAttributeClasses() as $annotationClass) { + if ($annotationClass->getAttributeClass() === $doctrineResolvedClass) { + return $nestedAnnotationToAttribute; + } + } if ($doctrineResolvedClass !== $nestedAnnotationToAttribute->getTag()) { continue; } diff --git a/vendor/rector/rector/rules/Php80/Rector/Switch_/ChangeSwitchToMatchRector.php b/vendor/rector/rector/rules/Php80/Rector/Switch_/ChangeSwitchToMatchRector.php index 9b496fdc3..afda24fb0 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Switch_/ChangeSwitchToMatchRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Switch_/ChangeSwitchToMatchRector.php @@ -9,6 +9,7 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; use PhpParser\Node\Stmt\Switch_; +use PHPStan\Type\ObjectType; use Rector\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\Php80\NodeAnalyzer\MatchSwitchAnalyzer; use Rector\Php80\NodeFactory\MatchFactory; @@ -101,6 +102,9 @@ public function refactor(Node $node) : ?Node continue; } $isReturn = $this->matchSwitchAnalyzer->isReturnCondsAndExprs($condAndExprs); + if ($this->nodeTypeResolver->getType($stmt->cond) instanceof ObjectType) { + continue; + } $matchResult = $this->matchFactory->createFromCondAndExprs($stmt->cond, $condAndExprs, $nextStmt); if (!$matchResult instanceof MatchResult) { continue; diff --git a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php index 37556baef..b7eb8a000 100644 --- a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php +++ b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php @@ -5,6 +5,7 @@ use Rector\Php80\Contract\ValueObject\AnnotationToAttributeInterface; use Rector\Validation\RectorAssert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class AnnotationToAttribute implements AnnotationToAttributeInterface { /** @@ -17,14 +18,24 @@ final class AnnotationToAttribute implements AnnotationToAttributeInterface * @var string|null */ private $attributeClass; - public function __construct(string $tag, ?string $attributeClass = null) + /** + * @var string[] + * @readonly + */ + private $classReferenceFields = []; + /** + * @param string[] $classReferenceFields + */ + public function __construct(string $tag, ?string $attributeClass = null, array $classReferenceFields = []) { $this->tag = $tag; $this->attributeClass = $attributeClass; + $this->classReferenceFields = $classReferenceFields; RectorAssert::className($tag); if (\is_string($attributeClass)) { RectorAssert::className($attributeClass); } + Assert::allString($classReferenceFields); } public function getTag() : string { @@ -37,4 +48,11 @@ public function getAttributeClass() : string } return $this->attributeClass; } + /** + * @return string[] + */ + public function getClassReferenceFields() : array + { + return $this->classReferenceFields; + } } diff --git a/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php b/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php index d74bce1f3..371420855 100644 --- a/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php +++ b/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php81\NodeFactory; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\BuilderFactory; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; diff --git a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php index e60b24236..3d0ab397c 100644 --- a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php @@ -27,7 +27,6 @@ use Rector\NodeTypeResolver\PHPStan\ParametersAcceptorSelectorVariantsWrapper; use Rector\Php81\Enum\NameNullToStrictNullFunctionMap; use Rector\PhpParser\Node\Value\ValueResolver; -use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer; use Rector\Rector\AbstractRector; use Rector\Reflection\ReflectionResolver; use Rector\ValueObject\PhpVersionFeature; @@ -59,18 +58,12 @@ final class NullToStrictStringFuncCallArgRector extends AbstractRector implement * @var \Rector\PhpParser\Node\Value\ValueResolver */ private $valueResolver; - /** - * @readonly - * @var \Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer - */ - private $unionTypeAnalyzer; - public function __construct(ReflectionResolver $reflectionResolver, ArgsAnalyzer $argsAnalyzer, PropertyFetchAnalyzer $propertyFetchAnalyzer, ValueResolver $valueResolver, UnionTypeAnalyzer $unionTypeAnalyzer) + public function __construct(ReflectionResolver $reflectionResolver, ArgsAnalyzer $argsAnalyzer, PropertyFetchAnalyzer $propertyFetchAnalyzer, ValueResolver $valueResolver) { $this->reflectionResolver = $reflectionResolver; $this->argsAnalyzer = $argsAnalyzer; $this->propertyFetchAnalyzer = $propertyFetchAnalyzer; $this->valueResolver = $valueResolver; - $this->unionTypeAnalyzer = $unionTypeAnalyzer; } public function getRuleDefinition() : RuleDefinition { @@ -176,7 +169,11 @@ private function processNullToStrictStringOnNodePosition(FuncCall $funcCall, arr if ($type->isString()->yes()) { return null; } - if (!$type instanceof MixedType && !$type instanceof NullType && !($type instanceof UnionType && $this->unionTypeAnalyzer->isNullable($type))) { + $nativeType = $this->nodeTypeResolver->getNativeType($argValue); + if ($nativeType->isString()->yes()) { + return null; + } + if ($this->shouldSkipType($type)) { return null; } if ($argValue instanceof Encapsed) { @@ -192,6 +189,26 @@ private function processNullToStrictStringOnNodePosition(FuncCall $funcCall, arr $funcCall->args = $args; return $funcCall; } + private function isValidUnionType(Type $type) : bool + { + if (!$type instanceof UnionType) { + return \false; + } + foreach ($type->getTypes() as $childType) { + if ($childType->isString()->yes()) { + continue; + } + if ($childType->isNull()->yes()) { + continue; + } + return \false; + } + return \true; + } + private function shouldSkipType(Type $type) : bool + { + return !$type instanceof MixedType && !$type instanceof NullType && !$this->isValidUnionType($type); + } private function shouldSkipTrait(Expr $expr, Type $type, bool $isTrait) : bool { if (!$type instanceof MixedType) { diff --git a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php index 899d2e185..cf5feedc1 100644 --- a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php @@ -12,7 +12,7 @@ use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; -use RectorPrefix202402\Spatie\Enum\Enum; +use RectorPrefix202403\Spatie\Enum\Enum; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php b/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php index 0489dd1de..c8a53f7ec 100644 --- a/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php @@ -116,7 +116,8 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node return null; } $hasChanged = \false; - foreach ($node->getMethods() as $classMethod) { + $classMethod = $node->getMethod(MethodName::CONSTRUCT); + if ($classMethod instanceof ClassMethod) { foreach ($classMethod->params as $param) { $justChanged = $this->refactorParam($node, $classMethod, $param, $scope); // different variable to ensure $hasRemoved not replaced @@ -192,6 +193,9 @@ private function refactorParam(Class_ $class, ClassMethod $classMethod, Param $p if ($this->isPromotedPropertyAssigned($class, $param)) { return null; } + if ($param->attrGroups !== []) { + $param->setAttribute(AttributeKey::ORIGINAL_NODE, null); + } $this->visibilityManipulator->makeReadonly($param); return $param; } diff --git a/vendor/rector/rector/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php b/vendor/rector/rector/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php index bcb7fda34..60b382356 100644 --- a/vendor/rector/rector/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php +++ b/vendor/rector/rector/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\Php82\Rector\New_; -use FilesystemIterator; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr; @@ -12,29 +11,29 @@ use PhpParser\Node\Expr\New_; use PhpParser\Node\Name\FullyQualified; use PHPStan\Type\ObjectType; -use Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver; +use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\Php82\Rector\New_\FilesystemIteratorSkipDots\FilesystemIteratorSkipDotsRectorTest + * @see \Rector\Tests\Php82\Rector\New_\FilesystemIteratorSkipDotsRector\FilesystemIteratorSkipDotsRectorTest */ final class FilesystemIteratorSkipDotsRector extends AbstractRector implements MinPhpVersionInterface { /** * @readonly - * @var \Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver + * @var \Rector\PhpParser\Node\Value\ValueResolver */ - private $classConstFetchNameResolver; - public function __construct(ClassConstFetchNameResolver $classConstFetchNameResolver) + private $valueResolver; + public function __construct(ValueResolver $valueResolver) { - $this->classConstFetchNameResolver = $classConstFetchNameResolver; + $this->valueResolver = $valueResolver; } public function getRuleDefinition() : RuleDefinition { - return new RuleDefinition('Prior PHP 8.2 FilesystemIterator::SKIP_DOTS was always set and could not be removed, therefore FilesystemIterator::SKIP_DOTS is added in order to keep this behaviour.', [new CodeSample('new ' . FilesystemIterator::class . '(__DIR__, ' . FilesystemIterator::class . '::KEY_AS_FILENAME);', 'new ' . FilesystemIterator::class . '(__DIR__, ' . FilesystemIterator::class . '::KEY_AS_FILENAME | ' . FilesystemIterator::class . '::SKIP_DOTS);')]); + return new RuleDefinition('Prior PHP 8.2 FilesystemIterator::SKIP_DOTS was always set and could not be removed, therefore FilesystemIterator::SKIP_DOTS is added in order to keep this behaviour.', [new CodeSample('new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME);', 'new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::SKIP_DOTS);')]); } public function getNodeTypes() : array { @@ -90,6 +89,10 @@ private function isSkipDots(Expr $expr) : bool // can be anything return \true; } - return $this->classConstFetchNameResolver->resolve($expr, null) === 'FilesystemIterator::SKIP_DOTS'; + if (!\defined('FilesystemIterator::SKIP_DOTS')) { + return \true; + } + $value = \constant('FilesystemIterator::SKIP_DOTS'); + return $this->valueResolver->isValue($expr, $value); } } diff --git a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php index 8201874a6..0242aebf7 100644 --- a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php +++ b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php @@ -15,7 +15,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php82\Rector\Param\AddSensitiveParameterAttributeRector\AddSensitiveParameterAttributeRectorTest */ diff --git a/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php b/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php index 7d2bac8dc..815af454f 100644 --- a/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php +++ b/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php @@ -9,6 +9,8 @@ use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\ConstFetch; +use PhpParser\Node\Expr\UnaryMinus; +use PhpParser\Node\Expr\UnaryPlus; use PhpParser\Node\Identifier; use PhpParser\Node\Scalar\DNumber; use PhpParser\Node\Scalar\LNumber; @@ -119,6 +121,9 @@ public function isConstGuardedByParents(Const_ $const, array $parentClassReflect } private function findValueType(Expr $expr) : ?Identifier { + if ($expr instanceof UnaryPlus || $expr instanceof UnaryMinus) { + return $this->findValueType($expr->expr); + } if ($expr instanceof String_) { return new Identifier('string'); } @@ -157,6 +162,6 @@ private function getParentReflections(string $className) : array } private function canBeInherited(ClassConst $classConst, Class_ $class) : bool { - return !$class->isFinal() && !$classConst->isPrivate(); + return !$class->isFinal() && !$classConst->isPrivate() && !$classConst->isFinal(); } } diff --git a/vendor/rector/rector/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php b/vendor/rector/rector/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php index 9e279e61c..2195d9484 100644 --- a/vendor/rector/rector/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php +++ b/vendor/rector/rector/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php @@ -127,6 +127,9 @@ private function processAddOverrideAttribute(Class_ $class, array $parentClassRe if ($classMethod->name->toString() === '__construct') { continue; } + if ($classMethod->isPrivate()) { + continue; + } // ignore if it already uses the attribute if ($this->phpAttributeAnalyzer->hasPhpAttribute($classMethod, 'Override')) { continue; diff --git a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php index dcc3bdf41..43ab57a87 100644 --- a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php +++ b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php @@ -9,7 +9,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Property; use Rector\ValueObject\Visibility; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Privatization\NodeManipulator\VisibilityManipulatorTest */ diff --git a/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php b/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php index 67f797469..8947b4622 100644 --- a/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php +++ b/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php @@ -69,6 +69,9 @@ public function refactor(Node $node) : ?Node if (!\is_string($className)) { return null; } + if (\substr_compare($className, 'TestCase', -\strlen('TestCase')) === 0) { + return null; + } if (!$this->reflectionProvider->hasClass($className)) { return null; } diff --git a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php index 4e30bdcf5..a6472a783 100644 --- a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php @@ -15,7 +15,7 @@ use Rector\Removing\ValueObject\ArgumentRemover; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\ClassMethod\ArgumentRemoverRector\ArgumentRemoverRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php index 0b414b602..fe4b01e2e 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php @@ -9,7 +9,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveInterfacesRector\RemoveInterfacesRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php index 4040269cf..ef89917ae 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveTraitUseRector\RemoveTraitUseRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php index db365e90b..7c1fcd4de 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php @@ -11,7 +11,7 @@ use Rector\Removing\ValueObject\RemoveFuncCallArg; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallArgRector\RemoveFuncCallArgRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php index 186d64fdc..df588c721 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallRector\RemoveFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php index bb89a5209..3fe5a48be 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php @@ -14,7 +14,7 @@ use Rector\Renaming\ValueObject\RenameClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector\RenameClassConstFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php index e409e3f19..ca5b38556 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php @@ -18,7 +18,7 @@ use Rector\Renaming\ValueObject\RenameAnnotationByType; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassMethod\RenameAnnotationRector\RenameAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php index aa03ea52a..4b2b53ac9 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php @@ -11,7 +11,7 @@ use Rector\Validation\RectorAssert; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ConstFetch\RenameConstantRector\RenameConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php index a4e082047..0a2a36125 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php @@ -12,7 +12,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\FuncCall\RenameFunctionRector\RenameFunctionRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php b/vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php new file mode 100644 index 000000000..ebbabc0f6 --- /dev/null +++ b/vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php @@ -0,0 +1,188 @@ +breakingVariableRenameGuard = $breakingVariableRenameGuard; + $this->paramRenamer = $paramRenamer; + $this->paramRenameFactory = $paramRenameFactory; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Rename param within closures and arrow functions based on use with specified method calls', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' +(new SomeClass)->process(function ($param) {}); +CODE_SAMPLE +, <<<'CODE_SAMPLE' +(new SomeClass)->process(function ($parameter) {}); +CODE_SAMPLE +, [new RenameFunctionLikeParamWithinCallLikeArg('SomeClass', 'process', 0, 0, 'parameter')])]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [MethodCall::class, StaticCall::class]; + } + /** + * @param CallLike $node + */ + public function refactor(Node $node) : ?Node + { + $hasChanged = \false; + foreach ($this->renameFunctionLikeParamWithinCallLikeArgs as $renameFunctionLikeParamWithinCallLikeArg) { + if (!$node instanceof MethodCall && !$node instanceof StaticCall) { + continue; + } + switch (\true) { + case $node instanceof MethodCall: + $type = $node->var; + break; + case $node instanceof StaticCall: + $type = $node->class; + break; + } + if (!$this->isObjectType($type, $renameFunctionLikeParamWithinCallLikeArg->getObjectType())) { + continue; + } + if (($node->name ?? null) === null) { + continue; + } + if (!$node->name instanceof Identifier) { + continue; + } + if (!$this->isName($node->name, $renameFunctionLikeParamWithinCallLikeArg->getMethodName())) { + continue; + } + $arg = $this->findArgFromMethodCall($renameFunctionLikeParamWithinCallLikeArg, $node); + $functionLike = ($nullsafeVariable1 = $arg) ? $nullsafeVariable1->value : null; + if (!$arg instanceof Arg) { + continue; + } + if (!$functionLike instanceof FunctionLike) { + continue; + } + $param = $this->findParameterFromArg($arg, $renameFunctionLikeParamWithinCallLikeArg); + if (!$param instanceof Param) { + continue; + } + if (!$param->var instanceof Variable) { + continue; + } + if (($functionLike instanceof Closure || $functionLike instanceof ArrowFunction) && $this->breakingVariableRenameGuard->shouldSkipVariable((string) $this->nodeNameResolver->getName($param->var), $renameFunctionLikeParamWithinCallLikeArg->getNewParamName(), $functionLike, $param->var)) { + continue; + } + $paramRename = $this->paramRenameFactory->createFromResolvedExpectedName($functionLike, $param, $renameFunctionLikeParamWithinCallLikeArg->getNewParamName()); + if (!$paramRename instanceof ParamRename) { + continue; + } + $this->paramRenamer->rename($paramRename); + $hasChanged = \true; + } + if (!$hasChanged) { + return null; + } + return $node; + } + /** + * @param RenameFunctionLikeParamWithinCallLikeArg[] $configuration + */ + public function configure(array $configuration) : void + { + Assert::allIsAOf($configuration, RenameFunctionLikeParamWithinCallLikeArg::class); + $this->renameFunctionLikeParamWithinCallLikeArgs = $configuration; + } + public function findParameterFromArg(Arg $arg, RenameFunctionLikeParamWithinCallLikeArg $renameFunctionLikeParamWithinCallLikeArg) : ?Param + { + $functionLike = $arg->value; + if (!$functionLike instanceof FunctionLike) { + return null; + } + return $functionLike->params[$renameFunctionLikeParamWithinCallLikeArg->getFunctionLikePosition()] ?? null; + } + private function findArgFromMethodCall(RenameFunctionLikeParamWithinCallLikeArg $renameFunctionLikeParamWithinCallLikeArg, CallLike $callLike) : ?Arg + { + if (\is_int($renameFunctionLikeParamWithinCallLikeArg->getCallLikePosition())) { + return $this->processPositionalArg($callLike, $renameFunctionLikeParamWithinCallLikeArg); + } + return $this->processNamedArg($callLike, $renameFunctionLikeParamWithinCallLikeArg); + } + private function processPositionalArg(CallLike $callLike, RenameFunctionLikeParamWithinCallLikeArg $renameFunctionLikeParamWithinCallLikeArg) : ?Arg + { + if ($callLike->isFirstClassCallable()) { + return null; + } + if ($callLike->getArgs() === []) { + return null; + } + $arg = $callLike->args[$renameFunctionLikeParamWithinCallLikeArg->getCallLikePosition()] ?? null; + if (!$arg instanceof Arg) { + return null; + } + // int positions shouldn't have names + if ($arg->name !== null) { + return null; + } + return $arg; + } + private function processNamedArg(CallLike $callLike, RenameFunctionLikeParamWithinCallLikeArg $renameFunctionLikeParamWithinCallLikeArg) : ?Arg + { + $args = \array_filter($callLike->getArgs(), static function (Arg $arg) use($renameFunctionLikeParamWithinCallLikeArg) : bool { + if ($arg->name === null) { + return \false; + } + return $arg->name->name === $renameFunctionLikeParamWithinCallLikeArg->getCallLikePosition(); + }); + if ($args === []) { + return null; + } + return \array_values($args)[0]; + } +} diff --git a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php index fad1e83ca..37fdb8eeb 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php @@ -25,7 +25,7 @@ use Rector\Renaming\ValueObject\MethodCallRenameWithArrayKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\MethodCall\RenameMethodRector\RenameMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php index e71ab2c04..3ebdf53f2 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php @@ -18,7 +18,7 @@ use Rector\Renaming\NodeManipulator\ClassRenamer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\Name\RenameClassRector\RenameClassRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index 05eb22a8d..6a2fefe20 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -15,7 +15,7 @@ use Rector\Renaming\ValueObject\RenameProperty; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\PropertyFetch\RenamePropertyRector\RenamePropertyRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php index a6f85a696..997418334 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php @@ -12,7 +12,7 @@ use Rector\Renaming\ValueObject\RenameStaticMethod; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\StaticCall\RenameStaticMethodRector\RenameStaticMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php index 21f941993..42cb4d5b9 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php @@ -10,7 +10,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35858 * diff --git a/vendor/rector/rector/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php b/vendor/rector/rector/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php new file mode 100644 index 000000000..71b28ae21 --- /dev/null +++ b/vendor/rector/rector/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php @@ -0,0 +1,74 @@ +|string + * @readonly + */ + private $callLikePosition; + /** + * @var int<0, max> + * @readonly + */ + private $functionLikePosition; + /** + * @readonly + * @var string + */ + private $newParamName; + /** + * @param int<0, max>|string $callLikePosition + * @param int<0, max> $functionLikePosition + */ + public function __construct(string $className, string $methodName, $callLikePosition, int $functionLikePosition, string $newParamName) + { + $this->className = $className; + $this->methodName = $methodName; + $this->callLikePosition = $callLikePosition; + $this->functionLikePosition = $functionLikePosition; + $this->newParamName = $newParamName; + RectorAssert::className($className); + } + public function getObjectType() : ObjectType + { + return new ObjectType($this->className); + } + public function getMethodName() : string + { + return $this->methodName; + } + /** + * @return int<0, max>|string + */ + public function getCallLikePosition() + { + return $this->callLikePosition; + } + /** + * @return int<0, max> + */ + public function getFunctionLikePosition() : int + { + return $this->functionLikePosition; + } + public function getNewParamName() : string + { + return $this->newParamName; + } +} diff --git a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php index c3c1891b8..0a387a8a0 100644 --- a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php @@ -5,7 +5,7 @@ use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Rector\AbstractScopeAwareRector; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Strict\Rector\BooleanNot\BooleanInBooleanNotRuleFixerRector\BooleanInBooleanNotRuleFixerRectorTest * diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php index f403fceeb..d76f3c004 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\PropertyAssignToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyAssignToMethodCallRector\PropertyAssignToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php index ade656d7e..0e743284d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\PropertyFetchToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyFetchToMethodCallRector\PropertyFetchToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php index 5aea3a659..30ae016ec 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php @@ -22,7 +22,7 @@ use Rector\Transform\ValueObject\AttributeKeyToClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://github.com/doctrine/dbal/blob/3.1.x/src/Types/Types.php * diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php index 5f090e76e..e90ff9178 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php @@ -17,7 +17,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\ReturnTypeWillChangeRector\ReturnTypeWillChangeRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php index 91d3bd733..b8c2b9d23 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\WrapReturn; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\WrapReturnRector\WrapReturnRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php index 5e13d861e..1800b166e 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/deprecate_dynamic_properties * diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php index 3ba288719..9679dd0a1 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php @@ -12,7 +12,7 @@ use Rector\Rector\AbstractScopeAwareRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api used in rector-doctrine * @see \Rector\Tests\Transform\Rector\Class_\AddInterfaceByTraitRector\AddInterfaceByTraitRectorTest diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php index 93a3ff3df..47d062231 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * Covers cases like * - https://github.com/FriendsOfPHP/PHP-CS-Fixer/commit/a1cdb4d2dd8f45d731244eed406e1d537218cc66 diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php index c77a7dd99..8a662bb65 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\ParentClassToTraits; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * Can handle cases like: * - https://doc.nette.org/en/2.4/migration-2-4#toc-nette-smartobject diff --git a/vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php new file mode 100644 index 000000000..e272ebaaf --- /dev/null +++ b/vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php @@ -0,0 +1,47 @@ +constFetchToClassConsts as $constFetchToClassConst) { + if (!$this->isName($node, $constFetchToClassConst->getOldConstName())) { + continue; + } + return $this->nodeFactory->createClassConstFetch($constFetchToClassConst->getNewClassName(), $constFetchToClassConst->getNewConstName()); + } + return null; + } + public function configure(array $configuration) : void + { + Assert::allIsAOf($configuration, ConstFetchToClassConstFetch::class); + $this->constFetchToClassConsts = $configuration; + } +} diff --git a/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php b/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php index 3b1be888d..12b70173b 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php @@ -18,7 +18,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FileWithoutNamespace\RectorConfigBuilderRector\RectorConfigBuilderRectorTest */ @@ -72,6 +72,11 @@ public function refactor(Node $node) : ?Node } $newExpr = new StaticCall(new FullyQualified('Rector\\Config\\RectorConfig'), 'configure'); $rules = new Array_(); + $paths = new Array_(); + $skips = new Array_(); + $autoloadPaths = new Array_(); + $bootstrapFiles = new Array_(); + $sets = new Array_(); foreach ($stmts as $rectorConfigStmt) { // complex stmts should be skipped, eg: with if else if (!$rectorConfigStmt instanceof Expression) { @@ -88,20 +93,97 @@ public function refactor(Node $node) : ?Node if ($rectorConfigStmt->expr->isFirstClassCallable()) { return null; } - if ($this->isName($rectorConfigStmt->expr->name, 'rule')) { - $rules->items[] = new ArrayItem($rectorConfigStmt->expr->getArgs()[0]->value); - } elseif ($this->isName($rectorConfigStmt->expr->name, 'rules')) { - Assert::isAOf($rectorConfigStmt->expr->getArgs()[0]->value, Array_::class); - $rules->items = \array_merge($rules->items, $rectorConfigStmt->expr->getArgs()[0]->value->items); - } else { - // implementing method by method - return null; + $args = $rectorConfigStmt->expr->getArgs(); + $name = $this->getName($rectorConfigStmt->expr->name); + if ($name === 'disableParallel') { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withoutParallel'); + $hasChanged = \true; + continue; + } + $value = $args[0]->value; + if ($name === 'rule') { + Assert::isAOf($rules, Array_::class); + $rules->items[] = new ArrayItem($value); + continue; + } + if ($name === 'rules') { + if ($value instanceof Array_) { + Assert::isAOf($rules, Array_::class); + $rules->items = \array_merge($rules->items, $value->items); + } else { + $rules = $value; + } + continue; + } + if ($name === 'paths') { + $paths = $value; + continue; + } + if ($name === 'skip') { + $skips = $value; + continue; + } + if ($name === 'autoloadPaths') { + Assert::isAOf($value, Array_::class); + $autoloadPaths = $value; + continue; + } + if ($name === 'bootstrapFiles') { + Assert::isAOf($value, Array_::class); + $bootstrapFiles = $value; + continue; + } + if ($name === 'ruleWithConfiguration') { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withConfiguredRule', [$value, $args[1]->value]); + $hasChanged = \true; + continue; + } + if ($name === 'sets') { + Assert::isAOf($value, Array_::class); + $sets->items = \array_merge($sets->items, $value->items); + continue; + } + if ($name === 'fileExtensions') { + Assert::isAOf($value, Array_::class); + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withFileExtensions', [$value]); + $hasChanged = \true; + continue; + } + if ($name === 'phpVersion') { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withPhpVersion', [$value]); + $hasChanged = \true; + continue; } + // implementing method by method + return null; } - if ($rules->items !== []) { - $stmt->expr = $this->nodeFactory->createMethodCall($newExpr, 'withRules', [$rules]); + if (!$paths instanceof Array_ || $paths->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withPaths', [$paths]); $hasChanged = \true; } + if (!$skips instanceof Array_ || $skips->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withSkip', [$skips]); + $hasChanged = \true; + } + if (!$rules instanceof Array_ || $rules->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withRules', [$rules]); + $hasChanged = \true; + } + if ($autoloadPaths->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withAutoloadPaths', [$autoloadPaths]); + $hasChanged = \true; + } + if ($bootstrapFiles->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withBootstrapFiles', [$bootstrapFiles]); + $hasChanged = \true; + } + if ($sets->items !== []) { + $newExpr = $this->nodeFactory->createMethodCall($newExpr, 'withSets', [$sets]); + $hasChanged = \true; + } + if ($hasChanged) { + $stmt->expr = $newExpr; + } } if ($hasChanged) { return $node; diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php index 264f30217..acb6fa092 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToConstFetchRector\FunctionCallToConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php index 01edb9f31..ad6345219 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\FuncCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToMethodCallRector\FuncCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php index a963e5347..4fb520c6d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php @@ -11,7 +11,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToNewRector\FuncCallToNewRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php index d35b43f10..891302550 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\FuncCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToStaticCallRector\FuncCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php index 2e10a8c1e..24b13f52c 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\MethodCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToFuncCallRector\MethodCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php index 90a8cc163..569c662d7 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToPropertyFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToPropertyFetchRector\MethodCallToPropertyFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php index 47cd46848..b1087b979 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToStaticCallRector\MethodCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php index 19b276939..180fe6680 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\ReplaceParentCallByPropertyCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\ReplaceParentCallByPropertyCallRector\ReplaceParentCallByPropertyCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php index cdf7e8503..3498cbeb5 100644 --- a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\NewToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\New_\NewToStaticCallRector\NewToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php index 53a1191bc..5d782efd4 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToFuncCallRector\StaticCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php index cc7a7b351..f00a69f76 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php @@ -17,7 +17,7 @@ use Rector\Transform\ValueObject\StaticCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToMethodCallRector\StaticCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php index 36aefc7cf..e73a358bc 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToNew; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35308 * diff --git a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php index 7c8be7ef6..31ee673d2 100644 --- a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php @@ -11,7 +11,7 @@ use Rector\Transform\ValueObject\StringToClassConstant; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\String_\StringToClassConstantRector\StringToClassConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php b/vendor/rector/rector/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php new file mode 100644 index 000000000..bd42f267b --- /dev/null +++ b/vendor/rector/rector/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php @@ -0,0 +1,45 @@ +oldConstName = $oldConstName; + $this->newClassName = $newClassName; + $this->newConstName = $newConstName; + RectorAssert::constantName($this->oldConstName); + RectorAssert::className($this->newClassName); + RectorAssert::constantName($this->newConstName); + } + public function getOldConstName() : string + { + return $this->oldConstName; + } + public function getNewClassName() : string + { + return $this->newClassName; + } + public function getNewConstName() : string + { + return $this->newConstName; + } +} diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php index bd15c2778..f613ee615 100644 --- a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php +++ b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php @@ -4,7 +4,7 @@ namespace Rector\Transform\ValueObject; use Rector\Validation\RectorAssert; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class ParentClassToTraits { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php index 70b57af3e..e8e5bc3c3 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php @@ -8,7 +8,7 @@ use PhpParser\Node\Stmt\Property; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; -use RectorPrefix202402\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202403\Symfony\Contracts\Service\Attribute\Required; final class AutowiredClassMethodOrPropertyAnalyzer { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php index 75906f33f..8e170e9f6 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php @@ -20,6 +20,7 @@ use PhpParser\Node\UnionType; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; +use PHPStan\Type\MixedType; use PHPStan\Type\NullType; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\TypeComparator\TypeComparator; @@ -65,6 +66,10 @@ public function matchCallParamType($call, Param $param, Scope $scope) return null; } if (!$param->default instanceof Expr && !$callParam->default instanceof Expr) { + // skip as mixed is not helpful and possibly requires more precise change elsewhere + if ($this->isCallParamMixed($callParam)) { + return null; + } return $callParam->type; } if (!$callParam->type instanceof Node) { @@ -159,4 +164,12 @@ private function resolveParentMethodParam(Scope $scope, string $methodName, int } return null; } + private function isCallParamMixed(Param $param) : bool + { + if (!$param->type instanceof Node) { + return \false; + } + $callParamType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($param->type); + return $callParamType instanceof MixedType; + } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php index 0f9321856..7db55e0be 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php +++ b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\PHPStan; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\GroupUse; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php index 51a3c00ac..53fb7bf4b 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\Rector\ClassMethod; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php index 409fbf69b..3ccaa28a8 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php @@ -21,7 +21,7 @@ use Rector\ValueObject\PhpVersionFeature; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddParamTypeDeclarationRector\AddParamTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php index d34de80af..992faf05d 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php @@ -20,7 +20,7 @@ use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationRector\AddReturnTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictScalarReturnExprRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictScalarReturnExprRector.php index 24063dbfb..f97dbee44 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictScalarReturnExprRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictScalarReturnExprRector.php @@ -21,7 +21,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictScalarReturnExprRector\ReturnTypeFromStrictScalarReturnExprRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php new file mode 100644 index 000000000..a91ba1eef --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php @@ -0,0 +1,102 @@ +testsNodeAnalyzer = $testsNodeAnalyzer; + $this->silentVoidResolver = $silentVoidResolver; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add void to PHPUnit test methods', [new CodeSample(<<<'CODE_SAMPLE' +use PHPUnit\Framework\TestCase; + +class SomeClass extends TestCase +{ + public function testSomething() + { + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use PHPUnit\Framework\TestCase; + +class SomeClass extends TestCase +{ + public function testSomething(): void + { + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Node + { + if (!$this->testsNodeAnalyzer->isInTestClass($node)) { + return null; + } + $hasChanged = \false; + foreach ($node->getMethods() as $classMethod) { + // has type already + if ($classMethod->returnType instanceof Node) { + continue; + } + if (!$this->testsNodeAnalyzer->isTestClassMethod($classMethod)) { + continue; + } + if ($classMethod->isAbstract()) { + continue; + } + if (!$this->silentVoidResolver->hasExclusiveVoid($classMethod)) { + continue; + } + $classMethod->returnType = new Identifier('void'); + $hasChanged = \true; + } + if ($hasChanged) { + return $node; + } + return null; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::VOID_TYPE; + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php new file mode 100644 index 000000000..65305fc81 --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php @@ -0,0 +1,188 @@ +phpDocInfoFactory = $phpDocInfoFactory; + $this->nodeFinder = $nodeFinder; + $this->docBlockUpdater = $docBlockUpdater; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add return type to classes that extend Doctrine\\ORM\\EntityRepository', [new CodeSample(<<<'CODE_SAMPLE' +use Doctrine\ORM\EntityRepository; + +/** + * @extends EntityRepository + */ +final class SomeRepository extends EntityRepository +{ + public function getActiveItem() + { + return $this->findOneBy([ + 'something' + ]); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Doctrine\ORM\EntityRepository; + +/** + * @extends EntityRepository + */ +final class SomeRepository extends EntityRepository +{ + public function getActiveItem(): ?SomeType + { + return $this->findOneBy([ + 'something' + ]); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Node + { + if (!$this->isObjectType($node, new ObjectType('Doctrine\\ORM\\EntityRepository'))) { + return null; + } + $entityClassName = $this->resolveEntityClassnameFromPhpDoc($node); + if ($entityClassName === null) { + return null; + } + $hasChanged = \false; + foreach ($node->getMethods() as $classMethod) { + if ($this->shouldSkipClassMethod($classMethod)) { + continue; + } + if ($this->containsMethodCallNamed($classMethod, 'findOneBy')) { + $classMethod->returnType = $this->createNullableType($entityClassName); + } + if ($this->containsMethodCallNamed($classMethod, 'findBy')) { + $classMethod->returnType = new Identifier('array'); + // add docblock with type + $classMethodPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod); + $arrayTypeNode = new ArrayTypeNode(new IdentifierTypeNode($entityClassName)); + $classMethodPhpDocInfo->addTagValueNode(new ReturnTagValueNode($arrayTypeNode, '')); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($classMethod); + } + $hasChanged = \true; + // try to figure out the return type + } + if ($hasChanged) { + return $node; + } + return null; + } + private function resolveEntityClassnameFromPhpDoc(Class_ $class) : ?string + { + $classPhpDocInfo = $this->phpDocInfoFactory->createFromNode($class); + // we need a way to resolve entity type... 1st idea is from @extends docblock + if (!$classPhpDocInfo instanceof PhpDocInfo) { + return null; + } + $extendsTagValuePhpDocNodes = $classPhpDocInfo->getTagsByName('extends'); + if ($extendsTagValuePhpDocNodes === []) { + return null; + } + $extendsTagValueNode = $extendsTagValuePhpDocNodes[0]->value; + if (!$extendsTagValueNode instanceof ExtendsTagValueNode) { + return null; + } + // we look for generic type class + if (!$extendsTagValueNode->type instanceof GenericTypeNode) { + return null; + } + $genericTypeNode = $extendsTagValueNode->type; + if ($genericTypeNode->type->name !== 'EntityRepository') { + return null; + } + $entityGenericType = $genericTypeNode->genericTypes[0]; + if (!$entityGenericType instanceof IdentifierTypeNode) { + return null; + } + return $entityGenericType->name; + } + private function containsMethodCallNamed(ClassMethod $classMethod, string $desiredMethodName) : bool + { + return (bool) $this->nodeFinder->findFirst((array) $classMethod->stmts, static function (Node $node) use($desiredMethodName) : bool { + if (!$node instanceof MethodCall) { + return \false; + } + if (!$node->name instanceof Identifier) { + return \false; + } + $currentMethodCallName = $node->name->toString(); + return $currentMethodCallName === $desiredMethodName; + }); + } + private function shouldSkipClassMethod(ClassMethod $classMethod) : bool + { + if (!$classMethod->isPublic()) { + return \true; + } + if ($classMethod->isStatic()) { + return \true; + } + return $classMethod->returnType instanceof Node; + } + private function createNullableType(string $entityClassName) : NullableType + { + $name = new Name($entityClassName); + return new NullableType($name); + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php new file mode 100644 index 000000000..60b68968d --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php @@ -0,0 +1,186 @@ +typeComparator = $typeComparator; + $this->phpVersionProvider = $phpVersionProvider; + $this->staticTypeMapper = $staticTypeMapper; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add param types where needed', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' +(new SomeClass)->process(function ($parameter) {}); +CODE_SAMPLE +, <<<'CODE_SAMPLE' +(new SomeClass)->process(function (string $parameter) {}); +CODE_SAMPLE +, [new AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration('SomeClass', 'process', 0, 0, new StringType())])]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [MethodCall::class, StaticCall::class]; + } + /** + * @param CallLike $node + */ + public function refactor(Node $node) : ?Node + { + $this->hasChanged = \false; + foreach ($this->addParamTypeForFunctionLikeParamDeclarations as $addParamTypeForFunctionLikeParamDeclaration) { + switch (\true) { + case $node instanceof MethodCall: + $type = $node->var; + break; + case $node instanceof StaticCall: + $type = $node->class; + break; + default: + $type = null; + break; + } + if ($type === null) { + continue; + } + if (!$this->isObjectType($type, $addParamTypeForFunctionLikeParamDeclaration->getObjectType())) { + continue; + } + if (($node->name ?? null) === null) { + continue; + } + if (!$node->name instanceof Identifier) { + continue; + } + if (!$this->isName($node->name, $addParamTypeForFunctionLikeParamDeclaration->getMethodName())) { + continue; + } + $this->processFunctionLike($node, $addParamTypeForFunctionLikeParamDeclaration); + } + if (!$this->hasChanged) { + return null; + } + return $node; + } + /** + * @param mixed[] $configuration + */ + public function configure(array $configuration) : void + { + Assert::allIsAOf($configuration, AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration::class); + $this->addParamTypeForFunctionLikeParamDeclarations = $configuration; + } + private function processFunctionLike(CallLike $callLike, AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration $addParamTypeForFunctionLikeWithinCallLikeArgDeclaration) : void + { + if ($callLike->isFirstClassCallable()) { + return; + } + if (\is_int($addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getCallLikePosition())) { + if ($callLike->getArgs() === []) { + return; + } + $arg = $callLike->args[$addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getCallLikePosition()] ?? null; + if (!$arg instanceof Arg) { + return; + } + // int positions shouldn't have names + if ($arg->name !== null) { + return; + } + } else { + $args = \array_filter($callLike->getArgs(), static function (Arg $arg) use($addParamTypeForFunctionLikeWithinCallLikeArgDeclaration) : bool { + if ($arg->name === null) { + return \false; + } + return $arg->name->name === $addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getCallLikePosition(); + }); + if ($args === []) { + return; + } + $arg = \array_values($args)[0]; + } + $functionLike = $arg->value; + if (!$functionLike instanceof FunctionLike) { + return; + } + if (!isset($functionLike->params[$addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getFunctionLikePosition()])) { + return; + } + $this->refactorParameter($functionLike->params[$addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getFunctionLikePosition()], $addParamTypeForFunctionLikeWithinCallLikeArgDeclaration); + } + private function refactorParameter(Param $param, AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration $addParamTypeForFunctionLikeWithinCallLikeArgDeclaration) : void + { + // already set → no change + if ($param->type !== null) { + $currentParamType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($param->type); + if ($this->typeComparator->areTypesEqual($currentParamType, $addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getParamType())) { + return; + } + } + $paramTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getParamType(), TypeKind::PARAM); + $this->hasChanged = \true; + // remove it + if ($addParamTypeForFunctionLikeWithinCallLikeArgDeclaration->getParamType() instanceof MixedType) { + if ($this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::MIXED_TYPE)) { + $param->type = $paramTypeNode; + return; + } + $param->type = null; + return; + } + $param->type = $paramTypeNode; + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php index 21c33b89b..e1d57b66e 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php @@ -16,7 +16,7 @@ use Rector\TypeDeclaration\ValueObject\AddPropertyTypeDeclaration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\Property\AddPropertyTypeDeclarationRector\AddPropertyTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php index 1cef33f27..98cc969d2 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php @@ -6,6 +6,12 @@ use PhpParser\Node; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; +use PHPStan\PhpDocParser\Ast\Type\IntersectionTypeNode; +use PHPStan\Type\ObjectType; +use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\BetterPhpDocParser\ValueObject\Type\FullyQualifiedIdentifierTypeNode; +use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; use Rector\StaticTypeMapper\StaticTypeMapper; @@ -30,10 +36,22 @@ final class TypedPropertyFromStrictSetUpRector extends AbstractRector implements * @var \Rector\StaticTypeMapper\StaticTypeMapper */ private $staticTypeMapper; - public function __construct(TrustedClassMethodPropertyTypeInferer $trustedClassMethodPropertyTypeInferer, StaticTypeMapper $staticTypeMapper) + /** + * @readonly + * @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory + */ + private $phpDocInfoFactory; + /** + * @readonly + * @var \Rector\Comments\NodeDocBlock\DocBlockUpdater + */ + private $docBlockUpdater; + public function __construct(TrustedClassMethodPropertyTypeInferer $trustedClassMethodPropertyTypeInferer, StaticTypeMapper $staticTypeMapper, PhpDocInfoFactory $phpDocInfoFactory, DocBlockUpdater $docBlockUpdater) { $this->trustedClassMethodPropertyTypeInferer = $trustedClassMethodPropertyTypeInferer; $this->staticTypeMapper = $staticTypeMapper; + $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->docBlockUpdater = $docBlockUpdater; } public function getRuleDefinition() : RuleDefinition { @@ -96,6 +114,15 @@ public function refactor(Node $node) : ?Node if (!$propertyTypeNode instanceof Node) { continue; } + if ($propertyType instanceof ObjectType && $propertyType->getClassName() === 'PHPUnit\\Framework\\MockObject\\MockObject') { + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); + $varTag = $phpDocInfo->getVarTagValueNode(); + $varType = $phpDocInfo->getVarType(); + if ($varTag instanceof VarTagValueNode && $varType instanceof ObjectType && $varType->getClassName() !== 'PHPUnit\\Framework\\MockObject\\MockObject') { + $varTag->type = new IntersectionTypeNode([new FullyQualifiedIdentifierTypeNode($propertyType->getClassName()), new FullyQualifiedIdentifierTypeNode($varType->getClassName())]); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); + } + } $property->type = $propertyTypeNode; $hasChanged = \true; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php index fe2214042..094f5df5d 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php @@ -62,6 +62,9 @@ public function beforeTraverse(array $nodes) : ?array $nodes = $rootStmt->stmts; $stmt = $currentStmt; } + if (!$stmt instanceof Stmt) { + return null; + } if ($this->shouldSkip($stmt)) { return null; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/GenericClassStringTypeNormalizer.php b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/GenericClassStringTypeNormalizer.php index e192b6185..8d0fc1554 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/GenericClassStringTypeNormalizer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/GenericClassStringTypeNormalizer.php @@ -104,13 +104,13 @@ private function resolveClassStringInUnionType(UnionType $type) } $keyType = $unionType->getKeyType(); $itemType = $unionType->getItemType(); + if (!$keyType instanceof MixedType && !$keyType instanceof ConstantIntegerType) { + return $type; + } if ($itemType instanceof ArrayType) { $arrayType = new ArrayType(new MixedType(), new MixedType()); return new ArrayType($keyType, $arrayType); } - if (!$keyType instanceof MixedType && !$keyType instanceof ConstantIntegerType) { - return $type; - } if (!$itemType instanceof ClassStringType) { return $type; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php index f656113ac..a22bd87b0 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php @@ -25,6 +25,8 @@ use PHPStan\Type\StaticType; use PHPStan\Type\Type; use PHPStan\Type\TypeTraverser; +use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\NodeTypeResolver\PHPStan\ParametersAcceptorSelectorVariantsWrapper; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Reflection\ReflectionResolver; use Rector\StaticTypeMapper\StaticTypeMapper; @@ -98,12 +100,16 @@ public function resolveMethodCallReturnNode($call) : ?Node if ($methodReflection === null) { return null; } - $parametersAcceptor = $methodReflection->getVariants()[0]; - if ($parametersAcceptor instanceof FunctionVariantWithPhpDocs) { + $scope = $call->getAttribute(AttributeKey::SCOPE); + if (!$scope instanceof Scope) { + return null; + } + $parametersAcceptorWithPhpDocs = ParametersAcceptorSelectorVariantsWrapper::select($methodReflection, $call, $scope); + if ($parametersAcceptorWithPhpDocs instanceof FunctionVariantWithPhpDocs) { // native return type is needed, as docblock can be false - $returnType = $parametersAcceptor->getNativeReturnType(); + $returnType = $parametersAcceptorWithPhpDocs->getNativeReturnType(); } else { - $returnType = $parametersAcceptor->getReturnType(); + $returnType = $parametersAcceptorWithPhpDocs->getReturnType(); } if ($returnType instanceof MixedType) { return null; diff --git a/vendor/rector/rector/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php b/vendor/rector/rector/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php new file mode 100644 index 000000000..82db11f60 --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php @@ -0,0 +1,78 @@ +|string + * @readonly + */ + private $callLikePosition; + /** + * @var int<0, max> + * @readonly + */ + private $functionLikePosition; + /** + * @readonly + * @var \PHPStan\Type\Type + */ + private $paramType; + /** + * @param int<0, max>|string $callLikePosition + * @param int<0, max> $functionLikePosition + */ + public function __construct(string $className, string $methodName, $callLikePosition, int $functionLikePosition, Type $paramType) + { + $this->className = $className; + $this->methodName = $methodName; + $this->callLikePosition = $callLikePosition; + $this->functionLikePosition = $functionLikePosition; + $this->paramType = $paramType; + RectorAssert::className($className); + } + public function getObjectType() : ObjectType + { + return new ObjectType($this->className); + } + public function getMethodName() : string + { + return $this->methodName; + } + /** + * @return int<0, max>|string + */ + public function getCallLikePosition() + { + return $this->callLikePosition; + } + /** + * @return int<0, max> + */ + public function getFunctionLikePosition() : int + { + return $this->functionLikePosition; + } + public function getParamType() : Type + { + return $this->paramType; + } +} diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php index 5a5f6adcf..217d8bfa4 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php @@ -12,7 +12,7 @@ use Rector\Visibility\ValueObject\ChangeConstantVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassConst\ChangeConstantVisibilityRector\ChangeConstantVisibilityRectorTest */ diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php index e902ada95..57870206e 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php @@ -14,7 +14,7 @@ use Rector\Visibility\ValueObject\ChangeMethodVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassMethod\ChangeMethodVisibilityRector\ChangeMethodVisibilityRectorTest */ diff --git a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php index 83a0c7bd6..d207a6a3c 100644 --- a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php +++ b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Application; -use RectorPrefix202402\Nette\Utils\FileSystem as UtilsFileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem as UtilsFileSystem; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; @@ -19,11 +19,11 @@ use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; use Rector\ValueObjectFactory\Application\FileFactory; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202402\Symplify\EasyParallel\CpuCoreCountProvider; -use RectorPrefix202402\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202402\Symplify\EasyParallel\ScheduleFactory; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symplify\EasyParallel\CpuCoreCountProvider; +use RectorPrefix202403\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202403\Symplify\EasyParallel\ScheduleFactory; use Throwable; final class ApplicationFileProcessor { @@ -102,7 +102,7 @@ public function run(Configuration $configuration, InputInterface $input) : Proce { $filePaths = $this->fileFactory->findFilesInPaths($configuration->getPaths(), $configuration); if ($this->vendorMissAnalyseGuard->isVendorAnalyzed($filePaths)) { - $this->symfonyStyle->warning(\sprintf('Rector is running on your "/vendor" directory. This is not necessary, as Rector access /vendor by composer autoload. It will cause Rector tu run much slower and possibly with errors.%sRemove "/vendor" from Rector paths and run again.', \PHP_EOL . \PHP_EOL)); + $this->symfonyStyle->warning(\sprintf('Rector has detected a "/vendor" directory in your configured paths. If this is Composer\'s vendor directory, this is not necessary as it will be autoloaded. Scanning the Composer vendor directory will cause Rector to run much slower and possibly with errors.%sRemove "/vendor" from Rector paths and run again.', \PHP_EOL . \PHP_EOL)); \sleep(3); } // no files found diff --git a/vendor/rector/rector/src/Application/FileProcessor.php b/vendor/rector/rector/src/Application/FileProcessor.php index 5125a3538..f9be15f01 100644 --- a/vendor/rector/rector/src/Application/FileProcessor.php +++ b/vendor/rector/rector/src/Application/FileProcessor.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Application; +use RectorPrefix202403\Nette\Utils\Strings; use PHPStan\AnalysedCodeException; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\ChangesReporting\ValueObjectFactory\ErrorFactory; @@ -21,7 +22,7 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\FileProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; final class FileProcessor { @@ -75,6 +76,11 @@ final class FileProcessor * @var \Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator */ private $nodeScopeAndMetadataDecorator; + /** + * @var string + * @see https://regex101.com/r/llm7XZ/1 + */ + private const OPEN_TAG_SPACED_REGEX = '#^[ \\t]+<\\?php#m'; public function __construct(FormatPerservingPrinter $formatPerservingPrinter, RectorNodeTraverser $rectorNodeTraverser, SymfonyStyle $symfonyStyle, FileDiffFactory $fileDiffFactory, ChangedFilesDetector $changedFilesDetector, ErrorFactory $errorFactory, FilePathHelper $filePathHelper, PostFileProcessor $postFileProcessor, RectorParser $rectorParser, NodeScopeAndMetadataDecorator $nodeScopeAndMetadataDecorator) { $this->formatPerservingPrinter = $formatPerservingPrinter; @@ -162,11 +168,16 @@ private function printFile(File $file, Configuration $configuration, string $fil * Handle new line or space before getOriginalFileContent(); - $ltrimOriginalFileContent = \ltrim($originalFileContent); + $ltrimOriginalFileContent = \ltrim($file->getOriginalFileContent()); if ($ltrimOriginalFileContent === $newContent) { return; } + // handle space before hasChanged() based on new content $file->changeFileContent($newContent); diff --git a/vendor/rector/rector/src/Application/VersionResolver.php b/vendor/rector/rector/src/Application/VersionResolver.php index d4579b268..183eb1434 100644 --- a/vendor/rector/rector/src/Application/VersionResolver.php +++ b/vendor/rector/rector/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '1.0.0'; + public const PACKAGE_VERSION = '1.0.3'; /** * @api * @var string */ - public const RELEASE_DATE = '2024-02-06 13:21:14'; + public const RELEASE_DATE = '2024-03-14 08:50:33'; /** * @var int */ diff --git a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php index 24668e3b5..99955edb7 100644 --- a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php +++ b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php @@ -6,8 +6,8 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\StaticReflection\DynamicSourceLocatorDecorator; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * Should it pass autoload files/directories to PHPStan analyzer? */ diff --git a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php index 42256cd17..d83b2077f 100644 --- a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php +++ b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php @@ -3,14 +3,13 @@ declare (strict_types=1); namespace Rector\Autoloading; -use FilesystemIterator; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Exception\ShouldNotHappenException; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use SplFileInfo; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Autoloading\BootstrapFilesIncluderTest */ @@ -40,7 +39,7 @@ private function requireRectorStubs() : void if ($stubsRectorDirectory === \false) { return; } - $dir = new RecursiveDirectoryIterator($stubsRectorDirectory, RecursiveDirectoryIterator::SKIP_DOTS | FilesystemIterator::SKIP_DOTS); + $dir = new RecursiveDirectoryIterator($stubsRectorDirectory, RecursiveDirectoryIterator::SKIP_DOTS); /** @var SplFileInfo[] $stubs */ $stubs = new RecursiveIteratorIterator($dir); foreach ($stubs as $stub) { diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDoc/DoctrineAnnotationTagValueNode.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDoc/DoctrineAnnotationTagValueNode.php index 3f251b220..026c95842 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDoc/DoctrineAnnotationTagValueNode.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDoc/DoctrineAnnotationTagValueNode.php @@ -6,6 +6,7 @@ use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\AbstractValuesAwareNode; use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; +use Rector\NodeTypeResolver\Node\AttributeKey; use Stringable; final class DoctrineAnnotationTagValueNode extends AbstractValuesAwareNode { @@ -16,11 +17,14 @@ final class DoctrineAnnotationTagValueNode extends AbstractValuesAwareNode /** * @param ArrayItemNode[] $values */ - public function __construct(IdentifierTypeNode $identifierTypeNode, ?string $originalContent = null, array $values = [], ?string $silentKey = null) + public function __construct(IdentifierTypeNode $identifierTypeNode, ?string $originalContent = null, array $values = [], ?string $silentKey = null, ?string $comment = null) { $this->identifierTypeNode = $identifierTypeNode; $this->hasChanged = \true; parent::__construct($values, $originalContent, $silentKey); + if (!\in_array($comment, ['', null], \true)) { + $this->setAttribute(AttributeKey::ATTRIBUTE_COMMENT, $comment); + } } public function __toString() : string { diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php index e8977579c..228860bfb 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php @@ -23,6 +23,7 @@ use PHPStan\Type\MixedType; use PHPStan\Type\Type; use Rector\BetterPhpDocParser\Annotation\AnnotationNaming; +use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDoc\SpacelessPhpDocTagNode; use Rector\BetterPhpDocParser\PhpDocNodeFinder\PhpDocNodeByTypeFinder; @@ -399,6 +400,26 @@ public function getConstFetchNodeClassNames() : array }); return $classNames; } + /** + * @return string[] + */ + public function getArrayItemNodeClassNames() : array + { + $phpDocNodeTraverser = new PhpDocNodeTraverser(); + $classNames = []; + $phpDocNodeTraverser->traverseWithCallable($this->phpDocNode, '', static function (Node $node) use(&$classNames) : ?ArrayItemNode { + if (!$node instanceof ArrayItemNode) { + return null; + } + $resolvedClass = $node->getAttribute(PhpDocAttributeKey::RESOLVED_CLASS); + if ($resolvedClass === null) { + return null; + } + $classNames[] = $resolvedClass; + return $node; + }); + return $classNames; + } /** * @param class-string $desiredClass * @return DoctrineAnnotationTagValueNode[] diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php index 81ab2749f..62faddbc9 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocManipulator; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocNodeMapper.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocNodeMapper.php index a845defc5..6e992d75a 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocNodeMapper.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocNodeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\CloningPhpDocNodeVisitor; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\ParentConnectingPhpDocNodeVisitor; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\BetterPhpDocParser\PhpDocNodeMapperTest */ diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php new file mode 100644 index 000000000..a21f3c3f5 --- /dev/null +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php @@ -0,0 +1,62 @@ +nameScopeFactory = $nameScopeFactory; + $this->phpDocNodeTraverser = $phpDocNodeTraverser; + } + public function decorate(PhpDocNode $phpDocNode, PhpNode $phpNode) : void + { + // iterating all phpdocs has big overhead. peek into the phpdoc to exit early + if (\strpos($phpDocNode->__toString(), '::') === \false) { + return; + } + $this->phpDocNodeTraverser->traverseWithCallable($phpDocNode, '', function (Node $node) use($phpNode) : ?\PHPStan\PhpDocParser\Ast\Node { + if (!$node instanceof ArrayItemNode) { + return null; + } + if (!\is_string($node->value)) { + return null; + } + $splitScopeResolution = \explode('::', $node->value); + if (\count($splitScopeResolution) !== 2) { + return null; + } + $className = $this->resolveFullyQualifiedClass($splitScopeResolution[0], $phpNode); + $node->setAttribute(PhpDocAttributeKey::RESOLVED_CLASS, $className); + return $node; + }); + } + private function resolveFullyQualifiedClass(string $className, PhpNode $phpNode) : string + { + $nameScope = $this->nameScopeFactory->createNameScopeFromNodeWithoutTemplateTypes($phpNode); + return $nameScope->resolveStringName($className); + } +} diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index d66889084..8e62e1267 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocParser; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -137,7 +137,7 @@ private function parseChildAndStoreItsPositions(TokenIterator $tokenIterator) : { $betterTokenIterator = $this->tokenIteratorFactory->createFromTokenIterator($tokenIterator); $startPosition = $betterTokenIterator->currentPosition(); - /** @var PhpDocChildNode $phpDocNode */ + /** @var PhpDocTextNode|PhpDocTagNode $phpDocNode */ $phpDocNode = $this->privatesAccessor->callPrivateMethod($this, 'parseChild', [$betterTokenIterator]); $endPosition = $betterTokenIterator->currentPosition(); $startAndEnd = new StartAndEnd($startPosition, $endPosition); diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php index f537466be..c74a6af25 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocParser; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -21,7 +21,7 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; use Rector\BetterPhpDocParser\ValueObject\StartAndEnd; use Rector\Util\StringUtils; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface { /** @@ -44,21 +44,26 @@ final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface * @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer */ private $attributeMirrorer; + /** + * @see https://regex101.com/r/bGp2V0/2 + * @var string + */ + public const LONG_ANNOTATION_REGEX = '#@\\\\(?.*?)(?\\(.*?\\)|,|\\r?\\n|$)#'; /** * Special short annotations, that are resolved as FQN by Doctrine annotation parser * @var string[] */ private const ALLOWED_SHORT_ANNOTATIONS = ['Target']; /** - * @see https://regex101.com/r/95kIw4/2 + * @see https://regex101.com/r/xWaLOz/1 * @var string */ - private const LONG_ANNOTATION_REGEX = '#@\\\\(?.*?)(?\\(.*?\\)|,)#'; + private const NESTED_ANNOTATION_END_REGEX = '#(\\s+)?\\}\\)(\\s+)?#'; /** - * @see https://regex101.com/r/xWaLOz/1 + * @see https://regex101.com/r/8rWY4r/1 * @var string */ - private const NESTED_ANNOTATION_END_REGEX = '#(\\s+)?\\}\\)(\\s+)?#'; + private const NEWLINE_ANNOTATION_FQCN_REGEX = '#\\r?\\n@\\\\#'; public function __construct(\Rector\BetterPhpDocParser\PhpDocParser\ClassAnnotationMatcher $classAnnotationMatcher, \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser, TokenIteratorFactory $tokenIteratorFactory, AttributeMirrorer $attributeMirrorer) { $this->classAnnotationMatcher = $classAnnotationMatcher; @@ -145,15 +150,15 @@ private function processTextSpacelessInTextNode(PhpDocNode $phpDocNode, PhpDocTe if ($spacelessPhpDocTagNodes === []) { return; } - $texts = \explode("\n@\\", $phpDocTextNode->text); + $texts = Strings::split($phpDocTextNode->text, self::NEWLINE_ANNOTATION_FQCN_REGEX); $otherText = $texts[0]; - if (\strncmp($otherText, '@\\', \strlen('@\\')) !== 0 && \trim($otherText) !== '') { + if (\strncmp((string) $otherText, '@\\', \strlen('@\\')) !== 0 && \trim((string) $otherText) !== '') { $phpDocNode->children[$key] = new PhpDocTextNode($otherText); \array_splice($phpDocNode->children, $key + 1, 0, $spacelessPhpDocTagNodes); - } else { - unset($phpDocNode->children[$key]); - \array_splice($phpDocNode->children, $key, 0, $spacelessPhpDocTagNodes); + return; } + unset($phpDocNode->children[$key]); + \array_splice($phpDocNode->children, $key, 0, $spacelessPhpDocTagNodes); } private function transformGenericTagValueNodesToDoctrineAnnotationTagValueNodes(PhpDocNode $phpDocNode, Node $currentPhpNode) : void { @@ -196,7 +201,7 @@ private function transformGenericTagValueNodesToDoctrineAnnotationTagValueNodes( continue; } Assert::isAOf($phpDocNode->children[$key], PhpDocTagNode::class); - $texts = \explode("\n@\\", $phpDocChildNode->value->value); + $texts = Strings::split($phpDocChildNode->value->value, self::NEWLINE_ANNOTATION_FQCN_REGEX); $phpDocNode->children[$key]->value = new GenericTagValueNode($texts[0]); $phpDocNode->children[$key]->value->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); $spacelessPhpDocTagNode = $this->createSpacelessPhpDocTagNode($phpDocNode->children[$key]->name, $phpDocNode->children[$key]->value, $fullyQualifiedAnnotationClass, $currentPhpNode); @@ -272,9 +277,10 @@ private function createDoctrineSpacelessPhpDocTagNode(string $annotationContent, // mimics doctrine behavior just in phpdoc-parser syntax :) // https://github.com/doctrine/annotations/blob/c66f06b7c83e9a2a7523351a9d5a4b55f885e574/lib/Doctrine/Common/Annotations/DocParser.php#L742 $values = $this->staticDoctrineAnnotationParser->resolveAnnotationMethodCall($nestedTokenIterator, $currentPhpNode); + $comment = $this->staticDoctrineAnnotationParser->getCommentFromRestOfAnnotation($nestedTokenIterator, $annotationContent); $identifierTypeNode = new IdentifierTypeNode($tagName); $identifierTypeNode->setAttribute(PhpDocAttributeKey::RESOLVED_CLASS, $fullyQualifiedAnnotationClass); - $doctrineAnnotationTagValueNode = new DoctrineAnnotationTagValueNode($identifierTypeNode, $annotationContent, $values, SilentKeyMap::CLASS_NAMES_TO_SILENT_KEYS[$fullyQualifiedAnnotationClass] ?? null); + $doctrineAnnotationTagValueNode = new DoctrineAnnotationTagValueNode($identifierTypeNode, $annotationContent, $values, SilentKeyMap::CLASS_NAMES_TO_SILENT_KEYS[$fullyQualifiedAnnotationClass] ?? null, $comment); $doctrineAnnotationTagValueNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); return new SpacelessPhpDocTagNode($tagName, $doctrineAnnotationTagValueNode); } @@ -300,14 +306,28 @@ private function resolveFqnAnnotationSpacelessPhpDocTagNode(PhpDocTextNode $phpD } $nestedAnnotationOpen = \explode('(', (string) $fullyQualifiedAnnotationClass); $fullyQualifiedAnnotationClass = $nestedAnnotationOpen[0]; - $annotationContent = $match['annotation_content'] ?? null; $tagName = '@\\' . $fullyQualifiedAnnotationClass; $formerStartEnd = $phpDocTextNode->getAttribute(PhpDocAttributeKey::START_AND_END); - if (isset($nestedAnnotationOpen[1])) { - $annotationContent = '("' . \trim($nestedAnnotationOpen[1], '"\'') . '")'; - } + $annotationContent = $this->resolveAnnotationContent($match['annotation_content'] ?? '', $nestedAnnotationOpen); $spacelessPhpDocTagNodes[] = $this->createDoctrineSpacelessPhpDocTagNode($annotationContent, $tagName, $fullyQualifiedAnnotationClass, $formerStartEnd, $currentPhpNode); } return $spacelessPhpDocTagNodes; } + /** + * @param string[]|null[] $nestedAnnotationOpen + */ + private function resolveAnnotationContent(string $annotationContent, array $nestedAnnotationOpen) : string + { + if (!isset($nestedAnnotationOpen[1])) { + return $annotationContent; + } + $trimmedNestedAnnotationOpen = \trim($nestedAnnotationOpen[1]); + if (\substr_compare($trimmedNestedAnnotationOpen, '{', -\strlen('{')) === 0) { + return $annotationContent; + } + if ($trimmedNestedAnnotationOpen === '') { + return $annotationContent; + } + return '("' . \trim($trimmedNestedAnnotationOpen, '"\'') . '")'; + } } diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php index a0b3aecac..8862737d8 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser.php @@ -13,6 +13,7 @@ use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\PlainValueParser; use Rector\BetterPhpDocParser\ValueObject\Parser\BetterTokenIterator; use Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\CurlyListNode; +use Rector\Util\NewLineSplitter; /** * Better version of doctrine/annotation - with phpdoc-parser and static reflection * @see \Rector\Tests\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\StaticDoctrineAnnotationParserTest @@ -29,6 +30,11 @@ final class StaticDoctrineAnnotationParser * @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\ArrayParser */ private $arrayParser; + /** + * @var string + * @see https://regex101.com/r/Pthg5d/1 + */ + private const END_OF_VALUE_CHARACTERS_REGEX = '/^[)} \\r\\n"\']+$/i'; public function __construct(PlainValueParser $plainValueParser, ArrayParser $arrayParser) { $this->plainValueParser = $plainValueParser; @@ -76,6 +82,18 @@ public function resolveAnnotationValue(BetterTokenIterator $tokenIterator, Node $key => $value, ]; } + public function getCommentFromRestOfAnnotation(BetterTokenIterator $tokenIterator, string $annotationContent) : string + { + // we skip all the remaining tokens from the end of the declaration of values + while (\preg_match(self::END_OF_VALUE_CHARACTERS_REGEX, $tokenIterator->currentTokenValue())) { + $tokenIterator->next(); + } + // the remaining of the annotation content is the comment + $comment = \substr($annotationContent, $tokenIterator->currentTokenOffset()); + // we only keep the first line as this will be added as a line comment at the end of the attribute + $commentLines = NewLineSplitter::split($comment); + return $commentLines[0]; + } /** * @see https://github.com/doctrine/annotations/blob/c66f06b7c83e9a2a7523351a9d5a4b55f885e574/lib/Doctrine/Common/Annotations/DocParser.php#L1051-L1079 * diff --git a/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php b/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php index e29de6618..5779274ab 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; final class DocBlockInliner { /** diff --git a/vendor/rector/rector/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php b/vendor/rector/rector/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php index d84020d81..2eb1f6fc0 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node\Stmt\InlineHTML; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; diff --git a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/AbstractValuesAwareNode.php b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/AbstractValuesAwareNode.php index eb950bae5..4e8a45aa8 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/AbstractValuesAwareNode.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/AbstractValuesAwareNode.php @@ -105,6 +105,7 @@ protected function printValuesContent(array $values) : string $itemContents = ''; \end($values); $lastItemKey = \key($values); + \reset($values); foreach ($values as $key => $value) { if (\is_int($key)) { $itemContents .= $this->stringifyValue($value); diff --git a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php index f30cba85b..514868462 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php @@ -5,7 +5,7 @@ use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Stringable; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class CurlyListNode extends \Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\AbstractValuesAwareNode { /** @@ -35,6 +35,7 @@ private function implode(array $array) : string $itemContents = ''; \end($array); $lastItemKey = \key($array); + \reset($array); foreach ($array as $key => $value) { if (\is_int($key)) { $itemContents .= (string) $value; diff --git a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php index cd973330a..916a5e222 100644 --- a/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php +++ b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/Type/FullyQualifiedIdentifierTypeNode.php @@ -9,6 +9,6 @@ final class FullyQualifiedIdentifierTypeNode extends IdentifierTypeNode { public function __toString() : string { - return '\\' . $this->name; + return '\\' . \ltrim($this->name, '\\'); } } diff --git a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php index 189bf4644..f92a0539f 100644 --- a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php +++ b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php @@ -4,8 +4,8 @@ namespace Rector\Bootstrap; use Rector\ValueObject\Bootstrap\BootstrapConfigs; -use RectorPrefix202402\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202403\Webmozart\Assert\Assert; final class RectorConfigsResolver { public function provide() : BootstrapConfigs diff --git a/vendor/rector/rector/src/Caching/CacheFactory.php b/vendor/rector/rector/src/Caching/CacheFactory.php index b0f3a77d2..c51421906 100644 --- a/vendor/rector/rector/src/Caching/CacheFactory.php +++ b/vendor/rector/rector/src/Caching/CacheFactory.php @@ -7,7 +7,7 @@ use Rector\Caching\ValueObject\Storage\MemoryCacheStorage; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; -use RectorPrefix202402\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; final class CacheFactory { /** diff --git a/vendor/rector/rector/src/Caching/ValueObject/Storage/FileCacheStorage.php b/vendor/rector/rector/src/Caching/ValueObject/Storage/FileCacheStorage.php index a48749540..a8345813e 100644 --- a/vendor/rector/rector/src/Caching/ValueObject/Storage/FileCacheStorage.php +++ b/vendor/rector/rector/src/Caching/ValueObject/Storage/FileCacheStorage.php @@ -4,8 +4,8 @@ namespace Rector\Caching\ValueObject\Storage; use FilesystemIterator; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Random; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Random; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Caching\ValueObject\CacheFilePaths; use Rector\Caching\ValueObject\CacheItem; @@ -26,7 +26,7 @@ final class FileCacheStorage implements CacheStorageInterface * @var \Symfony\Component\Filesystem\Filesystem */ private $filesystem; - public function __construct(string $directory, \RectorPrefix202402\Symfony\Component\Filesystem\Filesystem $filesystem) + public function __construct(string $directory, \RectorPrefix202403\Symfony\Component\Filesystem\Filesystem $filesystem) { $this->directory = $directory; $this->filesystem = $filesystem; diff --git a/vendor/rector/rector/src/ChangesReporting/Annotation/AnnotationExtractor.php b/vendor/rector/rector/src/ChangesReporting/Annotation/AnnotationExtractor.php index ef2b325c5..77751d606 100644 --- a/vendor/rector/rector/src/ChangesReporting/Annotation/AnnotationExtractor.php +++ b/vendor/rector/rector/src/ChangesReporting/Annotation/AnnotationExtractor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Annotation; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Contract\Rector\RectorInterface; use ReflectionClass; /** diff --git a/vendor/rector/rector/src/ChangesReporting/Output/ConsoleOutputFormatter.php b/vendor/rector/rector/src/ChangesReporting/Output/ConsoleOutputFormatter.php index cbe400f09..2312e58ae 100644 --- a/vendor/rector/rector/src/ChangesReporting/Output/ConsoleOutputFormatter.php +++ b/vendor/rector/rector/src/ChangesReporting/Output/ConsoleOutputFormatter.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\ValueObject\Configuration; use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class ConsoleOutputFormatter implements OutputFormatterInterface { /** diff --git a/vendor/rector/rector/src/ChangesReporting/Output/JsonOutputFormatter.php b/vendor/rector/rector/src/ChangesReporting/Output/JsonOutputFormatter.php index c3ac80922..ec4d940a2 100644 --- a/vendor/rector/rector/src/ChangesReporting/Output/JsonOutputFormatter.php +++ b/vendor/rector/rector/src/ChangesReporting/Output/JsonOutputFormatter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\Json; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Parallel\ValueObject\Bridge; diff --git a/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php b/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php index 088777875..abf203070 100644 --- a/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -4,8 +4,8 @@ namespace Rector\ChangesReporting\ValueObject; use Rector\Contract\Rector\RectorInterface; -use RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202403\Webmozart\Assert\Assert; final class RectorWithLineChange implements SerializableInterface { /** @@ -48,7 +48,7 @@ public function getRectorClass() : string * @param array $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface { $rectorClass = $json[self::KEY_RECTOR_CLASS]; Assert::string($rectorClass); diff --git a/vendor/rector/rector/src/Configuration/Levels/DeadCodeLevel.php b/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php similarity index 98% rename from vendor/rector/rector/src/Configuration/Levels/DeadCodeLevel.php rename to vendor/rector/rector/src/Config/Level/DeadCodeLevel.php index 1c81184c5..79e2921ef 100644 --- a/vendor/rector/rector/src/Configuration/Levels/DeadCodeLevel.php +++ b/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php @@ -1,7 +1,7 @@ > */ - public const RULE_LIST = [ + public const RULES = [ // easy picks RemoveUnusedForeachKeyRector::class, RemoveDuplicatedArrayKeyRector::class, diff --git a/vendor/rector/rector/src/Configuration/Levels/TypeCoverageLevel.php b/vendor/rector/rector/src/Config/Level/TypeDeclarationLevel.php similarity index 75% rename from vendor/rector/rector/src/Configuration/Levels/TypeCoverageLevel.php rename to vendor/rector/rector/src/Config/Level/TypeDeclarationLevel.php index aaa858b57..2354f0581 100644 --- a/vendor/rector/rector/src/Configuration/Levels/TypeCoverageLevel.php +++ b/vendor/rector/rector/src/Config/Level/TypeDeclarationLevel.php @@ -1,28 +1,36 @@ + * @var array> */ - public const RULE_LIST = [ + public const RULES = [ // php 7.0 // start with closure first, as safest AddClosureVoidReturnTypeWhereNoReturnRector::class, AddFunctionVoidReturnTypeWhereNoReturnRector::class, - AddVoidReturnTypeWhereNoReturnRector::class, - // php 7.4 + AddTestsVoidReturnTypeWhereNoReturnRector::class, AddArrowFunctionReturnTypeRector::class, - ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, - NumericReturnTypeFromStrictScalarReturnsRector::class, - ReturnTypeFromStrictScalarReturnExprRector::class, + ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, + NumericReturnTypeFromStrictScalarReturnsRector::class, + BoolReturnTypeFromStrictScalarReturnsRector::class, ReturnTypeFromStrictTernaryRector::class, + ReturnTypeFromStrictScalarReturnExprRector::class, + ReturnTypeFromReturnDirectArrayRector::class, + ReturnTypeFromReturnNewRector::class, + AddVoidReturnTypeWhereNoReturnRector::class, + // php 7.4 EmptyOnNullableObjectToInstanceOfRector::class, // php 7.4 TypedPropertyFromStrictConstructorRector::class, - ReturnTypeFromReturnDirectArrayRector::class, + ReturnTypeFromStrictTypedPropertyRector::class, AddParamTypeSplFixedArrayRector::class, AddReturnTypeDeclarationFromYieldsRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, // php 7.4 TypedPropertyFromStrictSetUpRector::class, - ReturnTypeFromReturnNewRector::class, - BoolReturnTypeFromStrictScalarReturnsRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictTypedCallRector::class, + ChildDoctrineRepositoryClassTypeRector::class, // param AddMethodCallBasedStrictParamTypeRector::class, ParamTypeByParentCallTypeRector::class, @@ -87,6 +89,11 @@ final class TypeCoverageLevel AddParamTypeFromPropertyTypeRector::class, MergeDateTimePropertyTypeDeclarationRector::class, PropertyTypeFromStrictSetterGetterRector::class, + ParamTypeByMethodCallTypeRector::class, + TypedPropertyFromAssignsRector::class, + AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, + ReturnTypeFromStrictFluentReturnRector::class, + ReturnNeverTypeRector::class, StrictArrayParamDimFetchRector::class, StrictStringParamConcatRector::class, ]; diff --git a/vendor/rector/rector/src/Config/RectorConfig.php b/vendor/rector/rector/src/Config/RectorConfig.php index bf16fde91..092538d7c 100644 --- a/vendor/rector/rector/src/Config/RectorConfig.php +++ b/vendor/rector/rector/src/Config/RectorConfig.php @@ -3,11 +3,12 @@ declare (strict_types=1); namespace Rector\Config; -use RectorPrefix202402\Illuminate\Container\Container; +use RectorPrefix202403\Illuminate\Container\Container; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Configuration\RectorConfigBuilder; +use Rector\Contract\DependencyInjection\RelatedConfigInterface; use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Contract\Rector\RectorInterface; use Rector\DependencyInjection\Laravel\ContainerMemento; @@ -16,11 +17,11 @@ use Rector\Validation\RectorConfigValidator; use Rector\ValueObject\PhpVersion; use Rector\ValueObject\PolyfillPackage; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\ArrayInput; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api */ @@ -151,8 +152,7 @@ public function ruleWithConfiguration(string $rectorClass, array $configuration) Assert::isAOf($rectorClass, ConfigurableRectorInterface::class); // store configuration to cache $this->ruleConfigurations[$rectorClass] = \array_merge($this->ruleConfigurations[$rectorClass] ?? [], $configuration); - $this->singleton($rectorClass); - $this->tag($rectorClass, RectorInterface::class); + $this->rule($rectorClass); $this->afterResolving($rectorClass, function (ConfigurableRectorInterface $configurableRector) use($rectorClass) : void { $ruleConfiguration = $this->ruleConfigurations[$rectorClass]; $configurableRector->configure($ruleConfiguration); @@ -171,6 +171,11 @@ public function rule(string $rectorClass) : void $this->tag($rectorClass, RectorInterface::class); // for cache invalidation in case of change SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_RULES, $rectorClass); + if (\is_a($rectorClass, RelatedConfigInterface::class, \true)) { + $configFile = $rectorClass::getConfigFile(); + Assert::file($configFile, \sprintf('The config path "%s" in "%s::getConfigFile()" could not be found', $configFile, $rectorClass)); + $this->import($configFile); + } } /** * @param class-string $commandClass diff --git a/vendor/rector/rector/src/Config/RegisteredService.php b/vendor/rector/rector/src/Config/RegisteredService.php new file mode 100644 index 000000000..aca7fb89b --- /dev/null +++ b/vendor/rector/rector/src/Config/RegisteredService.php @@ -0,0 +1,41 @@ +className = $className; + $this->alias = $alias; + $this->tag = $tag; + } + public function getClassName() : string + { + return $this->className; + } + public function getAlias() : ?string + { + return $this->alias; + } + public function getTag() : ?string + { + return $this->tag; + } +} diff --git a/vendor/rector/rector/src/Configuration/ConfigInitializer.php b/vendor/rector/rector/src/Configuration/ConfigInitializer.php index a7588810a..ebf157bbf 100644 --- a/vendor/rector/rector/src/Configuration/ConfigInitializer.php +++ b/vendor/rector/rector/src/Configuration/ConfigInitializer.php @@ -3,13 +3,13 @@ declare (strict_types=1); namespace Rector\Configuration; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Contract\Rector\RectorInterface; use Rector\FileSystem\InitFilePathsResolver; use Rector\Php\PhpVersionProvider; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigInitializer { /** @@ -50,7 +50,8 @@ public function createConfig(string $projectDirectory) : void return; } $response = $this->symfonyStyle->ask('No "rector.php" config found. Should we generate it for you?', 'yes'); - if ($response !== 'yes') { + // be tolerant about input + if (!\in_array($response, ['yes', 'YES', 'y', 'Y'], \true)) { // okay, nothing we can do return; } diff --git a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php index 66d4e2383..49736c371 100644 --- a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php +++ b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php @@ -6,8 +6,8 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\Configuration; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; /** * @see \Rector\Tests\Configuration\ConfigurationFactoryTest */ diff --git a/vendor/rector/rector/src/Configuration/Levels/LevelRulesResolver.php b/vendor/rector/rector/src/Configuration/Levels/LevelRulesResolver.php index 0e2edaee7..d1e424fff 100644 --- a/vendor/rector/rector/src/Configuration/Levels/LevelRulesResolver.php +++ b/vendor/rector/rector/src/Configuration/Levels/LevelRulesResolver.php @@ -4,7 +4,7 @@ namespace Rector\Configuration\Levels; use Rector\Contract\Rector\RectorInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class LevelRulesResolver { /** diff --git a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php index a618d5f23..25fcde393 100644 --- a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php @@ -5,7 +5,7 @@ use Rector\Configuration\Option; use Rector\Exception\ShouldNotHappenException; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api */ diff --git a/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php b/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php index eabc6c77f..6767850ce 100644 --- a/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php +++ b/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php @@ -4,10 +4,11 @@ namespace Rector\Configuration; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; +use Rector\Config\Level\DeadCodeLevel; +use Rector\Config\Level\TypeDeclarationLevel; use Rector\Config\RectorConfig; -use Rector\Configuration\Levels\DeadCodeLevel; +use Rector\Config\RegisteredService; use Rector\Configuration\Levels\LevelRulesResolver; -use Rector\Configuration\Levels\TypeCoverageLevel; use Rector\Contract\Rector\ConfigurableRectorInterface; use Rector\Contract\Rector\RectorInterface; use Rector\Doctrine\Set\DoctrineSetList; @@ -21,7 +22,8 @@ use Rector\Symfony\Set\SensiolabsSetList; use Rector\Symfony\Set\SymfonySetList; use Rector\ValueObject\PhpVersion; -use RectorPrefix202402\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api */ @@ -64,10 +66,9 @@ final class RectorConfigBuilder */ private $containerCacheDirectory; /** - * Enabled by default - * @var bool + * @var bool|null */ - private $parallel = \true; + private $parallel; /** * @var int */ @@ -136,13 +137,43 @@ final class RectorConfigBuilder * @var string|null */ private $symfonyContainerPhpFile; + /** + * To make sure type declarations set and level are not duplicated, + * as both contain same rules + * @var bool + */ + private $isTypeCoverageLevelUsed = \false; + /** + * @var bool + */ + private $isDeadCodeLevelUsed = \false; + /** + * @var RegisteredService[] + */ + private $registerServices = []; public function __invoke(RectorConfig $rectorConfig) : void { $uniqueSets = \array_unique($this->sets); + if (\in_array(SetList::TYPE_DECLARATION, $uniqueSets, \true) && $this->isTypeCoverageLevelUsed) { + throw new InvalidConfigurationException(\sprintf('Your config already enables type declarations set.%sRemove "->withTypeCoverageLevel()" as it only duplicates it, or remove type declaration set.', \PHP_EOL)); + } + if (\in_array(SetList::DEAD_CODE, $uniqueSets, \true) && $this->isDeadCodeLevelUsed) { + throw new InvalidConfigurationException(\sprintf('Your config already enables dead code set.%sRemove "->withDeadCodeLevel()" as it only duplicates it, or remove dead code set.', \PHP_EOL)); + } $rectorConfig->sets($uniqueSets); if ($this->paths !== []) { $rectorConfig->paths($this->paths); } + // must be in upper part, as these services might be used by rule registered bellow + foreach ($this->registerServices as $registerService) { + $rectorConfig->singleton($registerService->getClassName()); + if ($registerService->getAlias()) { + $rectorConfig->alias($registerService->getClassName(), $registerService->getAlias()); + } + if ($registerService->getTag()) { + $rectorConfig->tag($registerService->getClassName(), $registerService->getTag()); + } + } $rectorConfig->skip($this->skip); $rectorConfig->rules($this->rules); foreach ($this->rulesWithConfigurations as $rectorClass => $configurations) { @@ -190,10 +221,12 @@ public function __invoke(RectorConfig $rectorConfig) : void if ($this->phpVersion !== null) { $rectorConfig->phpVersion($this->phpVersion); } - if ($this->parallel) { - $rectorConfig->parallel($this->parallelTimeoutSeconds, $this->parallelMaxNumberOfProcess, $this->parallelJobSize); - } else { - $rectorConfig->disableParallel(); + if ($this->parallel !== null) { + if ($this->parallel) { + $rectorConfig->parallel($this->parallelTimeoutSeconds, $this->parallelMaxNumberOfProcess, $this->parallelJobSize); + } else { + $rectorConfig->disableParallel(); + } } if ($this->symfonyContainerXmlFile !== null) { $rectorConfig->symfonyContainerXml($this->symfonyContainerXmlFile); @@ -215,9 +248,16 @@ public function withPaths(array $paths) : self */ public function withSkip(array $skip) : self { - $this->skip = $skip; + $this->skip = \array_merge($this->skip, $skip); return $this; } + public function withSkipPath(string $skipPath) : self + { + if (\strpos($skipPath, '*') === \false) { + Assert::fileExists($skipPath); + } + return $this->withSkip([$skipPath]); + } /** * Include PHP files from the root directory, * typically ecs.php, rector.php etc. @@ -356,7 +396,7 @@ public function withPreparedSets(bool $deadCode = \false, bool $codeQuality = \f */ public function withRules(array $rules) : self { - $this->rules = $rules; + $this->rules = \array_merge($this->rules, $rules); return $this; } /** @@ -477,7 +517,8 @@ public function withSymfonyContainerPhp(string $symfonyContainerPhpFile) : self */ public function withDeadCodeLevel(int $level) : self { - $levelRules = LevelRulesResolver::resolve($level, DeadCodeLevel::RULE_LIST, 'RectorConfig::withDeadCodeLevel()'); + $this->isDeadCodeLevelUsed = \true; + $levelRules = LevelRulesResolver::resolve($level, DeadCodeLevel::RULES, 'RectorConfig::withDeadCodeLevel()'); $this->rules = \array_merge($this->rules, $levelRules); return $this; } @@ -487,8 +528,14 @@ public function withDeadCodeLevel(int $level) : self */ public function withTypeCoverageLevel(int $level) : self { - $levelRules = LevelRulesResolver::resolve($level, TypeCoverageLevel::RULE_LIST, 'RectorConfig::withTypeCoverageLevel()'); + $this->isTypeCoverageLevelUsed = \true; + $levelRules = LevelRulesResolver::resolve($level, TypeDeclarationLevel::RULES, 'RectorConfig::withTypeCoverageLevel()'); $this->rules = \array_merge($this->rules, $levelRules); return $this; } + public function registerService(string $className, ?string $alias = null, ?string $tag = null) : self + { + $this->registerServices[] = new RegisteredService($className, $alias, $tag); + return $this; + } } diff --git a/vendor/rector/rector/src/Configuration/VendorMissAnalyseGuard.php b/vendor/rector/rector/src/Configuration/VendorMissAnalyseGuard.php index bed2bc0c4..ff3d4ef04 100644 --- a/vendor/rector/rector/src/Configuration/VendorMissAnalyseGuard.php +++ b/vendor/rector/rector/src/Configuration/VendorMissAnalyseGuard.php @@ -32,8 +32,10 @@ private function hasDowngradeSets() : bool */ private function containsVendorPath(array $filePaths) : bool { + $cwdLength = \strlen(\getcwd()); foreach ($filePaths as $filePath) { - if (\strpos(PathNormalizer::normalize($filePath), '/vendor/') !== \false) { + $normalizedPath = PathNormalizer::normalize(\realpath($filePath)); + if (\strncmp(\substr($normalizedPath, $cwdLength), '/vendor/', \strlen('/vendor/')) === 0) { return \true; } } diff --git a/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php b/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php index c89a26b55..32f19c965 100644 --- a/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php +++ b/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php @@ -3,16 +3,16 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Exception\ShouldNotHappenException; use Rector\FileSystem\JsonFileSystem; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202402\Symfony\Component\Finder\Finder; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; final class CustomRuleCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php b/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php new file mode 100644 index 000000000..323c3bb16 --- /dev/null +++ b/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php @@ -0,0 +1,70 @@ +simplePhpParser = $simplePhpParser; + $this->nodePrinter = $nodePrinter; + $this->symfonyStyle = $symfonyStyle; + parent::__construct(); + } + protected function configure() : void + { + $this->setName('detect-node'); + $this->setDescription('Detects node for provided PHP content'); + $this->addOption('loop', null, InputOption::VALUE_NONE, 'Keep open so you can try multiple inputs'); + $this->setAliases(['dump-node']); + // @todo invoke https://github.com/matthiasnoback/php-ast-inspector/ + // $this->addOption('file'); + } + protected function execute(InputInterface $input, OutputInterface $output) : int + { + if ((bool) $input->getOption('loop')) { + while (\true) { + $this->askQuestionAndDumpNode(); + } + } + $this->askQuestionAndDumpNode(); + return self::SUCCESS; + } + private function askQuestionAndDumpNode() : void + { + $question = new Question('Write short PHP code snippet'); + $phpContents = $this->symfonyStyle->askQuestion($question); + try { + $nodes = $this->simplePhpParser->parseString($phpContents); + } catch (Throwable $exception) { + $this->symfonyStyle->warning('Provide valid PHP code'); + return; + } + $this->nodePrinter->printNodes($nodes); + } +} diff --git a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php index 0ce2f6922..bddb016d7 100644 --- a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php +++ b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php @@ -3,17 +3,17 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\Json; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; use Rector\Contract\Rector\RectorInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/ProcessCommand.php b/vendor/rector/rector/src/Console/Command/ProcessCommand.php index f40b33125..ffa9ca147 100644 --- a/vendor/rector/rector/src/Console/Command/ProcessCommand.php +++ b/vendor/rector/rector/src/Console/Command/ProcessCommand.php @@ -18,11 +18,11 @@ use Rector\Util\MemoryLimiter; use Rector\ValueObject\Configuration; use Rector\ValueObject\ProcessResult; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class ProcessCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/SetupCICommand.php b/vendor/rector/rector/src/Console/Command/SetupCICommand.php index f623e85f5..3bce90802 100644 --- a/vendor/rector/rector/src/Console/Command/SetupCICommand.php +++ b/vendor/rector/rector/src/Console/Command/SetupCICommand.php @@ -3,13 +3,13 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\OndraM\CiDetector\CiDetector; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\OndraM\CiDetector\CiDetector; use Rector\Git\RepositoryHelper; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; use function sprintf; final class SetupCICommand extends Command { diff --git a/vendor/rector/rector/src/Console/Command/WorkerCommand.php b/vendor/rector/rector/src/Console/Command/WorkerCommand.php index bf97890ed..37667657d 100644 --- a/vendor/rector/rector/src/Console/Command/WorkerCommand.php +++ b/vendor/rector/rector/src/Console/Command/WorkerCommand.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202402\Clue\React\NDJson\Decoder; -use RectorPrefix202402\Clue\React\NDJson\Encoder; -use RectorPrefix202402\React\EventLoop\StreamSelectLoop; -use RectorPrefix202402\React\Socket\ConnectionInterface; -use RectorPrefix202402\React\Socket\TcpConnector; +use RectorPrefix202403\Clue\React\NDJson\Decoder; +use RectorPrefix202403\Clue\React\NDJson\Encoder; +use RectorPrefix202403\React\EventLoop\StreamSelectLoop; +use RectorPrefix202403\React\Socket\ConnectionInterface; +use RectorPrefix202403\React\Socket\TcpConnector; use Rector\Application\ApplicationFileProcessor; use Rector\Configuration\ConfigurationFactory; use Rector\Console\ProcessConfigureDecorator; @@ -16,14 +16,14 @@ use Rector\Util\MemoryLimiter; use Rector\ValueObject\Configuration; use Rector\ValueObject\Error\SystemError; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202402\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202402\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202403\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202403\Symplify\EasyParallel\Enum\ReactEvent; use Throwable; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * Inspired at: https://github.com/phpstan/phpstan-src/commit/9124c66dcc55a222e21b1717ba5f60771f7dda92 * https://github.com/phpstan/phpstan-src/blob/c471c7b050e0929daf432288770de673b394a983/src/Command/WorkerCommand.php diff --git a/vendor/rector/rector/src/Console/ConsoleApplication.php b/vendor/rector/rector/src/Console/ConsoleApplication.php index 36e98f59e..6fd3be7b4 100644 --- a/vendor/rector/rector/src/Console/ConsoleApplication.php +++ b/vendor/rector/rector/src/Console/ConsoleApplication.php @@ -3,17 +3,17 @@ declare (strict_types=1); namespace Rector\Console; -use RectorPrefix202402\Composer\XdebugHandler\XdebugHandler; +use RectorPrefix202403\Composer\XdebugHandler\XdebugHandler; use Rector\Application\VersionResolver; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Webmozart\Assert\Assert; final class ConsoleApplication extends Application { /** diff --git a/vendor/rector/rector/src/Console/ExitCode.php b/vendor/rector/rector/src/Console/ExitCode.php index 94d3df868..8b3231a2b 100644 --- a/vendor/rector/rector/src/Console/ExitCode.php +++ b/vendor/rector/rector/src/Console/ExitCode.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Console; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; /** * @api */ diff --git a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php index c3cfe7f89..8a2db5256 100644 --- a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php +++ b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php @@ -3,8 +3,9 @@ declare (strict_types=1); namespace Rector\Console\Formatter; -use RectorPrefix202402\Nette\Utils\Strings; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Nette\Utils\Strings; +use Rector\Util\NewLineSplitter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; /** * Inspired by @see https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/src/Differ/DiffConsoleFormatter.php to be * used as standalone class, without need to require whole package by Dariusz Rumiński @@ -28,11 +29,6 @@ final class ColorConsoleDiffFormatter * @see https://regex101.com/r/CMlwa8/1 */ private const AT_START_REGEX = '#^(@.*)#'; - /** - * @var string - * @see https://regex101.com/r/qduj2O/1 - */ - private const NEWLINES_REGEX = "#\n\r|\n#"; /** * @readonly * @var string @@ -49,7 +45,7 @@ public function format(string $diff) : string private function formatWithTemplate(string $diff, string $template) : string { $escapedDiff = OutputFormatter::escape(\rtrim($diff)); - $escapedDiffLines = Strings::split($escapedDiff, self::NEWLINES_REGEX); + $escapedDiffLines = NewLineSplitter::split($escapedDiff); // remove description of added + remove; obvious on diffs foreach ($escapedDiffLines as $key => $escapedDiffLine) { if ($escapedDiffLine === '--- Original') { diff --git a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php index 88a47f6fc..04bb206f7 100644 --- a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php +++ b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Console\Formatter; -use RectorPrefix202402\SebastianBergmann\Diff\Differ; -use RectorPrefix202402\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202403\SebastianBergmann\Diff\Differ; +use RectorPrefix202403\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; final class ConsoleDiffer { /** diff --git a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php index aed5e34ce..407f5d36e 100644 --- a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php +++ b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php @@ -5,9 +5,9 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; final class ProcessConfigureDecorator { public static function decorate(Command $command) : void diff --git a/vendor/rector/rector/src/Console/Style/RectorStyle.php b/vendor/rector/rector/src/Console/Style/RectorStyle.php index 8f0c2a8f1..a86b00b71 100644 --- a/vendor/rector/rector/src/Console/Style/RectorStyle.php +++ b/vendor/rector/rector/src/Console/Style/RectorStyle.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Console\Style; -use RectorPrefix202402\OndraM\CiDetector\CiDetector; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\OndraM\CiDetector\CiDetector; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class RectorStyle extends SymfonyStyle { /** diff --git a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php index bc38e10ff..573368afb 100644 --- a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php +++ b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php @@ -4,11 +4,11 @@ namespace Rector\Console\Style; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; final class SymfonyStyleFactory { /** diff --git a/vendor/rector/rector/src/Contract/DependencyInjection/RelatedConfigInterface.php b/vendor/rector/rector/src/Contract/DependencyInjection/RelatedConfigInterface.php new file mode 100644 index 000000000..3f971a10f --- /dev/null +++ b/vendor/rector/rector/src/Contract/DependencyInjection/RelatedConfigInterface.php @@ -0,0 +1,12 @@ + $value) { + $result .= "\n " . $key . ': '; + if ($value === null) { + $result .= 'null'; + } elseif ($value === \false) { + $result .= 'false'; + } elseif ($value === \true) { + $result .= 'true'; + } elseif (\is_string($value)) { + $result .= '"' . $value . '"'; + } elseif (\is_scalar($value)) { + $result .= $value; + } else { + $result .= \str_replace("\n", "\n ", self::dump($value, \false)); + } + } + if (\count($node) === 0) { + $result .= ']'; + } else { + $result .= "\n]"; + } + return $result; + } + /** + * @param mixed[] $items + */ + private static function isStringList(array $items) : bool + { + foreach ($items as $item) { + if (!\is_string($item)) { + return \false; + } + } + return \true; + } + /** + * @param mixed $flags + */ + private static function dumpFlags($flags) : string + { + $strs = []; + if (($flags & Class_::MODIFIER_PUBLIC) !== 0) { + $strs[] = 'MODIFIER_PUBLIC'; + } + if (($flags & Class_::MODIFIER_PROTECTED) !== 0) { + $strs[] = 'MODIFIER_PROTECTED'; + } + if (($flags & Class_::MODIFIER_PRIVATE) !== 0) { + $strs[] = 'MODIFIER_PRIVATE'; + } + if (($flags & Class_::MODIFIER_ABSTRACT) !== 0) { + $strs[] = 'MODIFIER_ABSTRACT'; + } + if (($flags & Class_::MODIFIER_STATIC) !== 0) { + $strs[] = 'MODIFIER_STATIC'; + } + if (($flags & Class_::MODIFIER_FINAL) !== 0) { + $strs[] = 'MODIFIER_FINAL'; + } + if (($flags & Class_::MODIFIER_READONLY) !== 0) { + $strs[] = 'MODIFIER_READONLY'; + } + if ($strs !== []) { + return \implode(' | ', $strs) . ' (' . $flags . ')'; + } + return (string) $flags; + } + /** + * @param int|float|string $type + */ + private static function dumpIncludeType($type) : string + { + $map = [Include_::TYPE_INCLUDE => 'TYPE_INCLUDE', Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE', Include_::TYPE_REQUIRE => 'TYPE_REQUIRE', Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQUIRE_ONCE']; + if (!isset($map[$type])) { + return (string) $type; + } + return $map[$type] . ' (' . $type . ')'; + } + /** + * @param mixed $type + */ + private static function dumpUseType($type) : string + { + $map = [Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN', Use_::TYPE_NORMAL => 'TYPE_NORMAL', Use_::TYPE_FUNCTION => 'TYPE_FUNCTION', Use_::TYPE_CONSTANT => 'TYPE_CONSTANT']; + if (!isset($map[$type])) { + return (string) $type; + } + return $map[$type] . ' (' . $type . ')'; + } + private static function dumpSingleNode(Node $node) : string + { + $result = \get_class($node); + // print simple nodes on same line, to make output more readable + if ($node instanceof Variable && \is_string($node->name)) { + $result .= '( name: "' . $node->name . '" )'; + } elseif ($node instanceof Identifier) { + $result .= '( name: "' . $node->name . '" )'; + } elseif ($node instanceof Name) { + $result .= '( parts: ' . \json_encode($node->getParts(), 0) . ' )'; + } elseif ($node instanceof Scalar && $node->getSubNodeNames() === ['value']) { + if (\is_string($node->value)) { + $result .= '( value: "' . $node->value . '" )'; + } else { + $result .= '( value: ' . $node->value . ' )'; + } + } else { + $result .= '('; + foreach ($node->getSubNodeNames() as $key) { + $result .= "\n " . $key . ': '; + $value = $node->{$key}; + if ($value === null) { + $result .= 'null'; + } elseif ($value === \false) { + $result .= 'false'; + } elseif ($value === \true) { + $result .= 'true'; + } elseif (\is_scalar($value)) { + if ($key === 'flags' || $key === 'newModifier') { + $result .= self::dumpFlags($value); + } elseif ($key === 'type' && $node instanceof Include_) { + $result .= self::dumpIncludeType($value); + } elseif ($key === 'type' && ($node instanceof Use_ || $node instanceof UseUse || $node instanceof GroupUse)) { + $result .= self::dumpUseType($value); + } elseif (\is_string($value)) { + $result .= '"' . $value . '"'; + } else { + $result .= $value; + } + } else { + $result .= \str_replace("\n", "\n ", self::dump($value, \false)); + } + } + $result .= "\n)"; + } + return $result; + } +} diff --git a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php index 4bb103efe..be55161e5 100644 --- a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php +++ b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\DependencyInjection\Laravel; -use RectorPrefix202402\Illuminate\Container\Container; +use RectorPrefix202403\Illuminate\Container\Container; use Rector\Util\Reflection\PrivatesAccessor; /** * Helper service to modify Laravel container diff --git a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php index 40476f139..a7b6e1c99 100644 --- a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\DependencyInjection; -use RectorPrefix202402\Doctrine\Inflector\Inflector; -use RectorPrefix202402\Doctrine\Inflector\Rules\English\InflectorFactory; -use RectorPrefix202402\Illuminate\Container\Container; +use RectorPrefix202403\Doctrine\Inflector\Inflector; +use RectorPrefix202403\Doctrine\Inflector\Rules\English\InflectorFactory; +use RectorPrefix202403\Illuminate\Container\Container; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; @@ -27,6 +27,7 @@ use Rector\BetterPhpDocParser\PhpDocNodeVisitor\IntersectionTypeNodePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\TemplatePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\UnionTypeNodePhpDocNodeVisitor; +use Rector\BetterPhpDocParser\PhpDocParser\ArrayItemClassNameDecorator; use Rector\BetterPhpDocParser\PhpDocParser\BetterPhpDocParser; use Rector\BetterPhpDocParser\PhpDocParser\BetterTypeParser; use Rector\BetterPhpDocParser\PhpDocParser\ConstExprClassNameDecorator; @@ -49,6 +50,7 @@ use Rector\Configuration\ConfigInitializer; use Rector\Configuration\RenamedClassesDataCollector; use Rector\Console\Command\CustomRuleCommand; +use Rector\Console\Command\DetectNodeCommand; use Rector\Console\Command\ListRulesCommand; use Rector\Console\Command\ProcessCommand; use Rector\Console\Command\SetupCICommand; @@ -99,6 +101,10 @@ use Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\StmtKeyNodeVisitor; use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; +use Rector\Php80\AttributeDecorator\DoctrineConverterAttributeDecorator; +use Rector\Php80\AttributeDecorator\SensioParamConverterAttributeDecorator; +use Rector\Php80\Contract\ConverterAttributeDecoratorInterface; +use Rector\Php80\NodeManipulator\AttributeGroupNamedArgumentManipulator; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayAnnotationToAttributeMapper; use Rector\PhpAttribute\AnnotationToAttributeMapper\ArrayItemNodeAnnotationToAttributeMapper; @@ -175,10 +181,10 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\Utils\Command\MissingInSetCommand; use Rector\Utils\Command\OutsideAnySetCommand; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Webmozart\Assert\Assert; final class LazyContainerFactory { /** @@ -212,7 +218,7 @@ final class LazyContainerFactory /** * @var array> */ - private const PHP_DOC_NODE_DECORATOR_CLASSES = [ConstExprClassNameDecorator::class, DoctrineAnnotationDecorator::class]; + private const PHP_DOC_NODE_DECORATOR_CLASSES = [ConstExprClassNameDecorator::class, DoctrineAnnotationDecorator::class, ArrayItemClassNameDecorator::class]; /** * @var array */ @@ -233,6 +239,10 @@ final class LazyContainerFactory * @var array> */ private const SKIP_VOTER_CLASSES = [ClassSkipVoter::class]; + /** + * @var array> + */ + private const CONVERTER_ATTRIBUTE_DECORATOR_CLASSES = [SensioParamConverterAttributeDecorator::class, DoctrineConverterAttributeDecorator::class]; /** * @api used as next rectorConfig factory */ @@ -259,13 +269,13 @@ public function create() : RectorConfig $rectorConfig->singleton(SetupCICommand::class); $rectorConfig->singleton(ListRulesCommand::class); $rectorConfig->singleton(CustomRuleCommand::class); + $rectorConfig->singleton(DetectNodeCommand::class); $rectorConfig->when(ListRulesCommand::class)->needs('$rectors')->giveTagged(RectorInterface::class); // dev if (\class_exists(MissingInSetCommand::class)) { $rectorConfig->singleton(MissingInSetCommand::class); $rectorConfig->singleton(OutsideAnySetCommand::class); } - $rectorConfig->alias(TypeParser::class, BetterTypeParser::class); $rectorConfig->singleton(FileProcessor::class); $rectorConfig->singleton(PostFileProcessor::class); // phpdoc-parser @@ -302,12 +312,16 @@ public function create() : RectorConfig $rectorConfig->when(NodeNameResolver::class)->needs('$nodeNameResolvers')->giveTagged(NodeNameResolverInterface::class); $rectorConfig->when(Skipper::class)->needs('$skipVoters')->giveTagged(SkipVoterInterface::class); $this->registerTagged($rectorConfig, self::SKIP_VOTER_CLASSES, SkipVoterInterface::class); + $rectorConfig->when(AttributeGroupNamedArgumentManipulator::class)->needs('$converterAttributeDecorators')->giveTagged(ConverterAttributeDecoratorInterface::class); + $this->registerTagged($rectorConfig, self::CONVERTER_ATTRIBUTE_DECORATOR_CLASSES, ConverterAttributeDecoratorInterface::class); $rectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector, Container $container) : void { $rector->autowire($container->get(NodeNameResolver::class), $container->get(NodeTypeResolver::class), $container->get(SimpleCallableNodeTraverser::class), $container->get(NodeFactory::class), $container->get(Skipper::class), $container->get(NodeComparator::class), $container->get(CurrentFileProvider::class), $container->get(CreatedByRuleDecorator::class), $container->get(ChangedNodeScopeRefresher::class)); }); $this->registerTagged($rectorConfig, self::PHP_PARSER_NODE_MAPPER_CLASSES, PhpParserNodeMapperInterface::class); $this->registerTagged($rectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); $this->registerTagged($rectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); + // PHP 8.0 attributes + $this->registerTagged($rectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); $this->registerTagged($rectorConfig, self::PHPDOC_TYPE_MAPPER_CLASSES, PhpDocTypeMapperInterface::class); $this->registerTagged($rectorConfig, self::NODE_NAME_RESOLVER_CLASSES, NodeNameResolverInterface::class); @@ -320,10 +334,9 @@ public function create() : RectorConfig $symfonyStyleFactory = $container->make(SymfonyStyleFactory::class); return $symfonyStyleFactory->create(); }); - $this->registerTagged($rectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); $rectorConfig->when(AnnotationToAttributeMapper::class)->needs('$annotationToAttributeMappers')->giveTagged(AnnotationToAttributeMapperInterface::class); $rectorConfig->when(OutputFormatterCollector::class)->needs('$outputFormatters')->giveTagged(OutputFormatterInterface::class); - // #[Required]-like setter + // required-like setter $rectorConfig->afterResolving(ArrayAnnotationToAttributeMapper::class, static function (ArrayAnnotationToAttributeMapper $arrayAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributesMapper = $container->make(AnnotationToAttributeMapper::class); $arrayAnnotationToAttributeMapper->autowire($annotationToAttributesMapper); @@ -345,10 +358,6 @@ public function create() : RectorConfig $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); $unionTypeMapper->autowire($phpStanStaticTypeMapper); }); - $rectorConfig->singleton(Parser::class, static function (Container $container) { - $phpstanServiceFactory = $container->make(PHPStanServicesFactory::class); - return $phpstanServiceFactory->createPHPStanParser(); - }); $rectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); $curlyListNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); diff --git a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php index b54b29b7a..7c45d37dd 100644 --- a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\DependencyInjection; -use RectorPrefix202402\Illuminate\Container\Container; +use RectorPrefix202403\Illuminate\Container\Container; use Rector\Autoloading\BootstrapFilesIncluder; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\ValueObject\Bootstrap\BootstrapConfigs; diff --git a/vendor/rector/rector/src/Differ/DefaultDiffer.php b/vendor/rector/rector/src/Differ/DefaultDiffer.php index 04d930eea..aca497dcd 100644 --- a/vendor/rector/rector/src/Differ/DefaultDiffer.php +++ b/vendor/rector/rector/src/Differ/DefaultDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Differ; -use RectorPrefix202402\SebastianBergmann\Diff\Differ; -use RectorPrefix202402\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; +use RectorPrefix202403\SebastianBergmann\Diff\Differ; +use RectorPrefix202403\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final class DefaultDiffer { /** diff --git a/vendor/rector/rector/src/FileSystem/FilePathHelper.php b/vendor/rector/rector/src/FileSystem/FilePathHelper.php index 809d8af22..4f4fddaef 100644 --- a/vendor/rector/rector/src/FileSystem/FilePathHelper.php +++ b/vendor/rector/rector/src/FileSystem/FilePathHelper.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Skipper\FileSystem\PathNormalizer; -use RectorPrefix202402\Symfony\Component\Filesystem\Filesystem; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\FileSystem\FilePathHelperTest */ diff --git a/vendor/rector/rector/src/FileSystem/FilesFinder.php b/vendor/rector/rector/src/FileSystem/FilesFinder.php index e802cd731..430f27066 100644 --- a/vendor/rector/rector/src/FileSystem/FilesFinder.php +++ b/vendor/rector/rector/src/FileSystem/FilesFinder.php @@ -5,7 +5,7 @@ use Rector\Caching\UnchangedFilesFilter; use Rector\Skipper\Skipper\PathSkipper; -use RectorPrefix202402\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Symfony\Component\Finder\Finder; /** * @see \Rector\Tests\FileSystem\FilesFinder\FilesFinderTest */ diff --git a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php index 8ef2e4e34..8719ad8c4 100644 --- a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php +++ b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202402\Symfony\Component\Finder\Finder; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Tests\FileSystem\InitFilePathsResolver\InitFilePathsResolverTest */ diff --git a/vendor/rector/rector/src/FileSystem/JsonFileSystem.php b/vendor/rector/rector/src/FileSystem/JsonFileSystem.php index dfdf80258..949bd8484 100644 --- a/vendor/rector/rector/src/FileSystem/JsonFileSystem.php +++ b/vendor/rector/rector/src/FileSystem/JsonFileSystem.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\FileSystem; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Json; final class JsonFileSystem { /** diff --git a/vendor/rector/rector/src/FileSystemRector/Parser/FileInfoParser.php b/vendor/rector/rector/src/FileSystemRector/Parser/FileInfoParser.php deleted file mode 100644 index 8029dec89..000000000 --- a/vendor/rector/rector/src/FileSystemRector/Parser/FileInfoParser.php +++ /dev/null @@ -1,54 +0,0 @@ -nodeScopeAndMetadataDecorator = $nodeScopeAndMetadataDecorator; - $this->rectorParser = $rectorParser; - $this->currentFileProvider = $currentFileProvider; - } - /** - * @api tests only - * @return Stmt[] - */ - public function parseFileInfoToNodesAndDecorate(string $filePath) : array - { - $fileContent = FileSystem::read($filePath); - $stmts = $this->rectorParser->parseString($fileContent); - $file = new File($filePath, $fileContent); - $stmts = $this->nodeScopeAndMetadataDecorator->decorateNodesFromFile($filePath, $stmts); - $file->hydrateStmtsAndTokens($stmts, $stmts, []); - $this->currentFileProvider->setFile($file); - return $stmts; - } -} diff --git a/vendor/rector/rector/src/Git/RepositoryHelper.php b/vendor/rector/rector/src/Git/RepositoryHelper.php index d13498255..8a9a4a40c 100644 --- a/vendor/rector/rector/src/Git/RepositoryHelper.php +++ b/vendor/rector/rector/src/Git/RepositoryHelper.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Git; -use RectorPrefix202402\Nette\Utils\Strings; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202403\Symfony\Component\Process\Process; final class RepositoryHelper { /** diff --git a/vendor/rector/rector/src/NodeAnalyzer/TerminatedNodeAnalyzer.php b/vendor/rector/rector/src/NodeAnalyzer/TerminatedNodeAnalyzer.php index d4f0d851d..61d2e43e7 100644 --- a/vendor/rector/rector/src/NodeAnalyzer/TerminatedNodeAnalyzer.php +++ b/vendor/rector/rector/src/NodeAnalyzer/TerminatedNodeAnalyzer.php @@ -137,6 +137,7 @@ private function isTerminatedInLastStmts(array $stmts, Node $node) : bool } \end($stmts); $lastKey = \key($stmts); + \reset($stmts); $lastNode = $stmts[$lastKey]; if (isset($stmts[$lastKey - 1]) && $this->isTerminatedNode($stmts[$lastKey - 1], $node)) { return \false; diff --git a/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php b/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php index 036d43fd9..0e5f99426 100644 --- a/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php +++ b/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php @@ -84,7 +84,7 @@ public function match(Array_ $array, Scope $scope) $className = $callerType->getClassName(); $secondItemValue = $items[1]->value; if ($values === null) { - return new ArrayCallableDynamicMethod($firstItemValue, $className, $secondItemValue); + return new ArrayCallableDynamicMethod(); } if ($this->shouldSkipAssociativeArray($values)) { return null; diff --git a/vendor/rector/rector/src/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php b/vendor/rector/rector/src/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php index 9831ff565..b06e032fa 100644 --- a/vendor/rector/rector/src/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php +++ b/vendor/rector/rector/src/NodeCollector/ValueObject/ArrayCallableDynamicMethod.php @@ -3,45 +3,7 @@ declare (strict_types=1); namespace Rector\NodeCollector\ValueObject; -use PhpParser\Node\Expr; -use Rector\Validation\RectorAssert; -/** - * @api - */ final class ArrayCallableDynamicMethod { - /** - * @readonly - * @var \PhpParser\Node\Expr - */ - private $callerExpr; - /** - * @readonly - * @var string - */ - private $class; - /** - * @readonly - * @var \PhpParser\Node\Expr - */ - private $method; - public function __construct(Expr $callerExpr, string $class, Expr $method) - { - $this->callerExpr = $callerExpr; - $this->class = $class; - $this->method = $method; - RectorAssert::className($class); - } - public function getClass() : string - { - return $this->class; - } - public function getMethod() : Expr - { - return $this->method; - } - public function getCallerExpr() : Expr - { - return $this->callerExpr; - } + // marker type } diff --git a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php index 7a2f6ca73..2d3cfcc1f 100644 --- a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeManipulator; -use RectorPrefix202402\Doctrine\ORM\Mapping\Table; +use RectorPrefix202403\Doctrine\ORM\Mapping\Table; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; diff --git a/vendor/rector/rector/src/NodeManipulator/StmtsManipulator.php b/vendor/rector/rector/src/NodeManipulator/StmtsManipulator.php index aa52a2e01..1c0076d6e 100644 --- a/vendor/rector/rector/src/NodeManipulator/StmtsManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/StmtsManipulator.php @@ -41,6 +41,7 @@ public function getUnwrappedLastStmt(array $stmts) : ?Node { \end($stmts); $lastStmtKey = \key($stmts); + \reset($stmts); $lastStmt = $stmts[$lastStmtKey]; if ($lastStmt instanceof Expression) { return $lastStmt->expr; diff --git a/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php b/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php index 98099e96d..efc3d01cb 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php +++ b/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php @@ -15,7 +15,11 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use Throwable; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * Factory so Symfony app can use services from PHPStan container * @@ -23,6 +27,18 @@ */ final class PHPStanServicesFactory { + /** + * @var string + */ + private const INVALID_BLEEDING_EDGE_PATH_MESSAGE = <<resolveAdditionalConfigFiles(); - $this->container = $containerFactory->create(SimpleParameterProvider::provideStringParameter(Option::CONTAINER_CACHE_DIRECTORY), $additionalConfigFiles, []); + try { + $this->container = $containerFactory->create(SimpleParameterProvider::provideStringParameter(Option::CONTAINER_CACHE_DIRECTORY), $additionalConfigFiles, []); + } catch (Throwable $throwable) { + if ($throwable->getMessage() === "File 'phar://phpstan.phar/conf/bleedingEdge.neon' is missing or is not readable.") { + $symfonyStyle = new SymfonyStyle(new ArrayInput([]), new ConsoleOutput()); + $symfonyStyle->error(\sprintf(self::INVALID_BLEEDING_EDGE_PATH_MESSAGE, $throwable->getMessage())); + exit(-1); + } + throw $throwable; + } } /** * @api diff --git a/vendor/rector/rector/src/NodeTypeResolver/Node/AttributeKey.php b/vendor/rector/rector/src/NodeTypeResolver/Node/AttributeKey.php index 3d092692d..9bba67920 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/Node/AttributeKey.php +++ b/vendor/rector/rector/src/NodeTypeResolver/Node/AttributeKey.php @@ -249,4 +249,8 @@ final class AttributeKey * @var string */ public const IS_USED_AS_ARG_BY_REF_VALUE = 'is_used_as_arg_by_ref_value'; + /** + * @var string + */ + public const ATTRIBUTE_COMMENT = 'attribute_comment'; } diff --git a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 238adff5e..a8104f3a2 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -60,7 +60,8 @@ use Rector\PHPStan\NodeVisitor\ExprScopeFromStmtNodeVisitor; use Rector\PHPStan\NodeVisitor\WrappedNodeRestoringNodeVisitor; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202402\Webmozart\Assert\Assert; +use Throwable; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php * - https://github.com/silverstripe/silverstripe-upgrader/pull/57/commits/e5c7cfa166ad940d9d4ff69537d9f7608e992359#diff-5e0807bb3dc03d6a8d8b6ad049abd774 @@ -143,7 +144,7 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for $nodeCallback = function (Node $node, MutatingScope $mutatingScope) use(&$nodeCallback, $filePath) : void { if ($node instanceof FileWithoutNamespace) { $node->setAttribute(AttributeKey::SCOPE, $mutatingScope); - $this->nodeScopeResolver->processNodes($node->stmts, $mutatingScope, $nodeCallback); + $this->nodeScopeResolverProcessNodes($node->stmts, $mutatingScope, $nodeCallback); return; } if (($node instanceof Expression || $node instanceof Return_ || $node instanceof EnumCase || $node instanceof Cast) && $node->expr instanceof Expr) { @@ -208,7 +209,7 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for $node->setAttribute(AttributeKey::SCOPE, $mutatingScope); } }; - $this->nodeScopeResolver->processNodes($stmts, $scope, $nodeCallback); + $this->nodeScopeResolverProcessNodes($stmts, $scope, $nodeCallback); $nodeTraverser = new NodeTraverser(); $nodeTraverser->addVisitor(new WrappedNodeRestoringNodeVisitor()); $nodeTraverser->addVisitor(new ExprScopeFromStmtNodeVisitor($this, $filePath, $scope)); @@ -223,6 +224,20 @@ public function resetHasUnreachableStatementNode() : void { $this->hasUnreachableStatementNode = \false; } + /** + * @param Stmt[] $stmts + * @param callable(Node $node, MutatingScope $scope): void $nodeCallback + */ + private function nodeScopeResolverProcessNodes(array $stmts, MutatingScope $mutatingScope, callable $nodeCallback) : void + { + try { + $this->nodeScopeResolver->processNodes($stmts, $mutatingScope, $nodeCallback); + } catch (Throwable $throwable) { + if ($throwable->getMessage() !== 'Internal error.') { + throw $throwable; + } + } + } private function processCallike(CallLike $callLike, MutatingScope $mutatingScope) : void { if ($callLike instanceof StaticCall) { @@ -377,7 +392,7 @@ private function processTrait(Trait_ $trait, MutatingScope $mutatingScope, calla $this->privatesAccessor->setPrivateProperty($traitContext, 'classReflection', $traitClassReflection); $this->privatesAccessor->setPrivateProperty($traitScope, self::CONTEXT, $traitContext); $trait->setAttribute(AttributeKey::SCOPE, $traitScope); - $this->nodeScopeResolver->processNodes($trait->stmts, $traitScope, $nodeCallback); + $this->nodeScopeResolverProcessNodes($trait->stmts, $traitScope, $nodeCallback); $this->decorateTraitAttrGroups($trait, $traitScope); } } diff --git a/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php b/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php index 825e7c297..cbfc1f712 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php +++ b/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\PhpDocNodeVisitor; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node as PhpParserNode; use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; diff --git a/vendor/rector/rector/src/NodeTypeResolver/TypeComparator/TypeComparator.php b/vendor/rector/rector/src/NodeTypeResolver/TypeComparator/TypeComparator.php index bafffc761..bf4b25461 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/TypeComparator/TypeComparator.php +++ b/vendor/rector/rector/src/NodeTypeResolver/TypeComparator/TypeComparator.php @@ -104,6 +104,9 @@ public function arePhpParserAndPhpStanPhpDocTypesEqual(Node $phpParserNode, Type { $phpParserNodeType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($phpParserNode); $phpStanDocType = $this->staticTypeMapper->mapPHPStanPhpDocTypeNodeToPHPStanType($phpStanDocTypeNode, $node); + if (!$this->areTypesEqual($phpParserNodeType, $phpStanDocType) && $this->isSubtype($phpStanDocType, $phpParserNodeType)) { + return \false; + } // normalize bool union types $phpParserNodeType = $this->normalizeConstantBooleanType($phpParserNodeType); $phpStanDocType = $this->normalizeConstantBooleanType($phpStanDocType); diff --git a/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php index 5939fae5d..3df42a876 100644 --- a/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php +++ b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php @@ -56,7 +56,10 @@ public function enterNode(Node $node) : ?Node if ($node instanceof VirtualNode) { return null; } - if (!$node instanceof Expr || $node->getAttribute(AttributeKey::EXPRESSION_DEPTH) < 2) { + if (!$node instanceof Expr) { + return null; + } + if ($node->getAttribute(AttributeKey::EXPRESSION_DEPTH) < 2 && $node->getAttribute(AttributeKey::IS_ARG_VALUE) !== \true) { return null; } $scope = $node->getAttribute(AttributeKey::SCOPE); diff --git a/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php b/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php index b02fc972f..52d328a6a 100644 --- a/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php +++ b/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php @@ -4,12 +4,11 @@ namespace Rector\PHPStan\NodeVisitor; use PhpParser\Node; -use PhpParser\Node\Expr\Exit_; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\Declare_; -use PhpParser\Node\Stmt\Expression; use PhpParser\NodeVisitorAbstract; use PHPStan\Analyser\MutatingScope; +use PHPStan\Analyser\Scope; use Rector\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver; @@ -46,12 +45,12 @@ public function enterNode(Node $node) : ?Node return null; } $isPassedUnreachableStmt = \false; - $mutatingScope = $node->getAttribute(AttributeKey::SCOPE); - $mutatingScope = $mutatingScope instanceof MutatingScope ? $mutatingScope : $this->scopeFactory->createFromFile($this->filePath); + $mutatingScope = $this->resolveScope($node->getAttribute(AttributeKey::SCOPE)); foreach ($node->stmts as $stmt) { - if ($stmt instanceof Expression && $stmt->expr instanceof Exit_) { - $isPassedUnreachableStmt = \true; - continue; + $hasMutatingScope = $stmt->getAttribute(AttributeKey::SCOPE) instanceof MutatingScope; + if (!$hasMutatingScope) { + $stmt->setAttribute(AttributeKey::SCOPE, $mutatingScope); + $this->phpStanNodeScopeResolver->processNodes([$stmt], $this->filePath, $mutatingScope); } if ($stmt->getAttribute(AttributeKey::IS_UNREACHABLE) === \true) { $isPassedUnreachableStmt = \true; @@ -59,10 +58,12 @@ public function enterNode(Node $node) : ?Node } if ($isPassedUnreachableStmt) { $stmt->setAttribute(AttributeKey::IS_UNREACHABLE, \true); - $stmt->setAttribute(AttributeKey::SCOPE, $mutatingScope); - $this->phpStanNodeScopeResolver->processNodes([$stmt], $this->filePath, $mutatingScope); } } return null; } + private function resolveScope(?Scope $mutatingScope) : MutatingScope + { + return $mutatingScope instanceof MutatingScope ? $mutatingScope : $this->scopeFactory->createFromFile($this->filePath); + } } diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index c48dbfbf2..aecb7332a 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php @@ -11,7 +11,7 @@ use Rector\Exception\NotImplementedYetException; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class PHPStanStaticTypeMapper { /** diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php index f793c7437..6cf164e14 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php @@ -85,13 +85,14 @@ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode // this cannot be handled by PHPStan $type->toPhpDocNode() as requires space removal around "|" in union type // then e.g. "int" instead of explicit number, and nice arrays $itemType = $type->getItemType(); - if ($itemType instanceof UnionType && !$type instanceof ConstantArrayType) { + $isGenericArray = $this->isGenericArrayCandidate($type); + if ($itemType instanceof UnionType && !$type instanceof ConstantArrayType && !$isGenericArray) { return $this->createArrayTypeNodeFromUnionType($itemType); } if ($itemType instanceof ArrayType && $this->isGenericArrayCandidate($itemType)) { return $this->createGenericArrayType($type, \true); } - if ($this->isGenericArrayCandidate($type)) { + if ($isGenericArray) { return $this->createGenericArrayType($type, \true); } $narrowedTypeNode = $this->narrowConstantArrayTypeOfUnionType($type, $itemType); diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index d84c564c4..12f734e92 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Reflection\ClassReflection; diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php index 12ad33463..70ba62242 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/IntersectionTypeMapper.php @@ -55,7 +55,7 @@ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode $phpDocNodeTraverser = new PhpDocNodeTraverser(); $phpDocNodeTraverser->traverseWithCallable($typeNode, '', static function (AstNode $astNode) : ?IdentifierTypeNode { if ($astNode instanceof IdentifierTypeNode) { - $astNode->name = '\\' . $astNode->name; + $astNode->name = '\\' . \ltrim($astNode->name, '\\'); return $astNode; } return null; diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php index 8e05f5300..a41da86f2 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php index 9d30e010a..a9ea65a00 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php @@ -34,8 +34,8 @@ use Rector\PHPStanStaticTypeMapper\ValueObject\UnionTypeAnalysis; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; -use RectorPrefix202402\Webmozart\Assert\Assert; -use RectorPrefix202402\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; /** * @implements TypeMapperInterface */ diff --git a/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php b/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php index 37c52d028..c16297bb1 100644 --- a/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php +++ b/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Parallel\Application; -use RectorPrefix202402\Clue\React\NDJson\Decoder; -use RectorPrefix202402\Clue\React\NDJson\Encoder; -use RectorPrefix202402\Nette\Utils\Random; -use RectorPrefix202402\React\EventLoop\StreamSelectLoop; -use RectorPrefix202402\React\Socket\ConnectionInterface; -use RectorPrefix202402\React\Socket\TcpServer; +use RectorPrefix202403\Clue\React\NDJson\Decoder; +use RectorPrefix202403\Clue\React\NDJson\Encoder; +use RectorPrefix202403\Nette\Utils\Random; +use RectorPrefix202403\React\EventLoop\StreamSelectLoop; +use RectorPrefix202403\React\Socket\ConnectionInterface; +use RectorPrefix202403\React\Socket\TcpServer; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\Command\ProcessCommand; @@ -18,15 +18,15 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\ProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202402\Symplify\EasyParallel\Enum\Content; -use RectorPrefix202402\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202402\Symplify\EasyParallel\Enum\ReactEvent; -use RectorPrefix202402\Symplify\EasyParallel\ValueObject\ParallelProcess; -use RectorPrefix202402\Symplify\EasyParallel\ValueObject\ProcessPool; -use RectorPrefix202402\Symplify\EasyParallel\ValueObject\Schedule; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202403\Symplify\EasyParallel\Enum\Content; +use RectorPrefix202403\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202403\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202403\Symplify\EasyParallel\ValueObject\ParallelProcess; +use RectorPrefix202403\Symplify\EasyParallel\ValueObject\ProcessPool; +use RectorPrefix202403\Symplify\EasyParallel\ValueObject\Schedule; use Throwable; /** * Inspired from @see diff --git a/vendor/rector/rector/src/Parallel/Command/WorkerCommandLineFactory.php b/vendor/rector/rector/src/Parallel/Command/WorkerCommandLineFactory.php index 844d97bd2..e35ca260c 100644 --- a/vendor/rector/rector/src/Parallel/Command/WorkerCommandLineFactory.php +++ b/vendor/rector/rector/src/Parallel/Command/WorkerCommandLineFactory.php @@ -6,10 +6,10 @@ use Rector\ChangesReporting\Output\JsonOutputFormatter; use Rector\Configuration\Option; use Rector\FileSystem\FilePathHelper; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202402\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202403\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; /** * @see \Rector\Tests\Parallel\Command\WorkerCommandLineFactoryTest * @todo possibly extract to symplify/easy-parallel diff --git a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php index f313c48dc..83bbea9b4 100644 --- a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php +++ b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Php\PhpVersionResolver; -use RectorPrefix202402\Composer\Semver\VersionParser; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Composer\Semver\VersionParser; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Json; use Rector\Util\PhpVersionFactory; /** * @see \Rector\Tests\Php\PhpVersionResolver\ProjectComposerJsonPhpVersionResolver\ProjectComposerJsonPhpVersionResolverTest diff --git a/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php b/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php index bd1ef78a6..9127293a6 100644 --- a/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php +++ b/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Php; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Json; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\PolyfillPackage; diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php index ecf155ff5..2761f56c9 100644 --- a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php +++ b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php @@ -12,7 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpAttribute\AnnotationToAttributeMapper\AnnotationToAttributeMapperTest */ @@ -32,7 +32,7 @@ public function __construct(array $annotationToAttributeMappers) Assert::notEmpty($annotationToAttributeMappers); } /** - * @return Expr|DocTagNodeState::REMOVE_ARRAY + * @return mixed|DocTagNodeState::REMOVE_ARRAY * @param mixed $value */ public function map($value) diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php index 40fa23579..787d8f3e9 100644 --- a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php @@ -13,7 +13,7 @@ use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; use Rector\PhpParser\Node\Value\ValueResolver; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php index 1ea5784ae..3ed70c940 100644 --- a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php @@ -14,7 +14,7 @@ use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; use Rector\Validation\RectorAssert; -use RectorPrefix202402\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php index 3895f3abf..597eae754 100644 --- a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php b/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php index 9375018ef..c0d480dac 100644 --- a/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php +++ b/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php @@ -11,14 +11,15 @@ use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; use Rector\Exception\NotImplementedYetException; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class AttributeArrayNameInliner { /** * @param Array_|Arg[] $array + * @param string[] $classReferenceFields * @return Arg[] */ - public function inlineArrayToArgs($array) : array + public function inlineArrayToArgs($array, array $classReferenceFields = []) : array { if (\is_array($array)) { return $this->inlineArray($array); diff --git a/vendor/rector/rector/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php b/vendor/rector/rector/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php deleted file mode 100644 index 1780f80bd..000000000 --- a/vendor/rector/rector/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php +++ /dev/null @@ -1,103 +0,0 @@ -staticTypeMapper = $staticTypeMapper; - $this->reflectionProvider = $reflectionProvider; - $this->nodeFactory = $nodeFactory; - } - /** - * @param array $items - * @return array - */ - public function correctItemsByAttributeClass($items, string $attributeClass) : array - { - if ($items instanceof Array_) { - $items = $items->items; - } - if (!$this->reflectionProvider->hasClass($attributeClass)) { - return $items; - } - $attributeClassReflection = $this->reflectionProvider->getClass($attributeClass); - // nothing to retype by constructor - if (!$attributeClassReflection->hasConstructor()) { - return $items; - } - $extendedMethodReflection = $attributeClassReflection->getConstructor(); - $parametersAcceptorWithPhpDocs = ParametersAcceptorSelector::selectSingle($extendedMethodReflection->getVariants()); - foreach ($items as $name => $item) { - foreach ($parametersAcceptorWithPhpDocs->getParameters() as $parameterReflection) { - $correctedItem = $this->correctItemByParameterReflection($name, $item, $parameterReflection); - if (!$correctedItem instanceof Expr) { - continue; - } - $items[$name] = $correctedItem; - continue 2; - } - } - return $items; - } - /** - * @param string|int $name - * @param mixed $item - */ - private function correctItemByParameterReflection($name, $item, ParameterReflection $parameterReflection) : ?\PhpParser\Node\Expr - { - if (!$item instanceof Expr) { - return null; - } - if ($name !== $parameterReflection->getName()) { - return null; - } - $parameterType = $parameterReflection->getType(); - $currentType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($item); - // all good - if ($parameterType->accepts($currentType, \false)->yes()) { - return null; - } - $clearParameterType = TypeCombinator::removeNull($parameterType); - // correct type - if ($clearParameterType->isInteger()->yes() && $item instanceof String_) { - return new LNumber((int) $item->value); - } - if ($clearParameterType->isBoolean()->yes() && $item instanceof String_) { - if (\strtolower($item->value) === 'true') { - return $this->nodeFactory->createTrue(); - } - if (\strtolower($item->value) === 'false') { - return $this->nodeFactory->createFalse(); - } - } - return null; - } -} diff --git a/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php b/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php index d7cd99f23..11a802b4f 100644 --- a/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php +++ b/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\BuilderHelpers; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php index 0f0fa60d2..495829b79 100644 --- a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php +++ b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php @@ -7,7 +7,11 @@ use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrayItem; +use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; +use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Use_; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; @@ -15,7 +19,6 @@ use Rector\Php80\ValueObject\AnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector; /** * @see \Rector\Tests\PhpAttribute\Printer\PhpAttributeGroupFactoryTest */ @@ -36,22 +39,16 @@ final class PhpAttributeGroupFactory * @var \Rector\PhpAttribute\NodeFactory\NamedArgsFactory */ private $namedArgsFactory; - /** - * @readonly - * @var \Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector - */ - private $exprParameterReflectionTypeCorrector; /** * @readonly * @var \Rector\PhpAttribute\AttributeArrayNameInliner */ private $attributeArrayNameInliner; - public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, ExprParameterReflectionTypeCorrector $exprParameterReflectionTypeCorrector, AttributeArrayNameInliner $attributeArrayNameInliner) + public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, AttributeArrayNameInliner $attributeArrayNameInliner) { $this->annotationToAttributeMapper = $annotationToAttributeMapper; $this->attributeNameFactory = $attributeNameFactory; $this->namedArgsFactory = $namedArgsFactory; - $this->exprParameterReflectionTypeCorrector = $exprParameterReflectionTypeCorrector; $this->attributeArrayNameInliner = $attributeArrayNameInliner; } public function createFromSimpleTag(AnnotationToAttribute $annotationToAttribute) : AttributeGroup @@ -81,26 +78,60 @@ public function createFromClassWithItems(string $attributeClass, array $items) : public function create(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode, AnnotationToAttribute $annotationToAttribute, array $uses) : AttributeGroup { $values = $doctrineAnnotationTagValueNode->getValuesWithSilentKey(); - $args = $this->createArgsFromItems($values, $annotationToAttribute->getAttributeClass()); + $args = $this->createArgsFromItems($values, $annotationToAttribute->getAttributeClass(), $annotationToAttribute->getClassReferenceFields()); $args = $this->attributeArrayNameInliner->inlineArrayToArgs($args); $attributeName = $this->attributeNameFactory->create($annotationToAttribute, $doctrineAnnotationTagValueNode, $uses); // keep FQN in the attribute, so it can be easily detected later $attributeName->setAttribute(AttributeKey::PHP_ATTRIBUTE_NAME, $annotationToAttribute->getAttributeClass()); $attribute = new Attribute($attributeName, $args); - return new AttributeGroup([$attribute]); + $attributeGroup = new AttributeGroup([$attribute]); + $comment = $doctrineAnnotationTagValueNode->getAttribute(AttributeKey::ATTRIBUTE_COMMENT); + if ($comment) { + $attributeGroup->setAttribute(AttributeKey::ATTRIBUTE_COMMENT, $comment); + } + return $attributeGroup; } /** * @api tests * * @param ArrayItemNode[]|mixed[] $items + * @param string[] $classReferencedFields * @return Arg[] */ - public function createArgsFromItems(array $items, string $attributeClass) : array + public function createArgsFromItems(array $items, string $attributeClass, array $classReferencedFields = []) : array { - /** @var Expr[]|Expr\Array_ $mappedItems */ $mappedItems = $this->annotationToAttributeMapper->map($items); - $mappedItems = $this->exprParameterReflectionTypeCorrector->correctItemsByAttributeClass($mappedItems, $attributeClass); + $this->mapClassReferences($mappedItems, $classReferencedFields); + $values = $mappedItems instanceof Array_ ? $mappedItems->items : $mappedItems; // the key here should contain the named argument - return $this->namedArgsFactory->createFromValues($mappedItems); + return $this->namedArgsFactory->createFromValues($values); + } + /** + * @param string[] $classReferencedFields + * @param \PhpParser\Node\Expr|string $expr + */ + private function mapClassReferences($expr, array $classReferencedFields) : void + { + if (!$expr instanceof Array_) { + return; + } + foreach ($expr->items as $arrayItem) { + if (!$arrayItem instanceof ArrayItem) { + continue; + } + if (!$arrayItem->key instanceof String_) { + continue; + } + if (!\in_array($arrayItem->key->value, $classReferencedFields)) { + continue; + } + if ($arrayItem->value instanceof ClassConstFetch) { + continue; + } + if (!$arrayItem->value instanceof String_) { + continue; + } + $arrayItem->value = new ClassConstFetch(new FullyQualified($arrayItem->value->value), 'class'); + } } } diff --git a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 73e73836a..963f20e93 100644 --- a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -3,24 +3,30 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; -use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; +use PhpParser\Node\Stmt\Nop; use PhpParser\Node\Stmt\Use_; +use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; +use Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory; +use Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator; +use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser; use Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\CurlyListNode; +use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; use Rector\Exception\ShouldNotHappenException; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\Php80\ValueObject\AnnotationPropertyToAttributeClass; use Rector\Php80\ValueObject\NestedAnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector; +use RectorPrefix202403\Webmozart\Assert\Assert; final class PhpNestedAttributeGroupFactory { /** @@ -40,21 +46,27 @@ final class PhpNestedAttributeGroupFactory private $namedArgsFactory; /** * @readonly - * @var \Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector + * @var \Rector\PhpAttribute\AttributeArrayNameInliner */ - private $exprParameterReflectionTypeCorrector; + private $attributeArrayNameInliner; /** * @readonly - * @var \Rector\PhpAttribute\AttributeArrayNameInliner + * @var \Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory */ - private $attributeArrayNameInliner; - public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, ExprParameterReflectionTypeCorrector $exprParameterReflectionTypeCorrector, AttributeArrayNameInliner $attributeArrayNameInliner) + private $tokenIteratorFactory; + /** + * @readonly + * @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser + */ + private $staticDoctrineAnnotationParser; + public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, AttributeArrayNameInliner $attributeArrayNameInliner, TokenIteratorFactory $tokenIteratorFactory, StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser) { $this->annotationToAttributeMapper = $annotationToAttributeMapper; $this->attributeNameFactory = $attributeNameFactory; $this->namedArgsFactory = $namedArgsFactory; - $this->exprParameterReflectionTypeCorrector = $exprParameterReflectionTypeCorrector; $this->attributeArrayNameInliner = $attributeArrayNameInliner; + $this->tokenIteratorFactory = $tokenIteratorFactory; + $this->staticDoctrineAnnotationParser = $staticDoctrineAnnotationParser; } /** * @param Use_[] $uses @@ -63,7 +75,7 @@ public function create(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValu { $values = $doctrineAnnotationTagValueNode->getValues(); $values = $this->removeItems($values, $nestedAnnotationToAttribute); - $args = $this->createArgsFromItems($values, $nestedAnnotationToAttribute); + $args = $this->createArgsFromItems($values); $args = $this->attributeArrayNameInliner->inlineArrayToArgs($args); $attributeName = $this->attributeNameFactory->create($nestedAnnotationToAttribute, $doctrineAnnotationTagValueNode, $uses); $attribute = new Attribute($attributeName, $args); @@ -88,7 +100,7 @@ public function createNested(DoctrineAnnotationTagValueNode $doctrineAnnotationT if (!$nestedArrayItemNode->value instanceof DoctrineAnnotationTagValueNode) { continue; } - $attributeArgs = $this->createAttributeArgs($nestedArrayItemNode->value, $nestedAnnotationToAttribute); + $attributeArgs = $this->createAttributeArgs($nestedArrayItemNode->value); $originalIdentifier = $doctrineAnnotationTagValueNode->identifierTypeNode->name; $attributeName = $this->resolveAliasedAttributeName($originalIdentifier, $nestedAnnotationPropertyToAttributeClass); $attribute = new Attribute($attributeName, $attributeArgs); @@ -100,21 +112,20 @@ public function createNested(DoctrineAnnotationTagValueNode $doctrineAnnotationT /** * @return Arg[] */ - private function createAttributeArgs(DoctrineAnnotationTagValueNode $nestedDoctrineAnnotationTagValueNode, NestedAnnotationToAttribute $nestedAnnotationToAttribute) : array + private function createAttributeArgs(DoctrineAnnotationTagValueNode $nestedDoctrineAnnotationTagValueNode) : array { - $args = $this->createArgsFromItems($nestedDoctrineAnnotationTagValueNode->getValues(), $nestedAnnotationToAttribute); + $args = $this->createArgsFromItems($nestedDoctrineAnnotationTagValueNode->getValues()); return $this->attributeArrayNameInliner->inlineArrayToArgs($args); } /** * @param ArrayItemNode[] $arrayItemNodes * @return Arg[] */ - private function createArgsFromItems(array $arrayItemNodes, NestedAnnotationToAttribute $nestedAnnotationToAttribute) : array + private function createArgsFromItems(array $arrayItemNodes) : array { - /** @var Expr[]|Expr\Array_ $arrayItemNodes */ $arrayItemNodes = $this->annotationToAttributeMapper->map($arrayItemNodes); - $arrayItemNodes = $this->exprParameterReflectionTypeCorrector->correctItemsByAttributeClass($arrayItemNodes, $nestedAnnotationToAttribute->getTag()); - return $this->namedArgsFactory->createFromValues($arrayItemNodes); + $values = $arrayItemNodes instanceof Array_ ? $arrayItemNodes->items : $arrayItemNodes; + return $this->namedArgsFactory->createFromValues($values); } /** * @todo improve this hardcoded approach later @@ -169,9 +180,21 @@ private function createFromExplicitProperties(NestedAnnotationToAttribute $neste foreach ($nestedArrayItemNode->value->getValues() as $arrayItemNode) { $nestedDoctrineAnnotationTagValueNode = $arrayItemNode->value; if (!$nestedDoctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { - throw new ShouldNotHappenException(); + Assert::string($nestedDoctrineAnnotationTagValueNode); + $match = Strings::match($nestedDoctrineAnnotationTagValueNode, DoctrineAnnotationDecorator::LONG_ANNOTATION_REGEX); + if (!isset($match['class_name'])) { + throw new ShouldNotHappenException(); + } + $identifierTypeNode = new IdentifierTypeNode($match['class_name']); + $identifierTypeNode->setAttribute(PhpDocAttributeKey::RESOLVED_CLASS, $match['class_name']); + $annotationContent = $match['annotation_content'] ?? ''; + $nestedTokenIterator = $this->tokenIteratorFactory->create($annotationContent); + // mimics doctrine behavior just in phpdoc-parser syntax :) + // https://github.com/doctrine/annotations/blob/c66f06b7c83e9a2a7523351a9d5a4b55f885e574/lib/Doctrine/Common/Annotations/DocParser.php#L742 + $values = $this->staticDoctrineAnnotationParser->resolveAnnotationMethodCall($nestedTokenIterator, new Nop()); + $nestedDoctrineAnnotationTagValueNode = new DoctrineAnnotationTagValueNode($identifierTypeNode, $match['annotation_content'] ?? '', $values); } - $attributeArgs = $this->createAttributeArgs($nestedDoctrineAnnotationTagValueNode, $nestedAnnotationToAttribute); + $attributeArgs = $this->createAttributeArgs($nestedDoctrineAnnotationTagValueNode); $originalIdentifier = $nestedDoctrineAnnotationTagValueNode->identifierTypeNode->name; $attributeName = $this->resolveAliasedAttributeName($originalIdentifier, $annotationPropertyToAttributeClass); if ($annotationPropertyToAttributeClass->doesNeedNewImport() && \count($attributeName->getParts()) === 1) { diff --git a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php index 6bed6baf2..b17458e05 100644 --- a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php +++ b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php @@ -16,7 +16,7 @@ use Rector\NodeAnalyzer\ClassAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest */ diff --git a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php index fd1df49b3..9e462a7db 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\PhpParser\Parser; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\Encapsed; diff --git a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php index a90f66311..f617c2122 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php @@ -3,12 +3,14 @@ declare (strict_types=1); namespace Rector\PhpParser\Parser; -use RectorPrefix202402\Nette\Utils\FileSystem; -use PhpParser\Node\Stmt; +use RectorPrefix202403\Nette\Utils\FileSystem; +use PhpParser\Node; +use PhpParser\Node\Stmt\Expression; use PhpParser\NodeTraverser; use PhpParser\Parser; use PhpParser\ParserFactory; use Rector\NodeTypeResolver\PHPStan\Scope\NodeVisitor\AssignedToNodeVisitor; +use Throwable; final class SimplePhpParser { /** @@ -24,13 +26,13 @@ final class SimplePhpParser public function __construct() { $parserFactory = new ParserFactory(); - $this->phpParser = $parserFactory->create(ParserFactory::PREFER_PHP7); + $this->phpParser = $parserFactory->create(ParserFactory::ONLY_PHP7); $this->nodeTraverser = new NodeTraverser(); $this->nodeTraverser->addVisitor(new AssignedToNodeVisitor()); } /** * @api tests - * @return Stmt[] + * @return Node[] */ public function parseFile(string $filePath) : array { @@ -38,14 +40,51 @@ public function parseFile(string $filePath) : array return $this->parseString($fileContent); } /** - * @return Stmt[] + * @return Node[] */ public function parseString(string $fileContent) : array { - $stmts = $this->phpParser->parse($fileContent); - if ($stmts === null) { + $fileContent = $this->ensureFileContentsHasOpeningTag($fileContent); + $hasAddedSemicolon = \false; + try { + $nodes = $this->phpParser->parse($fileContent); + } catch (Throwable $exception) { + // try adding missing closing semicolon ; + $fileContent .= ';'; + $hasAddedSemicolon = \true; + $nodes = $this->phpParser->parse($fileContent); + } + if ($nodes === null) { return []; } - return $this->nodeTraverser->traverse($stmts); + $nodes = $this->restoreExpressionPreWrap($nodes, $hasAddedSemicolon); + return $this->nodeTraverser->traverse($nodes); + } + private function ensureFileContentsHasOpeningTag(string $fileContent) : string + { + if (\strncmp(\trim($fileContent), 'expr]; } } diff --git a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php index a888a4a4a..5a3811f3d 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php @@ -3,9 +3,10 @@ declare (strict_types=1); namespace Rector\PhpParser\Printer; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node; +use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrowFunction; @@ -113,6 +114,15 @@ protected function p(Node $node, $parentFormatPreserved = \false) : string $content = parent::p($node, $parentFormatPreserved); return $node->getAttribute(AttributeKey::WRAPPED_IN_PARENTHESES) === \true ? '(' . $content . ')' : $content; } + protected function pAttributeGroup(AttributeGroup $attributeGroup) : string + { + $ret = parent::pAttributeGroup($attributeGroup); + $comment = $attributeGroup->getAttribute(AttributeKey::ATTRIBUTE_COMMENT); + if (!\in_array($comment, ['', null], \true)) { + $ret .= ' // ' . $comment; + } + return $ret; + } protected function pExpr_ArrowFunction(ArrowFunction $arrowFunction) : string { if (!$arrowFunction->hasAttribute(AttributeKey::COMMENT_CLOSURE_RETURN_MIRRORED)) { diff --git a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php index 1a061df4f..976d6c1da 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpParser\Printer; -use RectorPrefix202402\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem; use PhpParser\Node; use Rector\ValueObject\Application\File; /** diff --git a/vendor/rector/rector/src/PostRector/Contract/Rector/PostRectorInterface.php b/vendor/rector/rector/src/PostRector/Contract/Rector/PostRectorInterface.php index d91a45df5..e54878f4e 100644 --- a/vendor/rector/rector/src/PostRector/Contract/Rector/PostRectorInterface.php +++ b/vendor/rector/rector/src/PostRector/Contract/Rector/PostRectorInterface.php @@ -4,6 +4,9 @@ namespace Rector\PostRector\Contract\Rector; use PhpParser\NodeVisitor; +/** + * @internal + */ interface PostRectorInterface extends NodeVisitor { } diff --git a/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php b/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php index 0121fbda4..b4f7d55b2 100644 --- a/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php +++ b/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php @@ -3,7 +3,9 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; +use PhpParser\Comment; +use PhpParser\Comment\Doc; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -101,15 +103,31 @@ private function findNamesInDocBlocks($namespace) : array { $names = []; $this->simpleCallableNodeTraverser->traverseNodesWithCallable($namespace, function (Node $node) use(&$names) { - if (!$node->hasAttribute(AttributeKey::COMMENTS)) { + $comments = $node->getComments(); + if ($comments === []) { return null; } - $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); - $names = \array_merge($names, $phpDocInfo->getAnnotationClassNames()); - $constFetchNodeNames = $phpDocInfo->getConstFetchNodeClassNames(); - $names = \array_merge($names, $constFetchNodeNames); - $genericTagClassNames = $phpDocInfo->getGenericTagClassNames(); - $names = \array_merge($names, $genericTagClassNames); + $docs = \array_filter($comments, static function (Comment $comment) : bool { + return $comment instanceof Doc; + }); + if ($docs === []) { + return null; + } + $totalDocs = \count($docs); + foreach ($docs as $doc) { + $nodeToCheck = $totalDocs === 1 ? $node : clone $node; + if ($totalDocs > 1) { + $nodeToCheck->setDocComment($doc); + } + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($nodeToCheck); + $names = \array_merge($names, $phpDocInfo->getAnnotationClassNames()); + $constFetchNodeNames = $phpDocInfo->getConstFetchNodeClassNames(); + $names = \array_merge($names, $constFetchNodeNames); + $genericTagClassNames = $phpDocInfo->getGenericTagClassNames(); + $names = \array_merge($names, $genericTagClassNames); + $arrayItemTagClassNames = $phpDocInfo->getArrayItemNodeClassNames(); + $names = \array_merge($names, $arrayItemTagClassNames); + } }); return $names; } diff --git a/vendor/rector/rector/src/Skipper/Skipper/Skipper.php b/vendor/rector/rector/src/Skipper/Skipper/Skipper.php index dca269cfc..1c06d08e9 100644 --- a/vendor/rector/rector/src/Skipper/Skipper/Skipper.php +++ b/vendor/rector/rector/src/Skipper/Skipper/Skipper.php @@ -7,7 +7,7 @@ use Rector\Contract\Rector\RectorInterface; use Rector\ProcessAnalyzer\RectifiedAnalyzer; use Rector\Skipper\Contract\SkipVoterInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api * @see \Rector\Tests\Skipper\Skipper\SkipperTest diff --git a/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php index 392190fe5..d80e2215c 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php +++ b/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\Mapper; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PHPStan\Type\Accessory\AccessoryNonEmptyStringType; use PHPStan\Type\ArrayType; use PHPStan\Type\BooleanType; diff --git a/vendor/rector/rector/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php index dfc799f42..c2959860f 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php +++ b/vendor/rector/rector/src/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php @@ -9,7 +9,7 @@ use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\Type; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Tests\StaticTypeMapper\PhpDoc\PhpDocTypeMapperTest */ diff --git a/vendor/rector/rector/src/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php index a2d231ce2..5c54cd1e9 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php +++ b/vendor/rector/rector/src/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\PhpDocParser; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\NameScope; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; diff --git a/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index d24f247f8..7707239e6 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php +++ b/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\Stmt\UseUse; diff --git a/vendor/rector/rector/src/Testing/Fixture/FixtureFileFinder.php b/vendor/rector/rector/src/Testing/Fixture/FixtureFileFinder.php index ca4fbc72b..7411e6533 100644 --- a/vendor/rector/rector/src/Testing/Fixture/FixtureFileFinder.php +++ b/vendor/rector/rector/src/Testing/Fixture/FixtureFileFinder.php @@ -4,7 +4,7 @@ namespace Rector\Testing\Fixture; use Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Finder; +use RectorPrefix202403\Symfony\Component\Finder\Finder; final class FixtureFileFinder { /** diff --git a/vendor/rector/rector/src/Testing/Fixture/FixtureFileUpdater.php b/vendor/rector/rector/src/Testing/Fixture/FixtureFileUpdater.php index 95830414b..c9ae2905a 100644 --- a/vendor/rector/rector/src/Testing/Fixture/FixtureFileUpdater.php +++ b/vendor/rector/rector/src/Testing/Fixture/FixtureFileUpdater.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202402\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem; final class FixtureFileUpdater { /** diff --git a/vendor/rector/rector/src/Testing/Fixture/FixtureSplitter.php b/vendor/rector/rector/src/Testing/Fixture/FixtureSplitter.php index b00627b4e..99f57e061 100644 --- a/vendor/rector/rector/src/Testing/Fixture/FixtureSplitter.php +++ b/vendor/rector/rector/src/Testing/Fixture/FixtureSplitter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202402\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem; /** * @api */ diff --git a/vendor/rector/rector/src/Testing/Fixture/FixtureTempFileDumper.php b/vendor/rector/rector/src/Testing/Fixture/FixtureTempFileDumper.php index 8ecb0e385..b0200a025 100644 --- a/vendor/rector/rector/src/Testing/Fixture/FixtureTempFileDumper.php +++ b/vendor/rector/rector/src/Testing/Fixture/FixtureTempFileDumper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202402\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem; /** * @api used in tests */ diff --git a/vendor/rector/rector/src/Testing/PHPUnit/AbstractRectorTestCase.php b/vendor/rector/rector/src/Testing/PHPUnit/AbstractRectorTestCase.php index 25b69c216..0551b8633 100644 --- a/vendor/rector/rector/src/Testing/PHPUnit/AbstractRectorTestCase.php +++ b/vendor/rector/rector/src/Testing/PHPUnit/AbstractRectorTestCase.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; -use RectorPrefix202402\Illuminate\Container\RewindableGenerator; +use RectorPrefix202403\Illuminate\Container\RewindableGenerator; use Iterator; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Strings; use PHPUnit\Framework\ExpectationFailedException; use Rector\Application\ApplicationFileProcessor; use Rector\Autoloading\AdditionalAutoloader; @@ -77,7 +77,7 @@ protected function setUp() : void /** @var ResetableInterface $resetable */ $resetable->reset(); } - $this->forgetRectorsRulesAndCollectors(); + $this->forgetRectorsRules(); $rectorConfig->resetRuleConfigurations(); // this has to be always empty, so we can add new rules with their configuration $this->assertEmpty($rectorConfig->tagged(RectorInterface::class)); @@ -136,7 +136,7 @@ protected function doTestFile(string $fixtureFilePath) : void FileSystem::write($inputFilePath, $inputFileContents, null); $this->doTestFileMatchesExpectedContent($inputFilePath, $inputFileContents, $expectedFileContents, $fixtureFilePath); } - protected function forgetRectorsRulesAndCollectors() : void + private function forgetRectorsRules() : void { $rectorConfig = self::getContainer(); // 1. forget tagged services diff --git a/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php b/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php index feb6c4757..ce6124545 100644 --- a/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php +++ b/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\TestingParser; -use RectorPrefix202402\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\FileSystem; use PhpParser\Node; use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; diff --git a/vendor/rector/rector/src/Util/MemoryLimiter.php b/vendor/rector/rector/src/Util/MemoryLimiter.php index 77ad7980e..37c369637 100644 --- a/vendor/rector/rector/src/Util/MemoryLimiter.php +++ b/vendor/rector/rector/src/Util/MemoryLimiter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\ValueObject\Configuration; /** diff --git a/vendor/rector/rector/src/Util/NewLineSplitter.php b/vendor/rector/rector/src/Util/NewLineSplitter.php new file mode 100644 index 000000000..8f0ddf030 --- /dev/null +++ b/vendor/rector/rector/src/Util/NewLineSplitter.php @@ -0,0 +1,21 @@ +PhpParser(.*?))\\(#ms'; + /** + * @var string + * @see https://regex101.com/r/uQFuvL/1 + */ + private const PROPERTY_KEY_REGEX = '#(?[\\w\\d]+)\\:#'; + public function __construct(SymfonyStyle $symfonyStyle) + { + $this->symfonyStyle = $symfonyStyle; + } + /** + * @param Node|Node[] $nodes + */ + public function printNodes($nodes) : void + { + $dumpedNodesContents = SimpleNodeDumper::dump($nodes); + // colorize + $colorContents = $this->addConsoleColors($dumpedNodesContents); + $this->symfonyStyle->writeln($colorContents); + $this->symfonyStyle->newLine(); + } + private function addConsoleColors(string $contents) : string + { + // decorate class names + $colorContents = Strings::replace($contents, self::CLASS_NAME_REGEX, static function (array $match) : string { + return '' . $match['class_name'] . '('; + }); + // decorate keys + return Strings::replace($colorContents, self::PROPERTY_KEY_REGEX, static function (array $match) : string { + return '' . $match['key'] . ':'; + }); + } +} diff --git a/vendor/rector/rector/src/Util/StringUtils.php b/vendor/rector/rector/src/Util/StringUtils.php index eac3eebbc..6fb40e27c 100644 --- a/vendor/rector/rector/src/Util/StringUtils.php +++ b/vendor/rector/rector/src/Util/StringUtils.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; final class StringUtils { public static function isMatch(string $value, string $regex) : bool diff --git a/vendor/rector/rector/src/Validation/RectorAssert.php b/vendor/rector/rector/src/Validation/RectorAssert.php index 1c49980a8..094cd0322 100644 --- a/vendor/rector/rector/src/Validation/RectorAssert.php +++ b/vendor/rector/rector/src/Validation/RectorAssert.php @@ -4,7 +4,7 @@ namespace Rector\Validation; use Rector\Util\StringUtils; -use RectorPrefix202402\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; /** * @see \Rector\Tests\Validation\RectorAssertTest */ diff --git a/vendor/rector/rector/src/ValueObject/Configuration.php b/vendor/rector/rector/src/ValueObject/Configuration.php index d3aacbacf..75142e93e 100644 --- a/vendor/rector/rector/src/ValueObject/Configuration.php +++ b/vendor/rector/rector/src/ValueObject/Configuration.php @@ -4,7 +4,7 @@ namespace Rector\ValueObject; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class Configuration { /** diff --git a/vendor/rector/rector/src/ValueObject/Error/SystemError.php b/vendor/rector/rector/src/ValueObject/Error/SystemError.php index ed50dda9d..1f0e1ec7f 100644 --- a/vendor/rector/rector/src/ValueObject/Error/SystemError.php +++ b/vendor/rector/rector/src/ValueObject/Error/SystemError.php @@ -4,7 +4,7 @@ namespace Rector\ValueObject\Error; use Rector\Parallel\ValueObject\BridgeItem; -use RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; final class SystemError implements SerializableInterface { /** @@ -61,7 +61,7 @@ public function jsonSerialize() : array * @param mixed[] $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface { return new self($json[BridgeItem::MESSAGE], $json[BridgeItem::RELATIVE_FILE_PATH], $json[BridgeItem::LINE], $json[BridgeItem::RECTOR_CLASS]); } diff --git a/vendor/rector/rector/src/ValueObject/FileProcessResult.php b/vendor/rector/rector/src/ValueObject/FileProcessResult.php index df8bac181..55737a4b0 100644 --- a/vendor/rector/rector/src/ValueObject/FileProcessResult.php +++ b/vendor/rector/rector/src/ValueObject/FileProcessResult.php @@ -5,7 +5,7 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class FileProcessResult { /** diff --git a/vendor/rector/rector/src/ValueObject/ProcessResult.php b/vendor/rector/rector/src/ValueObject/ProcessResult.php index ec019a4ce..53c298200 100644 --- a/vendor/rector/rector/src/ValueObject/ProcessResult.php +++ b/vendor/rector/rector/src/ValueObject/ProcessResult.php @@ -5,7 +5,7 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class ProcessResult { /** diff --git a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php index 887af15b6..38e2a31bf 100644 --- a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php +++ b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\ValueObject\Reporting; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Contract\Rector\RectorInterface; use Rector\Parallel\ValueObject\BridgeItem; -use RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202403\Webmozart\Assert\Assert; final class FileDiff implements SerializableInterface { /** @@ -101,7 +101,7 @@ public function jsonSerialize() : array * @param array $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202402\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface { $rectorWithLineChanges = []; foreach ($json[BridgeItem::RECTORS_WITH_LINE_CHANGES] as $rectorWithLineChangesJson) { diff --git a/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php b/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php index 06c71d609..6dd02d806 100644 --- a/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php +++ b/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php @@ -48,6 +48,10 @@ public function shouldSkipClassMethod(ClassMethod $classMethod, Scope $scope) : if ($this->magicClassMethodAnalyzer->isUnsafeOverridden($classMethod)) { return \true; } + // except magic check on above, early allow add return type on private method + if ($classMethod->isPrivate()) { + return \false; + } $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); if (!$classReflection instanceof ClassReflection) { return \true; diff --git a/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnVendorLockResolver.php b/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnVendorLockResolver.php index 34061dee7..77cfdc7e8 100644 --- a/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnVendorLockResolver.php +++ b/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnVendorLockResolver.php @@ -28,6 +28,9 @@ public function __construct(NodeNameResolver $nodeNameResolver, ReflectionResolv } public function isVendorLocked(ClassMethod $classMethod) : bool { + if ($classMethod->isPrivate()) { + return \false; + } $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); if (!$classReflection instanceof ClassReflection) { return \false; diff --git a/vendor/rector/rector/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php b/vendor/rector/rector/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php index bd661ee4a..376b93fc2 100644 --- a/vendor/rector/rector/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php +++ b/vendor/rector/rector/src/VendorLocker/ParentClassMethodTypeOverrideGuard.php @@ -53,6 +53,10 @@ public function __construct(NodeNameResolver $nodeNameResolver, ReflectionResolv */ public function hasParentClassMethod($classMethod) : bool { + // early got false on private method + if ($classMethod->isPrivate()) { + return \false; + } try { $parentClassMethod = $this->resolveParentClassMethod($classMethod); return $parentClassMethod instanceof MethodReflection; diff --git a/vendor/rector/rector/src/functions/node_helper.php b/vendor/rector/rector/src/functions/node_helper.php index 64e3228d1..931d2008b 100644 --- a/vendor/rector/rector/src/functions/node_helper.php +++ b/vendor/rector/rector/src/functions/node_helper.php @@ -1,10 +1,14 @@ make(SymfonyStyleFactory::class)->create(); + // we turn up the verbosity so it's visible in tests overriding the + // default which is to be quite during tests + $symfonyStyle->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); + $symfonyStyle->newLine(); + $nodePrinter = new NodePrinter($symfonyStyle); + $nodePrinter->printNodes($node); + } +} diff --git a/vendor/rector/rector/stubs-rector/Internal/Constants.php b/vendor/rector/rector/stubs-rector/Internal/Constants.php new file mode 100644 index 000000000..eab3c121c --- /dev/null +++ b/vendor/rector/rector/stubs-rector/Internal/Constants.php @@ -0,0 +1,19 @@ +' diff --git a/vendor/rector/rector/vendor/autoload.php b/vendor/rector/rector/vendor/autoload.php index d2d108fd0..68cafede4 100644 --- a/vendor/rector/rector/vendor/autoload.php +++ b/vendor/rector/rector/vendor/autoload.php @@ -22,4 +22,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3::getLoader(); +return ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54::getLoader(); diff --git a/vendor/rector/rector/vendor/bin/php-parse b/vendor/rector/rector/vendor/bin/php-parse index eab336276..be1439c2b 100755 --- a/vendor/rector/rector/vendor/bin/php-parse +++ b/vendor/rector/rector/vendor/bin/php-parse @@ -8,12 +8,12 @@ * * @generated */ -namespace RectorPrefix202402\Composer; +namespace RectorPrefix202403\Composer; $GLOBALS['_composer_bin_dir'] = __DIR__; $GLOBALS['_composer_autoload_path'] = __DIR__ . '/..' . '/autoload.php'; if (\PHP_VERSION_ID < 80000) { - if (!\class_exists('RectorPrefix202402\\Composer\\BinProxyWrapper')) { + if (!\class_exists('RectorPrefix202403\\Composer\\BinProxyWrapper')) { /** * @internal */ @@ -87,7 +87,7 @@ if (\PHP_VERSION_ID < 80000) { } } } - if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202402\\Composer\\BinProxyWrapper')) { + if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202403\\Composer\\BinProxyWrapper')) { return include "phpvfscomposer://" . __DIR__ . '/..' . '/nikic/php-parser/bin/php-parse'; } } diff --git a/vendor/rector/rector/vendor/bin/yaml-lint b/vendor/rector/rector/vendor/bin/yaml-lint new file mode 100755 index 000000000..7e59c8d75 --- /dev/null +++ b/vendor/rector/rector/vendor/bin/yaml-lint @@ -0,0 +1,94 @@ +#!/usr/bin/env php +realpath = \realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = \fopen($this->realpath, $mode); + $this->position = 0; + return (bool) $this->handle; + } + public function stream_read($count) + { + $data = \fread($this->handle, $count); + if ($this->position === 0) { + $data = \preg_replace('{^#!.*\\r?\\n}', '', $data); + } + $this->position += \strlen($data); + return $data; + } + public function stream_cast($castAs) + { + return $this->handle; + } + public function stream_close() + { + \fclose($this->handle); + } + public function stream_lock($operation) + { + return $operation ? \flock($this->handle, $operation) : \true; + } + public function stream_seek($offset, $whence) + { + if (0 === \fseek($this->handle, $offset, $whence)) { + $this->position = \ftell($this->handle); + return \true; + } + return \false; + } + public function stream_tell() + { + return $this->position; + } + public function stream_eof() + { + return \feof($this->handle); + } + public function stream_stat() + { + return array(); + } + public function stream_set_option($option, $arg1, $arg2) + { + return \true; + } + public function url_stat($path, $flags) + { + $path = \substr($path, 17); + if (\file_exists($path)) { + return \stat($path); + } + return \false; + } + } + } + if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202403\\Composer\\BinProxyWrapper')) { + return include "phpvfscomposer://" . __DIR__ . '/..' . '/symfony/yaml/Resources/bin/yaml-lint'; + } +} +return include __DIR__ . '/..' . '/symfony/yaml/Resources/bin/yaml-lint'; diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json index 9200d7cec..c3c31bf97 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json +++ b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json @@ -27,12 +27,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202403\\Clue\\React\\NDJson\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Clue\\Tests\\React\\NDJson\\": "tests\/" + "RectorPrefix202403\\Clue\\Tests\\React\\NDJson\\": "tests\/" } } } \ No newline at end of file diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php index 5ac02fd26..ac9622dc2 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php +++ b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php @@ -1,11 +1,11 @@ $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', 'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'RectorPrefix202402\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202402\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202402\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', - 'RectorPrefix202402\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', - 'RectorPrefix202402\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202402\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', - 'RectorPrefix202402\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', - 'RectorPrefix202402\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', - 'RectorPrefix202402\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', - 'RectorPrefix202402\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202402\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202402\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202402\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202402\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202402\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', - 'RectorPrefix202402\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202402\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202402\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202402\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202402\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202402\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202402\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202402\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', - 'RectorPrefix202402\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202402\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202402\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202402\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202402\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202402\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202402\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202402\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202402\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202402\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202402\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202402\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202402\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202402\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202402\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202402\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202402\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202402\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202402\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202402\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202402\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202402\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202402\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202402\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202402\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202402\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202402\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202402\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202402\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202402\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202402\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202402\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', - 'RectorPrefix202402\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', - 'RectorPrefix202402\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', - 'RectorPrefix202402\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202402\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', - 'RectorPrefix202402\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', - 'RectorPrefix202402\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202402\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202402\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', - 'RectorPrefix202402\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', - 'RectorPrefix202402\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', - 'RectorPrefix202402\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202402\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202402\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202402\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202402\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202402\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', - 'RectorPrefix202402\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202402\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202402\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202402\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', - 'RectorPrefix202402\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202402\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202402\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202402\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', - 'RectorPrefix202402\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202402\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', - 'RectorPrefix202402\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202402\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202402\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', - 'RectorPrefix202402\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202402\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202402\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202402\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202402\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202402\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', - 'RectorPrefix202402\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', - 'RectorPrefix202402\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202402\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', - 'RectorPrefix202402\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202402\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202402\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', - 'RectorPrefix202402\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202402\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202402\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', - 'RectorPrefix202402\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202402\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202402\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202402\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202402\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', - 'RectorPrefix202402\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202402\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202402\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202402\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202403\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202403\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202403\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', + 'RectorPrefix202403\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', + 'RectorPrefix202403\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202403\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'RectorPrefix202403\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'RectorPrefix202403\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'RectorPrefix202403\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'RectorPrefix202403\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202403\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202403\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202403\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202403\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202403\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', + 'RectorPrefix202403\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202403\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202403\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202403\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202403\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202403\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202403\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202403\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', + 'RectorPrefix202403\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202403\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202403\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202403\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202403\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202403\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202403\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202403\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202403\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202403\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202403\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202403\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202403\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202403\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202403\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202403\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202403\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202403\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202403\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202403\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202403\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202403\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202403\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202403\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202403\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202403\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202403\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202403\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202403\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202403\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202403\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202403\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', + 'RectorPrefix202403\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', + 'RectorPrefix202403\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', + 'RectorPrefix202403\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202403\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', + 'RectorPrefix202403\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', + 'RectorPrefix202403\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202403\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202403\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', + 'RectorPrefix202403\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', + 'RectorPrefix202403\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', + 'RectorPrefix202403\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202403\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202403\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202403\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202403\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202403\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', + 'RectorPrefix202403\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202403\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202403\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202403\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', + 'RectorPrefix202403\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202403\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202403\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202403\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', + 'RectorPrefix202403\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202403\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', + 'RectorPrefix202403\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202403\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202403\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', + 'RectorPrefix202403\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202403\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202403\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202403\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202403\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202403\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', + 'RectorPrefix202403\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', + 'RectorPrefix202403\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202403\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', + 'RectorPrefix202403\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202403\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202403\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', + 'RectorPrefix202403\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202403\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202403\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', + 'RectorPrefix202403\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202403\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202403\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202403\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202403\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', + 'RectorPrefix202403\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202403\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202403\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202403\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', 'Rector\\Application\\ApplicationFileProcessor' => $baseDir . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => $baseDir . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => $baseDir . '/src/Application/FileProcessor.php', @@ -983,6 +999,7 @@ 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\IntersectionTypeNodePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/IntersectionTypeNodePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\TemplatePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/TemplatePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\UnionTypeNodePhpDocNodeVisitor' => $baseDir . '/src/BetterPhpDocParser/PhpDocNodeVisitor/UnionTypeNodePhpDocNodeVisitor.php', + 'Rector\\BetterPhpDocParser\\PhpDocParser\\ArrayItemClassNameDecorator' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterPhpDocParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterTypeParser' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/BetterTypeParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\ClassAnnotationMatcher' => $baseDir . '/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php', @@ -1055,6 +1072,7 @@ 'Rector\\CodeQuality\\Rector\\ClassMethod\\OptionalParametersAfterRequiredRector' => $baseDir . '/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php', 'Rector\\CodeQuality\\Rector\\Class_\\CompleteDynamicPropertiesRector' => $baseDir . '/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php', 'Rector\\CodeQuality\\Rector\\Class_\\InlineConstructorDefaultToPropertyRector' => $baseDir . '/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php', + 'Rector\\CodeQuality\\Rector\\Class_\\StaticToSelfStaticMethodCallOnFinalClassRector' => $baseDir . '/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php', 'Rector\\CodeQuality\\Rector\\Concat\\JoinStringConcatRector' => $baseDir . '/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php', 'Rector\\CodeQuality\\Rector\\Empty_\\SimplifyEmptyCheckOnEmptyArrayRector' => $baseDir . '/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php', 'Rector\\CodeQuality\\Rector\\Equal\\UseIdenticalOverEqualWithSameTypeRector' => $baseDir . '/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php', @@ -1170,12 +1188,13 @@ 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => $baseDir . '/src/Comments/NodeDocBlock/DocBlockUpdater.php', 'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => $baseDir . '/src/Comments/NodeTraverser/CommentRemovingNodeTraverser.php', 'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => $baseDir . '/src/Comments/NodeVisitor/CommentRemovingNodeVisitor.php', + 'Rector\\Config\\Level\\DeadCodeLevel' => $baseDir . '/src/Config/Level/DeadCodeLevel.php', + 'Rector\\Config\\Level\\TypeDeclarationLevel' => $baseDir . '/src/Config/Level/TypeDeclarationLevel.php', 'Rector\\Config\\RectorConfig' => $baseDir . '/src/Config/RectorConfig.php', + 'Rector\\Config\\RegisteredService' => $baseDir . '/src/Config/RegisteredService.php', 'Rector\\Configuration\\ConfigInitializer' => $baseDir . '/src/Configuration/ConfigInitializer.php', 'Rector\\Configuration\\ConfigurationFactory' => $baseDir . '/src/Configuration/ConfigurationFactory.php', - 'Rector\\Configuration\\Levels\\DeadCodeLevel' => $baseDir . '/src/Configuration/Levels/DeadCodeLevel.php', 'Rector\\Configuration\\Levels\\LevelRulesResolver' => $baseDir . '/src/Configuration/Levels/LevelRulesResolver.php', - 'Rector\\Configuration\\Levels\\TypeCoverageLevel' => $baseDir . '/src/Configuration/Levels/TypeCoverageLevel.php', 'Rector\\Configuration\\Option' => $baseDir . '/src/Configuration/Option.php', 'Rector\\Configuration\\Parameter\\SimpleParameterProvider' => $baseDir . '/src/Configuration/Parameter/SimpleParameterProvider.php', 'Rector\\Configuration\\PhpLevelSetResolver' => $baseDir . '/src/Configuration/PhpLevelSetResolver.php', @@ -1183,6 +1202,7 @@ 'Rector\\Configuration\\RenamedClassesDataCollector' => $baseDir . '/src/Configuration/RenamedClassesDataCollector.php', 'Rector\\Configuration\\VendorMissAnalyseGuard' => $baseDir . '/src/Configuration/VendorMissAnalyseGuard.php', 'Rector\\Console\\Command\\CustomRuleCommand' => $baseDir . '/src/Console/Command/CustomRuleCommand.php', + 'Rector\\Console\\Command\\DetectNodeCommand' => $baseDir . '/src/Console/Command/DetectNodeCommand.php', 'Rector\\Console\\Command\\ListRulesCommand' => $baseDir . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Console\\Command\\ProcessCommand' => $baseDir . '/src/Console/Command/ProcessCommand.php', 'Rector\\Console\\Command\\SetupCICommand' => $baseDir . '/src/Console/Command/SetupCICommand.php', @@ -1195,11 +1215,13 @@ 'Rector\\Console\\ProcessConfigureDecorator' => $baseDir . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Console\\Style\\RectorStyle' => $baseDir . '/src/Console/Style/RectorStyle.php', 'Rector\\Console\\Style\\SymfonyStyleFactory' => $baseDir . '/src/Console/Style/SymfonyStyleFactory.php', + 'Rector\\Contract\\DependencyInjection\\RelatedConfigInterface' => $baseDir . '/src/Contract/DependencyInjection/RelatedConfigInterface.php', 'Rector\\Contract\\DependencyInjection\\ResetableInterface' => $baseDir . '/src/Contract/DependencyInjection/ResetableInterface.php', 'Rector\\Contract\\PhpParser\\Node\\StmtsAwareInterface' => $baseDir . '/src/Contract/PhpParser/Node/StmtsAwareInterface.php', 'Rector\\Contract\\Rector\\ConfigurableRectorInterface' => $baseDir . '/src/Contract/Rector/ConfigurableRectorInterface.php', 'Rector\\Contract\\Rector\\RectorInterface' => $baseDir . '/src/Contract/Rector/RectorInterface.php', 'Rector\\Contract\\Rector\\ScopeAwareRectorInterface' => $baseDir . '/src/Contract/Rector/ScopeAwareRectorInterface.php', + 'Rector\\CustomRules\\SimpleNodeDumper' => $baseDir . '/src/CustomRules/SimpleNodeDumper.php', 'Rector\\DeadCode\\ConditionEvaluator' => $baseDir . '/rules/DeadCode/ConditionEvaluator.php', 'Rector\\DeadCode\\ConditionResolver' => $baseDir . '/rules/DeadCode/ConditionResolver.php', 'Rector\\DeadCode\\Contract\\ConditionInterface' => $baseDir . '/rules/DeadCode/Contract/ConditionInterface.php', @@ -1274,31 +1296,33 @@ 'Rector\\DependencyInjection\\RectorContainerFactory' => $baseDir . '/src/DependencyInjection/RectorContainerFactory.php', 'Rector\\Differ\\DefaultDiffer' => $baseDir . '/src/Differ/DefaultDiffer.php', 'Rector\\Doctrine\\Bundle210\\Rector\\Class_\\EventSubscriberInterfaceToAttributeRector' => $vendorDir . '/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\EmbeddableClassAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\EntityClassAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\InheritanceClassAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\SoftDeletableClassAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\TableClassAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\ColumnAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\EmbeddedPropertyAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\GedmoTimestampableAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdColumnAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdGeneratorAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\ManyToOneAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\OneToManyAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\YamlToAnnotationTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\Contract\\ClassAnnotationTransformerInterface' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php', - 'Rector\\Doctrine\\CodeQuality\\Contract\\PropertyAnnotationTransformerInterface' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAnnotationTransformerInterface.php', - 'Rector\\Doctrine\\CodeQuality\\DocTagNodeFactory' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/DocTagNodeFactory.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\EmbeddableClassAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\EntityClassAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\InheritanceClassAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\SoftDeletableClassAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\TableClassAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ColumnAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\EmbeddedPropertyAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\GedmoTimestampableAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdColumnAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdGeneratorAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinColumnAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ManyToOneAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\OneToManyAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\OrderByAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\YamlToAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\Contract\\ClassAttributeTransformerInterface' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAttributeTransformerInterface.php', + 'Rector\\Doctrine\\CodeQuality\\Contract\\PropertyAttributeTransformerInterface' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAttributeTransformerInterface.php', 'Rector\\Doctrine\\CodeQuality\\EntityMappingResolver' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\EntityMappingKey' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Enum/EntityMappingKey.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.php', - 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\ArrayItemNodeFactory' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php', + 'Rector\\Doctrine\\CodeQuality\\Helper\\NodeValueNormalizer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php', + 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\AttributeFactory' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\InitializeDefaultEntityCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\MoveCurrentDateTimeDefaultInEntityToConstructorRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/MoveCurrentDateTimeDefaultInEntityToConstructorRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\RemoveEmptyTableAttributeRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php', - 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\YamlToAnnotationsDoctrineMappingRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/YamlToAnnotationsDoctrineMappingRector.php', + 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\YamlToAttributeDoctrineMappingRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/YamlToAttributeDoctrineMappingRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\CorrectDefaultTypesOnEntityPropertyRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\ImproveDoctrineCollectionDocTypeInEntityRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/ImproveDoctrineCollectionDocTypeInEntityRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\MakeEntityDateTimePropertyDateTimeInterfaceRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/MakeEntityDateTimePropertyDateTimeInterfaceRector.php', @@ -1310,7 +1334,9 @@ 'Rector\\Doctrine\\CodeQuality\\Utils\\CaseStringHelper' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php', 'Rector\\Doctrine\\CodeQuality\\ValueObject\\EntityMapping' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', + 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', + 'Rector\\Doctrine\\Enum\\MappingClass' => $vendorDir . '/rector/rector-doctrine/src/Enum/MappingClass.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttrinationFinder' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php', @@ -1423,6 +1449,7 @@ 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', + 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\IfAndAnalyzer' => $baseDir . '/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\SimpleScalarAnalyzer' => $baseDir . '/rules/EarlyReturn/NodeAnalyzer/SimpleScalarAnalyzer.php', 'Rector\\EarlyReturn\\NodeFactory\\InvertedIfFactory' => $baseDir . '/rules/EarlyReturn/NodeFactory/InvertedIfFactory.php', @@ -1448,7 +1475,6 @@ 'Rector\\Exception\\VersionException' => $baseDir . '/src/Exception/VersionException.php', 'Rector\\FamilyTree\\NodeAnalyzer\\ClassChildAnalyzer' => $baseDir . '/src/FamilyTree/NodeAnalyzer/ClassChildAnalyzer.php', 'Rector\\FamilyTree\\Reflection\\FamilyRelationsAnalyzer' => $baseDir . '/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php', - 'Rector\\FileSystemRector\\Parser\\FileInfoParser' => $baseDir . '/src/FileSystemRector/Parser/FileInfoParser.php', 'Rector\\FileSystem\\FileAndDirectoryFilter' => $baseDir . '/src/FileSystem/FileAndDirectoryFilter.php', 'Rector\\FileSystem\\FilePathHelper' => $baseDir . '/src/FileSystem/FilePathHelper.php', 'Rector\\FileSystem\\FilesFinder' => $baseDir . '/src/FileSystem/FilesFinder.php', @@ -1823,7 +1849,9 @@ 'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => $baseDir . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php', 'Rector\\Php74\\Rector\\Ternary\\ParenthesizeNestedTernaryRector' => $baseDir . '/rules/Php74/Rector/Ternary/ParenthesizeNestedTernaryRector.php', 'Rector\\Php74\\Tokenizer\\ParenthesizedNestedTernaryAnalyzer' => $baseDir . '/rules/Php74/Tokenizer/ParenthesizedNestedTernaryAnalyzer.php', + 'Rector\\Php80\\AttributeDecorator\\DoctrineConverterAttributeDecorator' => $baseDir . '/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php', 'Rector\\Php80\\AttributeDecorator\\SensioParamConverterAttributeDecorator' => $baseDir . '/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php', + 'Rector\\Php80\\Contract\\ConverterAttributeDecoratorInterface' => $baseDir . '/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php', 'Rector\\Php80\\Contract\\StrStartWithMatchAndRefactorInterface' => $baseDir . '/rules/Php80/Contract/StrStartWithMatchAndRefactorInterface.php', 'Rector\\Php80\\Contract\\ValueObject\\AnnotationToAttributeInterface' => $baseDir . '/rules/Php80/Contract/ValueObject/AnnotationToAttributeInterface.php', 'Rector\\Php80\\DocBlock\\PropertyPromotionDocBlockMerger' => $baseDir . '/rules/Php80/DocBlock/PropertyPromotionDocBlockMerger.php', @@ -1905,7 +1933,6 @@ 'Rector\\PhpAttribute\\AttributeArrayNameInliner' => $baseDir . '/src/PhpAttribute/AttributeArrayNameInliner.php', 'Rector\\PhpAttribute\\Contract\\AnnotationToAttributeMapperInterface' => $baseDir . '/src/PhpAttribute/Contract/AnnotationToAttributeMapperInterface.php', 'Rector\\PhpAttribute\\Enum\\DocTagNodeState' => $baseDir . '/src/PhpAttribute/Enum/DocTagNodeState.php', - 'Rector\\PhpAttribute\\NodeAnalyzer\\ExprParameterReflectionTypeCorrector' => $baseDir . '/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php', 'Rector\\PhpAttribute\\NodeFactory\\AttributeNameFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/AttributeNameFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\NamedArgsFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/NamedArgsFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\PhpAttributeGroupFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php', @@ -1998,6 +2025,7 @@ 'Rector\\Renaming\\Rector\\ClassMethod\\RenameAnnotationRector' => $baseDir . '/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php', 'Rector\\Renaming\\Rector\\ConstFetch\\RenameConstantRector' => $baseDir . '/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php', 'Rector\\Renaming\\Rector\\FuncCall\\RenameFunctionRector' => $baseDir . '/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php', + 'Rector\\Renaming\\Rector\\FunctionLike\\RenameFunctionLikeParamWithinCallLikeArgRector' => $baseDir . '/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php', 'Rector\\Renaming\\Rector\\MethodCall\\RenameMethodRector' => $baseDir . '/rules/Renaming/Rector/MethodCall/RenameMethodRector.php', 'Rector\\Renaming\\Rector\\Name\\RenameClassRector' => $baseDir . '/rules/Renaming/Rector/Name/RenameClassRector.php', 'Rector\\Renaming\\Rector\\PropertyFetch\\RenamePropertyRector' => $baseDir . '/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php', @@ -2009,6 +2037,7 @@ 'Rector\\Renaming\\ValueObject\\RenameAnnotationByType' => $baseDir . '/rules/Renaming/ValueObject/RenameAnnotationByType.php', 'Rector\\Renaming\\ValueObject\\RenameClassAndConstFetch' => $baseDir . '/rules/Renaming/ValueObject/RenameClassAndConstFetch.php', 'Rector\\Renaming\\ValueObject\\RenameClassConstFetch' => $baseDir . '/rules/Renaming/ValueObject/RenameClassConstFetch.php', + 'Rector\\Renaming\\ValueObject\\RenameFunctionLikeParamWithinCallLikeArg' => $baseDir . '/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php', 'Rector\\Renaming\\ValueObject\\RenameProperty' => $baseDir . '/rules/Renaming/ValueObject/RenameProperty.php', 'Rector\\Renaming\\ValueObject\\RenameStaticMethod' => $baseDir . '/rules/Renaming/ValueObject/RenameStaticMethod.php', 'Rector\\Set\\Contract\\SetListInterface' => $baseDir . '/src/Set/Contract/SetListInterface.php', @@ -2265,6 +2294,7 @@ 'Rector\\Transform\\Rector\\Class_\\AddInterfaceByTraitRector' => $baseDir . '/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php', 'Rector\\Transform\\Rector\\Class_\\MergeInterfacesRector' => $baseDir . '/rules/Transform/Rector/Class_/MergeInterfacesRector.php', 'Rector\\Transform\\Rector\\Class_\\ParentClassToTraitsRector' => $baseDir . '/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php', + 'Rector\\Transform\\Rector\\ConstFetch\\ConstFetchToClassConstFetchRector' => $baseDir . '/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php', 'Rector\\Transform\\Rector\\FileWithoutNamespace\\RectorConfigBuilderRector' => $baseDir . '/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php', 'Rector\\Transform\\Rector\\FuncCall\\FuncCallToConstFetchRector' => $baseDir . '/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php', 'Rector\\Transform\\Rector\\FuncCall\\FuncCallToMethodCallRector' => $baseDir . '/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php', @@ -2281,6 +2311,7 @@ 'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => $baseDir . '/rules/Transform/Rector/String_/StringToClassConstantRector.php', 'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php', 'Rector\\Transform\\ValueObject\\ClassMethodReference' => $baseDir . '/rules/Transform/ValueObject/ClassMethodReference.php', + 'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php', 'Rector\\Transform\\ValueObject\\FuncCallToMethodCall' => $baseDir . '/rules/Transform/ValueObject/FuncCallToMethodCall.php', 'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => $baseDir . '/rules/Transform/ValueObject/FuncCallToStaticCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => $baseDir . '/rules/Transform/ValueObject/MethodCallToFuncCall.php', @@ -2353,11 +2384,14 @@ 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\AddTestsVoidReturnTypeWhereNoReturnRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\ChildDoctrineRepositoryClassTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\MergeDateTimePropertyTypeDeclarationRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\ReturnTypeFromStrictTernaryRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php', 'Rector\\TypeDeclaration\\Rector\\Closure\\AddClosureVoidReturnTypeWhereNoReturnRector' => $baseDir . '/rules/TypeDeclaration/Rector/Closure/AddClosureVoidReturnTypeWhereNoReturnRector.php', 'Rector\\TypeDeclaration\\Rector\\Empty_\\EmptyOnNullableObjectToInstanceOfRector' => $baseDir . '/rules/TypeDeclaration/Rector/Empty_/EmptyOnNullableObjectToInstanceOfRector.php', + 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector' => $baseDir . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeSplFixedArrayRector' => $baseDir . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeSplFixedArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddReturnTypeDeclarationFromYieldsRector' => $baseDir . '/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php', 'Rector\\TypeDeclaration\\Rector\\Function_\\AddFunctionVoidReturnTypeWhereNoReturnRector' => $baseDir . '/rules/TypeDeclaration/Rector/Function_/AddFunctionVoidReturnTypeWhereNoReturnRector.php', @@ -2385,6 +2419,7 @@ 'Rector\\TypeDeclaration\\TypeInferer\\SplArrayFixedTypeNarrower' => $baseDir . '/rules/TypeDeclaration/TypeInferer/SplArrayFixedTypeNarrower.php', 'Rector\\TypeDeclaration\\TypeNormalizer' => $baseDir . '/rules/TypeDeclaration/TypeNormalizer.php', 'Rector\\TypeDeclaration\\ValueObject\\AddParamTypeDeclaration' => $baseDir . '/rules/TypeDeclaration/ValueObject/AddParamTypeDeclaration.php', + 'Rector\\TypeDeclaration\\ValueObject\\AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration' => $baseDir . '/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AddPropertyTypeDeclaration' => $baseDir . '/rules/TypeDeclaration/ValueObject/AddPropertyTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AddReturnTypeDeclaration' => $baseDir . '/rules/TypeDeclaration/ValueObject/AddReturnTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AssignToVariable' => $baseDir . '/rules/TypeDeclaration/ValueObject/AssignToVariable.php', @@ -2394,6 +2429,8 @@ 'Rector\\Util\\ArrayParametersMerger' => $baseDir . '/src/Util/ArrayParametersMerger.php', 'Rector\\Util\\FileHasher' => $baseDir . '/src/Util/FileHasher.php', 'Rector\\Util\\MemoryLimiter' => $baseDir . '/src/Util/MemoryLimiter.php', + 'Rector\\Util\\NewLineSplitter' => $baseDir . '/src/Util/NewLineSplitter.php', + 'Rector\\Util\\NodePrinter' => $baseDir . '/src/Util/NodePrinter.php', 'Rector\\Util\\PhpVersionFactory' => $baseDir . '/src/Util/PhpVersionFactory.php', 'Rector\\Util\\Reflection\\PrivatesAccessor' => $baseDir . '/src/Util/Reflection/PrivatesAccessor.php', 'Rector\\Util\\StringUtils' => $baseDir . '/src/Util/StringUtils.php', diff --git a/vendor/rector/rector/vendor/composer/autoload_files.php b/vendor/rector/rector/vendor/composer/autoload_files.php index e7ce77a83..fd67d90bf 100644 --- a/vendor/rector/rector/vendor/composer/autoload_files.php +++ b/vendor/rector/rector/vendor/composer/autoload_files.php @@ -7,7 +7,7 @@ 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', '30bca7fff093e8069bed7c55247e2bf8' => $baseDir . '/src/functions/node_helper.php', ); diff --git a/vendor/rector/rector/vendor/composer/autoload_psr4.php b/vendor/rector/rector/vendor/composer/autoload_psr4.php index dd9e7bd67..bbf61c9bb 100644 --- a/vendor/rector/rector/vendor/composer/autoload_psr4.php +++ b/vendor/rector/rector/vendor/composer/autoload_psr4.php @@ -14,33 +14,34 @@ 'Rector\\PHPUnit\\' => array($vendorDir . '/rector/rector-phpunit/src', $vendorDir . '/rector/rector-phpunit/rules'), 'Rector\\Doctrine\\' => array($vendorDir . '/rector/rector-doctrine/src', $vendorDir . '/rector/rector-doctrine/rules'), 'Rector\\' => array($baseDir . '/rules', $baseDir . '/src', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), - 'RectorPrefix202402\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'RectorPrefix202402\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'RectorPrefix202402\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'RectorPrefix202402\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'RectorPrefix202402\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'RectorPrefix202402\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), - 'RectorPrefix202402\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), - 'RectorPrefix202402\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), - 'RectorPrefix202402\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), - 'RectorPrefix202402\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), - 'RectorPrefix202402\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), - 'RectorPrefix202402\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), - 'RectorPrefix202402\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'RectorPrefix202402\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), - 'RectorPrefix202402\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'RectorPrefix202402\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), - 'RectorPrefix202402\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), - 'RectorPrefix202402\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), - 'RectorPrefix202402\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), - 'RectorPrefix202402\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), - 'RectorPrefix202402\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), - 'RectorPrefix202402\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), - 'RectorPrefix202402\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), - 'RectorPrefix202402\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), + 'RectorPrefix202403\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202403\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), + 'RectorPrefix202403\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), + 'RectorPrefix202403\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), + 'RectorPrefix202403\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'RectorPrefix202403\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), + 'RectorPrefix202403\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), + 'RectorPrefix202403\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), + 'RectorPrefix202403\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), + 'RectorPrefix202403\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), + 'RectorPrefix202403\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), + 'RectorPrefix202403\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), + 'RectorPrefix202403\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'RectorPrefix202403\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'RectorPrefix202403\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'RectorPrefix202403\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), + 'RectorPrefix202403\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), + 'RectorPrefix202403\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), + 'RectorPrefix202403\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), + 'RectorPrefix202403\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), + 'RectorPrefix202403\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), + 'RectorPrefix202403\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'RectorPrefix202403\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'RectorPrefix202403\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'), ); diff --git a/vendor/rector/rector/vendor/composer/autoload_real.php b/vendor/rector/rector/vendor/composer/autoload_real.php index d921b0e58..0697dccb9 100644 --- a/vendor/rector/rector/vendor/composer/autoload_real.php +++ b/vendor/rector/rector/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3 +class ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/rector/rector/vendor/composer/autoload_static.php b/vendor/rector/rector/vendor/composer/autoload_static.php index a02502e7c..8c2a12d2a 100644 --- a/vendor/rector/rector/vendor/composer/autoload_static.php +++ b/vendor/rector/rector/vendor/composer/autoload_static.php @@ -4,12 +4,12 @@ namespace Composer\Autoload; -class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 +class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 { 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', '30bca7fff093e8069bed7c55247e2bf8' => __DIR__ . '/../..' . '/src/functions/node_helper.php', ); @@ -27,33 +27,34 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\PHPUnit\\' => 15, 'Rector\\Doctrine\\' => 16, 'Rector\\' => 7, - 'RectorPrefix202402\\Webmozart\\Assert\\' => 36, - 'RectorPrefix202402\\Symplify\\EasyParallel\\' => 41, - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\' => 45, - 'RectorPrefix202402\\Symfony\\Component\\Process\\' => 45, - 'RectorPrefix202402\\Symfony\\Component\\Finder\\' => 44, - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\' => 48, - 'RectorPrefix202402\\Symfony\\Component\\Console\\' => 45, - 'RectorPrefix202402\\React\\Stream\\' => 32, - 'RectorPrefix202402\\React\\Socket\\' => 32, - 'RectorPrefix202402\\React\\Promise\\' => 33, - 'RectorPrefix202402\\React\\EventLoop\\' => 35, - 'RectorPrefix202402\\React\\Dns\\' => 29, - 'RectorPrefix202402\\React\\ChildProcess\\' => 38, - 'RectorPrefix202402\\React\\Cache\\' => 31, - 'RectorPrefix202402\\Psr\\SimpleCache\\' => 35, - 'RectorPrefix202402\\Psr\\Log\\' => 27, - 'RectorPrefix202402\\Psr\\Container\\' => 33, - 'RectorPrefix202402\\OndraM\\CiDetector\\' => 37, - 'RectorPrefix202402\\Illuminate\\Contracts\\' => 40, - 'RectorPrefix202402\\Illuminate\\Container\\' => 40, - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\' => 40, - 'RectorPrefix202402\\Evenement\\' => 29, - 'RectorPrefix202402\\Doctrine\\Inflector\\' => 38, - 'RectorPrefix202402\\Composer\\XdebugHandler\\' => 42, - 'RectorPrefix202402\\Composer\\Semver\\' => 35, - 'RectorPrefix202402\\Composer\\Pcre\\' => 33, - 'RectorPrefix202402\\Clue\\React\\NDJson\\' => 37, + 'RectorPrefix202403\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202403\\Symplify\\EasyParallel\\' => 41, + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\' => 45, + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\' => 42, + 'RectorPrefix202403\\Symfony\\Component\\Process\\' => 45, + 'RectorPrefix202403\\Symfony\\Component\\Finder\\' => 44, + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\' => 48, + 'RectorPrefix202403\\Symfony\\Component\\Console\\' => 45, + 'RectorPrefix202403\\React\\Stream\\' => 32, + 'RectorPrefix202403\\React\\Socket\\' => 32, + 'RectorPrefix202403\\React\\Promise\\' => 33, + 'RectorPrefix202403\\React\\EventLoop\\' => 35, + 'RectorPrefix202403\\React\\Dns\\' => 29, + 'RectorPrefix202403\\React\\ChildProcess\\' => 38, + 'RectorPrefix202403\\React\\Cache\\' => 31, + 'RectorPrefix202403\\Psr\\SimpleCache\\' => 35, + 'RectorPrefix202403\\Psr\\Log\\' => 27, + 'RectorPrefix202403\\Psr\\Container\\' => 33, + 'RectorPrefix202403\\OndraM\\CiDetector\\' => 37, + 'RectorPrefix202403\\Illuminate\\Contracts\\' => 40, + 'RectorPrefix202403\\Illuminate\\Container\\' => 40, + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\' => 40, + 'RectorPrefix202403\\Evenement\\' => 29, + 'RectorPrefix202403\\Doctrine\\Inflector\\' => 38, + 'RectorPrefix202403\\Composer\\XdebugHandler\\' => 42, + 'RectorPrefix202403\\Composer\\Semver\\' => 35, + 'RectorPrefix202403\\Composer\\Pcre\\' => 33, + 'RectorPrefix202403\\Clue\\React\\NDJson\\' => 37, ), 'P' => array ( @@ -101,111 +102,115 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 2 => __DIR__ . '/..' . '/rector/rector-downgrade-php/src', 3 => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules', ), - 'RectorPrefix202402\\Webmozart\\Assert\\' => + 'RectorPrefix202403\\Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202402\\Symplify\\EasyParallel\\' => + 'RectorPrefix202403\\Symplify\\EasyParallel\\' => array ( 0 => __DIR__ . '/..' . '/symplify/easy-parallel/src', ), - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\' => + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\' => array ( 0 => __DIR__ . '/..' . '/symfony/service-contracts', ), - 'RectorPrefix202402\\Symfony\\Component\\Process\\' => + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/yaml', + ), + 'RectorPrefix202403\\Symfony\\Component\\Process\\' => array ( 0 => __DIR__ . '/..' . '/symfony/process', ), - 'RectorPrefix202402\\Symfony\\Component\\Finder\\' => + 'RectorPrefix202403\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\' => + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\' => array ( 0 => __DIR__ . '/..' . '/symfony/filesystem', ), - 'RectorPrefix202402\\Symfony\\Component\\Console\\' => + 'RectorPrefix202403\\Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), - 'RectorPrefix202402\\React\\Stream\\' => + 'RectorPrefix202403\\React\\Stream\\' => array ( 0 => __DIR__ . '/..' . '/react/stream/src', ), - 'RectorPrefix202402\\React\\Socket\\' => + 'RectorPrefix202403\\React\\Socket\\' => array ( 0 => __DIR__ . '/..' . '/react/socket/src', ), - 'RectorPrefix202402\\React\\Promise\\' => + 'RectorPrefix202403\\React\\Promise\\' => array ( 0 => __DIR__ . '/..' . '/react/promise/src', ), - 'RectorPrefix202402\\React\\EventLoop\\' => + 'RectorPrefix202403\\React\\EventLoop\\' => array ( 0 => __DIR__ . '/..' . '/react/event-loop/src', ), - 'RectorPrefix202402\\React\\Dns\\' => + 'RectorPrefix202403\\React\\Dns\\' => array ( 0 => __DIR__ . '/..' . '/react/dns/src', ), - 'RectorPrefix202402\\React\\ChildProcess\\' => + 'RectorPrefix202403\\React\\ChildProcess\\' => array ( 0 => __DIR__ . '/..' . '/react/child-process/src', ), - 'RectorPrefix202402\\React\\Cache\\' => + 'RectorPrefix202403\\React\\Cache\\' => array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202402\\Psr\\SimpleCache\\' => + 'RectorPrefix202403\\Psr\\SimpleCache\\' => array ( 0 => __DIR__ . '/..' . '/psr/simple-cache/src', ), - 'RectorPrefix202402\\Psr\\Log\\' => + 'RectorPrefix202403\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', ), - 'RectorPrefix202402\\Psr\\Container\\' => + 'RectorPrefix202403\\Psr\\Container\\' => array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), - 'RectorPrefix202402\\OndraM\\CiDetector\\' => + 'RectorPrefix202403\\OndraM\\CiDetector\\' => array ( 0 => __DIR__ . '/..' . '/ondram/ci-detector/src', ), - 'RectorPrefix202402\\Illuminate\\Contracts\\' => + 'RectorPrefix202403\\Illuminate\\Contracts\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/contracts', ), - 'RectorPrefix202402\\Illuminate\\Container\\' => + 'RectorPrefix202403\\Illuminate\\Container\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/container', ), - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\' => + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', ), - 'RectorPrefix202402\\Evenement\\' => + 'RectorPrefix202403\\Evenement\\' => array ( 0 => __DIR__ . '/..' . '/evenement/evenement/src', ), - 'RectorPrefix202402\\Doctrine\\Inflector\\' => + 'RectorPrefix202403\\Doctrine\\Inflector\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', ), - 'RectorPrefix202402\\Composer\\XdebugHandler\\' => + 'RectorPrefix202403\\Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', ), - 'RectorPrefix202402\\Composer\\Semver\\' => + 'RectorPrefix202403\\Composer\\Semver\\' => array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), - 'RectorPrefix202402\\Composer\\Pcre\\' => + 'RectorPrefix202403\\Composer\\Pcre\\' => array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), - 'RectorPrefix202402\\Clue\\React\\NDJson\\' => + 'RectorPrefix202403\\Clue\\React\\NDJson\\' => array ( 0 => __DIR__ . '/..' . '/clue/ndjson-react/src', ), @@ -554,609 +559,625 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', 'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'RectorPrefix202402\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202402\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202402\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', - 'RectorPrefix202402\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', - 'RectorPrefix202402\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202402\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202402\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', - 'RectorPrefix202402\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202402\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', - 'RectorPrefix202402\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', - 'RectorPrefix202402\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', - 'RectorPrefix202402\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202402\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202402\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202402\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202402\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202402\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202402\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202402\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202402\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', - 'RectorPrefix202402\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202402\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202402\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', - 'RectorPrefix202402\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202402\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202402\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202402\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202402\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202402\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', - 'RectorPrefix202402\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202402\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202402\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202402\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202402\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202402\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202402\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202402\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202402\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202402\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202402\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202402\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202402\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202402\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202402\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202402\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202402\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202402\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202402\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202402\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202402\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202402\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202402\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202402\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202402\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202402\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202402\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202402\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202402\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202402\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202402\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202402\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202402\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202402\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202402\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202402\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', - 'RectorPrefix202402\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', - 'RectorPrefix202402\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', - 'RectorPrefix202402\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202402\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', - 'RectorPrefix202402\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', - 'RectorPrefix202402\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202402\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202402\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202402\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', - 'RectorPrefix202402\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202402\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202402\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202402\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202402\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', - 'RectorPrefix202402\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', - 'RectorPrefix202402\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202402\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202402\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202402\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202402\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202402\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202402\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202402\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', - 'RectorPrefix202402\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202402\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202402\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202402\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', - 'RectorPrefix202402\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202402\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202402\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202402\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202402\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', - 'RectorPrefix202402\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202402\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', - 'RectorPrefix202402\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202402\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202402\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', - 'RectorPrefix202402\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202402\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202402\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202402\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202402\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202402\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', - 'RectorPrefix202402\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', - 'RectorPrefix202402\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202402\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', - 'RectorPrefix202402\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202402\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202402\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', - 'RectorPrefix202402\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202402\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202402\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', - 'RectorPrefix202402\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202402\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202402\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202402\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202402\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', - 'RectorPrefix202402\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202402\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202402\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202402\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202402\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202402\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'RectorPrefix202402\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202402\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202402\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202402\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202402\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202402\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202403\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202403\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202403\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', + 'RectorPrefix202403\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', + 'RectorPrefix202403\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202403\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202403\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'RectorPrefix202403\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202403\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'RectorPrefix202403\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'RectorPrefix202403\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'RectorPrefix202403\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202403\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202403\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202403\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202403\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202403\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202403\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202403\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', + 'RectorPrefix202403\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202403\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202403\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', + 'RectorPrefix202403\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202403\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202403\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202403\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202403\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202403\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', + 'RectorPrefix202403\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202403\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202403\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202403\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202403\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202403\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202403\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202403\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202403\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202403\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202403\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202403\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202403\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202403\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202403\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202403\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202403\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202403\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202403\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202403\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202403\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202403\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202403\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202403\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202403\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202403\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202403\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202403\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202403\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202403\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202403\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202403\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202403\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202403\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202403\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202403\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', + 'RectorPrefix202403\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', + 'RectorPrefix202403\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', + 'RectorPrefix202403\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202403\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', + 'RectorPrefix202403\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', + 'RectorPrefix202403\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202403\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202403\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202403\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', + 'RectorPrefix202403\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202403\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202403\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202403\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202403\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', + 'RectorPrefix202403\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', + 'RectorPrefix202403\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202403\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202403\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202403\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202403\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202403\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202403\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202403\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', + 'RectorPrefix202403\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202403\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202403\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202403\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', + 'RectorPrefix202403\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202403\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202403\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202403\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202403\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', + 'RectorPrefix202403\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202403\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', + 'RectorPrefix202403\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202403\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202403\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', + 'RectorPrefix202403\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202403\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202403\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202403\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202403\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202403\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', + 'RectorPrefix202403\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', + 'RectorPrefix202403\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202403\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', + 'RectorPrefix202403\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202403\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202403\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', + 'RectorPrefix202403\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202403\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202403\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', + 'RectorPrefix202403\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202403\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202403\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202403\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202403\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', + 'RectorPrefix202403\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202403\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202403\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202403\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202403\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', + 'RectorPrefix202403\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php', + 'RectorPrefix202403\\Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202403\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202403\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202403\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202403\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202403\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', 'Rector\\Application\\ApplicationFileProcessor' => __DIR__ . '/../..' . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Application\\ChangedNodeScopeRefresher' => __DIR__ . '/../..' . '/src/Application/ChangedNodeScopeRefresher.php', 'Rector\\Application\\FileProcessor' => __DIR__ . '/../..' . '/src/Application/FileProcessor.php', @@ -1197,6 +1218,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\IntersectionTypeNodePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/IntersectionTypeNodePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\TemplatePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/TemplatePhpDocNodeVisitor.php', 'Rector\\BetterPhpDocParser\\PhpDocNodeVisitor\\UnionTypeNodePhpDocNodeVisitor' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocNodeVisitor/UnionTypeNodePhpDocNodeVisitor.php', + 'Rector\\BetterPhpDocParser\\PhpDocParser\\ArrayItemClassNameDecorator' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/ArrayItemClassNameDecorator.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterPhpDocParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\BetterTypeParser' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/BetterTypeParser.php', 'Rector\\BetterPhpDocParser\\PhpDocParser\\ClassAnnotationMatcher' => __DIR__ . '/../..' . '/src/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php', @@ -1269,6 +1291,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\CodeQuality\\Rector\\ClassMethod\\OptionalParametersAfterRequiredRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php', 'Rector\\CodeQuality\\Rector\\Class_\\CompleteDynamicPropertiesRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Class_/CompleteDynamicPropertiesRector.php', 'Rector\\CodeQuality\\Rector\\Class_\\InlineConstructorDefaultToPropertyRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Class_/InlineConstructorDefaultToPropertyRector.php', + 'Rector\\CodeQuality\\Rector\\Class_\\StaticToSelfStaticMethodCallOnFinalClassRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Class_/StaticToSelfStaticMethodCallOnFinalClassRector.php', 'Rector\\CodeQuality\\Rector\\Concat\\JoinStringConcatRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php', 'Rector\\CodeQuality\\Rector\\Empty_\\SimplifyEmptyCheckOnEmptyArrayRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php', 'Rector\\CodeQuality\\Rector\\Equal\\UseIdenticalOverEqualWithSameTypeRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Equal/UseIdenticalOverEqualWithSameTypeRector.php', @@ -1384,12 +1407,13 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => __DIR__ . '/../..' . '/src/Comments/NodeDocBlock/DocBlockUpdater.php', 'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => __DIR__ . '/../..' . '/src/Comments/NodeTraverser/CommentRemovingNodeTraverser.php', 'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => __DIR__ . '/../..' . '/src/Comments/NodeVisitor/CommentRemovingNodeVisitor.php', + 'Rector\\Config\\Level\\DeadCodeLevel' => __DIR__ . '/../..' . '/src/Config/Level/DeadCodeLevel.php', + 'Rector\\Config\\Level\\TypeDeclarationLevel' => __DIR__ . '/../..' . '/src/Config/Level/TypeDeclarationLevel.php', 'Rector\\Config\\RectorConfig' => __DIR__ . '/../..' . '/src/Config/RectorConfig.php', + 'Rector\\Config\\RegisteredService' => __DIR__ . '/../..' . '/src/Config/RegisteredService.php', 'Rector\\Configuration\\ConfigInitializer' => __DIR__ . '/../..' . '/src/Configuration/ConfigInitializer.php', 'Rector\\Configuration\\ConfigurationFactory' => __DIR__ . '/../..' . '/src/Configuration/ConfigurationFactory.php', - 'Rector\\Configuration\\Levels\\DeadCodeLevel' => __DIR__ . '/../..' . '/src/Configuration/Levels/DeadCodeLevel.php', 'Rector\\Configuration\\Levels\\LevelRulesResolver' => __DIR__ . '/../..' . '/src/Configuration/Levels/LevelRulesResolver.php', - 'Rector\\Configuration\\Levels\\TypeCoverageLevel' => __DIR__ . '/../..' . '/src/Configuration/Levels/TypeCoverageLevel.php', 'Rector\\Configuration\\Option' => __DIR__ . '/../..' . '/src/Configuration/Option.php', 'Rector\\Configuration\\Parameter\\SimpleParameterProvider' => __DIR__ . '/../..' . '/src/Configuration/Parameter/SimpleParameterProvider.php', 'Rector\\Configuration\\PhpLevelSetResolver' => __DIR__ . '/../..' . '/src/Configuration/PhpLevelSetResolver.php', @@ -1397,6 +1421,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Configuration\\RenamedClassesDataCollector' => __DIR__ . '/../..' . '/src/Configuration/RenamedClassesDataCollector.php', 'Rector\\Configuration\\VendorMissAnalyseGuard' => __DIR__ . '/../..' . '/src/Configuration/VendorMissAnalyseGuard.php', 'Rector\\Console\\Command\\CustomRuleCommand' => __DIR__ . '/../..' . '/src/Console/Command/CustomRuleCommand.php', + 'Rector\\Console\\Command\\DetectNodeCommand' => __DIR__ . '/../..' . '/src/Console/Command/DetectNodeCommand.php', 'Rector\\Console\\Command\\ListRulesCommand' => __DIR__ . '/../..' . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Console\\Command\\ProcessCommand' => __DIR__ . '/../..' . '/src/Console/Command/ProcessCommand.php', 'Rector\\Console\\Command\\SetupCICommand' => __DIR__ . '/../..' . '/src/Console/Command/SetupCICommand.php', @@ -1409,11 +1434,13 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Console\\ProcessConfigureDecorator' => __DIR__ . '/../..' . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Console\\Style\\RectorStyle' => __DIR__ . '/../..' . '/src/Console/Style/RectorStyle.php', 'Rector\\Console\\Style\\SymfonyStyleFactory' => __DIR__ . '/../..' . '/src/Console/Style/SymfonyStyleFactory.php', + 'Rector\\Contract\\DependencyInjection\\RelatedConfigInterface' => __DIR__ . '/../..' . '/src/Contract/DependencyInjection/RelatedConfigInterface.php', 'Rector\\Contract\\DependencyInjection\\ResetableInterface' => __DIR__ . '/../..' . '/src/Contract/DependencyInjection/ResetableInterface.php', 'Rector\\Contract\\PhpParser\\Node\\StmtsAwareInterface' => __DIR__ . '/../..' . '/src/Contract/PhpParser/Node/StmtsAwareInterface.php', 'Rector\\Contract\\Rector\\ConfigurableRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ConfigurableRectorInterface.php', 'Rector\\Contract\\Rector\\RectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/RectorInterface.php', 'Rector\\Contract\\Rector\\ScopeAwareRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ScopeAwareRectorInterface.php', + 'Rector\\CustomRules\\SimpleNodeDumper' => __DIR__ . '/../..' . '/src/CustomRules/SimpleNodeDumper.php', 'Rector\\DeadCode\\ConditionEvaluator' => __DIR__ . '/../..' . '/rules/DeadCode/ConditionEvaluator.php', 'Rector\\DeadCode\\ConditionResolver' => __DIR__ . '/../..' . '/rules/DeadCode/ConditionResolver.php', 'Rector\\DeadCode\\Contract\\ConditionInterface' => __DIR__ . '/../..' . '/rules/DeadCode/Contract/ConditionInterface.php', @@ -1488,31 +1515,33 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\DependencyInjection\\RectorContainerFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/RectorContainerFactory.php', 'Rector\\Differ\\DefaultDiffer' => __DIR__ . '/../..' . '/src/Differ/DefaultDiffer.php', 'Rector\\Doctrine\\Bundle210\\Rector\\Class_\\EventSubscriberInterfaceToAttributeRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\EmbeddableClassAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\EntityClassAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\InheritanceClassAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\SoftDeletableClassAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\ClassAnnotationTransformer\\TableClassAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\ColumnAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\EmbeddedPropertyAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\GedmoTimestampableAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdColumnAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\IdGeneratorAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\ManyToOneAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\PropertyAnnotationTransformer\\OneToManyAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\AnnotationTransformer\\YamlToAnnotationTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php', - 'Rector\\Doctrine\\CodeQuality\\Contract\\ClassAnnotationTransformerInterface' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php', - 'Rector\\Doctrine\\CodeQuality\\Contract\\PropertyAnnotationTransformerInterface' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAnnotationTransformerInterface.php', - 'Rector\\Doctrine\\CodeQuality\\DocTagNodeFactory' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/DocTagNodeFactory.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\EmbeddableClassAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\EntityClassAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\InheritanceClassAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\SoftDeletableClassAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\ClassAttributeTransformer\\TableClassAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ColumnAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\EmbeddedPropertyAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\GedmoTimestampableAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdColumnAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\IdGeneratorAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinColumnAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ManyToOneAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\OneToManyAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\OrderByAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\YamlToAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\Contract\\ClassAttributeTransformerInterface' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAttributeTransformerInterface.php', + 'Rector\\Doctrine\\CodeQuality\\Contract\\PropertyAttributeTransformerInterface' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Contract/PropertyAttributeTransformerInterface.php', 'Rector\\Doctrine\\CodeQuality\\EntityMappingResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\EntityMappingKey' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Enum/EntityMappingKey.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.php', - 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\ArrayItemNodeFactory' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php', + 'Rector\\Doctrine\\CodeQuality\\Helper\\NodeValueNormalizer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php', + 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\AttributeFactory' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\InitializeDefaultEntityCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\MoveCurrentDateTimeDefaultInEntityToConstructorRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/MoveCurrentDateTimeDefaultInEntityToConstructorRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\RemoveEmptyTableAttributeRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php', - 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\YamlToAnnotationsDoctrineMappingRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/YamlToAnnotationsDoctrineMappingRector.php', + 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\YamlToAttributeDoctrineMappingRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/YamlToAttributeDoctrineMappingRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\CorrectDefaultTypesOnEntityPropertyRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\ImproveDoctrineCollectionDocTypeInEntityRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/ImproveDoctrineCollectionDocTypeInEntityRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\MakeEntityDateTimePropertyDateTimeInterfaceRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/MakeEntityDateTimePropertyDateTimeInterfaceRector.php', @@ -1524,7 +1553,9 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Doctrine\\CodeQuality\\Utils\\CaseStringHelper' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php', 'Rector\\Doctrine\\CodeQuality\\ValueObject\\EntityMapping' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', + 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', + 'Rector\\Doctrine\\Enum\\MappingClass' => __DIR__ . '/..' . '/rector/rector-doctrine/src/Enum/MappingClass.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttrinationFinder' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php', @@ -1637,6 +1668,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', + 'Rector\\DowngradePhp83\\Rector\\ClassConst\\DowngradeTypedClassConstRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\IfAndAnalyzer' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\SimpleScalarAnalyzer' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeAnalyzer/SimpleScalarAnalyzer.php', 'Rector\\EarlyReturn\\NodeFactory\\InvertedIfFactory' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeFactory/InvertedIfFactory.php', @@ -1662,7 +1694,6 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Exception\\VersionException' => __DIR__ . '/../..' . '/src/Exception/VersionException.php', 'Rector\\FamilyTree\\NodeAnalyzer\\ClassChildAnalyzer' => __DIR__ . '/../..' . '/src/FamilyTree/NodeAnalyzer/ClassChildAnalyzer.php', 'Rector\\FamilyTree\\Reflection\\FamilyRelationsAnalyzer' => __DIR__ . '/../..' . '/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php', - 'Rector\\FileSystemRector\\Parser\\FileInfoParser' => __DIR__ . '/../..' . '/src/FileSystemRector/Parser/FileInfoParser.php', 'Rector\\FileSystem\\FileAndDirectoryFilter' => __DIR__ . '/../..' . '/src/FileSystem/FileAndDirectoryFilter.php', 'Rector\\FileSystem\\FilePathHelper' => __DIR__ . '/../..' . '/src/FileSystem/FilePathHelper.php', 'Rector\\FileSystem\\FilesFinder' => __DIR__ . '/../..' . '/src/FileSystem/FilesFinder.php', @@ -2037,7 +2068,9 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php', 'Rector\\Php74\\Rector\\Ternary\\ParenthesizeNestedTernaryRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/Ternary/ParenthesizeNestedTernaryRector.php', 'Rector\\Php74\\Tokenizer\\ParenthesizedNestedTernaryAnalyzer' => __DIR__ . '/../..' . '/rules/Php74/Tokenizer/ParenthesizedNestedTernaryAnalyzer.php', + 'Rector\\Php80\\AttributeDecorator\\DoctrineConverterAttributeDecorator' => __DIR__ . '/../..' . '/rules/Php80/AttributeDecorator/DoctrineConverterAttributeDecorator.php', 'Rector\\Php80\\AttributeDecorator\\SensioParamConverterAttributeDecorator' => __DIR__ . '/../..' . '/rules/Php80/AttributeDecorator/SensioParamConverterAttributeDecorator.php', + 'Rector\\Php80\\Contract\\ConverterAttributeDecoratorInterface' => __DIR__ . '/../..' . '/rules/Php80/Contract/ConverterAttributeDecoratorInterface.php', 'Rector\\Php80\\Contract\\StrStartWithMatchAndRefactorInterface' => __DIR__ . '/../..' . '/rules/Php80/Contract/StrStartWithMatchAndRefactorInterface.php', 'Rector\\Php80\\Contract\\ValueObject\\AnnotationToAttributeInterface' => __DIR__ . '/../..' . '/rules/Php80/Contract/ValueObject/AnnotationToAttributeInterface.php', 'Rector\\Php80\\DocBlock\\PropertyPromotionDocBlockMerger' => __DIR__ . '/../..' . '/rules/Php80/DocBlock/PropertyPromotionDocBlockMerger.php', @@ -2119,7 +2152,6 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\PhpAttribute\\AttributeArrayNameInliner' => __DIR__ . '/../..' . '/src/PhpAttribute/AttributeArrayNameInliner.php', 'Rector\\PhpAttribute\\Contract\\AnnotationToAttributeMapperInterface' => __DIR__ . '/../..' . '/src/PhpAttribute/Contract/AnnotationToAttributeMapperInterface.php', 'Rector\\PhpAttribute\\Enum\\DocTagNodeState' => __DIR__ . '/../..' . '/src/PhpAttribute/Enum/DocTagNodeState.php', - 'Rector\\PhpAttribute\\NodeAnalyzer\\ExprParameterReflectionTypeCorrector' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php', 'Rector\\PhpAttribute\\NodeFactory\\AttributeNameFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/AttributeNameFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\NamedArgsFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/NamedArgsFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\PhpAttributeGroupFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php', @@ -2212,6 +2244,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Renaming\\Rector\\ClassMethod\\RenameAnnotationRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php', 'Rector\\Renaming\\Rector\\ConstFetch\\RenameConstantRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php', 'Rector\\Renaming\\Rector\\FuncCall\\RenameFunctionRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php', + 'Rector\\Renaming\\Rector\\FunctionLike\\RenameFunctionLikeParamWithinCallLikeArgRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php', 'Rector\\Renaming\\Rector\\MethodCall\\RenameMethodRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/MethodCall/RenameMethodRector.php', 'Rector\\Renaming\\Rector\\Name\\RenameClassRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/Name/RenameClassRector.php', 'Rector\\Renaming\\Rector\\PropertyFetch\\RenamePropertyRector' => __DIR__ . '/../..' . '/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php', @@ -2223,6 +2256,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Renaming\\ValueObject\\RenameAnnotationByType' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameAnnotationByType.php', 'Rector\\Renaming\\ValueObject\\RenameClassAndConstFetch' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameClassAndConstFetch.php', 'Rector\\Renaming\\ValueObject\\RenameClassConstFetch' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameClassConstFetch.php', + 'Rector\\Renaming\\ValueObject\\RenameFunctionLikeParamWithinCallLikeArg' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameFunctionLikeParamWithinCallLikeArg.php', 'Rector\\Renaming\\ValueObject\\RenameProperty' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameProperty.php', 'Rector\\Renaming\\ValueObject\\RenameStaticMethod' => __DIR__ . '/../..' . '/rules/Renaming/ValueObject/RenameStaticMethod.php', 'Rector\\Set\\Contract\\SetListInterface' => __DIR__ . '/../..' . '/src/Set/Contract/SetListInterface.php', @@ -2479,6 +2513,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Transform\\Rector\\Class_\\AddInterfaceByTraitRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php', 'Rector\\Transform\\Rector\\Class_\\MergeInterfacesRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/MergeInterfacesRector.php', 'Rector\\Transform\\Rector\\Class_\\ParentClassToTraitsRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php', + 'Rector\\Transform\\Rector\\ConstFetch\\ConstFetchToClassConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php', 'Rector\\Transform\\Rector\\FileWithoutNamespace\\RectorConfigBuilderRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php', 'Rector\\Transform\\Rector\\FuncCall\\FuncCallToConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php', 'Rector\\Transform\\Rector\\FuncCall\\FuncCallToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php', @@ -2495,6 +2530,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/String_/StringToClassConstantRector.php', 'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php', 'Rector\\Transform\\ValueObject\\ClassMethodReference' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ClassMethodReference.php', + 'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php', 'Rector\\Transform\\ValueObject\\FuncCallToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/FuncCallToMethodCall.php', 'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/FuncCallToStaticCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToFuncCall.php', @@ -2567,11 +2603,14 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\AddTestsVoidReturnTypeWhereNoReturnRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/AddTestsVoidReturnTypeWhereNoReturnRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\ChildDoctrineRepositoryClassTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\MergeDateTimePropertyTypeDeclarationRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\ReturnTypeFromStrictTernaryRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php', 'Rector\\TypeDeclaration\\Rector\\Closure\\AddClosureVoidReturnTypeWhereNoReturnRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Closure/AddClosureVoidReturnTypeWhereNoReturnRector.php', 'Rector\\TypeDeclaration\\Rector\\Empty_\\EmptyOnNullableObjectToInstanceOfRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Empty_/EmptyOnNullableObjectToInstanceOfRector.php', + 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeSplFixedArrayRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeSplFixedArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddReturnTypeDeclarationFromYieldsRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php', 'Rector\\TypeDeclaration\\Rector\\Function_\\AddFunctionVoidReturnTypeWhereNoReturnRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Function_/AddFunctionVoidReturnTypeWhereNoReturnRector.php', @@ -2599,6 +2638,7 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\TypeDeclaration\\TypeInferer\\SplArrayFixedTypeNarrower' => __DIR__ . '/../..' . '/rules/TypeDeclaration/TypeInferer/SplArrayFixedTypeNarrower.php', 'Rector\\TypeDeclaration\\TypeNormalizer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/TypeNormalizer.php', 'Rector\\TypeDeclaration\\ValueObject\\AddParamTypeDeclaration' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AddParamTypeDeclaration.php', + 'Rector\\TypeDeclaration\\ValueObject\\AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AddParamTypeForFunctionLikeWithinCallLikeArgDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AddPropertyTypeDeclaration' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AddPropertyTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AddReturnTypeDeclaration' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AddReturnTypeDeclaration.php', 'Rector\\TypeDeclaration\\ValueObject\\AssignToVariable' => __DIR__ . '/../..' . '/rules/TypeDeclaration/ValueObject/AssignToVariable.php', @@ -2608,6 +2648,8 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 'Rector\\Util\\ArrayParametersMerger' => __DIR__ . '/../..' . '/src/Util/ArrayParametersMerger.php', 'Rector\\Util\\FileHasher' => __DIR__ . '/../..' . '/src/Util/FileHasher.php', 'Rector\\Util\\MemoryLimiter' => __DIR__ . '/../..' . '/src/Util/MemoryLimiter.php', + 'Rector\\Util\\NewLineSplitter' => __DIR__ . '/../..' . '/src/Util/NewLineSplitter.php', + 'Rector\\Util\\NodePrinter' => __DIR__ . '/../..' . '/src/Util/NodePrinter.php', 'Rector\\Util\\PhpVersionFactory' => __DIR__ . '/../..' . '/src/Util/PhpVersionFactory.php', 'Rector\\Util\\Reflection\\PrivatesAccessor' => __DIR__ . '/../..' . '/src/Util/Reflection/PrivatesAccessor.php', 'Rector\\Util\\StringUtils' => __DIR__ . '/../..' . '/src/Util/StringUtils.php', @@ -2661,9 +2703,9 @@ class ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitf637847380e2ddf55dcae18dded1d2b3::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/rector/rector/vendor/composer/installed.json b/vendor/rector/rector/vendor/composer/installed.json index 59e455579..e9d27ab4c 100644 --- a/vendor/rector/rector/vendor/composer/installed.json +++ b/vendor/rector/rector/vendor/composer/installed.json @@ -28,7 +28,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202403\\Clue\\React\\NDJson\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -69,17 +69,17 @@ }, { "name": "composer\/pcre", - "version": "3.1.1", - "version_normalized": "3.1.1.0", + "version": "3.1.2", + "version_normalized": "3.1.2.0", "source": { "type": "git", "url": "https:\/\/github.com\/composer\/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/composer\/pcre\/zipball\/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https:\/\/api.github.com\/repos\/composer\/pcre\/zipball\/4775f35b2d70865807c89d32c8e7385b86eb0ace", + "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace", "shasum": "" }, "require": { @@ -90,7 +90,7 @@ "phpstan\/phpstan-strict-rules": "^1.1", "symfony\/phpunit-bridge": "^5" }, - "time": "2023-10-11T07:11:09+00:00", + "time": "2024-03-07T15:38:35+00:00", "type": "library", "extra": { "branch-alias": { @@ -100,7 +100,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\Pcre\\": "src" + "RectorPrefix202403\\Composer\\Pcre\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -123,7 +123,7 @@ ], "support": { "issues": "https:\/\/github.com\/composer\/pcre\/issues", - "source": "https:\/\/github.com\/composer\/pcre\/tree\/3.1.1" + "source": "https:\/\/github.com\/composer\/pcre\/tree\/3.1.2" }, "funding": [ { @@ -173,7 +173,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\Semver\\": "src" + "RectorPrefix202403\\Composer\\Semver\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -255,7 +255,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202403\\Composer\\XdebugHandler\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -296,17 +296,17 @@ }, { "name": "doctrine\/inflector", - "version": "2.0.9", - "version_normalized": "2.0.9.0", + "version": "2.0.10", + "version_normalized": "2.0.10.0", "source": { "type": "git", "url": "https:\/\/github.com\/doctrine\/inflector.git", - "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/doctrine\/inflector\/zipball\/2930cd5ef353871c821d5c43ed030d39ac8cfe65", - "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "url": "https:\/\/api.github.com\/repos\/doctrine\/inflector\/zipball\/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { @@ -320,12 +320,12 @@ "phpunit\/phpunit": "^8.5 || ^9.5", "vimeo\/psalm": "^4.25 || ^5.4" }, - "time": "2024-01-15T18:05:13+00:00", + "time": "2024-02-18T20:23:39+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202403\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -370,7 +370,7 @@ ], "support": { "issues": "https:\/\/github.com\/doctrine\/inflector\/issues", - "source": "https:\/\/github.com\/doctrine\/inflector\/tree\/2.0.9" + "source": "https:\/\/github.com\/doctrine\/inflector\/tree\/2.0.10" }, "funding": [ { @@ -414,7 +414,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Evenement\\": "src\/" + "RectorPrefix202403\\Evenement\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -440,17 +440,17 @@ }, { "name": "fidry\/cpu-core-counter", - "version": "0.5.1", - "version_normalized": "0.5.1.0", + "version": "1.1.0", + "version_normalized": "1.1.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/theofidry\/cpu-core-counter.git", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/theofidry\/cpu-core-counter\/zipball\/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "url": "https:\/\/api.github.com\/repos\/theofidry\/cpu-core-counter\/zipball\/f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", "shasum": "" }, "require": { @@ -458,21 +458,21 @@ }, "require-dev": { "fidry\/makefile": "^0.2.0", + "fidry\/php-cs-fixer-config": "^1.1.2", "phpstan\/extension-installer": "^1.2.0", "phpstan\/phpstan": "^1.9.2", "phpstan\/phpstan-deprecation-rules": "^1.0.0", "phpstan\/phpstan-phpunit": "^1.2.2", "phpstan\/phpstan-strict-rules": "^1.4.4", - "phpunit\/phpunit": "^9.5.26 || ^8.5.31", - "theofidry\/php-cs-fixer-config": "^1.0", + "phpunit\/phpunit": "^8.5.31 || ^9.5.26", "webmozarts\/strict-phpunit": "^7.5" }, - "time": "2022-12-24T12:35:10+00:00", + "time": "2024-02-07T09:43:46+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Fidry\\CpuCoreCounter\\": "src\/" + "RectorPrefix202403\\Fidry\\CpuCoreCounter\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -492,7 +492,7 @@ ], "support": { "issues": "https:\/\/github.com\/theofidry\/cpu-core-counter\/issues", - "source": "https:\/\/github.com\/theofidry\/cpu-core-counter\/tree\/0.5.1" + "source": "https:\/\/github.com\/theofidry\/cpu-core-counter\/tree\/1.1.0" }, "funding": [ { @@ -504,8 +504,8 @@ }, { "name": "illuminate\/container", - "version": "v10.43.0", - "version_normalized": "10.43.0.0", + "version": "v10.48.2", + "version_normalized": "10.48.2.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/container.git", @@ -538,7 +538,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Illuminate\\Container\\": "" + "RectorPrefix202403\\Illuminate\\Container\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -561,8 +561,8 @@ }, { "name": "illuminate\/contracts", - "version": "v10.43.0", - "version_normalized": "10.43.0.0", + "version": "v10.48.2", + "version_normalized": "10.48.2.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/contracts.git", @@ -589,7 +589,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Illuminate\\Contracts\\": "" + "RectorPrefix202403\\Illuminate\\Contracts\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -777,37 +777,37 @@ }, { "name": "ondram\/ci-detector", - "version": "4.1.0", - "version_normalized": "4.1.0.0", + "version": "4.2.0", + "version_normalized": "4.2.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/OndraM\/ci-detector.git", - "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30" + "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/OndraM\/ci-detector\/zipball\/8a4b664e916df82ff26a44709942dfd593fa6f30", - "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30", + "url": "https:\/\/api.github.com\/repos\/OndraM\/ci-detector\/zipball\/8b0223b5ed235fd377c75fdd1bfcad05c0f168b8", + "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "ergebnis\/composer-normalize": "^2.2", - "lmc\/coding-standard": "^1.3 || ^2.1", + "ergebnis\/composer-normalize": "^2.13.2", + "lmc\/coding-standard": "^3.0.0", "php-parallel-lint\/php-parallel-lint": "^1.2", - "phpstan\/extension-installer": "^1.0.5", - "phpstan\/phpstan": "^0.12.58", - "phpstan\/phpstan-phpunit": "^0.12.16", - "phpunit\/phpunit": "^7.1 || ^8.0 || ^9.0" + "phpstan\/extension-installer": "^1.1.0", + "phpstan\/phpstan": "^1.2.0", + "phpstan\/phpstan-phpunit": "^1.0.0", + "phpunit\/phpunit": "^9.6.13" }, - "time": "2021-04-14T09:16:52+00:00", + "time": "2024-03-12T13:22:30+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202403\\OndraM\\CiDetector\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -852,23 +852,23 @@ ], "support": { "issues": "https:\/\/github.com\/OndraM\/ci-detector\/issues", - "source": "https:\/\/github.com\/OndraM\/ci-detector\/tree\/4.1.0" + "source": "https:\/\/github.com\/OndraM\/ci-detector\/tree\/4.2.0" }, "install-path": "..\/ondram\/ci-detector" }, { "name": "phpstan\/phpdoc-parser", - "version": "1.25.0", - "version_normalized": "1.25.0.0", + "version": "1.26.0", + "version_normalized": "1.26.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" + "reference": "231e3186624c03d7e7c890ec662b81e6b0405227" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/bd84b629c8de41aa2ae82c067c955e06f1b00240", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/231e3186624c03d7e7c890ec662b81e6b0405227", + "reference": "231e3186624c03d7e7c890ec662b81e6b0405227", "shasum": "" }, "require": { @@ -885,7 +885,7 @@ "phpunit\/phpunit": "^9.5", "symfony\/process": "^5.2" }, - "time": "2024-01-04T17:06:16+00:00", + "time": "2024-02-23T16:05:55+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -902,7 +902,7 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https:\/\/github.com\/phpstan\/phpdoc-parser\/issues", - "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.25.0" + "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.26.0" }, "install-path": "..\/phpstan\/phpdoc-parser" }, @@ -934,7 +934,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Psr\\Container\\": "src\/" + "RectorPrefix202403\\Psr\\Container\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -990,7 +990,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Psr\\Log\\": "src" + "RectorPrefix202403\\Psr\\Log\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1043,7 +1043,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Psr\\SimpleCache\\": "src\/" + "RectorPrefix202403\\Psr\\SimpleCache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1096,7 +1096,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\Cache\\": "src\/" + "RectorPrefix202403\\React\\Cache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1175,7 +1175,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\ChildProcess\\": "src" + "RectorPrefix202403\\React\\ChildProcess\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1257,7 +1257,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\Dns\\": "src\/" + "RectorPrefix202403\\React\\Dns\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1334,7 +1334,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\EventLoop\\": "src\/" + "RectorPrefix202403\\React\\EventLoop\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1409,7 +1409,7 @@ "src\/functions_include.php" ], "psr-4": { - "RectorPrefix202402\\React\\Promise\\": "src\/" + "RectorPrefix202403\\React\\Promise\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1489,7 +1489,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\Socket\\": "src\/" + "RectorPrefix202403\\React\\Socket\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1567,7 +1567,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\React\\Stream\\": "src\/" + "RectorPrefix202403\\React\\Stream\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1679,37 +1679,37 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "f6b9b1d46b66091f5a2c22b9bcc2ba035a4274be" + "reference": "a1d50bb1b3d158961293ef0828fffb1058cdb32f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/f6b9b1d46b66091f5a2c22b9bcc2ba035a4274be", - "reference": "f6b9b1d46b66091f5a2c22b9bcc2ba035a4274be", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/a1d50bb1b3d158961293ef0828fffb1058cdb32f", + "reference": "a1d50bb1b3d158961293ef0828fffb1058cdb32f", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2", + "symfony\/yaml": "^6.4" }, "require-dev": { - "doctrine\/orm": "^2.16", + "doctrine\/doctrine-bundle": "^2.11", + "doctrine\/orm": "^2.18", "phpstan\/extension-installer": "^1.3", - "phpstan\/phpstan": "^1.10", + "phpstan\/phpstan": "^1.10.57", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.3", - "rector\/phpstan-rules": "^0.7", - "rector\/rector-generator": "^0.7.5", + "phpunit\/phpunit": "^10.5", + "rector\/rector-generator": "^0.7.10", "rector\/rector-src": "dev-main", - "symplify\/easy-coding-standard": "^12.0", - "symplify\/phpstan-extensions": "^11.2", - "symplify\/phpstan-rules": "^11.1", - "symplify\/rule-doc-generator": "^12.0", - "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2", - "tomasvotruba\/type-coverage": "^0.2", + "symplify\/easy-coding-standard": "^12.1", + "symplify\/phpstan-extensions": "^11.4", + "symplify\/phpstan-rules": "^11.4", + "symplify\/rule-doc-generator": "^12.1", + "symplify\/vendor-patches": "^11.3", + "tomasvotruba\/class-leak": "^0.2.8", "tomasvotruba\/unused-public": "^0.3", "tracy\/tracy": "^2.10" }, - "time": "2024-01-31T09:34:50+00:00", + "time": "2024-03-07T14:21:07+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1742,12 +1742,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "8d1aab27edc3409cd976ddf109ac4933ec33ad5b" + "reference": "9a6a85b2b37c51a5c83414269dc2aab09650967f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/8d1aab27edc3409cd976ddf109ac4933ec33ad5b", - "reference": "8d1aab27edc3409cd976ddf109ac4933ec33ad5b", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/9a6a85b2b37c51a5c83414269dc2aab09650967f", + "reference": "9a6a85b2b37c51a5c83414269dc2aab09650967f", "shasum": "" }, "require": { @@ -1769,7 +1769,7 @@ "tomasvotruba\/class-leak": "^0.2", "tracy\/tracy": "^2.10" }, - "time": "2024-01-31T21:56:19+00:00", + "time": "2024-03-08T06:34:42+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1802,12 +1802,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "f091938e0b34c64acab524c2acff911cea769b57" + "reference": "6845db43ccd69ef990d399ff845a53ad66fa8085" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/f091938e0b34c64acab524c2acff911cea769b57", - "reference": "f091938e0b34c64acab524c2acff911cea769b57", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/6845db43ccd69ef990d399ff845a53ad66fa8085", + "reference": "6845db43ccd69ef990d399ff845a53ad66fa8085", "shasum": "" }, "require": { @@ -1830,7 +1830,7 @@ "tomasvotruba\/class-leak": "^0.2", "tracy\/tracy": "^2.10" }, - "time": "2024-01-17T15:05:41+00:00", + "time": "2024-03-08T15:37:45+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1855,7 +1855,7 @@ "description": "Rector upgrades rules for PHPUnit", "support": { "issues": "https:\/\/github.com\/rectorphp\/rector-phpunit\/issues", - "source": "https:\/\/github.com\/rectorphp\/rector-phpunit\/tree\/0.19.1" + "source": "https:\/\/github.com\/rectorphp\/rector-phpunit\/tree\/main" }, "install-path": "..\/rector\/rector-phpunit" }, @@ -1866,12 +1866,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "92f8dec13005239b2f05236538ab252a698dc8b2" + "reference": "c8b64135bdaaec629f2abd81387485cf3a627a3f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/92f8dec13005239b2f05236538ab252a698dc8b2", - "reference": "92f8dec13005239b2f05236538ab252a698dc8b2", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/c8b64135bdaaec629f2abd81387485cf3a627a3f", + "reference": "c8b64135bdaaec629f2abd81387485cf3a627a3f", "shasum": "" }, "require": { @@ -1880,7 +1880,7 @@ }, "require-dev": { "phpstan\/extension-installer": "^1.3", - "phpstan\/phpstan": "^1.10.28", + "phpstan\/phpstan": "^1.10.57", "phpstan\/phpstan-webmozart-assert": "^1.2", "phpunit\/phpunit": "^10.5", "rector\/rector-generator": "^0.7", @@ -1900,7 +1900,7 @@ "tomasvotruba\/class-leak": "^0.2.6", "tracy\/tracy": "^2.10" }, - "time": "2024-01-31T23:46:18+00:00", + "time": "2024-03-12T11:45:55+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1928,17 +1928,17 @@ }, { "name": "sebastian\/diff", - "version": "5.1.0", - "version_normalized": "5.1.0.0", + "version": "5.1.1", + "version_normalized": "5.1.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/sebastianbergmann\/diff.git", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -1946,9 +1946,9 @@ }, "require-dev": { "phpunit\/phpunit": "^10.0", - "symfony\/process": "^4.2 || ^5" + "symfony\/process": "^6.4" }, - "time": "2023-12-22T10:55:06+00:00", + "time": "2024-03-02T07:15:17+00:00", "type": "library", "extra": { "branch-alias": { @@ -1986,7 +1986,7 @@ "support": { "issues": "https:\/\/github.com\/sebastianbergmann\/diff\/issues", "security": "https:\/\/github.com\/sebastianbergmann\/diff\/security\/policy", - "source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/5.1.0" + "source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/5.1.1" }, "funding": [ { @@ -1998,17 +1998,17 @@ }, { "name": "symfony\/console", - "version": "v6.4.3", - "version_normalized": "6.4.3.0", + "version": "v6.4.4", + "version_normalized": "6.4.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e" + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", - "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/0d9e4eb5ad413075624378f474c4167ea202de78", + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", "shasum": "" }, "require": { @@ -2041,7 +2041,7 @@ "symfony\/stopwatch": "^5.4|^6.0|^7.0", "symfony\/var-dumper": "^5.4|^6.0|^7.0" }, - "time": "2024-01-23T14:51:35+00:00", + "time": "2024-02-22T20:27:10+00:00", "type": "library", "extra": { "patches_applied": [ @@ -2051,7 +2051,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Console\\": "" + "RectorPrefix202403\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2080,7 +2080,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.3" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.4" }, "funding": [ { @@ -2193,7 +2193,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202403\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2260,7 +2260,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202403\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2386,28 +2386,28 @@ }, { "name": "symfony\/process", - "version": "v6.4.3", - "version_normalized": "6.4.3.0", + "version": "v6.4.4", + "version_normalized": "6.4.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "31642b0818bfcff85930344ef93193f8c607e0a3" + "reference": "710e27879e9be3395de2b98da3f52a946039f297" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/31642b0818bfcff85930344ef93193f8c607e0a3", - "reference": "31642b0818bfcff85930344ef93193f8c607e0a3", + "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/710e27879e9be3395de2b98da3f52a946039f297", + "reference": "710e27879e9be3395de2b98da3f52a946039f297", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2024-01-23T14:51:35+00:00", + "time": "2024-02-20T12:31:00+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Process\\": "" + "RectorPrefix202403\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2430,7 +2430,7 @@ "description": "Executes commands in sub-processes", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.4.3" + "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.4.4" }, "funding": [ { @@ -2484,7 +2484,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202403\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" @@ -2533,45 +2533,118 @@ ], "install-path": "..\/symfony\/service-contracts" }, + { + "name": "symfony\/yaml", + "version": "v6.4.3", + "version_normalized": "6.4.3.0", + "source": { + "type": "git", + "url": "https:\/\/github.com\/symfony\/yaml.git", + "reference": "d75715985f0f94f978e3a8fa42533e10db921b90" + }, + "dist": { + "type": "zip", + "url": "https:\/\/api.github.com\/repos\/symfony\/yaml\/zipball\/d75715985f0f94f978e3a8fa42533e10db921b90", + "reference": "d75715985f0f94f978e3a8fa42533e10db921b90", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony\/deprecation-contracts": "^2.5|^3", + "symfony\/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony\/console": "<5.4" + }, + "require-dev": { + "symfony\/console": "^5.4|^6.0|^7.0" + }, + "time": "2024-01-23T14:51:35+00:00", + "bin": [ + "Resources\/bin\/yaml-lint" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "RectorPrefix202403\\Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "\/Tests\/" + ] + }, + "notification-url": "https:\/\/packagist.org\/downloads\/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https:\/\/symfony.com\/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https:\/\/symfony.com", + "support": { + "source": "https:\/\/github.com\/symfony\/yaml\/tree\/v6.4.3" + }, + "funding": [ + { + "url": "https:\/\/symfony.com\/sponsor", + "type": "custom" + }, + { + "url": "https:\/\/github.com\/fabpot", + "type": "github" + }, + { + "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", + "type": "tidelift" + } + ], + "install-path": "..\/symfony\/yaml" + }, { "name": "symplify\/easy-parallel", - "version": "11.2.0", - "version_normalized": "11.2.0.0", + "version": "11.2.2", + "version_normalized": "11.2.2.0", "source": { "type": "git", "url": "https:\/\/github.com\/symplify\/easy-parallel.git", - "reference": "472a324ea02fd7b8769452cef5f56cc9808798ea" + "reference": "8586c18bb8efb31cd192a4e5cc94ae7813f72ed9" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/easy-parallel\/zipball\/472a324ea02fd7b8769452cef5f56cc9808798ea", - "reference": "472a324ea02fd7b8769452cef5f56cc9808798ea", + "url": "https:\/\/api.github.com\/repos\/symplify\/easy-parallel\/zipball\/8586c18bb8efb31cd192a4e5cc94ae7813f72ed9", + "reference": "8586c18bb8efb31cd192a4e5cc94ae7813f72ed9", "shasum": "" }, "require": { "clue\/ndjson-react": "^1.3", - "fidry\/cpu-core-counter": "^0.4.0 || ^0.5.1", + "fidry\/cpu-core-counter": "^0.5.1|^1.1", "nette\/utils": "^3.2|^4.0", "php": ">=8.1", "react\/child-process": "^0.6.5", - "react\/event-loop": "^1.3", - "react\/socket": "^1.12", + "react\/event-loop": "^1.5", + "react\/socket": "^1.15", "symfony\/console": "^6.2|^7.0" }, "require-dev": { - "phpstan\/extension-installer": "^1.3", "phpunit\/phpunit": "^10.5", - "rector\/rector": "^0.18.13", - "symplify\/easy-coding-standard": "^12.0", - "symplify\/phpstan-extensions": "^11.4", + "rector\/rector": "^1.0", + "symplify\/easy-coding-standard": "^12.1", "tomasvotruba\/class-leak": "^0.2.6" }, - "time": "2024-01-01T22:10:11+00:00", + "time": "2024-02-08T04:56:53+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202403\\Symplify\\EasyParallel\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -2581,7 +2654,7 @@ "description": "Helper package for easier CLI project parallelization", "support": { "issues": "https:\/\/github.com\/symplify\/easy-parallel\/issues", - "source": "https:\/\/github.com\/symplify\/easy-parallel\/tree\/11.2.0" + "source": "https:\/\/github.com\/symplify\/easy-parallel\/tree\/11.2.2" }, "funding": [ { @@ -2694,7 +2767,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202402\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202403\\Webmozart\\Assert\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", diff --git a/vendor/rector/rector/vendor/composer/installed.php b/vendor/rector/rector/vendor/composer/installed.php index 47f51a619..098235f43 100644 --- a/vendor/rector/rector/vendor/composer/installed.php +++ b/vendor/rector/rector/vendor/composer/installed.php @@ -1,5 +1,5 @@ array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.9', 'version' => '2.0.9.0', 'reference' => '2930cd5ef353871c821d5c43ed030d39ac8cfe65', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.43.0', 'version' => '10.43.0.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.43.0', 'version' => '10.43.0.0', 'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.18.0', 'version' => '4.18.0.0', 'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.25.0', 'version' => '1.25.0.0', 'reference' => 'bd84b629c8de41aa2ae82c067c955e06f1b00240', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.56')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'f6b9b1d46b66091f5a2c22b9bcc2ba035a4274be', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '8d1aab27edc3409cd976ddf109ac4933ec33ad5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'f091938e0b34c64acab524c2acff911cea769b57', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '92f8dec13005239b2f05236538ab252a698dc8b2', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.0', 'version' => '5.1.0.0', 'reference' => 'fbf413a49e54f6b9b17e12d900ac7f6101591b7f', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.29.0', 'version' => '1.29.0.0', 'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '31642b0818bfcff85930344ef93193f8c607e0a3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.1', 'version' => '3.4.1.0', 'reference' => 'fe07cbc8d837f60caf7018068e350cc5163681a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symplify/easy-parallel' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '472a324ea02fd7b8769452cef5f56cc9808798ea', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.2', 'version' => '3.1.2.0', 'reference' => '4775f35b2d70865807c89d32c8e7385b86eb0ace', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.10', 'version' => '2.0.10.0', 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.48.2', 'version' => '10.48.2.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.48.2', 'version' => '10.48.2.0', 'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.18.0', 'version' => '4.18.0.0', 'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.26.0', 'version' => '1.26.0.0', 'reference' => '231e3186624c03d7e7c890ec662b81e6b0405227', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.57')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'a1d50bb1b3d158961293ef0828fffb1058cdb32f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9a6a85b2b37c51a5c83414269dc2aab09650967f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '6845db43ccd69ef990d399ff845a53ad66fa8085', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'c8b64135bdaaec629f2abd81387485cf3a627a3f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => 'c41e007b4b62af48218231d6c2275e4c9b975b2e', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.4', 'version' => '6.4.4.0', 'reference' => '0d9e4eb5ad413075624378f474c4167ea202de78', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.29.0', 'version' => '1.29.0.0', 'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.4', 'version' => '6.4.4.0', 'reference' => '710e27879e9be3395de2b98da3f52a946039f297', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.1', 'version' => '3.4.1.0', 'reference' => 'fe07cbc8d837f60caf7018068e350cc5163681a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/yaml' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => 'd75715985f0f94f978e3a8fa42533e10db921b90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/rector/rector/vendor/composer/pcre/composer.json b/vendor/rector/rector/vendor/composer/pcre/composer.json index 01b2cf2b8..b4633ae8f 100644 --- a/vendor/rector/rector/vendor/composer/pcre/composer.json +++ b/vendor/rector/rector/vendor/composer/pcre/composer.json @@ -26,12 +26,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\Pcre\\": "src" + "RectorPrefix202403\\Composer\\Pcre\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Composer\\Pcre\\": "tests" + "RectorPrefix202403\\Composer\\Pcre\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php index b37bf6127..22a3c9ce4 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchAllResult { @@ -31,7 +31,7 @@ final class MatchAllResult public $matched; /** * @param 0|positive-int $count - * @param array> $matches + * @param array> $matches */ public function __construct(int $count, array $matches) { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index 26173df8b..f3413dc13 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchAllStrictGroupsResult { @@ -31,7 +31,7 @@ final class MatchAllStrictGroupsResult public $matched; /** * @param 0|positive-int $count - * @param array> $matches + * @param array> $matches */ public function __construct(int $count, array $matches) { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php index 81f19658a..b53591355 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchAllWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php index a1fa93691..24b5974db 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php index dd6588dff..c0013649f 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php index dab491872..0698717b0 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class MatchWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php index 4bf4bdaf1..c7c529288 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; class PcreException extends \RuntimeException { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php index d482d5e94..bf33fd261 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; class Preg { @@ -18,7 +18,7 @@ class Preg public const INVALID_TYPE_MSG = '$subject must be a string, %s given.'; /** * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|1 * @@ -37,7 +37,7 @@ public static function match(string $pattern, string $subject, ?array &$matches * Variant of `match()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|1 * @throws UnexpectedNullMatchException @@ -54,7 +54,7 @@ public static function matchStrictGroups(string $pattern, string $subject, ?arra * Runs preg_match with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_OFFSET_CAPTURE are always set, no other flags are supported * @return 0|1 * @@ -70,7 +70,7 @@ public static function matchWithOffsets(string $pattern, string $subject, ?array } /** * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|positive-int * @@ -91,7 +91,7 @@ public static function matchAll(string $pattern, string $subject, ?array &$match * Variant of `match()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @return 0|positive-int * @throws UnexpectedNullMatchException @@ -108,7 +108,7 @@ public static function matchAllStrictGroups(string $pattern, string $subject, ?a * Runs preg_match_all with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported * @return 0|positive-int * @@ -148,7 +148,7 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1 } /** * @param string|string[] $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int $count Set by method * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set @@ -173,10 +173,10 @@ public static function replaceCallback($pattern, callable $replacement, $subject * Variant of `replaceCallback()` which outputs non-null matches (or throws) * * @param string $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int $count Set by method - * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+ + * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set * * @param-out int<0, max> $count */ @@ -187,7 +187,7 @@ public static function replaceCallbackStrictGroups(string $pattern, callable $re }, $subject, $limit, $count, $flags); } /** - * @param array): string> $pattern + * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern * @param string $subject * @param int $count Set by method * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set @@ -256,7 +256,7 @@ public static function grep(string $pattern, array $array, int $flags = 0) : arr * Variant of match() which returns a bool instead of int * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array $matches @@ -269,7 +269,7 @@ public static function isMatch(string $pattern, string $subject, ?array &$matche * Variant of `isMatch()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * @throws UnexpectedNullMatchException * @@ -283,7 +283,7 @@ public static function isMatchStrictGroups(string $pattern, string $subject, ?ar * Variant of matchAll() which returns a bool instead of int * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array> $matches @@ -296,7 +296,7 @@ public static function isMatchAll(string $pattern, string $subject, ?array &$mat * Variant of `isMatchAll()` which outputs non-null matches (or throws) * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array> $matches @@ -311,7 +311,7 @@ public static function isMatchAllStrictGroups(string $pattern, string $subject, * Runs preg_match with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array}> $matches @@ -326,7 +326,7 @@ public static function isMatchWithOffsets(string $pattern, string $subject, ?arr * Runs preg_match_all with PREG_OFFSET_CAPTURE * * @param non-empty-string $pattern - * @param array> $matches Set by method + * @param array $matches Set by method * @param int-mask $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported * * @param-out array}>> $matches @@ -348,16 +348,17 @@ private static function checkSetOrder(int $flags) : void } } /** - * @param array $matches + * @param array $matches * @return array * @throws UnexpectedNullMatchException */ private static function enforceNonNullMatches(string $pattern, array $matches, string $variantMethod) { foreach ($matches as $group => $match) { - if (null === $match) { - throw new UnexpectedNullMatchException('Pattern "' . $pattern . '" had an unexpected unmatched group "' . $group . '", make sure the pattern always matches or use ' . $variantMethod . '() instead.'); + if (\is_string($match) || \is_array($match) && \is_string($match[0])) { + continue; } + throw new UnexpectedNullMatchException('Pattern "' . $pattern . '" had an unexpected unmatched group "' . $group . '", make sure the pattern always matches or use ' . $variantMethod . '() instead.'); } /** @var array */ return $matches; diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php index 66f528f87..2d1a801ce 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; class Regex { @@ -101,7 +101,7 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1 } /** * @param string|string[] $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ @@ -114,9 +114,9 @@ public static function replaceCallback($pattern, callable $replacement, $subject * Variant of `replaceCallback()` which outputs non-null matches (or throws) * * @param string $pattern - * @param callable(array): string $replacement + * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array}>): string) : callable(array): string) $replacement * @param string $subject - * @param int-mask $flags PREG_OFFSET_CAPTURE or PREG_UNMATCHED_AS_NULL, only available on PHP 7.4+ + * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ public static function replaceCallbackStrictGroups($pattern, callable $replacement, $subject, int $limit = -1, int $flags = 0) : ReplaceResult { @@ -124,7 +124,7 @@ public static function replaceCallbackStrictGroups($pattern, callable $replaceme return new ReplaceResult($count, $result); } /** - * @param array): string> $pattern + * @param ($flags is PREG_OFFSET_CAPTURE ? (array}>): string>) : array): string>) $pattern * @param string $subject * @param int-mask $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set */ diff --git a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php index 7f78427f2..7fe064111 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; final class ReplaceResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php index f0e2fb039..89fec68fa 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Pcre; +namespace RectorPrefix202403\Composer\Pcre; class UnexpectedNullMatchException extends PcreException { diff --git a/vendor/rector/rector/vendor/composer/semver/composer.json b/vendor/rector/rector/vendor/composer/semver/composer.json index f90326a0e..305ff703c 100644 --- a/vendor/rector/rector/vendor/composer/semver/composer.json +++ b/vendor/rector/rector/vendor/composer/semver/composer.json @@ -39,12 +39,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\Semver\\": "src" + "RectorPrefix202403\\Composer\\Semver\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Composer\\Semver\\": "tests" + "RectorPrefix202403\\Composer\\Semver\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php index aea8b32c6..11379eb66 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; class Comparator { /** diff --git a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php index 1218f8a25..618a8c4fb 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php +++ b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; -use RectorPrefix202402\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\ConstraintInterface; /** * Helper class to evaluate constraint by compiling and reusing the code to evaluate */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php index ec2bfd78e..c0d6b6e76 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; class Bound { diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php index 5b414f0bf..22cd40488 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; /** * Defines a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php index 41d5028dd..53c004a7e 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; /** * DO NOT IMPLEMENT this interface. It is only meant for usage as a type hint diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php index 5662e70ee..8a1cc035c 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; /** * Defines the absence of a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php index d2d9c50e6..7b8fa67f9 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; /** * Blackhole of constraints, nothing escapes it diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php index 89bb6601b..c0bff7fda 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver\Constraint; +namespace RectorPrefix202403\Composer\Semver\Constraint; /** * Defines a conjunctive or disjunctive set of constraints. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Interval.php b/vendor/rector/rector/vendor/composer/semver/src/Interval.php index a8ff83e0b..ec6506da8 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Interval.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Interval.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; class Interval { /** @var Constraint */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php index 058638473..240426964 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; -use RectorPrefix202402\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202402\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202402\Composer\Semver\Constraint\MatchNoneConstraint; -use RectorPrefix202402\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202403\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202403\Composer\Semver\Constraint\MatchNoneConstraint; +use RectorPrefix202403\Composer\Semver\Constraint\MultiConstraint; /** * Helper class generating intervals from constraints * diff --git a/vendor/rector/rector/vendor/composer/semver/src/Semver.php b/vendor/rector/rector/vendor/composer/semver/src/Semver.php index 62d4956b8..a8f8330fa 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Semver.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Semver.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; class Semver { const SORT_ASC = 1; diff --git a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php index 302c944b1..6c3c97dc6 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php +++ b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\Semver; +namespace RectorPrefix202403\Composer\Semver; -use RectorPrefix202402\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202402\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202402\Composer\Semver\Constraint\MultiConstraint; -use RectorPrefix202402\Composer\Semver\Constraint\Constraint; +use RectorPrefix202403\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202403\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202403\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202403\Composer\Semver\Constraint\Constraint; /** * Version parser. * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json index 6b66e6e0a..222236788 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json @@ -29,12 +29,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202403\\Composer\\XdebugHandler\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Composer\\XdebugHandler\\Tests\\": "tests" + "RectorPrefix202403\\Composer\\XdebugHandler\\Tests\\": "tests" } }, "scripts": { diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php index 50ac4bc46..f00ea71e1 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202402\Composer\XdebugHandler; +namespace RectorPrefix202403\Composer\XdebugHandler; /** * @author John Stevenson diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php index c768ce2ce..5a663fd9b 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php @@ -9,9 +9,9 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Composer\XdebugHandler; +namespace RectorPrefix202403\Composer\XdebugHandler; -use RectorPrefix202402\Composer\Pcre\Preg; +use RectorPrefix202403\Composer\Pcre\Preg; /** * Process utility functions * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php index eabff5194..9ba9c3e40 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Composer\XdebugHandler; +namespace RectorPrefix202403\Composer\XdebugHandler; -use RectorPrefix202402\Psr\Log\LoggerInterface; -use RectorPrefix202402\Psr\Log\LogLevel; +use RectorPrefix202403\Psr\Log\LoggerInterface; +use RectorPrefix202403\Psr\Log\LogLevel; /** * @author John Stevenson * @internal diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php index 5e5051cd4..599113d20 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Composer\XdebugHandler; +namespace RectorPrefix202403\Composer\XdebugHandler; -use RectorPrefix202402\Composer\Pcre\Preg; -use RectorPrefix202402\Psr\Log\LoggerInterface; +use RectorPrefix202403\Composer\Pcre\Preg; +use RectorPrefix202403\Psr\Log\LoggerInterface; /** * @author John Stevenson * diff --git a/vendor/rector/rector/vendor/doctrine/inflector/composer.json b/vendor/rector/rector/vendor/doctrine/inflector/composer.json index f3d0a7fa1..5893cfc46 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/composer.json +++ b/vendor/rector/rector/vendor/doctrine/inflector/composer.json @@ -51,12 +51,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202403\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" + "RectorPrefix202403\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" } }, "config": { diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php index 9653cb8ff..8b085a512 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php @@ -1,7 +1,7 @@ ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202402\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202402\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; + $replacements = ['/\\W/' => ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202403\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202403\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; $urlized = $lowered; foreach ($replacements as $pattern => $replacement) { $replaced = preg_replace($pattern, $replacement, $urlized); diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php index 18176305b..4fe6644eb 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php @@ -1,14 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +declare (strict_types=1); +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; + +use function preg_match; +/** + * Find the number of logical CPU cores for Windows leveraging the Get-CimInstance + * cmdlet, which is a newer version that is recommended over Get-WmiObject. + */ +final class CmiCmdletLogicalFinder extends ProcOpenBasedFinder +{ + private const CPU_CORE_COUNT_REGEX = '/NumberOfLogicalProcessors[\\s\\n]-+[\\s\\n]+(?\\d+)/'; + protected function getCommand() : string + { + return 'Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property NumberOfLogicalProcessors'; + } + public function toString() : string + { + return 'CmiCmdletLogicalFinder'; + } + protected function countCpuCores(string $process) : ?int + { + if (0 === preg_match(self::CPU_CORE_COUNT_REGEX, $process, $matches)) { + return parent::countCpuCores($process); + } + $count = $matches['count']; + return parent::countCpuCores($count); + } +} diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php new file mode 100644 index 000000000..97a1346fb --- /dev/null +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +declare (strict_types=1); +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; + +use function preg_match; +/** + * Find the number of physical CPU cores for Windows. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L912-L916 + */ +final class CmiCmdletPhysicalFinder extends ProcOpenBasedFinder +{ + private const CPU_CORE_COUNT_REGEX = '/NumberOfCores[\\s\\n]-+[\\s\\n]+(?\\d+)/'; + protected function getCommand() : string + { + return 'Get-CimInstance -ClassName Win32_Processor | Select-Object -Property NumberOfCores'; + } + public function toString() : string + { + return 'CmiCmdletPhysicalFinder'; + } + protected function countCpuCores(string $process) : ?int + { + if (0 === preg_match(self::CPU_CORE_COUNT_REGEX, $process, $matches)) { + return parent::countCpuCores($process); + } + $count = $matches['count']; + return parent::countCpuCores($count); + } +} diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php index 3768a6935..48231c4b9 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; interface CpuCoreFinder { diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php index 5f4e559ec..a1213550a 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function file_get_contents; use function is_file; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php index ecc813e93..9d158dcb6 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function sprintf; /** diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php index e8f34ad06..c209fbc32 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; final class FinderRegistry { @@ -18,21 +18,21 @@ final class FinderRegistry */ public static function getAllVariants() : array { - return [new CpuInfoFinder(), new DummyCpuCoreFinder(1), new HwLogicalFinder(), new HwPhysicalFinder(), new LscpuLogicalFinder(), new LscpuPhysicalFinder(), new _NProcessorFinder(), new NProcessorFinder(), new NProcFinder(\true), new NProcFinder(\false), new NullCpuCoreFinder(), SkipOnOSFamilyFinder::forWindows(new DummyCpuCoreFinder(1)), OnlyOnOSFamilyFinder::forWindows(new DummyCpuCoreFinder(1)), new WmicPhysicalFinder(), new WmicLogicalFinder()]; + return [new CpuInfoFinder(), new DummyCpuCoreFinder(1), new HwLogicalFinder(), new HwPhysicalFinder(), new LscpuLogicalFinder(), new LscpuPhysicalFinder(), new _NProcessorFinder(), new NProcessorFinder(), new NProcFinder(\true), new NProcFinder(\false), new NullCpuCoreFinder(), SkipOnOSFamilyFinder::forWindows(new DummyCpuCoreFinder(1)), OnlyOnOSFamilyFinder::forWindows(new DummyCpuCoreFinder(1)), new OnlyInPowerShellFinder(new CmiCmdletLogicalFinder()), new OnlyInPowerShellFinder(new CmiCmdletPhysicalFinder()), new WindowsRegistryLogicalFinder(), new WmicPhysicalFinder(), new WmicLogicalFinder()]; } /** * @return list */ public static function getDefaultLogicalFinders() : array { - return [OnlyOnOSFamilyFinder::forWindows(new WmicLogicalFinder()), new NProcFinder(), new HwLogicalFinder(), new _NProcessorFinder(), new NProcessorFinder(), new LscpuLogicalFinder(), new CpuInfoFinder()]; + return [OnlyOnOSFamilyFinder::forWindows(new OnlyInPowerShellFinder(new CmiCmdletLogicalFinder())), OnlyOnOSFamilyFinder::forWindows(new WindowsRegistryLogicalFinder()), OnlyOnOSFamilyFinder::forWindows(new WmicLogicalFinder()), new NProcFinder(), new HwLogicalFinder(), new _NProcessorFinder(), new NProcessorFinder(), new LscpuLogicalFinder(), new CpuInfoFinder()]; } /** * @return list */ public static function getDefaultPhysicalFinders() : array { - return [OnlyOnOSFamilyFinder::forWindows(new WmicPhysicalFinder()), new HwPhysicalFinder(), new LscpuPhysicalFinder()]; + return [OnlyOnOSFamilyFinder::forWindows(new OnlyInPowerShellFinder(new CmiCmdletPhysicalFinder())), OnlyOnOSFamilyFinder::forWindows(new WmicPhysicalFinder()), new HwPhysicalFinder(), new LscpuPhysicalFinder()]; } private function __construct() { diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php index 4b50e4779..af974c814 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; /** * Find the number of logical CPU cores for Linux, BSD and OSX. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php index db024efeb..c8e466750 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; /** * Find the number of physical CPU cores for Linux, BSD and OSX. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php index e6e9bb3a2..7d549249f 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function count; use function explode; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php index 4215c8b76..61d377336 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function count; use function explode; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php index d7b37ddda..29e3c0cef 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; -use RectorPrefix202402\Fidry\CpuCoreCounter\Executor\ProcessExecutor; +use RectorPrefix202403\Fidry\CpuCoreCounter\Executor\ProcessExecutor; use function sprintf; /** * The number of (logical) cores. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php index 1e392e383..3fc3b189c 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; /** * Find the number of logical CPU cores for FreeSBD, Solaris and the likes. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php index 6d56f02c9..9f6512d54 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; /** * This finder returns whatever value you gave to it. This is useful for testing. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php new file mode 100644 index 000000000..3f4799db6 --- /dev/null +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +declare (strict_types=1); +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; + +use function getenv; +use function sprintf; +final class OnlyInPowerShellFinder implements CpuCoreFinder +{ + /** + * @var CpuCoreFinder + */ + private $decoratedFinder; + public function __construct(CpuCoreFinder $decoratedFinder) + { + $this->decoratedFinder = $decoratedFinder; + } + public function diagnose() : string + { + $powerShellModulePath = getenv('PSModulePath'); + return $this->skip() ? sprintf('Skipped; no power shell module path detected ("%s").', $powerShellModulePath) : $this->decoratedFinder->diagnose(); + } + public function find() : ?int + { + return $this->skip() ? null : $this->decoratedFinder->find(); + } + public function toString() : string + { + return sprintf('OnlyInPowerShellFinder(%s)', $this->decoratedFinder->toString()); + } + private function skip() : bool + { + return \false === getenv('PSModulePath'); + } +} diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php index 881fddb13..24c003f80 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function implode; use function sprintf; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php index fd72f5324..dfa57cca1 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php @@ -9,10 +9,10 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; -use RectorPrefix202402\Fidry\CpuCoreCounter\Executor\ProcessExecutor; -use RectorPrefix202402\Fidry\CpuCoreCounter\Executor\ProcOpenExecutor; +use RectorPrefix202403\Fidry\CpuCoreCounter\Executor\ProcessExecutor; +use RectorPrefix202403\Fidry\CpuCoreCounter\Executor\ProcOpenExecutor; use function filter_var; use function function_exists; use function is_int; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php index c7a88a042..75d5a6061 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function implode; use function in_array; diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php new file mode 100644 index 000000000..40a497cea --- /dev/null +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +declare (strict_types=1); +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; + +use function array_filter; +use function count; +use function explode; +use const PHP_EOL; +/** + * Find the number of logical CPU cores for Windows. + * + * @see https://knowledge.informatica.com/s/article/151521 + */ +final class WindowsRegistryLogicalFinder extends ProcOpenBasedFinder +{ + protected function getCommand() : string + { + return 'reg query HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor'; + } + public function toString() : string + { + return 'WindowsRegistryLogicalFinder'; + } + protected function countCpuCores(string $process) : ?int + { + $count = count(array_filter(explode(PHP_EOL, $process), static function (string $line) : bool { + return '' !== \trim($line); + })); + return $count > 0 ? $count : null; + } +} diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php index 24aeb6d94..3a28ad643 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function preg_match; /** diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php index 78cb98eac..19d4b0bd7 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; use function preg_match; /** diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php index fb627f187..1126b8f6c 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter\Finder; +namespace RectorPrefix202403\Fidry\CpuCoreCounter\Finder; /** * Find the number of logical CPU cores for Linux and the likes. diff --git a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php index e8178bcf5..af1603e13 100644 --- a/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php +++ b/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202402\Fidry\CpuCoreCounter; +namespace RectorPrefix202403\Fidry\CpuCoreCounter; use RuntimeException; final class NumberOfCpuCoreNotFound extends RuntimeException diff --git a/vendor/rector/rector/vendor/illuminate/container/BoundMethod.php b/vendor/rector/rector/vendor/illuminate/container/BoundMethod.php index 99fcefa99..ac0245058 100644 --- a/vendor/rector/rector/vendor/illuminate/container/BoundMethod.php +++ b/vendor/rector/rector/vendor/illuminate/container/BoundMethod.php @@ -1,9 +1,9 @@ isCiDetected()) { // Make sure we are on CI environment +if ($ciDetector->isCiDetected()) { // Make sure we are on CI environment echo 'You are running this script on CI server!'; - $ci = $ciDetector->detect(); // Returns class implementing CiInterface or throws CiNotDetectedException + $ci = $ciDetector->detect(); // Returns class implementing CiInterface or throws CiNotDetectedException // Example output when run inside GitHub Actions build: echo $ci->getCiName(); // "GitHub Actions" @@ -109,43 +108,43 @@ if ($ciDetector->isCiDetected()) { // Make sure we are on CI environment Available methods of `CiInterface` instance (returned from `$ciDetector->detect()`): -| Method | Example value | Description | -|-----------------------|------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `getCiName()` | `GitHub Actions` | Name of the CI server.
The value is one of `CiDetector::CI_*` constants. | -| `getBuildNumber()` | `33` | Get number of this concrete build.
Build number is usually human-readable increasing number sequence. It should increase each time this particular job was run on the CI server. Most CIs use simple numbering sequence like: 1, 2, 3... However, some CIs do not provide this simple human-readable value and rather use for example alphanumeric hash. | -| `getBuildUrl()` | `https://github.com/OndraM/ci-detector/commit/abcd/checks`
or empty string | Get URL where this build can be found and viewed or empty string if it cannot be determined. | -| `getCommit()` | `b9173d94(...)` | Get hash of the git (or other VCS) commit being built. | -| `getBranch()` | `my-feature`
or empty string | Get name of the git (or other VCS) branch which is being built or empty string if it cannot be determined.
Use `getTargetBranch()` to get name of the branch where this branch is targeted. | -| `getTargetBranch()` | `main`
or empty string | Get name of the target branch of a pull request or empty string if it cannot be determined.
This is the base branch to which the pull request is targeted. | -| `getRepositoryName()` | `OndraM/ci-detector`
or empty string | Get name of the git (or other VCS) repository which is being built or empty string if it cannot be determined.
This is usually in form "user/repository", for example `OndraM/ci-detector`. | -| `getRepositoryUrl()` | `https://github.com/OndraM/ci-detector`
or empty string | Get URL where the repository which is being built can be found or empty string if it cannot be determined.
This is either HTTP URL like `https://github.com/OndraM/ci-detector` but may be a git ssh url like `ssh://git@bitbucket.org/OndraM/ci-detector` | -| `isPullRequest()` | `TrinaryLogic` instance | Detect whether current build is from a pull/merge request.
Returned `TrinaryLogic` object's value will be true if the current build is from a pull/merge request, false if it not, and maybe if we can't determine it (see below for what CI supports PR detection).
Use condition like `if ($ci->isPullRequest()->yes()) { /*...*/ }` to use the value. | -| `describe()` | `[...]`
(array of values) | Return key-value map of all detected properties in human-readable form. | +| Method | Example value | Description | +|-----------------------|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `getCiName()` | `GitHub Actions` | Name of the CI server.
The value is one of `CiDetector::CI_*` constants. | +| `getBuildNumber()` | `33` | Get number of this concrete build.
Build number is usually human-readable increasing number sequence. It should increase each time this particular job was run on the CI server. Most CIs use simple numbering sequence like: 1, 2, 3... However, some CIs do not provide this simple human-readable value and rather use for example alphanumeric hash. | +| `getBuildUrl()` | `https://github.com/OndraM/ci-detector/commit/abcd/checks`
or empty string | Get URL where this build can be found and viewed or empty string if it cannot be determined. | +| `getCommit()` | `b9173d94(...)` | Get hash of the git (or other VCS) commit being built. | +| `getBranch()` | `my-feature`
or empty string | Get name of the git (or other VCS) branch which is being built or empty string if it cannot be determined.
Use `getTargetBranch()` to get name of the branch where this branch is targeted. | +| `getTargetBranch()` | `main`
or empty string | Get name of the target branch of a pull request or empty string if it cannot be determined.
This is the base branch to which the pull request is targeted. | +| `getRepositoryName()` | `OndraM/ci-detector`
or empty string | Get name of the git (or other VCS) repository which is being built or empty string if it cannot be determined.
This is usually in form "user/repository", for example `OndraM/ci-detector`. | +| `getRepositoryUrl()` | `https://github.com/OndraM/ci-detector`
or empty string | Get URL where the repository which is being built can be found or empty string if it cannot be determined.
This is either HTTP URL like `https://github.com/OndraM/ci-detector` but may be a git ssh url like `ssh://git@bitbucket.org/OndraM/ci-detector` | +| `isPullRequest()` | `TrinaryLogic` instance | Detect whether current build is from a pull/merge request.
Returned `TrinaryLogic` object's value will be true if the current build is from a pull/merge request, false if it not, and maybe if we can't determine it (see below for what CI supports PR detection).
Use condition like `if ($ci->isPullRequest()->yes()) { /*...*/ }` to use the value. | +| `describe()` | `[...]`
(array of values) | Return key-value map of all detected properties in human-readable form. | ## Supported properties of each CI server Most CI servers support (✔) detection of all information. However some don't expose necessary environment variables, thus reading some information may be unsupported (❌). -| CI server | Constant of `CiDetector` | `is​PullRequest` | `get​Branch` | `getTargetBranch` | `get​Repository​Name` | `get​Repository​Url` | `get​Build​Url` | -|--------------------------------------------------------|----------------------|---|---|---|---|---|---| -| [AppVeyor](https://www.appveyor.com/) | `CI_APPVEYOR` | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | -| [AWS CodeBuild](https://aws.amazon.com/codebuild/) | `CI_AWS_CODEBUILD` | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | -| [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) | `CI_AZURE_PIPELINES` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [Bamboo](https://www.atlassian.com/software/bamboo) | `CI_BAMBOO` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines)| `CI_BITBUCKET_PIPELINES` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [Buddy](https://buddy.works/) | `CI_BUDDY` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [CircleCI](https://circleci.com/) | `CI_CIRCLE` | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | -| [Codeship](https://codeship.com/) | `CI_CODESHIP` | ✔ | ✔ | ❌ | ✔ | ❌ | ✔ | -| [continuousphp](https://continuousphp.com/) | `CI_CONTINUOUSPHP` | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | -| [drone](https://drone.io/) | `CI_DRONE` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [GitHub Actions](https://github.com/features/actions) | `CI_GITHUB_ACTIONS` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [GitLab](https://about.gitlab.com/gitlab-ci/) | `CI_GITLAB` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [Jenkins](https://www.jenkins.io/) | `CI_JENKINS` | ❌ | ✔ | ❌ | ❌ | ✔ | ✔ | -| [SourceHut](https://sourcehut.org/) | `CI_SOURCEHUT` | ✔ | ❌ | ❌ | ❌ | ❌ | ✔ | -| [TeamCity](https://www.jetbrains.com/teamcity/) | `CI_TEAMCITY` | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| [Travis CI](https://travis-ci.org/) | `CI_TRAVIS` | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | -| [Wercker](https://devcenter.wercker.com/) | `CI_WERCKER` | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | +| CI server | Constant of `CiDetector` | `is​PullRequest` | `get​Branch` | `get​Target​Branch` | `get​Repository​Name` | `get​Repository​Url` | `get​Build​Url` | +|------------------------------------|--------------------------|------------------|--------------|---------------------|-----------------------|----------------------|-----------------| +| [AppVeyor][appveyor] | `CI_APPVEYOR` | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | +| [AWS CodeBuild][aws-codebuild] | `CI_AWS_CODEBUILD` | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | +| [Azure Pipelines][azure-pipelines] | `CI_AZURE_PIPELINES` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [Bamboo][bamboo] | `CI_BAMBOO` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [Bitbucket Pipelines][bitbucket] | `CI_BITBUCKET_PIPELINES` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [Buddy][buddy] | `CI_BUDDY` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [CircleCI][circleci] | `CI_CIRCLE` | ✔ | ✔ | ❌ | ✔ | ✔ | ✔ | +| [Codeship][codeship] | `CI_CODESHIP` | ✔ | ✔ | ❌ | ✔ | ❌ | ✔ | +| continuousphp | `CI_CONTINUOUSPHP` | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ | +| [drone][drone] | `CI_DRONE` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [GitHub Actions][github-actions] | `CI_GITHUB_ACTIONS` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [GitLab][gitlab] | `CI_GITLAB` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [Jenkins][jenkins] | `CI_JENKINS` | ❌ | ✔ | ❌ | ❌ | ✔ | ✔ | +| [SourceHut][sourcehut] | `CI_SOURCEHUT` | ✔ | ❌ | ❌ | ❌ | ❌ | ✔ | +| [TeamCity][teamcity] | `CI_TEAMCITY` | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [Travis CI][travis-ci] | `CI_TRAVIS` | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ | +| Wercker | `CI_WERCKER` | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ## Testing @@ -167,7 +166,7 @@ see [ci-detector-standalone](https://github.com/OndraM/ci-detector-standalone) r download CI Detector as a standalone PHAR file with simple command line interface. ## Changelog -For latest changes see [CHANGELOG.md](CHANGELOG.md) file. This project follows [Semantic Versioning](http://semver.org/). +For latest changes see [CHANGELOG.md](CHANGELOG.md) file. This project follows [Semantic Versioning](https://semver.org/). ## Similar libraries for other languages @@ -177,3 +176,19 @@ Similar "CI Info" libraries exists for some other languages, for example: - JavaScript/Node.js - [watson/ci-info](https://github.com/watson/ci-info) - Python - [mgxd/ci-info](https://github.com/mgxd/ci-info) - Rust - [sagiegurari/ci_info](https://github.com/sagiegurari/ci_info) + +[appveyor]: https://www.appveyor.com/ +[aws-codebuild]: https://aws.amazon.com/codebuild/ +[azure-pipelines]: https://azure.microsoft.com/en-us/products/devops/pipelines +[bamboo]: https://www.atlassian.com/software/bamboo +[bitbucket]: https://bitbucket.org/product/features/pipelines +[buddy]: https://buddy.works/ +[circleci]: https://circleci.com/ +[codeship]: https://codeship.com/ +[drone]: https://drone.io/ +[github-actions]: https://github.com/features/actions +[gitlab]: https://about.gitlab.com/solutions/continuous-integration/ +[jenkins]: https://www.jenkins.io/ +[sourcehut]: https://sourcehut.org/ +[teamcity]: https://www.jetbrains.com/teamcity/ +[travis-ci]: https://travis-ci.org/ diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json index bd8f0c9ca..c384564e6 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json +++ b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json @@ -1,7 +1,8 @@ { "name": "ondram\/ci-detector", - "type": "library", "description": "Detect continuous integration environment and provide unified access to properties of current build", + "license": "MIT", + "type": "library", "keywords": [ "continuous integration", "ci-info", @@ -31,7 +32,6 @@ "travis", "wercker" ], - "license": "MIT", "authors": [ { "name": "Ond\u0159ej Machulda", @@ -39,30 +39,35 @@ } ], "require": { - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "ergebnis\/composer-normalize": "^2.2", - "lmc\/coding-standard": "^1.3 || ^2.1", + "ergebnis\/composer-normalize": "^2.13.2", + "lmc\/coding-standard": "^3.0.0", "php-parallel-lint\/php-parallel-lint": "^1.2", - "phpstan\/extension-installer": "^1.0.5", - "phpstan\/phpstan": "^0.12.58", - "phpstan\/phpstan-phpunit": "^0.12.16", - "phpunit\/phpunit": "^7.1 || ^8.0 || ^9.0" - }, - "config": { - "sort-packages": true + "phpstan\/extension-installer": "^1.1.0", + "phpstan\/phpstan": "^1.2.0", + "phpstan\/phpstan-phpunit": "^1.0.0", + "phpunit\/phpunit": "^9.6.13" }, "autoload": { "psr-4": { - "RectorPrefix202402\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202403\\OndraM\\CiDetector\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\OndraM\\CiDetector\\Ci\\": "tests\/" + "RectorPrefix202403\\OndraM\\CiDetector\\Ci\\": "tests\/" } }, + "config": { + "allow-plugins": { + "dealerdirect\/phpcodesniffer-composer-installer": true, + "ergebnis\/composer-normalize": true, + "phpstan\/extension-installer": true + }, + "sort-packages": true + }, "scripts": { "all": [ "@lint", @@ -70,15 +75,15 @@ "@test" ], "analyze": [ - "vendor\/bin\/ecs check .\/src\/ .\/tests\/ --ansi", + "vendor\/bin\/ecs check .\/src\/ .\/tests\/ ecs.php --ansi", "vendor\/bin\/phpstan analyze -c phpstan.neon --ansi" ], "fix": [ "@composer normalize", - "vendor\/bin\/ecs check .\/src\/ .\/tests\/ --ansi --fix" + "vendor\/bin\/ecs check .\/src\/ .\/tests\/ ecs.php --ansi --fix" ], "lint": [ - "vendor\/bin\/parallel-lint -j 10 -e php .\/src .\/tests dump-current.php", + "vendor\/bin\/parallel-lint -j 10 -e php .\/src .\/tests ecs.php dump-current.php", "@composer validate", "@composer normalize --dry-run" ], diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php b/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php new file mode 100644 index 000000000..03f4d0e02 --- /dev/null +++ b/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php @@ -0,0 +1,24 @@ +parameters(); + $parameters->set(Option::SKIP, [__DIR__ . '/tests/PropertiesPrinterHelper.php']); + $containerConfigurator->import(__DIR__ . '/vendor/lmc/coding-standard/ecs.php'); + $services = $containerConfigurator->services(); + // Use single-line phpdoc where possible + $services->set(PhpdocLineSpanFixer::class)->call('configure', [['property' => 'single']]); + // Tests must have @test annotation + $services->set(PhpUnitTestAnnotationFixer::class)->call('configure', [['style' => 'annotation']]); + $services->set(OrderedClassElementsFixer::class); + // Force line length + $services->set(LineLengthFixer::class)->call('configure', [['line_length' => 120, 'break_long_lines' => \true, 'inline_short_lines' => \false]]); +}; diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php index cde356917..37547d62e 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php +++ b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php @@ -1,15 +1,17 @@ getCiServers(); foreach ($ciServers as $ciClass) { $callback = [$ciClass, 'isDetected']; - if (\is_callable($callback)) { - if ($callback($this->environment)) { - return new $ciClass($this->environment); - } + if (\is_callable($callback) && $callback($this->environment)) { + return new $ciClass($this->environment); } } return null; diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/src/CiDetectorInterface.php b/vendor/rector/rector/vendor/ondram/ci-detector/src/CiDetectorInterface.php index f5997f69c..a4adf7e10 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/src/CiDetectorInterface.php +++ b/vendor/rector/rector/vendor/ondram/ci-detector/src/CiDetectorInterface.php @@ -1,10 +1,10 @@ value === self::YES; } /** - * Return true if its not known for sure whether the value is true or false + * Return true if it's not known for sure whether the value is true or false */ public function maybe() : bool { return $this->value === self::MAYBE; } /** - * Return true if its known for sure that the value is false + * Return true if it's known for sure that the value is false */ public function no() : bool { @@ -57,11 +55,16 @@ public function no() : bool } /** * Return string representation of the value. - * "Yes" when the value is true, "No" when its false, "Maybe" when its not known for sure whether its true or false. + * "Yes" when the value is true, "No" when its false, "Maybe" when it's not known for sure whether its + * true or false. */ public function describe() : string { static $labels = [self::NO => 'No', self::MAYBE => 'Maybe', self::YES => 'Yes']; return $labels[$this->value]; } + private static function create(int $value) : self + { + return self::$registry[$value] = self::$registry[$value] ?? new self($value); + } } diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php index 082fd4172..b648a09f3 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php @@ -4,24 +4,29 @@ namespace PHPStan\PhpDocParser\Ast\Type; use PHPStan\PhpDocParser\Ast\NodeAttributes; +use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; use function implode; class CallableTypeNode implements \PHPStan\PhpDocParser\Ast\Type\TypeNode { use NodeAttributes; /** @var IdentifierTypeNode */ public $identifier; + /** @var TemplateTagValueNode[] */ + public $templateTypes; /** @var CallableTypeParameterNode[] */ public $parameters; /** @var TypeNode */ public $returnType; /** * @param CallableTypeParameterNode[] $parameters + * @param TemplateTagValueNode[] $templateTypes */ - public function __construct(\PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode $identifier, array $parameters, \PHPStan\PhpDocParser\Ast\Type\TypeNode $returnType) + public function __construct(\PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode $identifier, array $parameters, \PHPStan\PhpDocParser\Ast\Type\TypeNode $returnType, array $templateTypes = []) { $this->identifier = $identifier; $this->parameters = $parameters; $this->returnType = $returnType; + $this->templateTypes = $templateTypes; } public function __toString() : string { @@ -29,7 +34,8 @@ public function __toString() : string if ($returnType instanceof self) { $returnType = "({$returnType})"; } + $template = $this->templateTypes !== [] ? '<' . implode(', ', $this->templateTypes) . '>' : ''; $parameters = implode(', ', $this->parameters); - return "{$this->identifier}({$parameters}): {$returnType}"; + return "{$this->identifier}{$template}({$parameters}): {$returnType}"; } } diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php index a2c541b5e..55c8a4337 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php @@ -337,7 +337,9 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens case '@template-contravariant': case '@phpstan-template-contravariant': case '@psalm-template-contravariant': - $tagValue = $this->parseTemplateTagValue($tokens, \true); + $tagValue = $this->typeParser->parseTemplateTagValue($tokens, function ($tokens) { + return $this->parseOptionalDescription($tokens); + }); break; case '@extends': case '@phpstan-extends': @@ -638,16 +640,20 @@ private function parsePropertyTagValue(\PHPStan\PhpDocParser\Parser\TokenIterato } private function parseMethodTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\MethodTagValueNode { - $isStatic = $tokens->tryConsumeTokenValue('static'); - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $returnTypeOrMethodName = $this->typeParser->parse($tokens); + $staticKeywordOrReturnTypeOrMethodName = $this->typeParser->parse($tokens); + if ($staticKeywordOrReturnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode && $staticKeywordOrReturnTypeOrMethodName->name === 'static') { + $isStatic = \true; + $returnTypeOrMethodName = $this->typeParser->parse($tokens); + } else { + $isStatic = \false; + $returnTypeOrMethodName = $staticKeywordOrReturnTypeOrMethodName; + } if ($tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { $returnType = $returnTypeOrMethodName; $methodName = $tokens->currentTokenValue(); $tokens->next(); } elseif ($returnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode) { - $returnType = $isStatic ? $this->typeParser->enrichWithAttributes($tokens, new Ast\Type\IdentifierTypeNode('static'), $startLine, $startIndex) : null; + $returnType = $isStatic ? $staticKeywordOrReturnTypeOrMethodName : null; $methodName = $returnTypeOrMethodName->name; $isStatic = \false; } else { @@ -660,7 +666,7 @@ private function parseMethodTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator do { $startLine = $tokens->currentTokenLine(); $startIndex = $tokens->currentTokenIndex(); - $templateTypes[] = $this->enrichWithAttributes($tokens, $this->parseTemplateTagValue($tokens, \false), $startLine, $startIndex); + $templateTypes[] = $this->enrichWithAttributes($tokens, $this->typeParser->parseTemplateTagValue($tokens), $startLine, $startIndex); } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); } @@ -700,27 +706,6 @@ private function parseMethodTagValueParameter(\PHPStan\PhpDocParser\Parser\Token } return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\MethodTagValueParameterNode($parameterType, $isReference, $isVariadic, $parameterName, $defaultValue), $startLine, $startIndex); } - private function parseTemplateTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, bool $parseDescription) : Ast\PhpDoc\TemplateTagValueNode - { - $name = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - if ($tokens->tryConsumeTokenValue('of') || $tokens->tryConsumeTokenValue('as')) { - $bound = $this->typeParser->parse($tokens); - } else { - $bound = null; - } - if ($tokens->tryConsumeTokenValue('=')) { - $default = $this->typeParser->parse($tokens); - } else { - $default = null; - } - if ($parseDescription) { - $description = $this->parseOptionalDescription($tokens); - } else { - $description = ''; - } - return new Ast\PhpDoc\TemplateTagValueNode($name, $bound, $description, $default); - } private function parseExtendsTagValue(string $tagName, \PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\PhpDocTagValueNode { $startLine = $tokens->currentTokenLine(); diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php index 4d6911cdb..0e6f20bc0 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php @@ -5,6 +5,7 @@ use LogicException; use PHPStan\PhpDocParser\Ast; +use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; use PHPStan\PhpDocParser\Lexer\Lexer; use function in_array; use function str_replace; @@ -128,12 +129,16 @@ private function parseAtomic(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) if ($isHtml) { return $type; } - $type = $this->parseGeneric($tokens, $type); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + $origType = $type; + $type = $this->tryParseCallable($tokens, $type, \true); + if ($type === $origType) { + $type = $this->parseGeneric($tokens, $type); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } } } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $type = $this->tryParseCallable($tokens, $type); + $type = $this->tryParseCallable($tokens, $type, \false); } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); } elseif (in_array($type->name, ['array', 'list', 'object'], \true) && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) { @@ -329,9 +334,35 @@ public function parseGenericTypeArgument(\PHPStan\PhpDocParser\Parser\TokenItera $type = $this->parse($tokens); return [$type, $variance]; } + /** + * @throws ParserException + * @param ?callable(TokenIterator): string $parseDescription + */ + public function parseTemplateTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, ?callable $parseDescription = null) : TemplateTagValueNode + { + $name = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + if ($tokens->tryConsumeTokenValue('of') || $tokens->tryConsumeTokenValue('as')) { + $bound = $this->parse($tokens); + } else { + $bound = null; + } + if ($tokens->tryConsumeTokenValue('=')) { + $default = $this->parse($tokens); + } else { + $default = null; + } + if ($parseDescription !== null) { + $description = $parseDescription($tokens); + } else { + $description = ''; + } + return new Ast\PhpDoc\TemplateTagValueNode($name, $bound, $description, $default); + } /** @phpstan-impure */ - private function parseCallable(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier) : Ast\Type\TypeNode + private function parseCallable(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate) : Ast\Type\TypeNode { + $templates = $hasTemplate ? $this->parseCallableTemplates($tokens) : []; $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); $parameters = []; @@ -352,7 +383,36 @@ private function parseCallable(\PHPStan\PhpDocParser\Parser\TokenIterator $token $startLine = $tokens->currentTokenLine(); $startIndex = $tokens->currentTokenIndex(); $returnType = $this->enrichWithAttributes($tokens, $this->parseCallableReturnType($tokens), $startLine, $startIndex); - return new Ast\Type\CallableTypeNode($identifier, $parameters, $returnType); + return new Ast\Type\CallableTypeNode($identifier, $parameters, $returnType, $templates); + } + /** + * @return Ast\PhpDoc\TemplateTagValueNode[] + * + * @phpstan-impure + */ + private function parseCallableTemplates(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : array + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + $templates = []; + $isFirst = \true; + while ($isFirst || $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + // trailing comma case + if (!$isFirst && $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { + break; + } + $isFirst = \false; + $templates[] = $this->parseCallableTemplateArgument($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + return $templates; + } + private function parseCallableTemplateArgument(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\TemplateTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + return $this->enrichWithAttributes($tokens, $this->parseTemplateTagValue($tokens), $startLine, $startIndex); } /** @phpstan-impure */ private function parseCallableParameter(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\Type\CallableTypeParameterNode @@ -447,11 +507,11 @@ private function parseCallableReturnType(\PHPStan\PhpDocParser\Parser\TokenItera } } /** @phpstan-impure */ - private function tryParseCallable(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier) : Ast\Type\TypeNode + private function tryParseCallable(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate) : Ast\Type\TypeNode { try { $tokens->pushSavePoint(); - $type = $this->parseCallable($tokens, $identifier); + $type = $this->parseCallable($tokens, $identifier, $hasTemplate); $tokens->dropSavePoint(); } catch (\PHPStan\PhpDocParser\Parser\ParserException $e) { $tokens->rollback(); diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php index 426b29380..fddb62d7a 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php @@ -90,7 +90,7 @@ final class Printer * * @var array */ - private $listInsertionMap = [PhpDocNode::class . '->children' => "\n * ", UnionTypeNode::class . '->types' => '|', IntersectionTypeNode::class . '->types' => '&', ArrayShapeNode::class . '->items' => ', ', ObjectShapeNode::class . '->items' => ', ', CallableTypeNode::class . '->parameters' => ', ', GenericTypeNode::class . '->genericTypes' => ', ', ConstExprArrayNode::class . '->items' => ', ', MethodTagValueNode::class . '->parameters' => ', ', DoctrineArray::class . '->items' => ', ', DoctrineAnnotation::class . '->arguments' => ', ']; + private $listInsertionMap = [PhpDocNode::class . '->children' => "\n * ", UnionTypeNode::class . '->types' => '|', IntersectionTypeNode::class . '->types' => '&', ArrayShapeNode::class . '->items' => ', ', ObjectShapeNode::class . '->items' => ', ', CallableTypeNode::class . '->parameters' => ', ', CallableTypeNode::class . '->templateTypes' => ', ', GenericTypeNode::class . '->genericTypes' => ', ', ConstExprArrayNode::class . '->items' => ', ', MethodTagValueNode::class . '->parameters' => ', ', DoctrineArray::class . '->items' => ', ', DoctrineAnnotation::class . '->arguments' => ', ']; /** * [$find, $extraLeft, $extraRight] * @@ -294,10 +294,13 @@ private function printType(TypeNode $node) : string } else { $returnType = $this->printType($node->returnType); } + $template = $node->templateTypes !== [] ? '<' . implode(', ', array_map(function (TemplateTagValueNode $templateNode) : string { + return $this->print($templateNode); + }, $node->templateTypes)) . '>' : ''; $parameters = implode(', ', array_map(function (CallableTypeParameterNode $parameterNode) : string { return $this->print($parameterNode); }, $node->parameters)); - return "{$node->identifier}({$parameters}): {$returnType}"; + return "{$node->identifier}{$template}({$parameters}): {$returnType}"; } if ($node instanceof ConditionalTypeForParameterNode) { return sprintf('(%s %s %s ? %s : %s)', $node->parameterName, $node->negated ? 'is not' : 'is', $this->printType($node->targetType), $this->printType($node->if), $this->printType($node->else)); diff --git a/vendor/rector/rector/vendor/psr/container/composer.json b/vendor/rector/rector/vendor/psr/container/composer.json index c33aca699..2a4721cf3 100644 --- a/vendor/rector/rector/vendor/psr/container/composer.json +++ b/vendor/rector/rector/vendor/psr/container/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Psr\\Container\\": "src\/" + "RectorPrefix202403\\Psr\\Container\\": "src\/" } }, "extra": { diff --git a/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php b/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php index 2819533b6..59cebe922 100644 --- a/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php +++ b/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php @@ -1,6 +1,6 @@ class !== Message::CLASS_IN ? 'CLASS' . $this->class . ' ' : ''; $type = 'TYPE' . $this->type; - $ref = new \ReflectionClass('RectorPrefix202402\\React\\Dns\\Model\\Message'); + $ref = new \ReflectionClass('RectorPrefix202403\\React\\Dns\\Model\\Message'); foreach ($ref->getConstants() as $name => $value) { if ($value === $this->type && \strpos($name, 'TYPE_') === 0) { $type = \substr($name, 5); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php index 57dd78380..62b1dded9 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php @@ -1,9 +1,9 @@ dumper->toBinary($request); $length = \strlen($queryData); if ($length > 0xffff) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); } $queryData = \pack('n', $length) . $queryData; if ($this->socket === null) { // create async TCP/IP connection (may take a while) $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT); if ($socket === \false) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and wait for it to become writable (connection success/rejected) \stream_set_blocking($socket, \false); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php index 9be54c1f5..9f070db14 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php @@ -1,6 +1,6 @@ dumper->toBinary($request); if (isset($queryData[$this->maxPacketSize])) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); } // UDP connections are instant, so try connection without a loop or timeout $errno = 0; $errstr = ''; $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0); if ($socket === \false) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and immediately try to send (fill write buffer) \stream_set_blocking($socket, \false); @@ -138,7 +138,7 @@ public function query(Query $query) $written = \fwrite($socket, $queryData); \restore_error_handler(); if ($written !== \strlen($queryData)) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } $loop = $this->loop; $deferred = new Deferred(function () use($loop, $socket, $query) { diff --git a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php index f5ae4455b..23cd67f96 100644 --- a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php +++ b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php @@ -1,6 +1,6 @@ loop = new EventLoop(); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php index 97a73e302..426e458e8 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php @@ -1,12 +1,12 @@ streamEvents[(int) $stream])) { - $this->streamEvents[(int) $stream] = \RectorPrefix202402\uv_poll_init_socket($this->uv, $stream); + $this->streamEvents[(int) $stream] = \RectorPrefix202403\uv_poll_init_socket($this->uv, $stream); } if ($this->streamEvents[(int) $stream] !== \false) { $this->pollStream($stream); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php index 96a95c196..20a8ea134 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php @@ -1,6 +1,6 @@ connectors[$scheme])) { - return \RectorPrefix202402\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); + return \RectorPrefix202403\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); } return $this->connectors[$scheme]->connect($uri); } diff --git a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php index f228395a7..553f99dce 100644 --- a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php +++ b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php @@ -1,6 +1,6 @@ then($resolve, $reject); }, function ($_, $reject) use(&$promise, $uri, &$connected) { if ($connected) { diff --git a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php index 88e0f7ea5..ad5948686 100644 --- a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php +++ b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php @@ -1,10 +1,10 @@ services(); $services->set(TypedPropertyRector::class); diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php index 2ec48aa72..c33fc46b9 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main f6b9b1d'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 8d1aab2'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main f091938'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 92f8dec')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main a1d50bb'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 9a6a85b'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 6845db4'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main c8b6413')); private function __construct() { } diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php index 847bd8b06..46c33acc2 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\RectorInstaller; -use RectorPrefix202402\Composer\Installer\InstallationManager; -use RectorPrefix202402\Composer\IO\IOInterface; -use RectorPrefix202402\Composer\Package\PackageInterface; -use RectorPrefix202402\Composer\Repository\InstalledRepositoryInterface; -use RectorPrefix202402\Composer\Util\Filesystem as ComposerFilesystem; +use RectorPrefix202403\Composer\Installer\InstallationManager; +use RectorPrefix202403\Composer\IO\IOInterface; +use RectorPrefix202403\Composer\Package\PackageInterface; +use RectorPrefix202403\Composer\Repository\InstalledRepositoryInterface; +use RectorPrefix202403\Composer\Util\Filesystem as ComposerFilesystem; /** * @see \Rector\RectorInstaller\Tests\PluginInstallerTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/README.md b/vendor/rector/rector/vendor/rector/rector-doctrine/README.md index 1d1f71e66..f80f22929 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/README.md +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/README.md @@ -17,14 +17,13 @@ composer require rector/rector --dev To add a set to your config, use `Rector\Doctrine\Set\DoctrineSetList` class and pick one of constants: ```php -use Rector\Doctrine\Set\DoctrineSetList; use Rector\Config\RectorConfig; +use Rector\Doctrine\Set\DoctrineSetList; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->sets([ +return RectorConfig::configure() + ->withSets([ DoctrineSetList::DOCTRINE_CODE_QUALITY, ]); -}; ```
diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json index d6c1efadb..bc94c6b6e 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json @@ -4,25 +4,25 @@ "license": "MIT", "description": "Rector upgrades rules for Doctrine", "require": { - "php": ">=8.1" + "php": ">=8.2", + "symfony\/yaml": "^6.4" }, "require-dev": { + "doctrine\/doctrine-bundle": "^2.11", + "doctrine\/orm": "^2.18", "phpstan\/extension-installer": "^1.3", - "rector\/phpstan-rules": "^0.7", - "phpstan\/phpstan": "^1.10", - "phpunit\/phpunit": "^10.3", - "symplify\/phpstan-rules": "^11.1", - "symplify\/phpstan-extensions": "^11.2", - "symplify\/easy-coding-standard": "^12.0", - "symplify\/rule-doc-generator": "^12.0", - "rector\/rector-src": "dev-main", - "doctrine\/orm": "^2.16", + "phpstan\/phpstan": "^1.10.57", "phpstan\/phpstan-webmozart-assert": "^1.2", - "symplify\/vendor-patches": "^11.2", - "rector\/rector-generator": "^0.7.5", + "phpunit\/phpunit": "^10.5", + "rector\/rector-generator": "^0.7.10", + "rector\/rector-src": "dev-main", + "symplify\/easy-coding-standard": "^12.1", + "symplify\/phpstan-extensions": "^11.4", + "symplify\/phpstan-rules": "^11.4", + "symplify\/rule-doc-generator": "^12.1", + "symplify\/vendor-patches": "^11.3", + "tomasvotruba\/class-leak": "^0.2.8", "tomasvotruba\/unused-public": "^0.3", - "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/class-leak": "^0.2", "tracy\/tracy": "^2.10" }, "autoload": { @@ -49,6 +49,7 @@ }, "scripts": { "phpstan": "vendor\/bin\/phpstan analyse --ansi --error-format symplify", + "rector": "vendor\/bin\/rector --ansi", "check-cs": "vendor\/bin\/ecs check --ansi", "fix-cs": "vendor\/bin\/ecs check --fix --ansi", "docs": [ @@ -61,6 +62,7 @@ "minimum-stability": "dev", "prefer-stable": true, "config": { + "sort-packages": true, "allow-plugins": { "cweagans\/composer-patches": true, "rector\/extension-installer": true, diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php index 7b0e43337..2cfc7033a 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/doctrine.php @@ -1,7 +1,7 @@ ruleWithConfiguration(AnnotationToAttributeRector::class, [ // class - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Entity'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Entity', null, ['repositoryClass']), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Column'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\UniqueConstraint'), // id @@ -27,20 +27,20 @@ new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\GeneratedValue'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\SequenceGenerator'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Index'), - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\CustomIdGenerator'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\CustomIdGenerator', null, ['class']), // relations - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\OneToOne'), - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\OneToMany'), - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\ManyToMany'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\OneToOne', null, ['targetEntity']), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\OneToMany', null, ['targetEntity']), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\ManyToMany', null, ['targetEntity']), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\JoinTable'), - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\ManyToOne'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\ManyToOne', null, ['targetEntity']), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\OrderBy'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\JoinColumn'), // embed new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Embeddable'), - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Embedded'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\Embedded', null, ['class']), // inheritance - new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\MappedSuperclass'), + new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\MappedSuperclass', null, ['repositoryClass']), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\InheritanceType'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\DiscriminatorColumn'), new AnnotationToAttribute('Doctrine\\ORM\\Mapping\\DiscriminatorMap'), diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/gedmo.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/gedmo.php index a2cad50a2..1d2c9fbc0 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/gedmo.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/attributes/gedmo.php @@ -1,7 +1,7 @@ ruleWithConfiguration(AttributeKeyToClassConstFetchRector::class, [new AttributeKeyToClassConstFetch('Doctrine\\ORM\\Mapping\\Column', 'type', 'Doctrine\\DBAL\\Types\\Types', ['array' => 'ARRAY', 'ascii_string' => 'ASCII_STRING', 'bigint' => 'BIGINT', 'binary' => 'BINARY', 'blob' => 'BLOB', 'boolean' => 'BOOLEAN', 'date' => 'DATE_MUTABLE', 'date_immutable' => 'DATE_IMMUTABLE', 'dateinterval' => 'DATEINTERVAL', 'datetime' => 'DATETIME_MUTABLE', 'datetime_immutable' => 'DATETIME_IMMUTABLE', 'datetimetz' => 'DATETIMETZ_MUTABLE', 'datetimetz_immutable' => 'DATETIMETZ_IMMUTABLE', 'decimal' => 'DECIMAL', 'float' => 'FLOAT', 'guid' => 'GUID', 'integer' => 'INTEGER', 'json' => 'JSON', 'object' => 'OBJECT', 'simple_array' => 'SIMPLE_ARRAY', 'smallint' => 'SMALLINT', 'string' => 'STRING', 'text' => 'TEXT', 'time' => 'TIME_MUTABLE', 'time_immutable' => 'TIME_IMMUTABLE'])]); - $rectorConfig->import(__DIR__ . '/../yaml-to-annotations.php'); }; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-collection-22.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-collection-22.php new file mode 100644 index 000000000..b3b824192 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-collection-22.php @@ -0,0 +1,11 @@ +ruleWithConfiguration(RenameClassConstFetchRector::class, [new RenameClassAndConstFetch('Doctrine\\Common\\Collections\\Criteria', 'ASC', 'Doctrine\\Common\\Collections\\Order', 'Ascending'), new RenameClassAndConstFetch('Doctrine\\Common\\Collections\\Criteria', 'DESC', 'Doctrine\\Common\\Collections\\Order', 'Descending')]); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php index ed7d22f4f..d1e28b4c3 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php @@ -1,7 +1,7 @@ ruleWithConfiguration(RenameClassRector::class, [ // https://github.com/doctrine/dbal/blob/master/UPGRADE.md#pdo-related-classes-outside-of-the-pdo-namespace-are-deprecated @@ -63,7 +68,10 @@ // https://github.com/doctrine/dbal/blob/master/UPGRADE.md#deprecated-masterslaveconnection-use-primaryreadreplicaconnection 'Doctrine\\DBAL\\Connections\\MasterSlaveConnection' => 'Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection', ]); - # https://github.com/doctrine/dbal/pull/3853 - # https://github.com/doctrine/dbal/issues/3837 - $rectorConfig->rule(ExtractArrayArgOnQueryBuilderSelectRector::class); + $rectorConfig->rules([ + // https://github.com/doctrine/dbal/pull/3853 + // https://github.com/doctrine/dbal/issues/3837 + ExtractArrayArgOnQueryBuilderSelectRector::class, + ReplaceFetchAllMethodCallRector::class, + ]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-30.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-30.php index 632ccba63..1dd2689c5 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-30.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-30.php @@ -1,7 +1,7 @@ sets([DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES]); + $rectorConfig->ruleWithConfiguration(RenameClassConstFetchRector::class, [new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NONE', 'Doctrine\\ORM\\Query\\TokenType', 'T_NONE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_INTEGER', 'Doctrine\\ORM\\Query\\TokenType', 'T_INTEGER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_STRING', 'Doctrine\\ORM\\Query\\TokenType', 'T_STRING'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_INPUT_PARAMETER', 'Doctrine\\ORM\\Query\\TokenType', 'T_INPUT_PARAMETER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_FLOAT', 'Doctrine\\ORM\\Query\\TokenType', 'T_FLOAT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_CLOSE_PARENTHESIS', 'Doctrine\\ORM\\Query\\TokenType', 'T_CLOSE_PARENTHESIS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_OPEN_PARENTHESIS', 'Doctrine\\ORM\\Query\\TokenType', 'T_OPEN_PARENTHESIS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_COMMA', 'Doctrine\\ORM\\Query\\TokenType', 'T_COMMA'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_DIVIDE', 'Doctrine\\ORM\\Query\\TokenType', 'T_DIVIDE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_DOT', 'Doctrine\\ORM\\Query\\TokenType', 'T_DOT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_EQUALS', 'Doctrine\\ORM\\Query\\TokenType', 'T_EQUALS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_GREATER_THAN', 'Doctrine\\ORM\\Query\\TokenType', 'T_GREATER_THAN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_LOWER_THAN', 'Doctrine\\ORM\\Query\\TokenType', 'T_LOWER_THAN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_MINUS', 'Doctrine\\ORM\\Query\\TokenType', 'T_MINUS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_MULTIPLY', 'Doctrine\\ORM\\Query\\TokenType', 'T_MULTIPLY'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NEGATE', 'Doctrine\\ORM\\Query\\TokenType', 'T_NEGATE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_PLUS', 'Doctrine\\ORM\\Query\\TokenType', 'T_PLUS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_OPEN_CURLY_BRACE', 'Doctrine\\ORM\\Query\\TokenType', 'T_OPEN_CURLY_BRACE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_CLOSE_CURLY_BRACE', 'Doctrine\\ORM\\Query\\TokenType', 'T_CLOSE_CURLY_BRACE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ALIASED_NAME', 'Doctrine\\ORM\\Query\\TokenType', 'T_ALIASED_NAME'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_FULLY_QUALIFIED_NAME', 'Doctrine\\ORM\\Query\\TokenType', 'T_FULLY_QUALIFIED_NAME'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_IDENTIFIER', 'Doctrine\\ORM\\Query\\TokenType', 'T_IDENTIFIER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ALL', 'Doctrine\\ORM\\Query\\TokenType', 'T_ALL'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_AND', 'Doctrine\\ORM\\Query\\TokenType', 'T_AND'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ANY', 'Doctrine\\ORM\\Query\\TokenType', 'T_ANY'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_AS', 'Doctrine\\ORM\\Query\\TokenType', 'T_AS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ASC', 'Doctrine\\ORM\\Query\\TokenType', 'T_ASC'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_AVG', 'Doctrine\\ORM\\Query\\TokenType', 'T_AVG'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_BETWEEN', 'Doctrine\\ORM\\Query\\TokenType', 'T_BETWEEN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_BOTH', 'Doctrine\\ORM\\Query\\TokenType', 'T_BOTH'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_BY', 'Doctrine\\ORM\\Query\\TokenType', 'T_BY'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_CASE', 'Doctrine\\ORM\\Query\\TokenType', 'T_CASE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_COALESCE', 'Doctrine\\ORM\\Query\\TokenType', 'T_COALESCE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_COUNT', 'Doctrine\\ORM\\Query\\TokenType', 'T_COUNT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_DELETE', 'Doctrine\\ORM\\Query\\TokenType', 'T_DELETE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_DESC', 'Doctrine\\ORM\\Query\\TokenType', 'T_DESC'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_DISTINCT', 'Doctrine\\ORM\\Query\\TokenType', 'T_DISTINCT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ELSE', 'Doctrine\\ORM\\Query\\TokenType', 'T_ELSE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_EMPTY', 'Doctrine\\ORM\\Query\\TokenType', 'T_EMPTY'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_END', 'Doctrine\\ORM\\Query\\TokenType', 'T_END'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ESCAPE', 'Doctrine\\ORM\\Query\\TokenType', 'T_ESCAPE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_EXISTS', 'Doctrine\\ORM\\Query\\TokenType', 'T_EXISTS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_FALSE', 'Doctrine\\ORM\\Query\\TokenType', 'T_FALSE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_FROM', 'Doctrine\\ORM\\Query\\TokenType', 'T_FROM'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_GROUP', 'Doctrine\\ORM\\Query\\TokenType', 'T_GROUP'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_HAVING', 'Doctrine\\ORM\\Query\\TokenType', 'T_HAVING'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_HIDDEN', 'Doctrine\\ORM\\Query\\TokenType', 'T_HIDDEN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_IN', 'Doctrine\\ORM\\Query\\TokenType', 'T_IN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_INDEX', 'Doctrine\\ORM\\Query\\TokenType', 'T_INDEX'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_INNER', 'Doctrine\\ORM\\Query\\TokenType', 'T_INNER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_INSTANCE', 'Doctrine\\ORM\\Query\\TokenType', 'T_INSTANCE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_IS', 'Doctrine\\ORM\\Query\\TokenType', 'T_IS'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_JOIN', 'Doctrine\\ORM\\Query\\TokenType', 'T_JOIN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_LEADING', 'Doctrine\\ORM\\Query\\TokenType', 'T_LEADING'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_LEFT', 'Doctrine\\ORM\\Query\\TokenType', 'T_LEFT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_LIKE', 'Doctrine\\ORM\\Query\\TokenType', 'T_LIKE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_MAX', 'Doctrine\\ORM\\Query\\TokenType', 'T_MAX'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_MEMBER', 'Doctrine\\ORM\\Query\\TokenType', 'T_MEMBER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_MIN', 'Doctrine\\ORM\\Query\\TokenType', 'T_MIN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NEW', 'Doctrine\\ORM\\Query\\TokenType', 'T_NEW'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NOT', 'Doctrine\\ORM\\Query\\TokenType', 'T_NOT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NULL', 'Doctrine\\ORM\\Query\\TokenType', 'T_NULL'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_NULLIF', 'Doctrine\\ORM\\Query\\TokenType', 'T_NULLIF'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_OF', 'Doctrine\\ORM\\Query\\TokenType', 'T_OF'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_OR', 'Doctrine\\ORM\\Query\\TokenType', 'T_OR'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_ORDER', 'Doctrine\\ORM\\Query\\TokenType', 'T_ORDER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_OUTER', 'Doctrine\\ORM\\Query\\TokenType', 'T_OUTER'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_PARTIAL', 'Doctrine\\ORM\\Query\\TokenType', 'T_PARTIAL'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_SELECT', 'Doctrine\\ORM\\Query\\TokenType', 'T_SELECT'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_SET', 'Doctrine\\ORM\\Query\\TokenType', 'T_SET'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_SOME', 'Doctrine\\ORM\\Query\\TokenType', 'T_SOME'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_SUM', 'Doctrine\\ORM\\Query\\TokenType', 'T_SUM'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_THEN', 'Doctrine\\ORM\\Query\\TokenType', 'T_THEN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_TRAILING', 'Doctrine\\ORM\\Query\\TokenType', 'T_TRAILING'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_TRUE', 'Doctrine\\ORM\\Query\\TokenType', 'T_TRUE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_UPDATE', 'Doctrine\\ORM\\Query\\TokenType', 'T_UPDATE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_WHEN', 'Doctrine\\ORM\\Query\\TokenType', 'T_WHEN'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_WHERE', 'Doctrine\\ORM\\Query\\TokenType', 'T_WHERE'), new RenameClassAndConstFetch('Doctrine\\ORM\\Query\\Lexer', 'T_WITH', 'Doctrine\\ORM\\Query\\TokenType', 'T_WITH')]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/yaml-to-annotations.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/yaml-to-annotations.php index 6b994522d..02854a621 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/yaml-to-annotations.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/yaml-to-annotations.php @@ -1,42 +1,47 @@ autotagInterface(ClassAnnotationTransformerInterface::class); - $rectorConfig->autotagInterface(PropertyAnnotationTransformerInterface::class); - // for yaml to annotation transformer - $rectorConfig->singleton(EntityClassAnnotationTransformer::class); - $rectorConfig->singleton(SoftDeletableClassAnnotationTransformer::class); - $rectorConfig->singleton(TableClassAnnotationTransformer::class); - $rectorConfig->singleton(EmbeddableClassAnnotationTransformer::class); - $rectorConfig->singleton(InheritanceClassAnnotationTransformer::class); - $rectorConfig->singleton(ColumnAnnotationTransformer::class); - $rectorConfig->singleton(EmbeddedPropertyAnnotationTransformer::class); - $rectorConfig->singleton(GedmoTimestampableAnnotationTransformer::class); - $rectorConfig->singleton(IdAnnotationTransformer::class); - $rectorConfig->singleton(IdColumnAnnotationTransformer::class); - $rectorConfig->singleton(IdGeneratorAnnotationTransformer::class); - $rectorConfig->singleton(ManyToOneAnnotationTransformer::class); - $rectorConfig->singleton(OneToManyAnnotationTransformer::class); - $rectorConfig->when(YamlToAnnotationTransformer::class)->needs('$classAnnotationTransformers')->giveTagged(ClassAnnotationTransformerInterface::class); - $rectorConfig->when(YamlToAnnotationTransformer::class)->needs('$propertyAnnotationTransformers')->giveTagged(PropertyAnnotationTransformerInterface::class); + $rectorConfig->autotagInterface(ClassAttributeTransformerInterface::class); + $rectorConfig->autotagInterface(PropertyAttributeTransformerInterface::class); + // for yaml to class attribute transformer + $rectorConfig->singleton(EntityClassAttributeTransformer::class); + $rectorConfig->singleton(SoftDeletableClassAttributeTransformer::class); + $rectorConfig->singleton(TableClassAttributeTransformer::class); + $rectorConfig->singleton(EmbeddableClassAttributeTransformer::class); + $rectorConfig->singleton(InheritanceClassAttributeTransformer::class); + // for yaml to property attribute transformer + $rectorConfig->singleton(ColumnAttributeTransformer::class); + $rectorConfig->singleton(EmbeddedPropertyAttributeTransformer::class); + $rectorConfig->singleton(GedmoTimestampableAttributeTransformer::class); + $rectorConfig->singleton(IdAttributeTransformer::class); + $rectorConfig->singleton(IdColumnAttributeTransformer::class); + $rectorConfig->singleton(IdGeneratorAttributeTransformer::class); + $rectorConfig->singleton(ManyToOneAttributeTransformer::class); + $rectorConfig->singleton(OneToManyAttributeTransformer::class); + $rectorConfig->singleton(JoinColumnAttributeTransformer::class); + $rectorConfig->singleton(OrderByAttributeTransformer::class); + $rectorConfig->when(YamlToAttributeTransformer::class)->needs('$classAttributeTransformers')->giveTagged(ClassAttributeTransformerInterface::class); + $rectorConfig->when(YamlToAttributeTransformer::class)->needs('$propertyAttributeTransformers')->giveTagged(PropertyAttributeTransformerInterface::class); }; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/easy-ci.php b/vendor/rector/rector/vendor/rector/rector-doctrine/easy-ci.php deleted file mode 100644 index ff8349f21..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/easy-ci.php +++ /dev/null @@ -1,10 +0,0 @@ -paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/rules']); - $easyCIConfig->typesToSkip([\Rector\Contract\Rector\RectorInterface::class]); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php deleted file mode 100644 index 8a5ec9e16..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php +++ /dev/null @@ -1,22 +0,0 @@ -importNames(); - $rectorConfig->removeUnusedImports(); - $rectorConfig->paths([__DIR__ . '/src', __DIR__ . '/rules', __DIR__ . '/tests']); - $rectorConfig->skip([ - // for tests - '*/Source/*', - '*/Fixture/*', - ]); - $rectorConfig->sets([LevelSetList::UP_TO_PHP_81, PHPUnitSetList::PHPUNIT_100, SetList::DEAD_CODE, SetList::CODE_QUALITY, SetList::CODING_STYLE, SetList::NAMING, SetList::TYPE_DECLARATION, SetList::PRIVATIZATION]); - $rectorConfig->ruleWithConfiguration(StringClassNameToClassConstantRector::class, ['Doctrine\\*', 'Gedmo\\*', 'Knp\\*', 'DateTime', 'DateTimeInterface']); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php index 1ee80125c..e966f4f77 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Bundle210/Rector/Class_/EventSubscriberInterfaceToAttributeRector.php @@ -100,7 +100,7 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - if (!$this->hasImplements($node, 'Doctrine\\Common\\EventSubscriber')) { + if (!$this->hasImplements($node, 'Doctrine\\Common\\EventSubscriber') && !$this->hasImplements($node, 'Doctrine\\Bundle\\DoctrineBundle\\EventSubscriber\\EventSubscriberInterface')) { return null; } $this->subscriberClass = $node; @@ -115,7 +115,7 @@ public function refactor(Node $node) : ?Node if ($stmts[0] instanceof Return_ && $stmts[0]->expr instanceof Array_) { $this->handleArray($stmts); } - $this->removeImplements($node, ['Doctrine\\Common\\EventSubscriber']); + $this->removeImplements($node, ['Doctrine\\Common\\EventSubscriber', 'Doctrine\\Bundle\\DoctrineBundle\\EventSubscriber\\EventSubscriberInterface']); unset($node->stmts[$getSubscribedEventsClassMethod->getAttribute(AttributeKey::STMT_KEY)]); return $node; } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php deleted file mode 100644 index 1eb137c6b..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EmbeddableClassAnnotationTransformer.php +++ /dev/null @@ -1,26 +0,0 @@ -getClassMapping(); - $type = $classMapping['type'] ?? null; - if ($type !== 'embeddable') { - return; - } - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode([], $this->getClassName()); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Embeddable'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php deleted file mode 100644 index 38503b27f..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/EntityClassAnnotationTransformer.php +++ /dev/null @@ -1,37 +0,0 @@ -getClassMapping(); - $type = $classMapping['type'] ?? null; - if ($type !== 'entity') { - return; - } - $arrayItemNodes = []; - $repositoryClass = $classMapping[self::REPOSITORY_CLASS_KEY] ?? null; - if ($repositoryClass) { - $arrayItemNodes[] = new ArrayItemNode(new StringNode($repositoryClass), self::REPOSITORY_CLASS_KEY); - } - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Entity'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php deleted file mode 100644 index 18660ec1f..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/InheritanceClassAnnotationTransformer.php +++ /dev/null @@ -1,60 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $classPhpDocInfo) : void - { - $classMapping = $entityMapping->getClassMapping(); - $inheritanceType = $classMapping['inheritanceType'] ?? null; - if ($inheritanceType === null) { - return; - } - $inheritanceStringNode = new StringNode($inheritanceType); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode([$inheritanceStringNode], 'Doctrine\\ORM\\Mapping\\InheritanceType'); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - if (isset($classMapping['discriminatorColumn'])) { - $this->addDisriminatorColumn($classMapping['discriminatorColumn'], $classPhpDocInfo); - } - if (isset($classMapping['discriminatorMap'])) { - $this->addDiscriminatorMap($classMapping['discriminatorMap'], $classPhpDocInfo); - } - } - /** - * @param array $discriminatorColumn - */ - private function addDisriminatorColumn(array $discriminatorColumn, PhpDocInfo $classPhpDocInfo) : void - { - $arrayItemNodes = $this->arrayItemNodeFactory->create($discriminatorColumn, ['name', 'type']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, 'Doctrine\\ORM\\Mapping\\DiscriminatorColumn'); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - /** - * @param array $discriminatorMap - */ - private function addDiscriminatorMap(array $discriminatorMap, PhpDocInfo $classPhpDocInfo) : void - { - $arrayItemNodes = $this->arrayItemNodeFactory->create($discriminatorMap, [ArrayItemNodeFactory::QUOTE_ALL]); - $curlyListNode = new CurlyListNode($arrayItemNodes); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode([$curlyListNode], 'Doctrine\\ORM\\Mapping\\DiscriminatorMap'); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php deleted file mode 100644 index 09e432fb5..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php +++ /dev/null @@ -1,47 +0,0 @@ -getClassMapping(); - $softDeletableMapping = $classMapping['gedmo'][self::SOFT_DELETEABLE] ?? null; - if (!\is_array($softDeletableMapping)) { - return; - } - $arrayItemNodes = $this->createArrayItemNodes($softDeletableMapping); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Gedmo\\Mapping\\Annotation\\SoftDeleteable'; - } - /** - * @param array $softDeletableMapping - * @return ArrayItemNode[] - */ - private function createArrayItemNodes(array $softDeletableMapping) : array - { - $arrayItemNodes = []; - foreach ($softDeletableMapping as $fieldKey => $fieldValue) { - $camelCaseFieldKey = CaseStringHelper::camelCase($fieldKey); - $arrayItemNodes[] = new ArrayItemNode(new StringNode($fieldValue), $camelCaseFieldKey); - } - return $arrayItemNodes; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php deleted file mode 100644 index 406c178df..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php +++ /dev/null @@ -1,52 +0,0 @@ -getClassMapping(); - $table = $classMapping[self::TABLE_KEY] ?? null; - if (isset($classMapping['type']) && $classMapping['type'] !== 'entity') { - return; - } - $arrayItemNodes = []; - if (\is_string($table)) { - $arrayItemNodes[] = new ArrayItemNode(new StringNode($table), self::TABLE_KEY); - } - $uniqueConstraints = $classMapping['uniqueConstraints'] ?? null; - if ($uniqueConstraints) { - $uniqueConstraintDoctrineAnnotationTagValueNodes = []; - foreach ($uniqueConstraints as $name => $uniqueConstraint) { - $columnArrayItems = []; - foreach ($uniqueConstraint['columns'] as $column) { - $columnArrayItems[] = new ArrayItemNode(new StringNode($column)); - } - $columnCurlList = new CurlyListNode($columnArrayItems); - $uniqueConstraintDoctrineAnnotationTagValueNodes[] = new ArrayItemNode(new DoctrineAnnotationTagValueNode(new IdentifierTypeNode('@\\Doctrine\\ORM\\Mapping\\UniqueConstraint'), null, [new ArrayItemNode(new StringNode($name), 'name'), new ArrayItemNode($columnCurlList, 'columns')])); - } - $arrayItemNodes[] = new ArrayItemNode(new CurlyListNode($uniqueConstraintDoctrineAnnotationTagValueNodes), 'uniqueConstraints'); - } - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $classPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Table'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php deleted file mode 100644 index 68cc498fa..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php +++ /dev/null @@ -1,37 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $propertyMapping = $entityMapping->matchFieldPropertyMapping($property); - if ($propertyMapping === null) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($propertyMapping, ['type']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Column'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php deleted file mode 100644 index 7c915b38b..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/EmbeddedPropertyAnnotationTransformer.php +++ /dev/null @@ -1,37 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $propertyMapping = $entityMapping->matchEmbeddedPropertyMapping($property); - if ($propertyMapping === null) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($propertyMapping, ['class', 'columnPrefix']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Embedded'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php deleted file mode 100644 index 9db2aa2e3..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/GedmoTimestampableAnnotationTransformer.php +++ /dev/null @@ -1,38 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $fieldPropertyMapping = $entityMapping->matchFieldPropertyMapping($property); - $timestampableMapping = $fieldPropertyMapping['gedmo']['timestampable'] ?? null; - if (!\is_array($timestampableMapping)) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($timestampableMapping, ['on', 'field']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Gedmo\\Mapping\\Annotation\\Timestampable'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php deleted file mode 100644 index 36aa36096..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdAnnotationTransformer.php +++ /dev/null @@ -1,26 +0,0 @@ -matchIdPropertyMapping($property); - if (!\is_array($idMapping)) { - return; - } - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode([], $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Id'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php deleted file mode 100644 index a3f4e9875..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php +++ /dev/null @@ -1,33 +0,0 @@ -matchIdPropertyMapping($property); - if (!\is_array($idMapping)) { - return; - } - $arrayItemNodes = []; - $type = $idMapping['type'] ?? null; - if ($type) { - $arrayItemNodes[] = new ArrayItemNode(new StringNode($type), 'type'); - } - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\Column'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php deleted file mode 100644 index ce0c76e5b..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdGeneratorAnnotationTransformer.php +++ /dev/null @@ -1,41 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $idMapping = $entityMapping->matchIdPropertyMapping($property); - if (!\is_array($idMapping)) { - return; - } - $generator = $idMapping['generator'] ?? null; - if (!\is_array($generator)) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($generator, ['strategy']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\GeneratedValue'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php deleted file mode 100644 index d75c7284f..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ManyToOneAnnotationTransformer.php +++ /dev/null @@ -1,37 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $manyToOneMapping = $entityMapping->matchManyToOnePropertyMapping($property); - if (!\is_array($manyToOneMapping)) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($manyToOneMapping, ['targetEntity', 'inversedBy']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\ManyToOne'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php deleted file mode 100644 index 49657ce39..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/OneToManyAnnotationTransformer.php +++ /dev/null @@ -1,37 +0,0 @@ -arrayItemNodeFactory = $arrayItemNodeFactory; - } - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void - { - $oneToManyMapping = $entityMapping->matchOneToManyPropertyMapping($property); - if (!\is_array($oneToManyMapping)) { - return; - } - $arrayItemNodes = $this->arrayItemNodeFactory->create($oneToManyMapping, ['targetEntity', 'mappedBy']); - $spacelessPhpDocTagNode = DocTagNodeFactory::createSpacelessPhpDocTagNode($arrayItemNodes, $this->getClassName()); - $propertyPhpDocInfo->addPhpDocTagNode($spacelessPhpDocTagNode); - } - public function getClassName() : string - { - return 'Doctrine\\ORM\\Mapping\\ManyToOne'; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php deleted file mode 100644 index ae034e0d1..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/YamlToAnnotationTransformer.php +++ /dev/null @@ -1,68 +0,0 @@ -classAnnotationTransformers = $classAnnotationTransformers; - $this->propertyAnnotationTransformers = $propertyAnnotationTransformers; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->docBlockUpdater = $docBlockUpdater; - } - public function transform(Class_ $class, EntityMapping $entityMapping) : void - { - $this->transformClass($class, $entityMapping); - $this->transformProperties($class, $entityMapping); - } - private function transformClass(Class_ $class, EntityMapping $entityMapping) : void - { - $classPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($class); - foreach ($this->classAnnotationTransformers as $classAnnotationTransformer) { - $classAnnotationTransformer->transform($entityMapping, $classPhpDocInfo); - } - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($class); - } - private function transformProperties(Class_ $class, EntityMapping $entityMapping) : void - { - foreach ($class->getProperties() as $property) { - $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); - foreach ($this->propertyAnnotationTransformers as $propertyAnnotationTransformer) { - $propertyAnnotationTransformer->transform($entityMapping, $propertyPhpDocInfo, $property); - } - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); - } - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php new file mode 100644 index 000000000..f96d5907d --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EmbeddableClassAttributeTransformer.php @@ -0,0 +1,26 @@ +getClassMapping(); + $type = $classMapping['type'] ?? null; + if ($type !== 'embeddable') { + return; + } + $class->attrGroups[] = AttributeFactory::createGroup($this->getClassName()); + } + public function getClassName() : string + { + return MappingClass::EMBEDDABLE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php new file mode 100644 index 000000000..7cc5a191e --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/EntityClassAttributeTransformer.php @@ -0,0 +1,38 @@ +getClassMapping(); + $type = $classMapping['type'] ?? null; + if ($type !== 'entity') { + return; + } + $args = []; + $repositoryClass = $classMapping[self::REPOSITORY_CLASS_KEY] ?? null; + if ($repositoryClass) { + $repositoryClassConstFetch = new ClassConstFetch(new FullyQualified($repositoryClass), 'class'); + $args[] = AttributeFactory::createNamedArg($repositoryClassConstFetch, self::REPOSITORY_CLASS_KEY); + } + $class->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::ENTITY; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php new file mode 100644 index 000000000..fd2a5beb2 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/InheritanceClassAttributeTransformer.php @@ -0,0 +1,72 @@ +nodeFactory = $nodeFactory; + } + public function transform(EntityMapping $entityMapping, Class_ $class) : void + { + $classMapping = $entityMapping->getClassMapping(); + $inheritanceType = $classMapping['inheritanceType'] ?? null; + if ($inheritanceType === null) { + return; + } + $class->attrGroups[] = AttributeFactory::createGroup(MappingClass::INHERITANCE_TYPE, [$inheritanceType]); + if (isset($classMapping['discriminatorColumn'])) { + $class->attrGroups[] = AttributeFactory::createGroup(MappingClass::DISCRIMINATOR_COLUMN, $classMapping['discriminatorColumn']); + } + if (isset($classMapping['discriminatorMap'])) { + $this->addDiscriminatorMap($classMapping['discriminatorMap'], $class); + } + } + public function getClassName() : string + { + return MappingClass::DISCRIMINATOR_MAP; + } + /** + * @param array $discriminatorMap + */ + private function addDiscriminatorMap(array $discriminatorMap, Class_ $class) : void + { + $args = $this->nodeFactory->createArgs([$discriminatorMap]); + foreach ($args as $arg) { + if ($arg->value instanceof Array_) { + $array = $arg->value; + foreach ($array->items as $arrayItem) { + if (!$arrayItem instanceof ArrayItem) { + continue; + } + if (!$arrayItem->value instanceof String_) { + continue; + } + $string = $arrayItem->value; + $arrayItem->value = new ClassConstFetch(new FullyQualified($string->value), new Identifier('class')); + } + } + } + // @todo all value should be class const + $class->attrGroups[] = AttributeFactory::createGroup(MappingClass::DISCRIMINATOR_MAP, $args); + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php new file mode 100644 index 000000000..c8c9f20d3 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/SoftDeletableClassAttributeTransformer.php @@ -0,0 +1,45 @@ +nodeFactory = $nodeFactory; + } + public function transform(EntityMapping $entityMapping, Class_ $class) : void + { + $classMapping = $entityMapping->getClassMapping(); + $softDeletableMapping = $classMapping['gedmo']['soft_deleteable'] ?? null; + if (!\is_array($softDeletableMapping)) { + return; + } + $args = $this->nodeFactory->createArgs($softDeletableMapping); + foreach ($args as $arg) { + if (!$arg->name instanceof Identifier) { + continue; + } + $arg->name = new Identifier(CaseStringHelper::camelCase($arg->name->toString())); + } + $class->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::GEDMO_SOFT_DELETEABLE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php new file mode 100644 index 000000000..de1a28c6f --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php @@ -0,0 +1,51 @@ +nodeFactory = $nodeFactory; + } + public function transform(EntityMapping $entityMapping, Class_ $class) : void + { + $classMapping = $entityMapping->getClassMapping(); + $table = $classMapping[self::TABLE_KEY] ?? null; + if (isset($classMapping['type']) && $classMapping['type'] !== 'entity') { + return; + } + $args = []; + if (\is_string($table)) { + $args[] = AttributeFactory::createNamedArg(new String_($table), 'name'); + } + $class->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + $uniqueConstraints = $classMapping['uniqueConstraints'] ?? []; + foreach ($uniqueConstraints as $name => $uniqueConstraint) { + $uniqueConstraint = \array_merge(['name' => $name], $uniqueConstraint); + $args = $this->nodeFactory->createArgs($uniqueConstraint); + $class->attrGroups[] = AttributeFactory::createGroup(MappingClass::UNIQUE_CONSTRAINT, $args); + } + } + public function getClassName() : string + { + return MappingClass::TABLE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php new file mode 100644 index 000000000..2f207b2c1 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ColumnAttributeTransformer.php @@ -0,0 +1,50 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $propertyMapping = $entityMapping->matchFieldPropertyMapping($property); + if ($propertyMapping === null) { + return; + } + // handled in another mapper + unset($propertyMapping['gedmo']); + $args = []; + // rename to "name" + if (isset($propertyMapping[EntityMappingKey::COLUMN])) { + $column = $propertyMapping[EntityMappingKey::COLUMN]; + $args[] = AttributeFactory::createNamedArg($column, EntityMappingKey::NAME); + unset($propertyMapping[EntityMappingKey::COLUMN]); + } + $args = \array_merge($args, $this->nodeFactory->createArgs($propertyMapping)); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::COLUMN; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php new file mode 100644 index 000000000..2e2351478 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/EmbeddedPropertyAttributeTransformer.php @@ -0,0 +1,44 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $propertyMapping = $entityMapping->matchEmbeddedPropertyMapping($property); + if ($propertyMapping === null) { + return; + } + // handled in another attribute + unset($propertyMapping['nullable']); + $args = $this->nodeFactory->createArgs($propertyMapping); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + NodeValueNormalizer::ensureKeyIsClassConstFetch($args, 'class'); + } + public function getClassName() : string + { + return MappingClass::EMBEDDED; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php new file mode 100644 index 000000000..f5b2ca28d --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/GedmoTimestampableAttributeTransformer.php @@ -0,0 +1,41 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $fieldPropertyMapping = $entityMapping->matchFieldPropertyMapping($property); + $timestampableMapping = $fieldPropertyMapping['gedmo']['timestampable'] ?? null; + if (!\is_array($timestampableMapping)) { + return; + } + $args = $this->nodeFactory->createArgs($timestampableMapping); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::GEDMO_TIMESTAMPABLE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php new file mode 100644 index 000000000..4b814fcda --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdAttributeTransformer.php @@ -0,0 +1,29 @@ +matchIdPropertyMapping($property); + if (!\is_array($idMapping)) { + return; + } + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName()); + } + public function getClassName() : string + { + return MappingClass::ID; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php new file mode 100644 index 000000000..2209b7905 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdColumnAttributeTransformer.php @@ -0,0 +1,34 @@ +matchIdPropertyMapping($property); + if (!\is_array($idMapping)) { + return; + } + $args = []; + $type = $idMapping['type'] ?? null; + if ($type) { + $args[] = AttributeFactory::createNamedArg($type, 'type'); + } + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::COLUMN; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php new file mode 100644 index 000000000..bde1fb073 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/IdGeneratorAttributeTransformer.php @@ -0,0 +1,64 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $idMapping = $entityMapping->matchIdPropertyMapping($property); + if (!\is_array($idMapping)) { + return; + } + $generator = $idMapping[EntityMappingKey::GENERATOR] ?? null; + if (!\is_array($generator)) { + return; + } + // make sure strategy is uppercase as constant value + $generator = $this->normalizeStrategy($generator); + $args = $this->nodeFactory->createArgs($generator); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::GENERATED_VALUE; + } + /** + * @param array $generator + * @return array + */ + private function normalizeStrategy(array $generator) : array + { + if (isset($generator[EntityMappingKey::STRATEGY]) && \in_array($generator[EntityMappingKey::STRATEGY], self::AVAILABLE_STRATEGIES, \true)) { + $generator[EntityMappingKey::STRATEGY] = \strtoupper($generator[EntityMappingKey::STRATEGY]); + } + return $generator; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php new file mode 100644 index 000000000..b639c7089 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php @@ -0,0 +1,56 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $manyToOnePropertyMapping = $entityMapping->matchManyToOnePropertyMapping($property); + if (!\is_array($manyToOnePropertyMapping)) { + return; + } + $joinColumns = $manyToOnePropertyMapping['joinColumns'] ?? null; + if (!\is_array($joinColumns)) { + return; + } + foreach ($joinColumns as $columnName => $joinColumn) { + $property->attrGroups[] = $this->createJoinColumnAttrGroup($columnName, $joinColumn); + } + } + public function getClassName() : string + { + return MappingClass::JOIN_COLUMN; + } + /** + * @param int|string $columnName + * @param mixed $joinColumn + */ + private function createJoinColumnAttrGroup($columnName, $joinColumn) : AttributeGroup + { + $joinColumn = \array_merge(['name' => $columnName], $joinColumn); + $args = $this->nodeFactory->createArgs($joinColumn); + return AttributeFactory::createGroup($this->getClassName(), $args); + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php new file mode 100644 index 000000000..3b39d2254 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToOneAttributeTransformer.php @@ -0,0 +1,47 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $manyToOneMapping = $entityMapping->matchManyToOnePropertyMapping($property); + if (!\is_array($manyToOneMapping)) { + return; + } + // handled by another mapper + unset($manyToOneMapping['joinColumns']); + // non existing + unset($manyToOneMapping['nullable']); + $args = $this->nodeFactory->createArgs($manyToOneMapping); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + NodeValueNormalizer::ensureKeyIsClassConstFetch($args, EntityMappingKey::TARGET_ENTITY); + } + public function getClassName() : string + { + return MappingClass::MANY_TO_ONE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php new file mode 100644 index 000000000..646fff792 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OneToManyAttributeTransformer.php @@ -0,0 +1,45 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $oneToManyMapping = $entityMapping->matchOneToManyPropertyMapping($property); + if (!\is_array($oneToManyMapping)) { + return; + } + // handled by OrderBy mapping rule as standalone entity class + unset($oneToManyMapping[EntityMappingKey::ORDER_BY]); + $args = $this->nodeFactory->createArgs($oneToManyMapping); + NodeValueNormalizer::ensureKeyIsClassConstFetch($args, 'targetEntity'); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::ONE_TO_MANY; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php new file mode 100644 index 000000000..3b3f1da03 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/OrderByAttributeTransformer.php @@ -0,0 +1,46 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $oneToManyMapping = $entityMapping->matchOneToManyPropertyMapping($property); + if (!\is_array($oneToManyMapping)) { + return; + } + // we handle OrderBy here only + if (!isset($oneToManyMapping[EntityMappingKey::ORDER_BY])) { + return; + } + $orderBy = $oneToManyMapping[EntityMappingKey::ORDER_BY]; + $args = $this->nodeFactory->createArgs([$orderBy]); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + } + public function getClassName() : string + { + return MappingClass::ORDER_BY; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php new file mode 100644 index 000000000..52bd4c234 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/YamlToAttributeTransformer.php @@ -0,0 +1,91 @@ +classAttributeTransformers = $classAttributeTransformers; + $this->propertyAttributeTransformers = $propertyAttributeTransformers; + } + public function transform(Class_ $class, EntityMapping $entityMapping) : void + { + $this->transformClass($class, $entityMapping); + $this->transformProperties($class, $entityMapping); + } + private function transformClass(Class_ $class, EntityMapping $entityMapping) : void + { + foreach ($this->classAttributeTransformers as $classAttributeTransformer) { + if ($this->hasAttribute($class, $classAttributeTransformer->getClassName())) { + continue; + } + $classAttributeTransformer->transform($entityMapping, $class); + } + } + private function transformProperties(Class_ $class, EntityMapping $entityMapping) : void + { + foreach ($class->getProperties() as $property) { + foreach ($this->propertyAttributeTransformers as $propertyAttributeTransformer) { + if ($this->hasAttribute($property, $propertyAttributeTransformer->getClassName())) { + continue; + } + $propertyAttributeTransformer->transform($entityMapping, $property); + } + } + // handle promoted properties + $constructorClassMethod = $class->getMethod(MethodName::CONSTRUCT); + if (!$constructorClassMethod instanceof ClassMethod) { + return; + } + foreach ($constructorClassMethod->getParams() as $param) { + // is promoted property? + if ($param->flags === 0) { + continue; + } + foreach ($this->propertyAttributeTransformers as $propertyAttributeTransformer) { + if ($this->hasAttribute($param, $propertyAttributeTransformer->getClassName())) { + continue; + } + $propertyAttributeTransformer->transform($entityMapping, $param); + } + } + } + /** + * @param \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $stmt + */ + private function hasAttribute($stmt, string $attributeClassName) : bool + { + foreach ($stmt->attrGroups as $attrGroup) { + foreach ($attrGroup->attrs as $attr) { + if ($attr->name->toString() === $attributeClassName) { + return \true; + } + } + } + return \false; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php deleted file mode 100644 index 4c59a758c..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php +++ /dev/null @@ -1,11 +0,0 @@ -name instanceof Identifier) { + continue; + } + if ($arg->name->toString() !== $argumentName) { + continue; + } + // already done + if ($arg->value instanceof ClassConstFetch) { + continue; + } + $value = $arg->value; + // we need string reference + if (!$value instanceof String_) { + continue; + } + $arg->value = new ClassConstFetch(new FullyQualified($value->value), new Identifier('class')); + } + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php deleted file mode 100644 index 0180f8252..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php +++ /dev/null @@ -1,61 +0,0 @@ - $propertyMapping - * @param string[] $quotedFields - * - * @return ArrayItemNode[] - */ - public function create(array $propertyMapping, array $quotedFields = []) : array - { - Assert::allString($quotedFields); - $arrayItemNodes = []; - foreach ($propertyMapping as $fieldKey => $fieldValue) { - if (\in_array($fieldKey, self::EXTENSION_KEYS, \true)) { - continue; - } - if (\is_array($fieldValue)) { - $fieldValueArrayItemNodes = []; - foreach ($fieldValue as $fieldSingleValue) { - $fieldValueArrayItemNodes[] = new ArrayItemNode(new StringNode($fieldSingleValue)); - } - $arrayItemNodes[] = new ArrayItemNode(new CurlyListNode($fieldValueArrayItemNodes), $fieldKey); - continue; - } - if ($quotedFields === [self::QUOTE_ALL]) { - $arrayItemNodes[] = new ArrayItemNode(new StringNode($fieldValue), new StringNode($fieldKey)); - continue; - } - if (\in_array($fieldKey, $quotedFields, \true)) { - $arrayItemNodes[] = new ArrayItemNode(new StringNode($fieldValue), $fieldKey); - continue; - } - if ($fieldKey === EntityMappingKey::NULLABLE) { - $arrayItemNodes[] = new ArrayItemNode($fieldValue === \true ? 'true' : 'false', $fieldKey); - continue; - } - $arrayItemNodes[] = new ArrayItemNode($fieldValue, $fieldKey); - } - return $arrayItemNodes; - } -} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php new file mode 100644 index 000000000..226ab616d --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php @@ -0,0 +1,36 @@ + $values + */ + public static function createGroup(string $className, array $values = []) : AttributeGroup + { + $builderFactory = new BuilderFactory(); + $args = $builderFactory->args($values); + $attribute = new Attribute(new FullyQualified($className), $args); + return new AttributeGroup([$attribute]); + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php index deba5e742..b5fa7ccb9 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php @@ -20,9 +20,9 @@ public function getRuleDefinition() : RuleDefinition return new RuleDefinition("Remove empty Table attribute on entities because it's useless", [new CodeSample(<<<'CODE_SAMPLE' entityMappingResolver = $entityMappingResolver; - $this->yamlToAnnotationTransformer = $yamlToAnnotationTransformer; + $this->yamlToAttributeTransformer = $yamlToAttributeTransformer; } public function getRuleDefinition() : RuleDefinition { @@ -51,21 +55,15 @@ class SomeEntity , <<<'CODE_SAMPLE' use Doctrine\ORM\Mapping as ORM; -/** - * @ORM\Entity - */ +#[ORM\Entity] class SomeEntity { - /** - * @ORM\Id - * @ORM\GeneratedValue - * @ORM\Column(type="integer") - */ + #[ORM\Id] + #[ORM\GeneratedValue] + #[ORM\Column(type: 'integer')] private $id; - /** - * @ORM\Column(type="string") - */ + #[ORM\Column(type: 'string')] private $name; } @@ -88,7 +86,7 @@ public function refactor(Node $node) : ?Class_ if (!$entityMapping instanceof EntityMapping) { return null; } - $this->yamlToAnnotationTransformer->transform($node, $entityMapping); + $this->yamlToAttributeTransformer->transform($node, $entityMapping); return $node; } /** @@ -100,6 +98,15 @@ public function configure(array $configuration) : void Assert::allFileExists($configuration); $this->yamlMappingDirectories = $configuration; } + public static function getConfigFile() : string + { + return DoctrineSetList::YAML_TO_ANNOTATIONS; + } + public function provideMinPhpVersion() : int + { + // required by Doctrine nested attributes + return PhpVersion::PHP_81; + } private function findEntityMapping(Class_ $class) : ?EntityMapping { $className = $this->getName($class); diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php index 38fd3a9f4..51651f0f4 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php @@ -17,6 +17,7 @@ use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDoc\StringNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Exception\NotImplementedYetException; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; @@ -87,7 +88,7 @@ public function getNodeTypes() : array public function refactor(Node $node) : ?Node { $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); - $doctrineAnnotationTagValueNode = $phpDocInfo->getByAnnotationClass('Doctrine\\ORM\\Mapping\\Column'); + $doctrineAnnotationTagValueNode = $phpDocInfo->getByAnnotationClass(MappingClass::COLUMN); if (!$doctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { return null; } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php index 043b2653b..2cc37d698 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Utils/CaseStringHelper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Doctrine\CodeQuality\Utils; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; final class CaseStringHelper { public static function camelCase(string $value) : string diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php index d8101ec56..4b2f2f518 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/ValueObject/EntityMapping.php @@ -3,8 +3,11 @@ declare (strict_types=1); namespace Rector\Doctrine\CodeQuality\ValueObject; +use PhpParser\Node\Expr\Variable; +use PhpParser\Node\Param; use PhpParser\Node\Stmt\Property; -use RectorPrefix202402\Webmozart\Assert\Assert; +use Rector\Exception\ShouldNotHappenException; +use RectorPrefix202403\Webmozart\Assert\Assert; final class EntityMapping { /** @@ -31,32 +34,36 @@ public function getClassName() : string } /** * @return mixed[]|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - public function matchFieldPropertyMapping(Property $property) : ?array + public function matchFieldPropertyMapping($property) : ?array { $propertyName = $this->getPropertyName($property); return $this->entityMapping['fields'][$propertyName] ?? null; } /** * @return mixed[]|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - public function matchEmbeddedPropertyMapping(Property $property) : ?array + public function matchEmbeddedPropertyMapping($property) : ?array { $propertyName = $this->getPropertyName($property); return $this->entityMapping['embedded'][$propertyName] ?? null; } /** * @return array|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - public function matchManyToOnePropertyMapping(Property $property) : ?array + public function matchManyToOnePropertyMapping($property) : ?array { $propertyName = $this->getPropertyName($property); return $this->entityMapping['manyToOne'][$propertyName] ?? null; } /** * @return array|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - public function matchOneToManyPropertyMapping(Property $property) : ?array + public function matchOneToManyPropertyMapping($property) : ?array { $propertyName = $this->getPropertyName($property); return $this->entityMapping['oneToMany'][$propertyName] ?? null; @@ -73,14 +80,26 @@ public function getClassMapping() : array } /** * @return array|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - public function matchIdPropertyMapping(Property $property) : ?array + public function matchIdPropertyMapping($property) : ?array { $propertyName = $this->getPropertyName($property); return $this->entityMapping['id'][$propertyName] ?? null; } - private function getPropertyName(Property $property) : string + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + private function getPropertyName($property) : string { - return $property->props[0]->name->toString(); + if ($property instanceof Property) { + return $property->props[0]->name->toString(); + } + if ($property->var instanceof Variable) { + $paramName = $property->var->name; + Assert::string($paramName); + return $paramName; + } + throw new ShouldNotHappenException(); } } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php new file mode 100644 index 000000000..da4c8d0d4 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php @@ -0,0 +1,119 @@ +fetchAll() to ->fetchAllAssociative() and other replacements', [new CodeSample(<<<'CODE_SAMPLE' +use Doctrine\DBAL\Connection; + +class SomeClass +{ + public function run(Connection $connection) + { + return $connection->fetchAll(); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Doctrine\DBAL\Connection; + +class SomeClass +{ + public function run(Connection $connection) + { + return $connection->fetchAllAssociative(); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [MethodCall::class]; + } + /** + * @param MethodCall $node + */ + public function refactor(Node $node) : ?Node + { + if ($this->isObjectType($node->var, new ObjectType('Doctrine\\DBAL\\Connection'))) { + return $this->refactorConnection($node); + } + if ($this->isObjectType($node->var, new ObjectType('Doctrine\\DBAL\\Driver\\ResultStatement'))) { + return $this->refactorResultStatement($node); + } + return null; + } + private function refactorConnection(MethodCall $methodCall) : ?\PhpParser\Node\Expr\MethodCall + { + if ($this->isName($methodCall->name, 'fetchAll')) { + $methodCall->name = new Identifier('fetchAllAssociative'); + return $methodCall; + } + if ($this->isName($methodCall->name, 'fetchArray')) { + $methodCall->name = new Identifier('fetchNumeric'); + return $methodCall; + } + return null; + } + private function refactorResultStatement(MethodCall $methodCall) : ?\PhpParser\Node\Expr\MethodCall + { + if ($this->isName($methodCall->name, 'fetchColumn')) { + $methodCall->name = new Identifier('fetchOne'); + return $methodCall; + } + if ($this->isName($methodCall->name, 'fetchAll')) { + $args = $methodCall->getArgs(); + if ($args === []) { + // not sure yet + return null; + } + $firstArg = $args[0]; + $newMethodName = $this->resolveFirstMethodName($firstArg); + if (\is_string($newMethodName)) { + $methodCall->args = []; + $methodCall->name = new Identifier($newMethodName); + return $methodCall; + } + } + return null; + } + private function resolveFirstMethodName(Arg $firstArg) : ?string + { + if (!$firstArg->value instanceof ClassConstFetch) { + return null; + } + $classConstFetch = $firstArg->value; + if (!$this->isName($classConstFetch->class, 'PDO')) { + return null; + } + if ($this->isName($classConstFetch->name, 'FETCH_COLUMN')) { + return 'fetchFirstColumn'; + } + if ($this->isName($classConstFetch->name, 'FETCH_ASSOC')) { + return 'fetchAllAssociative'; + } + return null; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php new file mode 100644 index 000000000..81c0ca2a2 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php @@ -0,0 +1,76 @@ +nodeNameResolver = $nodeNameResolver; } /** - * @param class-string $attributeClass + * @param MappingClass::* $attributeClass * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Param $node */ public function findAttributeByClassArgByName($node, string $attributeClass, string $argName) : ?Expr @@ -36,7 +37,7 @@ public function findAttributeByClassArgByName($node, string $attributeClass, str return $this->findAttributeByClassesArgByName($node, [$attributeClass], $argName); } /** - * @param class-string[] $attributeClasses + * @param string[] $attributeClasses * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Param $node */ public function findAttributeByClassesArgByName($node, array $attributeClasses, string $argName) : ?Expr diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php index bc7f23ad6..57b847acd 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php @@ -18,6 +18,7 @@ use Rector\BetterPhpDocParser\PhpDoc\StringNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Doctrine\NodeAnalyzer\AttributeFinder; use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; final class ColumnPropertyTypeResolver @@ -46,10 +47,6 @@ final class ColumnPropertyTypeResolver * @var string */ private const DATE_TIME_INTERFACE = 'DateTimeInterface'; - /** - * @var string - */ - private const COLUMN_CLASS = 'Doctrine\\ORM\\Mapping\\Column'; /** * @param array $doctrineTypeToScalarType * @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/basic-mapping.html#doctrine-mapping-types @@ -100,7 +97,7 @@ public function __construct(PhpDocInfoFactory $phpDocInfoFactory, TypeFactory $t } public function resolve(Property $property, bool $isNullable) : ?Type { - $expr = $this->attributeFinder->findAttributeByClassArgByName($property, self::COLUMN_CLASS, 'type'); + $expr = $this->attributeFinder->findAttributeByClassArgByName($property, MappingClass::COLUMN, 'type'); if ($expr instanceof String_) { return $this->createPHPStanTypeFromDoctrineStringType($expr->value, $isNullable); } @@ -109,7 +106,7 @@ public function resolve(Property $property, bool $isNullable) : ?Type } private function resolveFromPhpDocInfo(PhpDocInfo $phpDocInfo, bool $isNullable) : ?\PHPStan\Type\Type { - $doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(self::COLUMN_CLASS); + $doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(MappingClass::COLUMN); if (!$doctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { return null; } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php index 2e4df1705..b839fcdb5 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php @@ -10,6 +10,7 @@ use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Doctrine\NodeAnalyzer\AttributeFinder; use Rector\PhpParser\Node\Value\ValueResolver; final class NullabilityColumnPropertyTypeResolver @@ -44,7 +45,7 @@ public function __construct(PhpDocInfoFactory $phpDocInfoFactory, AttributeFinde } public function isNullable(Property $property) : bool { - $nullableExpr = $this->attributeFinder->findAttributeByClassArgByName($property, self::COLUMN_CLASS, 'nullable'); + $nullableExpr = $this->attributeFinder->findAttributeByClassArgByName($property, MappingClass::COLUMN, 'nullable'); if ($nullableExpr instanceof Expr) { return $this->valueResolver->isTrue($nullableExpr); } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php index 51894869a..40bc01a8c 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php @@ -4,6 +4,7 @@ namespace Rector\Doctrine\NodeManipulator; use PhpParser\Node\Expr; +use PhpParser\Node\Param; use PhpParser\Node\Stmt\Property; use PHPStan\Type\Type; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; @@ -88,8 +89,9 @@ private function processToManyRelation(Property $property, DoctrineAnnotationTag } /** * @param \PhpParser\Node\Expr|string $targetEntity + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property */ - private function resolveTypeFromTargetEntity($targetEntity, Property $property) : Type + private function resolveTypeFromTargetEntity($targetEntity, $property) : Type { if ($targetEntity instanceof Expr) { $targetEntity = $this->valueResolver->getValue($targetEntity); diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php index 08e3135e3..a6cdeba0a 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Doctrine\NodeManipulator; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Stmt\Property; use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php index c35bdbd74..3fc68aef1 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Doctrine\PhpDoc; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ReflectionProvider; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/Set/DoctrineSetList.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/Set/DoctrineSetList.php index 89f675e37..d7e4607e2 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/Set/DoctrineSetList.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/Set/DoctrineSetList.php @@ -13,10 +13,18 @@ final class DoctrineSetList implements SetListInterface * @var string */ public const DOCTRINE_CODE_QUALITY = __DIR__ . '/../../config/sets/doctrine-code-quality.php'; + /** + * @var string + */ + public const YAML_TO_ANNOTATIONS = __DIR__ . '/../../config/yaml-to-annotations.php'; /** * @var string */ public const DOCTRINE_COMMON_20 = __DIR__ . '/../../config/sets/doctrine-common-20.php'; + /** + * @var string + */ + public const DOCTRINE_COLLECTION_22 = __DIR__ . '/../../config/sets/doctrine-collection-22.php'; /** * @var string */ diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php index a00359292..b94deded5 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php @@ -1,7 +1,7 @@ phpVersion(PhpVersion::PHP_82); + $rectorConfig->rules([DowngradeTypedClassConstRector::class]); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php index 5d637a667..9671a5245 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php @@ -1,7 +1,7 @@ sets([DowngradeSetList::PHP_82]); + $rectorConfig->sets([DowngradeLevelSetList::DOWN_TO_PHP_82, DowngradeSetList::PHP_82]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php82.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php82.php new file mode 100644 index 000000000..478025937 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php82.php @@ -0,0 +1,10 @@ +sets([DowngradeSetList::PHP_83]); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp72/Rector/ClassMethod/DowngradeParameterTypeWideningRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp72/Rector/ClassMethod/DowngradeParameterTypeWideningRector.php index b5f56b04c..58891d83d 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp72/Rector/ClassMethod/DowngradeParameterTypeWideningRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp72/Rector/ClassMethod/DowngradeParameterTypeWideningRector.php @@ -18,7 +18,7 @@ use Rector\TypeDeclaration\NodeAnalyzer\AutowiredClassMethodOrPropertyAnalyzer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://www.php.net/manual/en/migration72.new-features.php#migration72.new-features.param-type-widening * @changelog https://3v4l.org/fOgSE diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/FuncCall/DowngradeArrayKeyFirstLastRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/FuncCall/DowngradeArrayKeyFirstLastRector.php index 0029f63b0..35242c8df 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/FuncCall/DowngradeArrayKeyFirstLastRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/FuncCall/DowngradeArrayKeyFirstLastRector.php @@ -180,6 +180,12 @@ private function refactorArrayKeyLast(FuncCall $funcCall, $stmt) : ?array $firstArg->value = $array; } $newStmts[] = $stmt; + $resetExpression = new Expression($this->nodeFactory->createFuncCall('reset', [$array])); + if ($stmt instanceof StmtsAwareInterface) { + $stmt->stmts = \array_merge([$resetExpression], $stmt->stmts); + } elseif (!$stmt instanceof Return_) { + $newStmts[] = $resetExpression; + } return $newStmts; } /** diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/Unset_/DowngradeTrailingCommasInUnsetRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/Unset_/DowngradeTrailingCommasInUnsetRector.php index 460232f56..78289914f 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/Unset_/DowngradeTrailingCommasInUnsetRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp73/Rector/Unset_/DowngradeTrailingCommasInUnsetRector.php @@ -55,6 +55,7 @@ public function refactor(Node $node) : ?Node if ($node->vars !== []) { \end($node->vars); $lastArgumentPosition = \key($node->vars); + \reset($node->vars); $last = $node->vars[$lastArgumentPosition]; if (!$this->followedByCommaAnalyzer->isFollowed($this->file, $last)) { return null; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeTrailingCommasInParamUseRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeTrailingCommasInParamUseRector.php index b0451e374..7610ee037 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeTrailingCommasInParamUseRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeTrailingCommasInParamUseRector.php @@ -108,6 +108,7 @@ private function cleanTrailingComma($node, array $array) : ?Node { \end($array); $lastPosition = \key($array); + \reset($array); $last = $array[$lastPosition]; if (!$this->followedByCommaAnalyzer->isFollowed($this->file, $last)) { return null; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php index 8123fda14..03c57359d 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php @@ -21,7 +21,7 @@ use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://php.watch/articles/php-attributes#syntax * diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php new file mode 100644 index 000000000..cf2422938 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp83/Rector/ClassConst/DowngradeTypedClassConstRector.php @@ -0,0 +1,66 @@ +propertyDecorator = $propertyDecorator; + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [ClassConst::class]; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Remove typed class constant', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + public string FOO = 'test'; +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + /** + * @var string + */ + public FOO = 'test'; +} +CODE_SAMPLE +)]); + } + /** + * @param ClassConst $node + */ + public function refactor(Node $node) : ?Node + { + if (!$node->type instanceof Node) { + return null; + } + $this->propertyDecorator->decorateWithDocBlock($node, $node->type); + $node->type = null; + return $node; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php index 067cb113e..b97fe2b63 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/NodeManipulator/PropertyDecorator.php @@ -6,6 +6,7 @@ use PhpParser\Node\ComplexType; use PhpParser\Node\Identifier; use PhpParser\Node\Name; +use PhpParser\Node\Stmt\ClassConst; use PhpParser\Node\Stmt\Property; use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; @@ -35,9 +36,10 @@ public function __construct(PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapp $this->phpDocTypeChanger = $phpDocTypeChanger; } /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassConst $property * @param \PhpParser\Node\ComplexType|\PhpParser\Node\Identifier|\PhpParser\Node\Name $typeNode */ - public function decorateWithDocBlock(Property $property, $typeNode) : void + public function decorateWithDocBlock($property, $typeNode) : void { $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); if ($phpDocInfo->getVarTagValueNode() instanceof VarTagValueNode) { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php index 3c0134925..9ff7d32c3 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeLevelSetList.php @@ -9,6 +9,10 @@ */ final class DowngradeLevelSetList implements SetListInterface { + /** + * @var string + */ + public const DOWN_TO_PHP_82 = __DIR__ . '/../../../config/set/level/down-to-php82.php'; /** * @var string */ diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php index 0a55f0378..4de4a011b 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php @@ -33,4 +33,8 @@ final class DowngradeSetList implements SetListInterface * @var string */ public const PHP_82 = __DIR__ . '/../../../config/set/downgrade-php82.php'; + /** + * @var string + */ + public const PHP_83 = __DIR__ . '/../../../config/set/downgrade-php83.php'; } diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php index 724f49691..90a3e13bd 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php @@ -1,7 +1,7 @@ sets([ +return RectorConfig::configure() + ->withSets([ PHPUnitSetList::PHPUNIT_90, ]); -}; ```
diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php index 39aa77d69..7e4abd54f 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php @@ -1,7 +1,7 @@ importNames(); - $rectorConfig->removeUnusedImports(); - $rectorConfig->paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/rules', __DIR__ . '/rules-tests', __DIR__ . '/rector.php', __DIR__ . '/ecs.php']); - $rectorConfig->skip([ - // for tests - '*/Source/*', - '*/Fixture/*', - '*/Expected/*', - // object types - StringClassNameToClassConstantRector::class => [__DIR__ . '/src/Rector/Class_/TestListenerToHooksRector.php', __DIR__ . '/src/NodeAnalyzer/TestsNodeAnalyzer.php', __DIR__ . '/config', __DIR__ . '/src/NodeFinder/DataProviderClassMethodFinder.php'], - ]); - $rectorConfig->sets([LevelSetList::UP_TO_PHP_82, SetList::DEAD_CODE, PHPUnitSetList::PHPUNIT_100, PHPUnitSetList::PHPUNIT_CODE_QUALITY, SetList::CODE_QUALITY, SetList::CODING_STYLE, SetList::EARLY_RETURN, SetList::NAMING, SetList::TYPE_DECLARATION, SetList::PRIVATIZATION]); - $rectorConfig->ruleWithConfiguration(StringClassNameToClassConstantRector::class, [ - // keep unprefixed to protected from downgrade - 'PHPUnit\\Framework\\*', - 'Prophecy\\Prophet', - ]); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php index 9d0984a34..6e094554c 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\AnnotationsToAttributes\Rector\ClassMethod; -use RectorPrefix202402\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\Json; use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php index 994116f0c..cee7a3015 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php @@ -20,7 +20,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\PHPUnit\Tests\AnnotationsToAttributes\Rector\Class_\AnnotationWithValueToAttributeRector\AnnotationWithValueToAttributeRectorTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector.php index 8a21727fb..92d3d3a6e 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/CoversAnnotationWithValueToAttributeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\AnnotationsToAttributes\Rector\Class_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Stmt\Class_; @@ -118,11 +118,13 @@ public function refactor(Node $node) : ?Node } $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); $node->attrGroups = \array_merge($node->attrGroups, $coversAttributeGroups); + return $node; } - if ($node instanceof ClassMethod) { - $this->removeMethodCoversAnnotations($node); - $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + $hasChanged = $this->removeMethodCoversAnnotations($node); + if ($hasChanged === \false) { + return null; } + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); return $node; } private function createAttributeGroup(string $annotationValue) : AttributeGroup @@ -219,19 +221,22 @@ private function resolveMethodAttributes(ClassMethod $classMethod, bool $hasCove } return $attributeGroups; } - private function removeMethodCoversAnnotations(ClassMethod $classMethod) : void + private function removeMethodCoversAnnotations(ClassMethod $classMethod) : bool { $phpDocInfo = $this->phpDocInfoFactory->createFromNode($classMethod); if (!$phpDocInfo instanceof PhpDocInfo) { - return; + return \false; } + $hasChanged = \false; $desiredTagValueNodes = $phpDocInfo->getTagsByName('covers'); foreach ($desiredTagValueNodes as $desiredTagValueNode) { if (!$desiredTagValueNode->value instanceof GenericTagValueNode) { continue; } $this->phpDocTagRemover->removeTagValueFromNode($phpDocInfo, $desiredTagValueNode); + $hasChanged = \true; } + return $hasChanged; } private function getClass(string $classWithMethod) : string { diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php index 737f4e7b1..ba7cd3888 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php @@ -13,7 +13,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; -use RectorPrefix202402\PHPUnit\Framework\Attributes\Ticket; +use RectorPrefix202403\PHPUnit\Framework\Attributes\Ticket; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php index 96d36b3d5..0c669484f 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/TestWithToDataProviderRector.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\PHPUnit\CodeQuality\Rector\Class_; -use RectorPrefix202402\Nette\Utils\Json; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php index b17148d9e..0d8eb7130 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertEmptyNullableObjectToAssertInstanceofRector.php @@ -78,7 +78,13 @@ public function refactor(Node $node) : ?Node if (!$this->isNames($node->name, ['assertNotEmpty', 'assertEmpty'])) { return null; } - $firstArg = $node->getArgs()[0]; + if ($node->isFirstClassCallable()) { + return null; + } + $firstArg = $node->getArgs()[0] ?? null; + if (!$firstArg instanceof Arg) { + return null; + } $firstArgType = $this->getType($firstArg->value); if (!$firstArgType instanceof UnionType) { return null; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/UseSpecificWillMethodRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/UseSpecificWillMethodRector.php index a22d022a7..42bed297a 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/UseSpecificWillMethodRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/UseSpecificWillMethodRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Identifier; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; @@ -81,10 +82,15 @@ public function refactor(Node $node) : ?Node return null; } $callArgs = $node->getArgs(); - if (!$callArgs[0]->value instanceof MethodCall) { + $firstArg = $callArgs[0]; + // special case for new map + if ($firstArg->value instanceof New_) { + return $this->refactorNew($firstArg->value, $node); + } + if (!$firstArg->value instanceof MethodCall) { return null; } - $nestedMethodCall = $callArgs[0]->value; + $nestedMethodCall = $firstArg->value; foreach (self::NESTED_METHOD_TO_RENAME_MAP as $oldMethodName => $newParentMethodName) { if (!$this->isName($nestedMethodCall->name, $oldMethodName)) { continue; @@ -96,4 +102,17 @@ public function refactor(Node $node) : ?Node } return null; } + /** + * @param \PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall $call + * @return null|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall + */ + private function refactorNew(New_ $new, $call) + { + if (!$this->isName($new->class, 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap')) { + return null; + } + $call->name = new Identifier('willReturnMap'); + $call->args = $new->args; + return $call; + } } diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php index 81d7fffcf..ee40dac8b 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PHPUnit70\Rector\Class_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Class_; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php index bfe1ad5e5..95f707d7b 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PhpDoc; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Stmt\Class_; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php index c649b2277..b25d90afa 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php @@ -76,13 +76,13 @@ public function refactor(Node $node) : ?Node if (!\is_string($methodName)) { return null; } - if (!$this->isName($node->var, 'this')) { + if (\strncmp($methodName, 'assert', \strlen('assert')) !== 0) { return null; } - if (!$this->isObjectType($node->var, new ObjectType('PHPUnit\\Framework\\TestCase'))) { + if (!$this->isName($node->var, 'this')) { return null; } - if (\strncmp($methodName, 'assert', \strlen('assert')) !== 0) { + if (!$this->isObjectType($node->var, new ObjectType('PHPUnit\\Framework\\TestCase'))) { return null; } $hasChanged = \true; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/README.md b/vendor/rector/rector/vendor/rector/rector-symfony/README.md index 9e3cc9cfd..400e9cce4 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/README.md +++ b/vendor/rector/rector/vendor/rector/rector-symfony/README.md @@ -17,18 +17,17 @@ composer require rector/rector --dev To add a set to your config, use `Rector\Symfony\Set\SymfonySetList` class and pick one of constants: ```php -use Rector\Symfony\Set\SymfonySetList; -use Rector\Config\RectorConfig; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/dev/App_KernelDevDebugContainer.xml'); +use Rector\Config\RectorConfig; +use Rector\Symfony\Set\SymfonySetList; - $rectorConfig->sets([ +return RectorConfig::configure() + ->withSymfonyContainerXml(__DIR__ . '/var/cache/dev/App_KernelDevDebugContainer.xml') + ->withSets([ SymfonySetList::SYMFONY_62, SymfonySetList::SYMFONY_CODE_QUALITY, SymfonySetList::SYMFONY_CONSTRUCTOR_INJECTION, ]); -}; ```
@@ -44,9 +43,8 @@ How to add it? Check your `var/cache/` directory and find the XML file for your ```php use Rector\Config\RectorConfig; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/test/App_KernelTestDebugContainer.xml'); -}; +return RectorConfig::configure() + ->withSymfonyContainerXml(__DIR__ . '/var/cache/dev/App_KernelDevDebugContainer.xml'); ``` That's it! Now you can run the `StringFormTypeToClassRector` and get your form classes converted safely. @@ -59,16 +57,13 @@ Some rules like `AddRouteAnnotationRector` require additional access to your Sym ```php use Rector\Config\RectorConfig; - +use Rector\Symfony\Bridge\Symfony\Routing\SymfonyRoutesProvider; use Rector\Symfony\Configs\Rector\ClassMethod\AddRouteAnnotationRector; use Rector\Symfony\Contract\Bridge\Symfony\Routing\SymfonyRoutesProviderInterface; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->symfonyContainerPhp(__DIR__ . '/tests/symfony-container.php'); - - $rectorConfig->singleton(SymfonyRoutesProvider::class); - $rectorConfig->alias(SymfonyRoutesProvider::class, SymfonyRoutesProviderInterface::class); -}; +return RectorConfig::configure() + ->withSymfonyContainerPhp(__DIR__ . '/tests/symfony-container.php') + ->registerService(SymfonyRoutesProvider::class, SymfonyRoutesProviderInterface::class); ``` The `tests/symfony-container.php` should provide your dependency injection container. The way you create the container is up to you. It can be as simple as: diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json index 8d5989f31..9a4a49a17 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json @@ -9,7 +9,7 @@ }, "require-dev": { "phpstan\/extension-installer": "^1.3", - "phpstan\/phpstan": "^1.10.28", + "phpstan\/phpstan": "^1.10.57", "phpstan\/phpstan-webmozart-assert": "^1.2", "phpunit\/phpunit": "^10.5", "rector\/rector-generator": "^0.7", diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php index 5a63e45cf..a8b706d8f 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php @@ -1,7 +1,7 @@ 'Symfony\\Component\\Translation\\Extractor\\PhpAstExtractor', // @see https://github.com/symfony/symfony/pull/47595 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => 'Symfony\\Component\\HttpFoundation\\RequestMatcher\\ExpressionRequestMatcher', - 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => 'Symfony\\Component\\HttpFoundation\\RequestMatcher\\ChainRequestMatcher', + 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => 'Symfony\\Component\\HttpFoundation\\ChainRequestMatcher', ]); $rectorConfig->ruleWithConfiguration(RenameMethodRector::class, [ // @see https://github.com/symfony/symfony/pull/46854 diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php index 8e929651b..cb21b4810 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php @@ -1,7 +1,7 @@ importNames(); - $rectorConfig->removeUnusedImports(); - $rectorConfig->paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/rules', __DIR__ . '/rules-tests']); - $rectorConfig->skip([ - '*/Fixture/*', - '*/Source/*', - '*/Source*/*', - '*/tests/*/Fixture*/Expected/*', - StringClassNameToClassConstantRector::class => [__DIR__ . '/config'], - RenameForeachValueVariableToMatchMethodCallReturnTypeRector::class => [ - // "data" => "datum" false positive - __DIR__ . '/src/Rector/ClassMethod/AddRouteAnnotationRector.php', - ], - // marked as skipped - ReturnNeverTypeRector::class => ['*/tests/*'], - ]); - $rectorConfig->ruleWithConfiguration(StringClassNameToClassConstantRector::class, [ - 'Error', - 'Exception', - 'Symfony\\*', - 'Twig_*', - 'Twig*', - 'Swift_*', - 'Doctrine\\*', - // loaded from project itself - 'Psr\\Container\\ContainerInterface', - 'Symfony\\Component\\Routing\\RouterInterface', - 'Symfony\\Component\\DependencyInjection\\Container', - ]); - $rectorConfig->sets([LevelSetList::UP_TO_PHP_82, \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_100, SetList::CODE_QUALITY, SetList::DEAD_CODE, SetList::TYPE_DECLARATION, SetList::PRIVATIZATION, SetList::NAMING]); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php index 7e0826149..6fdeaff2a 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\CodeQuality\Rector\ClassMethod; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassMethod; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php index 98ac04b75..2120d1e60 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\CodeQuality\Rector\Class_; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Closure/StringExtensionToConfigBuilderRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Closure/StringExtensionToConfigBuilderRector.php index e8bffd4a9..6f8b9ca52 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Closure/StringExtensionToConfigBuilderRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Closure/StringExtensionToConfigBuilderRector.php @@ -25,7 +25,7 @@ use Rector\Symfony\ValueObject\ExtensionKeyAndConfiguration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @changelog https://symfony.com/blog/new-in-symfony-5-3-config-builder-classes * diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/ConfigArrayHandler/NestedConfigCallsFactory.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/ConfigArrayHandler/NestedConfigCallsFactory.php index b8189fee4..aa6550f69 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/ConfigArrayHandler/NestedConfigCallsFactory.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/ConfigArrayHandler/NestedConfigCallsFactory.php @@ -10,7 +10,7 @@ use Rector\Symfony\Configs\Enum\GroupingMethods; use Rector\Symfony\Configs\Enum\SecurityConfigKey; use Rector\Symfony\Utils\StringUtils; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class NestedConfigCallsFactory { /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php index 4d088c40e..ca0a63abe 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php @@ -23,7 +23,7 @@ use Rector\Symfony\MinimalSharedStringSolver; use Rector\Symfony\NodeAnalyzer\SymfonyPhpClosureDetector; use Rector\Symfony\ValueObject\ClassNameAndFilePath; -use RectorPrefix202402\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php index 4e99386b9..00bb66ce4 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php @@ -9,7 +9,7 @@ use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; use Rector\Symfony\TypeAnalyzer\ControllerAnalyzer; -use RectorPrefix202402\Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use RectorPrefix202403\Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php index 00ef6f93a..abbc5704d 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony28\Rector\StaticCall; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\StaticCall; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php index af458162c..ea5c750b6 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony30\Rector\ClassMethod; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Name; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php index ad8904581..ec04b21b6 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php @@ -17,7 +17,7 @@ use Rector\PhpParser\NodeTransformer; use Rector\Rector\AbstractRector; use Rector\Util\Reflection\PrivatesAccessor; -use RectorPrefix202402\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202403\Symfony\Component\Console\Input\StringInput; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php index d2be29595..8e279ee28 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony43\Rector\MethodCall; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\MethodCall; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php index a85dc68db..a3add05d6 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony44/Rector/ClassMethod/ConsoleExecuteReturnIntRector.php @@ -160,6 +160,7 @@ private function processReturn0ToMethod(ClassMethod $classMethod) : void $stmts = (array) $classMethod->stmts; \end($stmts); $lastKey = \key($stmts); + \reset($stmts); $return = new Return_(new LNumber(0)); if ($lastKey !== null && (isset($classMethod->stmts[$lastKey]) && $this->terminatedNodeAnalyzer->isAlwaysTerminated($classMethod, $classMethod->stmts[$lastKey], $return))) { return; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php index 81fa9e867..53bc4af58 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php @@ -13,7 +13,7 @@ use Rector\Symfony\ValueObject\ReplaceServiceArgument; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @see \Rector\Symfony\Tests\Symfony60\Rector\FuncCall\ReplaceServiceArgumentRector\ReplaceServiceArgumentRectorTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php index 9c20a49a3..6b2fe6aad 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php @@ -16,8 +16,8 @@ use PhpParser\Node\Stmt\If_; use PhpParser\Node\Stmt\Return_; use Rector\Rector\AbstractRector; -use RectorPrefix202402\Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; -use RectorPrefix202402\Symfony\Component\HttpKernel\Controller\ValueResolverInterface; +use RectorPrefix202403\Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; +use RectorPrefix202403\Symfony\Component\HttpKernel\Controller\ValueResolverInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php index e54ca7a87..f3091b143 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php @@ -106,16 +106,21 @@ public function refactor(Node $node) : ?Node /** * @param ServiceDefinition[] $handlers */ - private function checkForServices(Class_ $class, array $handlers) : Class_ + private function checkForServices(Class_ $class, array $handlers) : ?Class_ { + $hasChanged = \false; foreach ($handlers as $handler) { if ($this->isName($class, $handler->getClass() ?? $handler->getId())) { $options = $this->messengerHelper->extractOptionsFromServiceDefinition($handler); if (!isset($options['method']) || $options['method'] === '__invoke') { $this->messengerHelper->addAttribute($class, $options); + $hasChanged = \true; } } } - return $class; + if ($hasChanged) { + return $class; + } + return null; } } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php index fb7603518..7c23b5b49 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php @@ -6,8 +6,8 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Exception\ShouldNotHappenException; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Container; +use RectorPrefix202403\Webmozart\Assert\Assert; final class ContainerServiceProvider { /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php index 5bb112a01..5bbeb4ff6 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php @@ -6,8 +6,8 @@ use Rector\Symfony\Bridge\Symfony\ContainerServiceProvider; use Rector\Symfony\Contract\Bridge\Symfony\Routing\SymfonyRoutesProviderInterface; use Rector\Symfony\ValueObject\SymfonyRouteMetadata; -use RectorPrefix202402\Symfony\Component\Routing\RouterInterface; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Symfony\Component\Routing\RouterInterface; +use RectorPrefix202403\Webmozart\Assert\Assert; /** * @api part of AddRouteAnnotationRector */ diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php index 9f1912d75..94d7e83e2 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\FormHelper; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Symfony\Contract\Tag\TagInterface; use Rector\Symfony\DataProvider\ServiceMapProvider; final class FormTypeStringToTypeProvider diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php index eb99d0144..9f5927e20 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Helper; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\Strings; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php index 88ceab7eb..9c794162a 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php @@ -4,7 +4,7 @@ namespace Rector\Symfony\ValueObject; use Rector\Validation\RectorAssert; -use RectorPrefix202402\Webmozart\Assert\Assert; +use RectorPrefix202403\Webmozart\Assert\Assert; final class IntlBundleClassToNewClass { /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php index c7ae8e36c..eee18da00 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Symfony\ValueObjectFactory; -use RectorPrefix202402\Nette\Utils\FileSystem; -use RectorPrefix202402\Nette\Utils\Json; -use RectorPrefix202402\Nette\Utils\Strings; +use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202403\Nette\Utils\Strings; use Rector\Symfony\Exception\XmlContainerNotExistsException; use Rector\Symfony\ValueObject\ServiceDefinition; use Rector\Symfony\ValueObject\ServiceMap\ServiceMap; diff --git a/vendor/rector/rector/vendor/scoper-autoload.php b/vendor/rector/rector/vendor/scoper-autoload.php index 91140fe33..48dcb34a6 100644 --- a/vendor/rector/rector/vendor/scoper-autoload.php +++ b/vendor/rector/rector/vendor/scoper-autoload.php @@ -29,56 +29,58 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } } } -humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202402\AutoloadIncluder'); -humbug_phpscoper_expose_class('ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3', 'RectorPrefix202402\ComposerAutoloaderInitf637847380e2ddf55dcae18dded1d2b3'); -humbug_phpscoper_expose_class('Product', 'RectorPrefix202402\Product'); +humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202403\AutoloadIncluder'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'RectorPrefix202403\ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54'); +humbug_phpscoper_expose_class('Product', 'RectorPrefix202403\Product'); // Function aliases. For more information see: // https://github.com/humbug/php-scoper/blob/master/docs/further-reading.md#function-aliases -if (!function_exists('formatErrorMessage')) { function formatErrorMessage() { return \RectorPrefix202402\formatErrorMessage(...func_get_args()); } } -if (!function_exists('mb_check_encoding')) { function mb_check_encoding() { return \RectorPrefix202402\mb_check_encoding(...func_get_args()); } } -if (!function_exists('mb_chr')) { function mb_chr() { return \RectorPrefix202402\mb_chr(...func_get_args()); } } -if (!function_exists('mb_convert_case')) { function mb_convert_case() { return \RectorPrefix202402\mb_convert_case(...func_get_args()); } } -if (!function_exists('mb_convert_encoding')) { function mb_convert_encoding() { return \RectorPrefix202402\mb_convert_encoding(...func_get_args()); } } -if (!function_exists('mb_convert_variables')) { function mb_convert_variables() { return \RectorPrefix202402\mb_convert_variables(...func_get_args()); } } -if (!function_exists('mb_decode_mimeheader')) { function mb_decode_mimeheader() { return \RectorPrefix202402\mb_decode_mimeheader(...func_get_args()); } } -if (!function_exists('mb_decode_numericentity')) { function mb_decode_numericentity() { return \RectorPrefix202402\mb_decode_numericentity(...func_get_args()); } } -if (!function_exists('mb_detect_encoding')) { function mb_detect_encoding() { return \RectorPrefix202402\mb_detect_encoding(...func_get_args()); } } -if (!function_exists('mb_detect_order')) { function mb_detect_order() { return \RectorPrefix202402\mb_detect_order(...func_get_args()); } } -if (!function_exists('mb_encode_mimeheader')) { function mb_encode_mimeheader() { return \RectorPrefix202402\mb_encode_mimeheader(...func_get_args()); } } -if (!function_exists('mb_encode_numericentity')) { function mb_encode_numericentity() { return \RectorPrefix202402\mb_encode_numericentity(...func_get_args()); } } -if (!function_exists('mb_encoding_aliases')) { function mb_encoding_aliases() { return \RectorPrefix202402\mb_encoding_aliases(...func_get_args()); } } -if (!function_exists('mb_get_info')) { function mb_get_info() { return \RectorPrefix202402\mb_get_info(...func_get_args()); } } -if (!function_exists('mb_http_input')) { function mb_http_input() { return \RectorPrefix202402\mb_http_input(...func_get_args()); } } -if (!function_exists('mb_http_output')) { function mb_http_output() { return \RectorPrefix202402\mb_http_output(...func_get_args()); } } -if (!function_exists('mb_internal_encoding')) { function mb_internal_encoding() { return \RectorPrefix202402\mb_internal_encoding(...func_get_args()); } } -if (!function_exists('mb_language')) { function mb_language() { return \RectorPrefix202402\mb_language(...func_get_args()); } } -if (!function_exists('mb_list_encodings')) { function mb_list_encodings() { return \RectorPrefix202402\mb_list_encodings(...func_get_args()); } } -if (!function_exists('mb_ord')) { function mb_ord() { return \RectorPrefix202402\mb_ord(...func_get_args()); } } -if (!function_exists('mb_output_handler')) { function mb_output_handler() { return \RectorPrefix202402\mb_output_handler(...func_get_args()); } } -if (!function_exists('mb_parse_str')) { function mb_parse_str() { return \RectorPrefix202402\mb_parse_str(...func_get_args()); } } -if (!function_exists('mb_scrub')) { function mb_scrub() { return \RectorPrefix202402\mb_scrub(...func_get_args()); } } -if (!function_exists('mb_str_pad')) { function mb_str_pad() { return \RectorPrefix202402\mb_str_pad(...func_get_args()); } } -if (!function_exists('mb_str_split')) { function mb_str_split() { return \RectorPrefix202402\mb_str_split(...func_get_args()); } } -if (!function_exists('mb_stripos')) { function mb_stripos() { return \RectorPrefix202402\mb_stripos(...func_get_args()); } } -if (!function_exists('mb_stristr')) { function mb_stristr() { return \RectorPrefix202402\mb_stristr(...func_get_args()); } } -if (!function_exists('mb_strlen')) { function mb_strlen() { return \RectorPrefix202402\mb_strlen(...func_get_args()); } } -if (!function_exists('mb_strpos')) { function mb_strpos() { return \RectorPrefix202402\mb_strpos(...func_get_args()); } } -if (!function_exists('mb_strrchr')) { function mb_strrchr() { return \RectorPrefix202402\mb_strrchr(...func_get_args()); } } -if (!function_exists('mb_strrichr')) { function mb_strrichr() { return \RectorPrefix202402\mb_strrichr(...func_get_args()); } } -if (!function_exists('mb_strripos')) { function mb_strripos() { return \RectorPrefix202402\mb_strripos(...func_get_args()); } } -if (!function_exists('mb_strrpos')) { function mb_strrpos() { return \RectorPrefix202402\mb_strrpos(...func_get_args()); } } -if (!function_exists('mb_strstr')) { function mb_strstr() { return \RectorPrefix202402\mb_strstr(...func_get_args()); } } -if (!function_exists('mb_strtolower')) { function mb_strtolower() { return \RectorPrefix202402\mb_strtolower(...func_get_args()); } } -if (!function_exists('mb_strtoupper')) { function mb_strtoupper() { return \RectorPrefix202402\mb_strtoupper(...func_get_args()); } } -if (!function_exists('mb_strwidth')) { function mb_strwidth() { return \RectorPrefix202402\mb_strwidth(...func_get_args()); } } -if (!function_exists('mb_substitute_character')) { function mb_substitute_character() { return \RectorPrefix202402\mb_substitute_character(...func_get_args()); } } -if (!function_exists('mb_substr')) { function mb_substr() { return \RectorPrefix202402\mb_substr(...func_get_args()); } } -if (!function_exists('mb_substr_count')) { function mb_substr_count() { return \RectorPrefix202402\mb_substr_count(...func_get_args()); } } -if (!function_exists('parseArgs')) { function parseArgs() { return \RectorPrefix202402\parseArgs(...func_get_args()); } } -if (!function_exists('print_node')) { function print_node() { return \RectorPrefix202402\print_node(...func_get_args()); } } -if (!function_exists('showHelp')) { function showHelp() { return \RectorPrefix202402\showHelp(...func_get_args()); } } -if (!function_exists('trigger_deprecation')) { function trigger_deprecation() { return \RectorPrefix202402\trigger_deprecation(...func_get_args()); } } -if (!function_exists('uv_poll_init_socket')) { function uv_poll_init_socket() { return \RectorPrefix202402\uv_poll_init_socket(...func_get_args()); } } +if (!function_exists('dump_node')) { function dump_node() { return \RectorPrefix202403\dump_node(...func_get_args()); } } +if (!function_exists('formatErrorMessage')) { function formatErrorMessage() { return \RectorPrefix202403\formatErrorMessage(...func_get_args()); } } +if (!function_exists('includeIfExists')) { function includeIfExists() { return \RectorPrefix202403\includeIfExists(...func_get_args()); } } +if (!function_exists('mb_check_encoding')) { function mb_check_encoding() { return \RectorPrefix202403\mb_check_encoding(...func_get_args()); } } +if (!function_exists('mb_chr')) { function mb_chr() { return \RectorPrefix202403\mb_chr(...func_get_args()); } } +if (!function_exists('mb_convert_case')) { function mb_convert_case() { return \RectorPrefix202403\mb_convert_case(...func_get_args()); } } +if (!function_exists('mb_convert_encoding')) { function mb_convert_encoding() { return \RectorPrefix202403\mb_convert_encoding(...func_get_args()); } } +if (!function_exists('mb_convert_variables')) { function mb_convert_variables() { return \RectorPrefix202403\mb_convert_variables(...func_get_args()); } } +if (!function_exists('mb_decode_mimeheader')) { function mb_decode_mimeheader() { return \RectorPrefix202403\mb_decode_mimeheader(...func_get_args()); } } +if (!function_exists('mb_decode_numericentity')) { function mb_decode_numericentity() { return \RectorPrefix202403\mb_decode_numericentity(...func_get_args()); } } +if (!function_exists('mb_detect_encoding')) { function mb_detect_encoding() { return \RectorPrefix202403\mb_detect_encoding(...func_get_args()); } } +if (!function_exists('mb_detect_order')) { function mb_detect_order() { return \RectorPrefix202403\mb_detect_order(...func_get_args()); } } +if (!function_exists('mb_encode_mimeheader')) { function mb_encode_mimeheader() { return \RectorPrefix202403\mb_encode_mimeheader(...func_get_args()); } } +if (!function_exists('mb_encode_numericentity')) { function mb_encode_numericentity() { return \RectorPrefix202403\mb_encode_numericentity(...func_get_args()); } } +if (!function_exists('mb_encoding_aliases')) { function mb_encoding_aliases() { return \RectorPrefix202403\mb_encoding_aliases(...func_get_args()); } } +if (!function_exists('mb_get_info')) { function mb_get_info() { return \RectorPrefix202403\mb_get_info(...func_get_args()); } } +if (!function_exists('mb_http_input')) { function mb_http_input() { return \RectorPrefix202403\mb_http_input(...func_get_args()); } } +if (!function_exists('mb_http_output')) { function mb_http_output() { return \RectorPrefix202403\mb_http_output(...func_get_args()); } } +if (!function_exists('mb_internal_encoding')) { function mb_internal_encoding() { return \RectorPrefix202403\mb_internal_encoding(...func_get_args()); } } +if (!function_exists('mb_language')) { function mb_language() { return \RectorPrefix202403\mb_language(...func_get_args()); } } +if (!function_exists('mb_list_encodings')) { function mb_list_encodings() { return \RectorPrefix202403\mb_list_encodings(...func_get_args()); } } +if (!function_exists('mb_ord')) { function mb_ord() { return \RectorPrefix202403\mb_ord(...func_get_args()); } } +if (!function_exists('mb_output_handler')) { function mb_output_handler() { return \RectorPrefix202403\mb_output_handler(...func_get_args()); } } +if (!function_exists('mb_parse_str')) { function mb_parse_str() { return \RectorPrefix202403\mb_parse_str(...func_get_args()); } } +if (!function_exists('mb_scrub')) { function mb_scrub() { return \RectorPrefix202403\mb_scrub(...func_get_args()); } } +if (!function_exists('mb_str_pad')) { function mb_str_pad() { return \RectorPrefix202403\mb_str_pad(...func_get_args()); } } +if (!function_exists('mb_str_split')) { function mb_str_split() { return \RectorPrefix202403\mb_str_split(...func_get_args()); } } +if (!function_exists('mb_stripos')) { function mb_stripos() { return \RectorPrefix202403\mb_stripos(...func_get_args()); } } +if (!function_exists('mb_stristr')) { function mb_stristr() { return \RectorPrefix202403\mb_stristr(...func_get_args()); } } +if (!function_exists('mb_strlen')) { function mb_strlen() { return \RectorPrefix202403\mb_strlen(...func_get_args()); } } +if (!function_exists('mb_strpos')) { function mb_strpos() { return \RectorPrefix202403\mb_strpos(...func_get_args()); } } +if (!function_exists('mb_strrchr')) { function mb_strrchr() { return \RectorPrefix202403\mb_strrchr(...func_get_args()); } } +if (!function_exists('mb_strrichr')) { function mb_strrichr() { return \RectorPrefix202403\mb_strrichr(...func_get_args()); } } +if (!function_exists('mb_strripos')) { function mb_strripos() { return \RectorPrefix202403\mb_strripos(...func_get_args()); } } +if (!function_exists('mb_strrpos')) { function mb_strrpos() { return \RectorPrefix202403\mb_strrpos(...func_get_args()); } } +if (!function_exists('mb_strstr')) { function mb_strstr() { return \RectorPrefix202403\mb_strstr(...func_get_args()); } } +if (!function_exists('mb_strtolower')) { function mb_strtolower() { return \RectorPrefix202403\mb_strtolower(...func_get_args()); } } +if (!function_exists('mb_strtoupper')) { function mb_strtoupper() { return \RectorPrefix202403\mb_strtoupper(...func_get_args()); } } +if (!function_exists('mb_strwidth')) { function mb_strwidth() { return \RectorPrefix202403\mb_strwidth(...func_get_args()); } } +if (!function_exists('mb_substitute_character')) { function mb_substitute_character() { return \RectorPrefix202403\mb_substitute_character(...func_get_args()); } } +if (!function_exists('mb_substr')) { function mb_substr() { return \RectorPrefix202403\mb_substr(...func_get_args()); } } +if (!function_exists('mb_substr_count')) { function mb_substr_count() { return \RectorPrefix202403\mb_substr_count(...func_get_args()); } } +if (!function_exists('parseArgs')) { function parseArgs() { return \RectorPrefix202403\parseArgs(...func_get_args()); } } +if (!function_exists('print_node')) { function print_node() { return \RectorPrefix202403\print_node(...func_get_args()); } } +if (!function_exists('showHelp')) { function showHelp() { return \RectorPrefix202403\showHelp(...func_get_args()); } } +if (!function_exists('trigger_deprecation')) { function trigger_deprecation() { return \RectorPrefix202403\trigger_deprecation(...func_get_args()); } } +if (!function_exists('uv_poll_init_socket')) { function uv_poll_init_socket() { return \RectorPrefix202403\uv_poll_init_socket(...func_get_args()); } } return $loader; diff --git a/vendor/rector/rector/vendor/sebastian/diff/ChangeLog.md b/vendor/rector/rector/vendor/sebastian/diff/ChangeLog.md index 8081b37ff..10c545290 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/ChangeLog.md +++ b/vendor/rector/rector/vendor/sebastian/diff/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [5.1.1] - 2024-03-02 + +### Changed + +* Do not use implicitly nullable parameters + ## [5.1.0] - 2023-12-22 ### Added @@ -124,6 +130,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component is no longer supported on PHP 5.6 +[5.1.1]: https://github.com/sebastianbergmann/diff/compare/5.1.0...5.1.1 [5.1.0]: https://github.com/sebastianbergmann/diff/compare/5.0.3...5.1.0 [5.0.3]: https://github.com/sebastianbergmann/diff/compare/5.0.2...5.0.3 [5.0.2]: https://github.com/sebastianbergmann/diff/compare/5.0.1...5.0.2 diff --git a/vendor/rector/rector/vendor/sebastian/diff/LICENSE b/vendor/rector/rector/vendor/sebastian/diff/LICENSE index a453252d5..5b4705a48 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/LICENSE +++ b/vendor/rector/rector/vendor/sebastian/diff/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2002-2023, Sebastian Bergmann +Copyright (c) 2002-2024, Sebastian Bergmann All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/vendor/rector/rector/vendor/sebastian/diff/composer.json b/vendor/rector/rector/vendor/sebastian/diff/composer.json index 83eed51ce..88211193b 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/composer.json +++ b/vendor/rector/rector/vendor/sebastian/diff/composer.json @@ -36,7 +36,7 @@ }, "require-dev": { "phpunit\/phpunit": "^10.0", - "symfony\/process": "^4.2 || ^5" + "symfony\/process": "^6.4" }, "autoload": { "classmap": [ diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php b/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php index 44beb7ba5..6558afa30 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use ArrayIterator; use IteratorAggregate; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php b/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php index ef1031b11..1c47cffa4 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use ArrayIterator; use IteratorAggregate; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php b/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php index c766f8a32..bfcc0e855 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use const PHP_INT_SIZE; use const PREG_SPLIT_DELIM_CAPTURE; @@ -28,7 +28,7 @@ use function reset; use function str_ends_with; use function substr; -use RectorPrefix202402\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; +use RectorPrefix202403\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; final class Differ { public const OLD = 0; @@ -48,7 +48,7 @@ public function __construct(DiffOutputBuilderInterface $outputBuilder) * @param mixed[]|string $from * @param mixed[]|string $to */ - public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null) : string + public function diff($from, $to, ?LongestCommonSubsequenceCalculator $lcs = null) : string { $diff = $this->diffToArray($from, $to, $lcs); return $this->outputBuilder->getDiff($diff); @@ -57,7 +57,7 @@ public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null) * @param mixed[]|string $from * @param mixed[]|string $to */ - public function diffToArray($from, $to, LongestCommonSubsequenceCalculator $lcs = null) : array + public function diffToArray($from, $to, ?LongestCommonSubsequenceCalculator $lcs = null) : array { if (is_string($from)) { $from = $this->splitStringByLines($from); diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php index 4699149d4..d8860148d 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use function gettype; use function is_object; @@ -17,7 +17,7 @@ use Exception; final class ConfigurationException extends InvalidArgumentException { - public function __construct(string $option, string $expected, $value, int $code = 0, Exception $previous = null) + public function __construct(string $option, string $expected, $value, int $code = 0, ?Exception $previous = null) { parent::__construct(sprintf('Option "%s" must be %s, got "%s".', $option, $expected, is_object($value) ? \get_class($value) : (null === $value ? '' : gettype($value) . '#' . $value)), $code, $previous); } diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php index c80262826..92f16d848 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use Throwable; interface Exception extends Throwable diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php index b5258e5e5..059cbe120 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; class InvalidArgumentException extends \InvalidArgumentException implements Exception { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Line.php b/vendor/rector/rector/vendor/sebastian/diff/src/Line.php index 29aff9fbc..fe89543a7 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Line.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Line.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; final class Line { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php index 2aaf0c772..28cc10255 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; interface LongestCommonSubsequenceCalculator { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php index 9868781f1..b7aa77cf7 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use function array_fill; use function array_merge; @@ -65,7 +65,11 @@ private function length(array $from, array $to) : array if ($from[$i] === $to[$j]) { $current[$j + 1] = $prev[$j] + 1; } else { - // don't use max() to avoid function call overhead + /** + * @noinspection PhpConditionCanBeReplacedWithMinMaxCallInspection + * + * We do not use max() here to avoid the function call overhead + */ if ($current[$j] > $prev[$j + 1]) { $current[$j + 1] = $current[$j]; } else { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php index 66442ca94..207e05f7d 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff\Output; +namespace RectorPrefix202403\SebastianBergmann\Diff\Output; use function count; abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php index 5e29c8292..714f7fa1d 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff\Output; +namespace RectorPrefix202403\SebastianBergmann\Diff\Output; use function fclose; use function fopen; @@ -17,7 +17,7 @@ use function str_ends_with; use function stream_get_contents; use function substr; -use RectorPrefix202402\SebastianBergmann\Diff\Differ; +use RectorPrefix202403\SebastianBergmann\Diff\Differ; /** * Builds a diff string representation in a loose unified diff format * listing only changes lines. Does not include line numbers. diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php index cc671db55..19fb407cf 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff\Output; +namespace RectorPrefix202403\SebastianBergmann\Diff\Output; /** * Defines how an output builder should take a generated diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php index 5cebacff3..3de767305 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff\Output; +namespace RectorPrefix202403\SebastianBergmann\Diff\Output; use function array_merge; use function array_splice; @@ -25,8 +25,8 @@ use function sprintf; use function stream_get_contents; use function substr; -use RectorPrefix202402\SebastianBergmann\Diff\ConfigurationException; -use RectorPrefix202402\SebastianBergmann\Diff\Differ; +use RectorPrefix202403\SebastianBergmann\Diff\ConfigurationException; +use RectorPrefix202403\SebastianBergmann\Diff\Differ; /** * Strict Unified diff output builder. * @@ -230,11 +230,11 @@ private function writeHunk(array $diff, int $diffStartIndex, int $diffEndIndex, $this->changed = \true; fwrite($output, $diff[$i][0]); } - //} elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package + // } elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package // skip - //} else { + // } else { // unknown/invalid - //} + // } } } private function assertString(array $options, string $option) : void diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php index 9f8e4e1d2..d76e34c39 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff\Output; +namespace RectorPrefix202403\SebastianBergmann\Diff\Output; use function array_splice; use function count; @@ -20,9 +20,8 @@ use function min; use function str_ends_with; use function stream_get_contents; -use function strlen; use function substr; -use RectorPrefix202402\SebastianBergmann\Diff\Differ; +use RectorPrefix202403\SebastianBergmann\Diff\Differ; /** * Builds a diff string representation in unified diff format in chunks. */ @@ -59,7 +58,7 @@ public function getDiff(array $diff) : string $buffer = fopen('php://memory', 'r+b'); if ('' !== $this->header) { fwrite($buffer, $this->header); - if (\substr_compare($this->header, "\n", -strlen("\n")) !== 0) { + if (\substr_compare($this->header, "\n", -\strlen("\n")) !== 0) { fwrite($buffer, "\n"); } } @@ -71,7 +70,7 @@ public function getDiff(array $diff) : string // If the diff is non-empty and last char is not a linebreak: add it. // This might happen when both the `from` and `to` do not have a trailing linebreak $last = substr($diff, -1); - return 0 !== strlen($diff) && "\n" !== $last && "\r" !== $last ? $diff . "\n" : $diff; + return '' !== $diff && "\n" !== $last && "\r" !== $last ? $diff . "\n" : $diff; } private function writeDiffHunks($output, array $diff) : void { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php b/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php index 9483ae1a3..02221b57f 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use function array_pop; use function assert; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php index 7f63b89c9..059f3a3eb 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\SebastianBergmann\Diff; +namespace RectorPrefix202403\SebastianBergmann\Diff; use function array_reverse; use function count; diff --git a/vendor/rector/rector/vendor/symfony/console/Application.php b/vendor/rector/rector/vendor/symfony/console/Application.php index e47f7ee51..caeee42a0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Application.php +++ b/vendor/rector/rector/vendor/symfony/console/Application.php @@ -8,51 +8,51 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Command\CompleteCommand; -use RectorPrefix202402\Symfony\Component\Console\Command\DumpCompletionCommand; -use RectorPrefix202402\Symfony\Component\Console\Command\HelpCommand; -use RectorPrefix202402\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202402\Symfony\Component\Console\Command\ListCommand; -use RectorPrefix202402\Symfony\Component\Console\Command\SignalableCommandInterface; -use RectorPrefix202402\Symfony\Component\Console\CommandLoader\CommandLoaderInterface; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleTerminateEvent; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202402\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Console\Exception\NamespaceNotFoundException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Helper\DebugFormatterHelper; -use RectorPrefix202402\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202402\Symfony\Component\Console\Helper\FormatterHelper; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202402\Symfony\Component\Console\Helper\ProcessHelper; -use RectorPrefix202402\Symfony\Component\Console\Helper\QuestionHelper; -use RectorPrefix202402\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202402\Symfony\Component\Console\Input\ArrayInput; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\SignalRegistry\SignalRegistry; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202402\Symfony\Component\ErrorHandler\ErrorHandler; -use RectorPrefix202402\Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -use RectorPrefix202402\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Command\CompleteCommand; +use RectorPrefix202403\Symfony\Component\Console\Command\DumpCompletionCommand; +use RectorPrefix202403\Symfony\Component\Console\Command\HelpCommand; +use RectorPrefix202403\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202403\Symfony\Component\Console\Command\ListCommand; +use RectorPrefix202403\Symfony\Component\Console\Command\SignalableCommandInterface; +use RectorPrefix202403\Symfony\Component\Console\CommandLoader\CommandLoaderInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Exception\NamespaceNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Helper\DebugFormatterHelper; +use RectorPrefix202403\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202403\Symfony\Component\Console\Helper\FormatterHelper; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202403\Symfony\Component\Console\Helper\ProcessHelper; +use RectorPrefix202403\Symfony\Component\Console\Helper\QuestionHelper; +use RectorPrefix202403\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202403\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\SignalRegistry\SignalRegistry; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\ErrorHandler\ErrorHandler; +use RectorPrefix202403\Symfony\Contracts\EventDispatcher\EventDispatcherInterface; +use RectorPrefix202403\Symfony\Contracts\Service\ResetInterface; /** * An Application is the container for a collection of commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php index 55bddbc86..5cfcc655a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Attribute; +namespace RectorPrefix202403\Symfony\Component\Console\Attribute; /** * Service tag to autoconfigure commands. diff --git a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php index 31c06730f..adc13887f 100644 --- a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php +++ b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\CI; +namespace RectorPrefix202403\Symfony\Component\Console\CI; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Utility class for Github actions. * diff --git a/vendor/rector/rector/vendor/symfony/console/Color.php b/vendor/rector/rector/vendor/symfony/console/Color.php index 0bb5cbf62..ce3e18092 100644 --- a/vendor/rector/rector/vendor/symfony/console/Color.php +++ b/vendor/rector/rector/vendor/symfony/console/Color.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Fabien Potencier */ diff --git a/vendor/rector/rector/vendor/symfony/console/Command/Command.php b/vendor/rector/rector/vendor/symfony/console/Command/Command.php index 7585d6dd5..5097217ee 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/Command.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/Command.php @@ -8,23 +8,23 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202402\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202403\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Base class for all commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php index 04198c3c9..10e82b7a2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Output\BashCompletionOutput; -use RectorPrefix202402\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Completion\Output\FishCompletionOutput; -use RectorPrefix202402\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202402\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Output\BashCompletionOutput; +use RectorPrefix202403\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\Output\FishCompletionOutput; +use RectorPrefix202403\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Responsible for providing the values to the shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php index 3ce8f9336..c292e9643 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * Dumps the completion script for the current shell. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php index c1ea7acbe..d106a732e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202402\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202403\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * HelpCommand displays the help for a given command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php index 8ac5f2ec9..c447720f0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php @@ -8,17 +8,17 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Nicolas Grekas */ diff --git a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php index bb6774ac8..d8c55a579 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; - -use RectorPrefix202402\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202402\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +namespace RectorPrefix202403\Symfony\Component\Console\Command; + +use RectorPrefix202403\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202403\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * ListCommand displays the list of all available commands for the application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php index 1cc2f485b..d98f20a11 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Lock\LockFactory; -use RectorPrefix202402\Symfony\Component\Lock\LockInterface; -use RectorPrefix202402\Symfony\Component\Lock\Store\FlockStore; -use RectorPrefix202402\Symfony\Component\Lock\Store\SemaphoreStore; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Lock\LockFactory; +use RectorPrefix202403\Symfony\Component\Lock\LockInterface; +use RectorPrefix202403\Symfony\Component\Lock\Store\FlockStore; +use RectorPrefix202403\Symfony\Component\Lock\Store\SemaphoreStore; /** * Basic lock feature for commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php index a6a61fa25..e1361b1fb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; /** * Interface for command reacting to signal. diff --git a/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php index 2ae799b85..9b5a0f5a1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Command; +namespace RectorPrefix202403\Symfony\Component\Console\Command; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202402\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Stopwatch\Stopwatch; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202403\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Stopwatch\Stopwatch; /** * @internal * diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php index d4befa06b..7f7ff61b6 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202403\Symfony\Component\Console\CommandLoader; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Robin Chalas */ diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php index d1c67738b..577377c21 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202403\Symfony\Component\Console\CommandLoader; -use RectorPrefix202402\Psr\Container\ContainerInterface; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Psr\Container\ContainerInterface; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; /** * Loads commands from a PSR-11 container. * diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php index 7d4f19ed1..52936609e 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202403\Symfony\Component\Console\CommandLoader; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; /** * A simple command loader using factories to instantiate commands lazily. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php index 859560358..4dc53d5f9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion; +namespace RectorPrefix202403\Symfony\Component\Console\Completion; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; /** * An input specialized for shell completion. * @@ -113,6 +113,7 @@ public function bind(InputDefinition $definition) : void if (\is_array($argumentValue)) { \end($argumentValue); $this->completionValue = $argumentValue ? $argumentValue[\key($argumentValue)] : null; + \reset($argumentValue); } else { $this->completionValue = $argumentValue; } diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php index f6bfd6a9d..8f153973c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion; +namespace RectorPrefix202403\Symfony\Component\Console\Completion; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; /** * Stores all completion suggestions for the current input. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php index 7a757d525..57bf61d38 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Completion\Output; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Wouter de Jong */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php index 0c0e4da4f..425e39659 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Completion\Output; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Transforms the {@see CompletionSuggestions} object into output readable by the shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php index d8517ee58..137218b5e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Completion\Output; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Guillaume Aveline */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php index 9f17ab128..605a93e53 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Completion\Output; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Jitendra A */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php index 33e11cd1b..3738e45b2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Completion; +namespace RectorPrefix202403\Symfony\Component\Console\Completion; /** * Represents a single suggested value. diff --git a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php index ea53e29cb..2e64a9dd7 100644 --- a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php +++ b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202402\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202403\Symfony\Component\Console\Event\ConsoleTerminateEvent; /** * Contains all events dispatched by an Application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Cursor.php b/vendor/rector/rector/vendor/symfony/console/Cursor.php index 4b833c12a..a0ac4ed06 100644 --- a/vendor/rector/rector/vendor/symfony/console/Cursor.php +++ b/vendor/rector/rector/vendor/symfony/console/Cursor.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Pierre du Plessis */ diff --git a/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php b/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php index 93e7ce155..a476e2792 100644 --- a/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php +++ b/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\DataCollector; +namespace RectorPrefix202403\Symfony\Component\Console\DataCollector; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Debug\CliRequest; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\SignalRegistry\SignalMap; -use RectorPrefix202402\Symfony\Component\HttpFoundation\Request; -use RectorPrefix202402\Symfony\Component\HttpFoundation\Response; -use RectorPrefix202402\Symfony\Component\HttpKernel\DataCollector\DataCollector; -use RectorPrefix202402\Symfony\Component\VarDumper\Cloner\Data; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Debug\CliRequest; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\SignalRegistry\SignalMap; +use RectorPrefix202403\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202403\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202403\Symfony\Component\HttpKernel\DataCollector\DataCollector; +use RectorPrefix202403\Symfony\Component\VarDumper\Cloner\Data; /** * @internal * diff --git a/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php b/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php index 7c6f9a739..dabafbee8 100644 --- a/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php +++ b/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Debug; +namespace RectorPrefix202403\Symfony\Component\Console\Debug; -use RectorPrefix202402\Symfony\Component\Console\Command\TraceableCommand; -use RectorPrefix202402\Symfony\Component\HttpFoundation\Request; -use RectorPrefix202402\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202403\Symfony\Component\Console\Command\TraceableCommand; +use RectorPrefix202403\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202403\Symfony\Component\HttpFoundation\Response; /** * @internal */ diff --git a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 3fec64c4d..a02b7d2bb 100644 --- a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\DependencyInjection; +namespace RectorPrefix202403\Symfony\Component\Console\DependencyInjection; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202402\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use RectorPrefix202402\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202402\Symfony\Component\DependencyInjection\TypedReference; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202403\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use RectorPrefix202403\Symfony\Component\DependencyInjection\ContainerBuilder; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\DependencyInjection\Reference; +use RectorPrefix202403\Symfony\Component\DependencyInjection\TypedReference; /** * Registers console commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php index 039a3b92a..15484dea5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php index aaeb2a2dc..fe12c3cec 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php index d59a06020..2db1da2eb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Descriptor interface. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php index 6db2038a0..f74dec0b7 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; /** * JSON descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php index da0ab4508..84f96d4df 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Markdown descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php index a1d6be027..952145290 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\String\UnicodeString; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\String\UnicodeString; class ReStructuredTextDescriptor extends Descriptor { //

diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php index 99aa872f9..ecbbe9b28 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; /** * Text descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php index eccf8424c..4dddfe064 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202403\Symfony\Component\Console\Descriptor; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202402\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202402\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; /** * XML descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php index 0e4801ebc..bd56b87ab 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * Represents an incorrect command name typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php index 9160bdee2..5da77fe12 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * ExceptionInterface. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php index f50c2f51e..6b21aa9ca 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php index ec742254a..25265afe6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * Represents an incorrect option name or value typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php index eb74a3865..7ec865643 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php index 953785e53..c6d3aff6e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * Represents failure to read input from stdin. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php index 882cd3365..8cac82371 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * Represents an incorrect namespace typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php b/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php index d25ba420e..0e9c3faf5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; -use RectorPrefix202402\Symfony\Component\Console\Messenger\RunCommandContext; +use RectorPrefix202403\Symfony\Component\Console\Messenger\RunCommandContext; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php index a30b6f50e..dbae4a6a8 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Exception; +namespace RectorPrefix202403\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php index a34b19ced..83adca037 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index a7b55137a..6f96939f7 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php index ddf0ab143..f3883faa4 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use function RectorPrefix202402\Symfony\Component\String\b; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use function RectorPrefix202403\Symfony\Component\String\b; /** * Formatter class for console output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php index f0855b48e..8f3302e94 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; /** * Formatter interface for console output. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php index d17e357bf..76882ed02 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; -use RectorPrefix202402\Symfony\Component\Console\Color; +use RectorPrefix202403\Symfony\Component\Console\Color; /** * Formatter style class for defining styles. * diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index 099e0bec6..3233f24c4 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; /** * Formatter style interface for defining styles. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index 3a1fafaf9..0267cf61f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Contracts\Service\ResetInterface; /** * @author Jean-François Simon */ diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php index f291a7f01..568cb3536 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Formatter; +namespace RectorPrefix202403\Symfony\Component\Console\Formatter; /** * Formatter interface for console output that supports word wrapping. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php index a2bc135a9..48118960e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; /** * Helps outputting debug information when running an external program from a command. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php index 6c6228aab..ec7fa5ba0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\DescriptorInterface; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\JsonDescriptor; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\MarkdownDescriptor; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\TextDescriptor; -use RectorPrefix202402\Symfony\Component\Console\Descriptor\XmlDescriptor; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\DescriptorInterface; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\JsonDescriptor; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\MarkdownDescriptor; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\TextDescriptor; +use RectorPrefix202403\Symfony\Component\Console\Descriptor\XmlDescriptor; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * This class adds helper method to describe objects in various formats. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php index 29899049d..e8d6fb28f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\VarDumper\Cloner\ClonerInterface; -use RectorPrefix202402\Symfony\Component\VarDumper\Cloner\VarCloner; -use RectorPrefix202402\Symfony\Component\VarDumper\Dumper\CliDumper; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\VarDumper\Cloner\ClonerInterface; +use RectorPrefix202403\Symfony\Component\VarDumper\Cloner\VarCloner; +use RectorPrefix202403\Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Roland Franssen */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php index af1ae7a8b..5badca56f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; /** * The Formatter class provides helpers to format messages. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php index f3f9211a7..f103902c8 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202402\Symfony\Component\String\UnicodeString; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\String\UnicodeString; /** * Helper is the base class for all helper classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php index a3c792135..ee989fd99 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; /** * HelperInterface is the interface all helpers must implement. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php index 0a2bad1ab..38e11c4b1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * HelperSet represents a set of helpers to be used with a command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php index 8ab53fad8..f090c75d6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; /** * An implementation of InputAwareInterface for Helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php index 8a941fbbb..de24a45f6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; /** * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php index f78412d0b..3e63b964e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * The ProcessHelper class provides helpers to run external processes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php index 9a83b9b94..e722856e2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Cursor; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Terminal; +use RectorPrefix202403\Symfony\Component\Console\Cursor; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Terminal; /** * The ProgressBar provides helpers to display progress output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php index 56a680d8b..0274a75c7 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php index 0ac6ae430..4a87b5226 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php @@ -8,22 +8,22 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Cursor; -use RectorPrefix202402\Symfony\Component\Console\Exception\MissingInputException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterStyle; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Input\StreamableInputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202402\Symfony\Component\Console\Question\Question; -use RectorPrefix202402\Symfony\Component\Console\Terminal; -use function RectorPrefix202402\Symfony\Component\String\s; +use RectorPrefix202403\Symfony\Component\Console\Cursor; +use RectorPrefix202403\Symfony\Component\Console\Exception\MissingInputException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterStyle; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\StreamableInputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202403\Symfony\Component\Console\Question\Question; +use RectorPrefix202403\Symfony\Component\Console\Terminal; +use function RectorPrefix202403\Symfony\Component\String\s; /** * The QuestionHelper class provides helpers to interact with the user. * @@ -422,16 +422,7 @@ private function isInteractiveInput($inputStream) : bool if (isset(self::$stdinIsInteractive)) { return self::$stdinIsInteractive; } - if (\function_exists('stream_isatty')) { - return self::$stdinIsInteractive = @\stream_isatty(\fopen('php://stdin', 'r')); - } - if (\function_exists('posix_isatty')) { - return self::$stdinIsInteractive = @\posix_isatty(\fopen('php://stdin', 'r')); - } - if (!\function_exists('shell_exec')) { - return self::$stdinIsInteractive = \true; - } - return self::$stdinIsInteractive = (bool) \shell_exec('stty 2> ' . ('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); + return self::$stdinIsInteractive = @\stream_isatty(\fopen('php://stdin', 'r')); } /** * Reads one or more lines of input and returns what is read. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index d7687af98..c90488b89 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202402\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202402\Symfony\Component\Console\Question\Question; -use RectorPrefix202402\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202403\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202403\Symfony\Component\Console\Question\Question; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; /** * Symfony Style Guide compliant question helper. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php index 3b3376537..79732c877 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Provides helpers to display a table. * @@ -361,7 +361,8 @@ public function render() $maxRows = \max(\count($headers), \count($row)); for ($i = 0; $i < $maxRows; ++$i) { $cell = (string) ($row[$i] ?? ''); - $parts = \explode("\n", $cell); + $eol = \strpos($cell, "\r\n") !== \false ? "\r\n" : "\n"; + $parts = \explode($eol, $cell); foreach ($parts as $idx => $part) { if ($headers && !$containsColspan) { if (0 === $idx) { @@ -577,9 +578,10 @@ private function buildTableRows(array $rows) : TableRows if (\strpos($cell ?? '', "\n") === \false) { continue; } - $escaped = \implode("\n", \array_map(\Closure::fromCallable([OutputFormatter::class, 'escapeTrailingBackslash']), \explode("\n", $cell))); + $eol = \strpos($cell ?? '', "\r\n") !== \false ? "\r\n" : "\n"; + $escaped = \implode($eol, \array_map(\Closure::fromCallable([OutputFormatter::class, 'escapeTrailingBackslash']), \explode($eol, $cell))); $cell = $cell instanceof TableCell ? new TableCell($escaped, ['colspan' => $cell->getColspan()]) : $escaped; - $lines = \explode("\n", \str_replace("\n", "\n", $cell)); + $lines = \explode($eol, \str_replace($eol, '' . $eol, $cell)); foreach ($lines as $lineKey => $line) { if ($colspan > 1) { $line = new TableCell($line, ['colspan' => $colspan]); @@ -636,8 +638,9 @@ private function fillNextRows(array $rows, int $line) : array $nbLines = $cell->getRowspan() - 1; $lines = [$cell]; if (\strpos($cell, "\n") !== \false) { - $lines = \explode("\n", \str_replace("\n", "\n", $cell)); - $nbLines = \count($lines) > $nbLines ? \substr_count($cell, "\n") : $nbLines; + $eol = \strpos($cell, "\r\n") !== \false ? "\r\n" : "\n"; + $lines = \explode($eol, \str_replace($eol, '' . $eol . '', $cell)); + $nbLines = \count($lines) > $nbLines ? \substr_count($cell, $eol) : $nbLines; $rows[$line][$column] = new TableCell($lines[0], ['colspan' => $cell->getColspan(), 'style' => $cell->getStyle()]); unset($lines[0]); } diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php index 776e1799f..68dae0fda 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Abdellatif Ait boudad */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php index f66f28437..a6f798b2e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Yewhen Khoptynskyi */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php index fb66f2c93..29c9284d7 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; /** * @internal diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php index 14944c6e5..6e514e55b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; /** * Marks a row as being a separator. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php index 215546895..cc932f69a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Helper; +namespace RectorPrefix202403\Symfony\Component\Console\Helper; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; /** * Defines the styles for a Table. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php index 68b9e8683..26cf920a2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; /** * ArgvInput represents an input coming from the CLI arguments. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php index e60b62195..f7c95a630 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidOptionException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidOptionException; /** * ArrayInput represents an input provided as an array. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/Input.php b/vendor/rector/rector/vendor/symfony/console/Input/Input.php index ca2133e46..7e77e9ce9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/Input.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/Input.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; /** * Input is the base class for all concrete Input classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php index 20eeed773..83ac02cef 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line argument. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php index ffb8d329a..58069be19 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; /** * InputAwareInterface should be implemented by classes that depends on the diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php index 12b42c9fe..554265b64 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; /** * A InputDefinition represents a set of valid command line arguments and options. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php index 59ce28374..746d89050 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; /** * InputInterface is the interface implemented by all input classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php index 1d3755fae..8127e0058 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202402\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202402\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line option. * @@ -83,7 +83,7 @@ public function __construct(string $name, $shortcut = null, ?int $mode = null, s if (empty($name)) { throw new InvalidArgumentException('An option name cannot be empty.'); } - if ('' === $shortcut || [] === $shortcut) { + if ('' === $shortcut || [] === $shortcut || \false === $shortcut) { $shortcut = null; } if (null !== $shortcut) { diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php index 9cdf4a3a0..7d710fa62 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; /** * StreamableInputInterface is the interface implemented by all input classes diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php index f9669d0a1..f0324bd36 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Input; +namespace RectorPrefix202403\Symfony\Component\Console\Input; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * StringInput represents an input provided as a string. * diff --git a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php index 52cc79e4f..cff4098c6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php +++ b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Logger; +namespace RectorPrefix202403\Symfony\Component\Console\Logger; -use RectorPrefix202402\Psr\Log\AbstractLogger; -use RectorPrefix202402\Psr\Log\InvalidArgumentException; -use RectorPrefix202402\Psr\Log\LogLevel; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Psr\Log\AbstractLogger; +use RectorPrefix202403\Psr\Log\InvalidArgumentException; +use RectorPrefix202403\Psr\Log\LogLevel; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * PSR-3 compliant console logger. * diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php index 7b0d7f110..64d71829a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Messenger; +namespace RectorPrefix202403\Symfony\Component\Console\Messenger; /** * @author Kevin Bond diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php index d0368c685..0a6041d21 100644 --- a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Messenger; +namespace RectorPrefix202403\Symfony\Component\Console\Messenger; -use RectorPrefix202402\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RunCommandFailedException; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php index 39eecc1a2..3d9038e12 100644 --- a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Messenger; +namespace RectorPrefix202403\Symfony\Component\Console\Messenger; -use RectorPrefix202402\Symfony\Component\Console\Application; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Exception\RunCommandFailedException; -use RectorPrefix202402\Symfony\Component\Console\Input\StringInput; -use RectorPrefix202402\Symfony\Component\Console\Output\BufferedOutput; +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202403\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202403\Symfony\Component\Console\Output\BufferedOutput; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php index ffc99b130..7271f1595 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; class AnsiColorMode { public const Ansi4 = 'ansi4'; diff --git a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php index 7feb33124..341ec6805 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php index 7925e0772..0e58a6c1a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php index 1ae3fe25a..d6d0464b9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; /** * ConsoleOutputInterface is the interface implemented by ConsoleOutput class. diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php index 2b7d490b3..1bc3a4195 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Terminal; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Terminal; /** * @author Pierre du Plessis * @author Gabriel Ostrolucký diff --git a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php index 72056eee1..50e5c73bc 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Formatter\NullOutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Formatter\NullOutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * NullOutput suppresses all output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/Output.php b/vendor/rector/rector/vendor/symfony/console/Output/Output.php index ba4222fb9..573c85473 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/Output.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/Output.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * Base class for output classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php index 23baf2d7e..c7f431ff1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * OutputInterface is the interface implemented by all Output classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php index 249492251..5db809c09 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * StreamOutput writes the output to a given stream. * @@ -85,37 +85,21 @@ protected function hasColorSupport() : bool if (isset($_SERVER['NO_COLOR']) || \false !== \getenv('NO_COLOR')) { return \false; } - if (!$this->isTty()) { + // Detect msysgit/mingw and assume this is a tty because detection + // does not work correctly, see https://github.com/composer/composer/issues/9690 + if (!@\stream_isatty($this->stream) && !\in_array(\strtoupper((string) \getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], \true)) { return \false; } - if (\DIRECTORY_SEPARATOR === '\\' && \function_exists('sapi_windows_vt100_support') && @\sapi_windows_vt100_support($this->stream)) { + if ('\\' === \DIRECTORY_SEPARATOR && @\sapi_windows_vt100_support($this->stream)) { return \true; } - return 'Hyper' === \getenv('TERM_PROGRAM') || \false !== \getenv('ANSICON') || 'ON' === \getenv('ConEmuANSI') || \strncmp((string) \getenv('TERM'), 'xterm', \strlen('xterm')) === 0; - } - /** - * Checks if the stream is a TTY, i.e; whether the output stream is connected to a terminal. - * - * Reference: Composer\Util\Platform::isTty - * https://github.com/composer/composer - */ - private function isTty() : bool - { - // Detect msysgit/mingw and assume this is a tty because detection - // does not work correctly, see https://github.com/composer/composer/issues/9690 - if (\in_array(\strtoupper((string) \getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], \true)) { + if ('Hyper' === \getenv('TERM_PROGRAM') || \false !== \getenv('COLORTERM') || \false !== \getenv('ANSICON') || 'ON' === \getenv('ConEmuANSI')) { return \true; } - // Modern cross-platform function, includes the fstat fallback so if it is present we trust it - if (\function_exists('stream_isatty')) { - return \stream_isatty($this->stream); - } - // Only trusting this if it is positive, otherwise prefer fstat fallback. - if (\function_exists('posix_isatty') && \posix_isatty($this->stream)) { - return \true; + if ('dumb' === ($term = (string) \getenv('TERM'))) { + return \false; } - $stat = @\fstat($this->stream); - // Check if formatted mode is S_IFCHR - return $stat ? 020000 === ($stat['mode'] & 0170000) : \false; + // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 + return \preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); } } diff --git a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php index 91315f21c..8738dcf75 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Output; +namespace RectorPrefix202403\Symfony\Component\Console\Output; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * A BufferedOutput that keeps only the last N chars. * diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php index 798fe910e..5f21c1241 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Question; +namespace RectorPrefix202403\Symfony\Component\Console\Question; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; /** * Represents a choice question. * diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php index 899e33796..9a9f8170b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Question; +namespace RectorPrefix202403\Symfony\Component\Console\Question; /** * Represents a yes/no question. diff --git a/vendor/rector/rector/vendor/symfony/console/Question/Question.php b/vendor/rector/rector/vendor/symfony/console/Question/Question.php index d5894c533..c759c1fbe 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/Question.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/Question.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Question; +namespace RectorPrefix202403\Symfony\Component\Console\Question; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; /** * Represents a Question. * diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php index 13e53c248..db3364f8f 100644 --- a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php +++ b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202403\Symfony\Component\Console\SignalRegistry; /** * @author Grégoire Pineau diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php index 84bad799d..3ccfa926d 100644 --- a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202403\Symfony\Component\Console\SignalRegistry; final class SignalRegistry { diff --git a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php index 03d9c0f3d..adbb6c17c 100644 --- a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php +++ b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Command\Command; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * @author Grégoire Pineau */ diff --git a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php index 7e329a0fd..64f6ee7d1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Style; +namespace RectorPrefix202403\Symfony\Component\Console\Style; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202402\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202403\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; /** * Decorates output to add console style guide helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php index 01afc18ec..a871992a6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Style; +namespace RectorPrefix202403\Symfony\Component\Console\Style; /** * Output style helpers. diff --git a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php index 499583943..b16b629a0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php @@ -8,27 +8,27 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console\Style; +namespace RectorPrefix202403\Symfony\Component\Console\Style; -use RectorPrefix202402\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202402\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202402\Symfony\Component\Console\Helper\OutputWrapper; -use RectorPrefix202402\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202402\Symfony\Component\Console\Helper\SymfonyQuestionHelper; -use RectorPrefix202402\Symfony\Component\Console\Helper\Table; -use RectorPrefix202402\Symfony\Component\Console\Helper\TableCell; -use RectorPrefix202402\Symfony\Component\Console\Helper\TableSeparator; -use RectorPrefix202402\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202402\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202402\Symfony\Component\Console\Output\TrimmedBufferOutput; -use RectorPrefix202402\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202402\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202402\Symfony\Component\Console\Question\Question; -use RectorPrefix202402\Symfony\Component\Console\Terminal; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202403\Symfony\Component\Console\Helper\OutputWrapper; +use RectorPrefix202403\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202403\Symfony\Component\Console\Helper\SymfonyQuestionHelper; +use RectorPrefix202403\Symfony\Component\Console\Helper\Table; +use RectorPrefix202403\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202403\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Output\TrimmedBufferOutput; +use RectorPrefix202403\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202403\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202403\Symfony\Component\Console\Question\Question; +use RectorPrefix202403\Symfony\Component\Console\Terminal; /** * Output decorator helpers for the Symfony Style Guide. * diff --git a/vendor/rector/rector/vendor/symfony/console/Terminal.php b/vendor/rector/rector/vendor/symfony/console/Terminal.php index c73040c32..f5dbb5289 100644 --- a/vendor/rector/rector/vendor/symfony/console/Terminal.php +++ b/vendor/rector/rector/vendor/symfony/console/Terminal.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Console; +namespace RectorPrefix202403\Symfony\Component\Console; -use RectorPrefix202402\Symfony\Component\Console\Output\AnsiColorMode; +use RectorPrefix202403\Symfony\Component\Console\Output\AnsiColorMode; class Terminal { public const DEFAULT_COLOR_MODE = AnsiColorMode::Ansi4; diff --git a/vendor/rector/rector/vendor/symfony/console/composer.json b/vendor/rector/rector/vendor/symfony/console/composer.json index d9f3710e1..d3c9fe744 100644 --- a/vendor/rector/rector/vendor/symfony/console/composer.json +++ b/vendor/rector/rector/vendor/symfony/console/composer.json @@ -52,7 +52,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Console\\": "" + "RectorPrefix202403\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php b/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php index fd7cf17dd..e44fdb0bb 100644 --- a/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php +++ b/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php @@ -1,6 +1,6 @@ diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php index d4bbd4240..657d7a822 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202403\Symfony\Component\Filesystem\Exception; /** * @author Théo Fidry diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php index 7918adc1f..ec084889e 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Filesystem; +namespace RectorPrefix202403\Symfony\Component\Filesystem; -use RectorPrefix202402\Symfony\Component\Filesystem\Exception\FileNotFoundException; -use RectorPrefix202402\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Filesystem\Exception\IOException; +use RectorPrefix202403\Symfony\Component\Filesystem\Exception\FileNotFoundException; +use RectorPrefix202403\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Filesystem\Exception\IOException; /** * Provides basic utility to manipulate the file system. * diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Path.php b/vendor/rector/rector/vendor/symfony/filesystem/Path.php index ca7684997..7073de764 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Path.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Path.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Filesystem; +namespace RectorPrefix202403\Symfony\Component\Filesystem; -use RectorPrefix202402\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Filesystem\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Filesystem\Exception\RuntimeException; /** * Contains utility methods for handling path strings. * diff --git a/vendor/rector/rector/vendor/symfony/filesystem/composer.json b/vendor/rector/rector/vendor/symfony/filesystem/composer.json index 521ff6d2c..6e03810be 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/composer.json +++ b/vendor/rector/rector/vendor/symfony/filesystem/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202403\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php index d37653bb7..90aaf5c07 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202403\Symfony\Component\Finder\Comparator; /** * @author Fabien Potencier diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php index 0023f2c72..38b3aad4b 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202403\Symfony\Component\Finder\Comparator; /** * DateCompare compiles date comparisons. diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php index 6824f0583..d416c72ec 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202403\Symfony\Component\Finder\Comparator; /** * NumberComparator compiles a simple comparison to an anonymous diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php index 8710731e2..060137602 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Exception; +namespace RectorPrefix202403\Symfony\Component\Finder\Exception; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php index bfe4e79c2..8c308a91c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Exception; +namespace RectorPrefix202403\Symfony\Component\Finder\Exception; /** * @author Andreas Erhard diff --git a/vendor/rector/rector/vendor/symfony/finder/Finder.php b/vendor/rector/rector/vendor/symfony/finder/Finder.php index 92cee8b09..3a8659f0c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Finder.php +++ b/vendor/rector/rector/vendor/symfony/finder/Finder.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder; +namespace RectorPrefix202403\Symfony\Component\Finder; -use RectorPrefix202402\Symfony\Component\Finder\Comparator\DateComparator; -use RectorPrefix202402\Symfony\Component\Finder\Comparator\NumberComparator; -use RectorPrefix202402\Symfony\Component\Finder\Exception\DirectoryNotFoundException; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\CustomFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\FilenameFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\LazyIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; -use RectorPrefix202402\Symfony\Component\Finder\Iterator\SortableIterator; +use RectorPrefix202403\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202403\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202403\Symfony\Component\Finder\Exception\DirectoryNotFoundException; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\CustomFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\FilenameFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\LazyIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; +use RectorPrefix202403\Symfony\Component\Finder\Iterator\SortableIterator; /** * Finder allows to build rules to find files and directories. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php index d2a43a923..855f1099e 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php +++ b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder; +namespace RectorPrefix202403\Symfony\Component\Finder; /** * Gitignore matches against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Glob.php b/vendor/rector/rector/vendor/symfony/finder/Glob.php index 5c976aa00..79658681d 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Glob.php +++ b/vendor/rector/rector/vendor/symfony/finder/Glob.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder; +namespace RectorPrefix202403\Symfony\Component\Finder; /** * Glob matches globbing patterns against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php index 01c3be5d9..4caf8f368 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * CustomFilterIterator filters files by applying anonymous functions. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php index e83aa77e6..bb5fffb56 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202403\Symfony\Component\Finder\Comparator\DateComparator; /** * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php index 8fd48c7f1..7356e76dd 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * DepthRangeFilterIterator limits the directory depth. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index dd712d7c2..208370089 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; /** * ExcludeDirectoryFilterIterator filters out directories. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php index cd2c11dc3..1750bb1f2 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * FileTypeFilterIterator only keeps files, directories, or both. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php index 8a37bc766..5ae7115d1 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; /** * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php index 2105d0d7b..01191beb9 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Glob; +use RectorPrefix202403\Symfony\Component\Finder\Glob; /** * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php index a5e4c18d2..0bd5e45ce 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * @author Jérémy Derussé diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index 4536b21d6..ec00910e0 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings). diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php index 014c10595..388133e6c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; /** * PathFilterIterator filters files by path patterns (e.g. some/special/dir). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 3f3be1bdc..212275dad 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Exception\AccessDeniedException; -use RectorPrefix202402\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202403\Symfony\Component\Finder\Exception\AccessDeniedException; +use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; /** * Extends the \RecursiveDirectoryIterator to support relative paths. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php index 99804504f..ad3d0c0c4 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202403\Symfony\Component\Finder\Comparator\NumberComparator; /** * SizeRangeFilterIterator filters out files that are not in the given size range. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php index 713c3cc45..d44328185 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; /** * SortableIterator applies a sort on a given Iterator. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index 7909537bc..6c1065b9c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202403\Symfony\Component\Finder\Iterator; -use RectorPrefix202402\Symfony\Component\Finder\Gitignore; +use RectorPrefix202403\Symfony\Component\Finder\Gitignore; /** * @extends \FilterIterator */ diff --git a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php index d760ea5b5..f69cd72f0 100644 --- a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php +++ b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Finder; +namespace RectorPrefix202403\Symfony\Component\Finder; /** * Extends \SplFileInfo to support relative paths. diff --git a/vendor/rector/rector/vendor/symfony/finder/composer.json b/vendor/rector/rector/vendor/symfony/finder/composer.json index 04c5b49aa..9d325ecee 100644 --- a/vendor/rector/rector/vendor/symfony/finder/composer.json +++ b/vendor/rector/rector/vendor/symfony/finder/composer.json @@ -23,7 +23,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202403\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php index c302ce575..26bdf70cd 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -1,5 +1,5 @@ 'i̇', 'µ' => 'μ', 'ſ' => 's', 'ͅ' => 'ι', 'ς' => 'σ', 'ϐ' => 'β', 'ϑ' => 'θ', 'ϕ' => 'φ', 'ϖ' => 'π', 'ϰ' => 'κ', 'ϱ' => 'ρ', 'ϵ' => 'ε', 'ẛ' => 'ṡ', 'ι' => 'ι', 'ß' => 'ss', 'ʼn' => 'ʼn', 'ǰ' => 'ǰ', 'ΐ' => 'ΐ', 'ΰ' => 'ΰ', 'և' => 'եւ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẚ' => 'aʾ', 'ẞ' => 'ss', 'ὐ' => 'ὐ', 'ὒ' => 'ὒ', 'ὔ' => 'ὔ', 'ὖ' => 'ὖ', 'ᾀ' => 'ἀι', 'ᾁ' => 'ἁι', 'ᾂ' => 'ἂι', 'ᾃ' => 'ἃι', 'ᾄ' => 'ἄι', 'ᾅ' => 'ἅι', 'ᾆ' => 'ἆι', 'ᾇ' => 'ἇι', 'ᾈ' => 'ἀι', 'ᾉ' => 'ἁι', 'ᾊ' => 'ἂι', 'ᾋ' => 'ἃι', 'ᾌ' => 'ἄι', 'ᾍ' => 'ἅι', 'ᾎ' => 'ἆι', 'ᾏ' => 'ἇι', 'ᾐ' => 'ἠι', 'ᾑ' => 'ἡι', 'ᾒ' => 'ἢι', 'ᾓ' => 'ἣι', 'ᾔ' => 'ἤι', 'ᾕ' => 'ἥι', 'ᾖ' => 'ἦι', 'ᾗ' => 'ἧι', 'ᾘ' => 'ἠι', 'ᾙ' => 'ἡι', 'ᾚ' => 'ἢι', 'ᾛ' => 'ἣι', 'ᾜ' => 'ἤι', 'ᾝ' => 'ἥι', 'ᾞ' => 'ἦι', 'ᾟ' => 'ἧι', 'ᾠ' => 'ὠι', 'ᾡ' => 'ὡι', 'ᾢ' => 'ὢι', 'ᾣ' => 'ὣι', 'ᾤ' => 'ὤι', 'ᾥ' => 'ὥι', 'ᾦ' => 'ὦι', 'ᾧ' => 'ὧι', 'ᾨ' => 'ὠι', 'ᾩ' => 'ὡι', 'ᾪ' => 'ὢι', 'ᾫ' => 'ὣι', 'ᾬ' => 'ὤι', 'ᾭ' => 'ὥι', 'ᾮ' => 'ὦι', 'ᾯ' => 'ὧι', 'ᾲ' => 'ὰι', 'ᾳ' => 'αι', 'ᾴ' => 'άι', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾶι', 'ᾼ' => 'αι', 'ῂ' => 'ὴι', 'ῃ' => 'ηι', 'ῄ' => 'ήι', 'ῆ' => 'ῆ', 'ῇ' => 'ῆι', 'ῌ' => 'ηι', 'ῒ' => 'ῒ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'ῢ' => 'ῢ', 'ῤ' => 'ῤ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'ῲ' => 'ὼι', 'ῳ' => 'ωι', 'ῴ' => 'ώι', 'ῶ' => 'ῶ', 'ῷ' => 'ῶι', 'ῼ' => 'ωι', 'ff' => 'ff', 'fi' => 'fi', 'fl' => 'fl', 'ffi' => 'ffi', 'ffl' => 'ffl', 'ſt' => 'st', 'st' => 'st', 'ﬓ' => 'մն', 'ﬔ' => 'մե', 'ﬕ' => 'մի', 'ﬖ' => 'վն', 'ﬗ' => 'մխ']; diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php index d1c1d02fe..25ae8b5c7 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php @@ -1,5 +1,5 @@ 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'À' => 'à', 'Á' => 'á', 'Â' => 'â', 'Ã' => 'ã', 'Ä' => 'ä', 'Å' => 'å', 'Æ' => 'æ', 'Ç' => 'ç', 'È' => 'è', 'É' => 'é', 'Ê' => 'ê', 'Ë' => 'ë', 'Ì' => 'ì', 'Í' => 'í', 'Î' => 'î', 'Ï' => 'ï', 'Ð' => 'ð', 'Ñ' => 'ñ', 'Ò' => 'ò', 'Ó' => 'ó', 'Ô' => 'ô', 'Õ' => 'õ', 'Ö' => 'ö', 'Ø' => 'ø', 'Ù' => 'ù', 'Ú' => 'ú', 'Û' => 'û', 'Ü' => 'ü', 'Ý' => 'ý', 'Þ' => 'þ', 'Ā' => 'ā', 'Ă' => 'ă', 'Ą' => 'ą', 'Ć' => 'ć', 'Ĉ' => 'ĉ', 'Ċ' => 'ċ', 'Č' => 'č', 'Ď' => 'ď', 'Đ' => 'đ', 'Ē' => 'ē', 'Ĕ' => 'ĕ', 'Ė' => 'ė', 'Ę' => 'ę', 'Ě' => 'ě', 'Ĝ' => 'ĝ', 'Ğ' => 'ğ', 'Ġ' => 'ġ', 'Ģ' => 'ģ', 'Ĥ' => 'ĥ', 'Ħ' => 'ħ', 'Ĩ' => 'ĩ', 'Ī' => 'ī', 'Ĭ' => 'ĭ', 'Į' => 'į', 'İ' => 'i̇', 'IJ' => 'ij', 'Ĵ' => 'ĵ', 'Ķ' => 'ķ', 'Ĺ' => 'ĺ', 'Ļ' => 'ļ', 'Ľ' => 'ľ', 'Ŀ' => 'ŀ', 'Ł' => 'ł', 'Ń' => 'ń', 'Ņ' => 'ņ', 'Ň' => 'ň', 'Ŋ' => 'ŋ', 'Ō' => 'ō', 'Ŏ' => 'ŏ', 'Ő' => 'ő', 'Œ' => 'œ', 'Ŕ' => 'ŕ', 'Ŗ' => 'ŗ', 'Ř' => 'ř', 'Ś' => 'ś', 'Ŝ' => 'ŝ', 'Ş' => 'ş', 'Š' => 'š', 'Ţ' => 'ţ', 'Ť' => 'ť', 'Ŧ' => 'ŧ', 'Ũ' => 'ũ', 'Ū' => 'ū', 'Ŭ' => 'ŭ', 'Ů' => 'ů', 'Ű' => 'ű', 'Ų' => 'ų', 'Ŵ' => 'ŵ', 'Ŷ' => 'ŷ', 'Ÿ' => 'ÿ', 'Ź' => 'ź', 'Ż' => 'ż', 'Ž' => 'ž', 'Ɓ' => 'ɓ', 'Ƃ' => 'ƃ', 'Ƅ' => 'ƅ', 'Ɔ' => 'ɔ', 'Ƈ' => 'ƈ', 'Ɖ' => 'ɖ', 'Ɗ' => 'ɗ', 'Ƌ' => 'ƌ', 'Ǝ' => 'ǝ', 'Ə' => 'ə', 'Ɛ' => 'ɛ', 'Ƒ' => 'ƒ', 'Ɠ' => 'ɠ', 'Ɣ' => 'ɣ', 'Ɩ' => 'ɩ', 'Ɨ' => 'ɨ', 'Ƙ' => 'ƙ', 'Ɯ' => 'ɯ', 'Ɲ' => 'ɲ', 'Ɵ' => 'ɵ', 'Ơ' => 'ơ', 'Ƣ' => 'ƣ', 'Ƥ' => 'ƥ', 'Ʀ' => 'ʀ', 'Ƨ' => 'ƨ', 'Ʃ' => 'ʃ', 'Ƭ' => 'ƭ', 'Ʈ' => 'ʈ', 'Ư' => 'ư', 'Ʊ' => 'ʊ', 'Ʋ' => 'ʋ', 'Ƴ' => 'ƴ', 'Ƶ' => 'ƶ', 'Ʒ' => 'ʒ', 'Ƹ' => 'ƹ', 'Ƽ' => 'ƽ', 'DŽ' => 'dž', 'Dž' => 'dž', 'LJ' => 'lj', 'Lj' => 'lj', 'NJ' => 'nj', 'Nj' => 'nj', 'Ǎ' => 'ǎ', 'Ǐ' => 'ǐ', 'Ǒ' => 'ǒ', 'Ǔ' => 'ǔ', 'Ǖ' => 'ǖ', 'Ǘ' => 'ǘ', 'Ǚ' => 'ǚ', 'Ǜ' => 'ǜ', 'Ǟ' => 'ǟ', 'Ǡ' => 'ǡ', 'Ǣ' => 'ǣ', 'Ǥ' => 'ǥ', 'Ǧ' => 'ǧ', 'Ǩ' => 'ǩ', 'Ǫ' => 'ǫ', 'Ǭ' => 'ǭ', 'Ǯ' => 'ǯ', 'DZ' => 'dz', 'Dz' => 'dz', 'Ǵ' => 'ǵ', 'Ƕ' => 'ƕ', 'Ƿ' => 'ƿ', 'Ǹ' => 'ǹ', 'Ǻ' => 'ǻ', 'Ǽ' => 'ǽ', 'Ǿ' => 'ǿ', 'Ȁ' => 'ȁ', 'Ȃ' => 'ȃ', 'Ȅ' => 'ȅ', 'Ȇ' => 'ȇ', 'Ȉ' => 'ȉ', 'Ȋ' => 'ȋ', 'Ȍ' => 'ȍ', 'Ȏ' => 'ȏ', 'Ȑ' => 'ȑ', 'Ȓ' => 'ȓ', 'Ȕ' => 'ȕ', 'Ȗ' => 'ȗ', 'Ș' => 'ș', 'Ț' => 'ț', 'Ȝ' => 'ȝ', 'Ȟ' => 'ȟ', 'Ƞ' => 'ƞ', 'Ȣ' => 'ȣ', 'Ȥ' => 'ȥ', 'Ȧ' => 'ȧ', 'Ȩ' => 'ȩ', 'Ȫ' => 'ȫ', 'Ȭ' => 'ȭ', 'Ȯ' => 'ȯ', 'Ȱ' => 'ȱ', 'Ȳ' => 'ȳ', 'Ⱥ' => 'ⱥ', 'Ȼ' => 'ȼ', 'Ƚ' => 'ƚ', 'Ⱦ' => 'ⱦ', 'Ɂ' => 'ɂ', 'Ƀ' => 'ƀ', 'Ʉ' => 'ʉ', 'Ʌ' => 'ʌ', 'Ɇ' => 'ɇ', 'Ɉ' => 'ɉ', 'Ɋ' => 'ɋ', 'Ɍ' => 'ɍ', 'Ɏ' => 'ɏ', 'Ͱ' => 'ͱ', 'Ͳ' => 'ͳ', 'Ͷ' => 'ͷ', 'Ϳ' => 'ϳ', 'Ά' => 'ά', 'Έ' => 'έ', 'Ή' => 'ή', 'Ί' => 'ί', 'Ό' => 'ό', 'Ύ' => 'ύ', 'Ώ' => 'ώ', 'Α' => 'α', 'Β' => 'β', 'Γ' => 'γ', 'Δ' => 'δ', 'Ε' => 'ε', 'Ζ' => 'ζ', 'Η' => 'η', 'Θ' => 'θ', 'Ι' => 'ι', 'Κ' => 'κ', 'Λ' => 'λ', 'Μ' => 'μ', 'Ν' => 'ν', 'Ξ' => 'ξ', 'Ο' => 'ο', 'Π' => 'π', 'Ρ' => 'ρ', 'Σ' => 'σ', 'Τ' => 'τ', 'Υ' => 'υ', 'Φ' => 'φ', 'Χ' => 'χ', 'Ψ' => 'ψ', 'Ω' => 'ω', 'Ϊ' => 'ϊ', 'Ϋ' => 'ϋ', 'Ϗ' => 'ϗ', 'Ϙ' => 'ϙ', 'Ϛ' => 'ϛ', 'Ϝ' => 'ϝ', 'Ϟ' => 'ϟ', 'Ϡ' => 'ϡ', 'Ϣ' => 'ϣ', 'Ϥ' => 'ϥ', 'Ϧ' => 'ϧ', 'Ϩ' => 'ϩ', 'Ϫ' => 'ϫ', 'Ϭ' => 'ϭ', 'Ϯ' => 'ϯ', 'ϴ' => 'θ', 'Ϸ' => 'ϸ', 'Ϲ' => 'ϲ', 'Ϻ' => 'ϻ', 'Ͻ' => 'ͻ', 'Ͼ' => 'ͼ', 'Ͽ' => 'ͽ', 'Ѐ' => 'ѐ', 'Ё' => 'ё', 'Ђ' => 'ђ', 'Ѓ' => 'ѓ', 'Є' => 'є', 'Ѕ' => 'ѕ', 'І' => 'і', 'Ї' => 'ї', 'Ј' => 'ј', 'Љ' => 'љ', 'Њ' => 'њ', 'Ћ' => 'ћ', 'Ќ' => 'ќ', 'Ѝ' => 'ѝ', 'Ў' => 'ў', 'Џ' => 'џ', 'А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д', 'Е' => 'е', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и', 'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н', 'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т', 'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч', 'Ш' => 'ш', 'Щ' => 'щ', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Ь' => 'ь', 'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я', 'Ѡ' => 'ѡ', 'Ѣ' => 'ѣ', 'Ѥ' => 'ѥ', 'Ѧ' => 'ѧ', 'Ѩ' => 'ѩ', 'Ѫ' => 'ѫ', 'Ѭ' => 'ѭ', 'Ѯ' => 'ѯ', 'Ѱ' => 'ѱ', 'Ѳ' => 'ѳ', 'Ѵ' => 'ѵ', 'Ѷ' => 'ѷ', 'Ѹ' => 'ѹ', 'Ѻ' => 'ѻ', 'Ѽ' => 'ѽ', 'Ѿ' => 'ѿ', 'Ҁ' => 'ҁ', 'Ҋ' => 'ҋ', 'Ҍ' => 'ҍ', 'Ҏ' => 'ҏ', 'Ґ' => 'ґ', 'Ғ' => 'ғ', 'Ҕ' => 'ҕ', 'Җ' => 'җ', 'Ҙ' => 'ҙ', 'Қ' => 'қ', 'Ҝ' => 'ҝ', 'Ҟ' => 'ҟ', 'Ҡ' => 'ҡ', 'Ң' => 'ң', 'Ҥ' => 'ҥ', 'Ҧ' => 'ҧ', 'Ҩ' => 'ҩ', 'Ҫ' => 'ҫ', 'Ҭ' => 'ҭ', 'Ү' => 'ү', 'Ұ' => 'ұ', 'Ҳ' => 'ҳ', 'Ҵ' => 'ҵ', 'Ҷ' => 'ҷ', 'Ҹ' => 'ҹ', 'Һ' => 'һ', 'Ҽ' => 'ҽ', 'Ҿ' => 'ҿ', 'Ӏ' => 'ӏ', 'Ӂ' => 'ӂ', 'Ӄ' => 'ӄ', 'Ӆ' => 'ӆ', 'Ӈ' => 'ӈ', 'Ӊ' => 'ӊ', 'Ӌ' => 'ӌ', 'Ӎ' => 'ӎ', 'Ӑ' => 'ӑ', 'Ӓ' => 'ӓ', 'Ӕ' => 'ӕ', 'Ӗ' => 'ӗ', 'Ә' => 'ә', 'Ӛ' => 'ӛ', 'Ӝ' => 'ӝ', 'Ӟ' => 'ӟ', 'Ӡ' => 'ӡ', 'Ӣ' => 'ӣ', 'Ӥ' => 'ӥ', 'Ӧ' => 'ӧ', 'Ө' => 'ө', 'Ӫ' => 'ӫ', 'Ӭ' => 'ӭ', 'Ӯ' => 'ӯ', 'Ӱ' => 'ӱ', 'Ӳ' => 'ӳ', 'Ӵ' => 'ӵ', 'Ӷ' => 'ӷ', 'Ӹ' => 'ӹ', 'Ӻ' => 'ӻ', 'Ӽ' => 'ӽ', 'Ӿ' => 'ӿ', 'Ԁ' => 'ԁ', 'Ԃ' => 'ԃ', 'Ԅ' => 'ԅ', 'Ԇ' => 'ԇ', 'Ԉ' => 'ԉ', 'Ԋ' => 'ԋ', 'Ԍ' => 'ԍ', 'Ԏ' => 'ԏ', 'Ԑ' => 'ԑ', 'Ԓ' => 'ԓ', 'Ԕ' => 'ԕ', 'Ԗ' => 'ԗ', 'Ԙ' => 'ԙ', 'Ԛ' => 'ԛ', 'Ԝ' => 'ԝ', 'Ԟ' => 'ԟ', 'Ԡ' => 'ԡ', 'Ԣ' => 'ԣ', 'Ԥ' => 'ԥ', 'Ԧ' => 'ԧ', 'Ԩ' => 'ԩ', 'Ԫ' => 'ԫ', 'Ԭ' => 'ԭ', 'Ԯ' => 'ԯ', 'Ա' => 'ա', 'Բ' => 'բ', 'Գ' => 'գ', 'Դ' => 'դ', 'Ե' => 'ե', 'Զ' => 'զ', 'Է' => 'է', 'Ը' => 'ը', 'Թ' => 'թ', 'Ժ' => 'ժ', 'Ի' => 'ի', 'Լ' => 'լ', 'Խ' => 'խ', 'Ծ' => 'ծ', 'Կ' => 'կ', 'Հ' => 'հ', 'Ձ' => 'ձ', 'Ղ' => 'ղ', 'Ճ' => 'ճ', 'Մ' => 'մ', 'Յ' => 'յ', 'Ն' => 'ն', 'Շ' => 'շ', 'Ո' => 'ո', 'Չ' => 'չ', 'Պ' => 'պ', 'Ջ' => 'ջ', 'Ռ' => 'ռ', 'Ս' => 'ս', 'Վ' => 'վ', 'Տ' => 'տ', 'Ր' => 'ր', 'Ց' => 'ց', 'Ւ' => 'ւ', 'Փ' => 'փ', 'Ք' => 'ք', 'Օ' => 'օ', 'Ֆ' => 'ֆ', 'Ⴀ' => 'ⴀ', 'Ⴁ' => 'ⴁ', 'Ⴂ' => 'ⴂ', 'Ⴃ' => 'ⴃ', 'Ⴄ' => 'ⴄ', 'Ⴅ' => 'ⴅ', 'Ⴆ' => 'ⴆ', 'Ⴇ' => 'ⴇ', 'Ⴈ' => 'ⴈ', 'Ⴉ' => 'ⴉ', 'Ⴊ' => 'ⴊ', 'Ⴋ' => 'ⴋ', 'Ⴌ' => 'ⴌ', 'Ⴍ' => 'ⴍ', 'Ⴎ' => 'ⴎ', 'Ⴏ' => 'ⴏ', 'Ⴐ' => 'ⴐ', 'Ⴑ' => 'ⴑ', 'Ⴒ' => 'ⴒ', 'Ⴓ' => 'ⴓ', 'Ⴔ' => 'ⴔ', 'Ⴕ' => 'ⴕ', 'Ⴖ' => 'ⴖ', 'Ⴗ' => 'ⴗ', 'Ⴘ' => 'ⴘ', 'Ⴙ' => 'ⴙ', 'Ⴚ' => 'ⴚ', 'Ⴛ' => 'ⴛ', 'Ⴜ' => 'ⴜ', 'Ⴝ' => 'ⴝ', 'Ⴞ' => 'ⴞ', 'Ⴟ' => 'ⴟ', 'Ⴠ' => 'ⴠ', 'Ⴡ' => 'ⴡ', 'Ⴢ' => 'ⴢ', 'Ⴣ' => 'ⴣ', 'Ⴤ' => 'ⴤ', 'Ⴥ' => 'ⴥ', 'Ⴧ' => 'ⴧ', 'Ⴭ' => 'ⴭ', 'Ꭰ' => 'ꭰ', 'Ꭱ' => 'ꭱ', 'Ꭲ' => 'ꭲ', 'Ꭳ' => 'ꭳ', 'Ꭴ' => 'ꭴ', 'Ꭵ' => 'ꭵ', 'Ꭶ' => 'ꭶ', 'Ꭷ' => 'ꭷ', 'Ꭸ' => 'ꭸ', 'Ꭹ' => 'ꭹ', 'Ꭺ' => 'ꭺ', 'Ꭻ' => 'ꭻ', 'Ꭼ' => 'ꭼ', 'Ꭽ' => 'ꭽ', 'Ꭾ' => 'ꭾ', 'Ꭿ' => 'ꭿ', 'Ꮀ' => 'ꮀ', 'Ꮁ' => 'ꮁ', 'Ꮂ' => 'ꮂ', 'Ꮃ' => 'ꮃ', 'Ꮄ' => 'ꮄ', 'Ꮅ' => 'ꮅ', 'Ꮆ' => 'ꮆ', 'Ꮇ' => 'ꮇ', 'Ꮈ' => 'ꮈ', 'Ꮉ' => 'ꮉ', 'Ꮊ' => 'ꮊ', 'Ꮋ' => 'ꮋ', 'Ꮌ' => 'ꮌ', 'Ꮍ' => 'ꮍ', 'Ꮎ' => 'ꮎ', 'Ꮏ' => 'ꮏ', 'Ꮐ' => 'ꮐ', 'Ꮑ' => 'ꮑ', 'Ꮒ' => 'ꮒ', 'Ꮓ' => 'ꮓ', 'Ꮔ' => 'ꮔ', 'Ꮕ' => 'ꮕ', 'Ꮖ' => 'ꮖ', 'Ꮗ' => 'ꮗ', 'Ꮘ' => 'ꮘ', 'Ꮙ' => 'ꮙ', 'Ꮚ' => 'ꮚ', 'Ꮛ' => 'ꮛ', 'Ꮜ' => 'ꮜ', 'Ꮝ' => 'ꮝ', 'Ꮞ' => 'ꮞ', 'Ꮟ' => 'ꮟ', 'Ꮠ' => 'ꮠ', 'Ꮡ' => 'ꮡ', 'Ꮢ' => 'ꮢ', 'Ꮣ' => 'ꮣ', 'Ꮤ' => 'ꮤ', 'Ꮥ' => 'ꮥ', 'Ꮦ' => 'ꮦ', 'Ꮧ' => 'ꮧ', 'Ꮨ' => 'ꮨ', 'Ꮩ' => 'ꮩ', 'Ꮪ' => 'ꮪ', 'Ꮫ' => 'ꮫ', 'Ꮬ' => 'ꮬ', 'Ꮭ' => 'ꮭ', 'Ꮮ' => 'ꮮ', 'Ꮯ' => 'ꮯ', 'Ꮰ' => 'ꮰ', 'Ꮱ' => 'ꮱ', 'Ꮲ' => 'ꮲ', 'Ꮳ' => 'ꮳ', 'Ꮴ' => 'ꮴ', 'Ꮵ' => 'ꮵ', 'Ꮶ' => 'ꮶ', 'Ꮷ' => 'ꮷ', 'Ꮸ' => 'ꮸ', 'Ꮹ' => 'ꮹ', 'Ꮺ' => 'ꮺ', 'Ꮻ' => 'ꮻ', 'Ꮼ' => 'ꮼ', 'Ꮽ' => 'ꮽ', 'Ꮾ' => 'ꮾ', 'Ꮿ' => 'ꮿ', 'Ᏸ' => 'ᏸ', 'Ᏹ' => 'ᏹ', 'Ᏺ' => 'ᏺ', 'Ᏻ' => 'ᏻ', 'Ᏼ' => 'ᏼ', 'Ᏽ' => 'ᏽ', 'Ა' => 'ა', 'Ბ' => 'ბ', 'Გ' => 'გ', 'Დ' => 'დ', 'Ე' => 'ე', 'Ვ' => 'ვ', 'Ზ' => 'ზ', 'Თ' => 'თ', 'Ი' => 'ი', 'Კ' => 'კ', 'Ლ' => 'ლ', 'Მ' => 'მ', 'Ნ' => 'ნ', 'Ო' => 'ო', 'Პ' => 'პ', 'Ჟ' => 'ჟ', 'Რ' => 'რ', 'Ს' => 'ს', 'Ტ' => 'ტ', 'Უ' => 'უ', 'Ფ' => 'ფ', 'Ქ' => 'ქ', 'Ღ' => 'ღ', 'Ყ' => 'ყ', 'Შ' => 'შ', 'Ჩ' => 'ჩ', 'Ც' => 'ც', 'Ძ' => 'ძ', 'Წ' => 'წ', 'Ჭ' => 'ჭ', 'Ხ' => 'ხ', 'Ჯ' => 'ჯ', 'Ჰ' => 'ჰ', 'Ჱ' => 'ჱ', 'Ჲ' => 'ჲ', 'Ჳ' => 'ჳ', 'Ჴ' => 'ჴ', 'Ჵ' => 'ჵ', 'Ჶ' => 'ჶ', 'Ჷ' => 'ჷ', 'Ჸ' => 'ჸ', 'Ჹ' => 'ჹ', 'Ჺ' => 'ჺ', 'Ჽ' => 'ჽ', 'Ჾ' => 'ჾ', 'Ჿ' => 'ჿ', 'Ḁ' => 'ḁ', 'Ḃ' => 'ḃ', 'Ḅ' => 'ḅ', 'Ḇ' => 'ḇ', 'Ḉ' => 'ḉ', 'Ḋ' => 'ḋ', 'Ḍ' => 'ḍ', 'Ḏ' => 'ḏ', 'Ḑ' => 'ḑ', 'Ḓ' => 'ḓ', 'Ḕ' => 'ḕ', 'Ḗ' => 'ḗ', 'Ḙ' => 'ḙ', 'Ḛ' => 'ḛ', 'Ḝ' => 'ḝ', 'Ḟ' => 'ḟ', 'Ḡ' => 'ḡ', 'Ḣ' => 'ḣ', 'Ḥ' => 'ḥ', 'Ḧ' => 'ḧ', 'Ḩ' => 'ḩ', 'Ḫ' => 'ḫ', 'Ḭ' => 'ḭ', 'Ḯ' => 'ḯ', 'Ḱ' => 'ḱ', 'Ḳ' => 'ḳ', 'Ḵ' => 'ḵ', 'Ḷ' => 'ḷ', 'Ḹ' => 'ḹ', 'Ḻ' => 'ḻ', 'Ḽ' => 'ḽ', 'Ḿ' => 'ḿ', 'Ṁ' => 'ṁ', 'Ṃ' => 'ṃ', 'Ṅ' => 'ṅ', 'Ṇ' => 'ṇ', 'Ṉ' => 'ṉ', 'Ṋ' => 'ṋ', 'Ṍ' => 'ṍ', 'Ṏ' => 'ṏ', 'Ṑ' => 'ṑ', 'Ṓ' => 'ṓ', 'Ṕ' => 'ṕ', 'Ṗ' => 'ṗ', 'Ṙ' => 'ṙ', 'Ṛ' => 'ṛ', 'Ṝ' => 'ṝ', 'Ṟ' => 'ṟ', 'Ṡ' => 'ṡ', 'Ṣ' => 'ṣ', 'Ṥ' => 'ṥ', 'Ṧ' => 'ṧ', 'Ṩ' => 'ṩ', 'Ṫ' => 'ṫ', 'Ṭ' => 'ṭ', 'Ṯ' => 'ṯ', 'Ṱ' => 'ṱ', 'Ṳ' => 'ṳ', 'Ṵ' => 'ṵ', 'Ṷ' => 'ṷ', 'Ṹ' => 'ṹ', 'Ṻ' => 'ṻ', 'Ṽ' => 'ṽ', 'Ṿ' => 'ṿ', 'Ẁ' => 'ẁ', 'Ẃ' => 'ẃ', 'Ẅ' => 'ẅ', 'Ẇ' => 'ẇ', 'Ẉ' => 'ẉ', 'Ẋ' => 'ẋ', 'Ẍ' => 'ẍ', 'Ẏ' => 'ẏ', 'Ẑ' => 'ẑ', 'Ẓ' => 'ẓ', 'Ẕ' => 'ẕ', 'ẞ' => 'ß', 'Ạ' => 'ạ', 'Ả' => 'ả', 'Ấ' => 'ấ', 'Ầ' => 'ầ', 'Ẩ' => 'ẩ', 'Ẫ' => 'ẫ', 'Ậ' => 'ậ', 'Ắ' => 'ắ', 'Ằ' => 'ằ', 'Ẳ' => 'ẳ', 'Ẵ' => 'ẵ', 'Ặ' => 'ặ', 'Ẹ' => 'ẹ', 'Ẻ' => 'ẻ', 'Ẽ' => 'ẽ', 'Ế' => 'ế', 'Ề' => 'ề', 'Ể' => 'ể', 'Ễ' => 'ễ', 'Ệ' => 'ệ', 'Ỉ' => 'ỉ', 'Ị' => 'ị', 'Ọ' => 'ọ', 'Ỏ' => 'ỏ', 'Ố' => 'ố', 'Ồ' => 'ồ', 'Ổ' => 'ổ', 'Ỗ' => 'ỗ', 'Ộ' => 'ộ', 'Ớ' => 'ớ', 'Ờ' => 'ờ', 'Ở' => 'ở', 'Ỡ' => 'ỡ', 'Ợ' => 'ợ', 'Ụ' => 'ụ', 'Ủ' => 'ủ', 'Ứ' => 'ứ', 'Ừ' => 'ừ', 'Ử' => 'ử', 'Ữ' => 'ữ', 'Ự' => 'ự', 'Ỳ' => 'ỳ', 'Ỵ' => 'ỵ', 'Ỷ' => 'ỷ', 'Ỹ' => 'ỹ', 'Ỻ' => 'ỻ', 'Ỽ' => 'ỽ', 'Ỿ' => 'ỿ', 'Ἀ' => 'ἀ', 'Ἁ' => 'ἁ', 'Ἂ' => 'ἂ', 'Ἃ' => 'ἃ', 'Ἄ' => 'ἄ', 'Ἅ' => 'ἅ', 'Ἆ' => 'ἆ', 'Ἇ' => 'ἇ', 'Ἐ' => 'ἐ', 'Ἑ' => 'ἑ', 'Ἒ' => 'ἒ', 'Ἓ' => 'ἓ', 'Ἔ' => 'ἔ', 'Ἕ' => 'ἕ', 'Ἠ' => 'ἠ', 'Ἡ' => 'ἡ', 'Ἢ' => 'ἢ', 'Ἣ' => 'ἣ', 'Ἤ' => 'ἤ', 'Ἥ' => 'ἥ', 'Ἦ' => 'ἦ', 'Ἧ' => 'ἧ', 'Ἰ' => 'ἰ', 'Ἱ' => 'ἱ', 'Ἲ' => 'ἲ', 'Ἳ' => 'ἳ', 'Ἴ' => 'ἴ', 'Ἵ' => 'ἵ', 'Ἶ' => 'ἶ', 'Ἷ' => 'ἷ', 'Ὀ' => 'ὀ', 'Ὁ' => 'ὁ', 'Ὂ' => 'ὂ', 'Ὃ' => 'ὃ', 'Ὄ' => 'ὄ', 'Ὅ' => 'ὅ', 'Ὑ' => 'ὑ', 'Ὓ' => 'ὓ', 'Ὕ' => 'ὕ', 'Ὗ' => 'ὗ', 'Ὠ' => 'ὠ', 'Ὡ' => 'ὡ', 'Ὢ' => 'ὢ', 'Ὣ' => 'ὣ', 'Ὤ' => 'ὤ', 'Ὥ' => 'ὥ', 'Ὦ' => 'ὦ', 'Ὧ' => 'ὧ', 'ᾈ' => 'ᾀ', 'ᾉ' => 'ᾁ', 'ᾊ' => 'ᾂ', 'ᾋ' => 'ᾃ', 'ᾌ' => 'ᾄ', 'ᾍ' => 'ᾅ', 'ᾎ' => 'ᾆ', 'ᾏ' => 'ᾇ', 'ᾘ' => 'ᾐ', 'ᾙ' => 'ᾑ', 'ᾚ' => 'ᾒ', 'ᾛ' => 'ᾓ', 'ᾜ' => 'ᾔ', 'ᾝ' => 'ᾕ', 'ᾞ' => 'ᾖ', 'ᾟ' => 'ᾗ', 'ᾨ' => 'ᾠ', 'ᾩ' => 'ᾡ', 'ᾪ' => 'ᾢ', 'ᾫ' => 'ᾣ', 'ᾬ' => 'ᾤ', 'ᾭ' => 'ᾥ', 'ᾮ' => 'ᾦ', 'ᾯ' => 'ᾧ', 'Ᾰ' => 'ᾰ', 'Ᾱ' => 'ᾱ', 'Ὰ' => 'ὰ', 'Ά' => 'ά', 'ᾼ' => 'ᾳ', 'Ὲ' => 'ὲ', 'Έ' => 'έ', 'Ὴ' => 'ὴ', 'Ή' => 'ή', 'ῌ' => 'ῃ', 'Ῐ' => 'ῐ', 'Ῑ' => 'ῑ', 'Ὶ' => 'ὶ', 'Ί' => 'ί', 'Ῠ' => 'ῠ', 'Ῡ' => 'ῡ', 'Ὺ' => 'ὺ', 'Ύ' => 'ύ', 'Ῥ' => 'ῥ', 'Ὸ' => 'ὸ', 'Ό' => 'ό', 'Ὼ' => 'ὼ', 'Ώ' => 'ώ', 'ῼ' => 'ῳ', 'Ω' => 'ω', 'K' => 'k', 'Å' => 'å', 'Ⅎ' => 'ⅎ', 'Ⅰ' => 'ⅰ', 'Ⅱ' => 'ⅱ', 'Ⅲ' => 'ⅲ', 'Ⅳ' => 'ⅳ', 'Ⅴ' => 'ⅴ', 'Ⅵ' => 'ⅵ', 'Ⅶ' => 'ⅶ', 'Ⅷ' => 'ⅷ', 'Ⅸ' => 'ⅸ', 'Ⅹ' => 'ⅹ', 'Ⅺ' => 'ⅺ', 'Ⅻ' => 'ⅻ', 'Ⅼ' => 'ⅼ', 'Ⅽ' => 'ⅽ', 'Ⅾ' => 'ⅾ', 'Ⅿ' => 'ⅿ', 'Ↄ' => 'ↄ', 'Ⓐ' => 'ⓐ', 'Ⓑ' => 'ⓑ', 'Ⓒ' => 'ⓒ', 'Ⓓ' => 'ⓓ', 'Ⓔ' => 'ⓔ', 'Ⓕ' => 'ⓕ', 'Ⓖ' => 'ⓖ', 'Ⓗ' => 'ⓗ', 'Ⓘ' => 'ⓘ', 'Ⓙ' => 'ⓙ', 'Ⓚ' => 'ⓚ', 'Ⓛ' => 'ⓛ', 'Ⓜ' => 'ⓜ', 'Ⓝ' => 'ⓝ', 'Ⓞ' => 'ⓞ', 'Ⓟ' => 'ⓟ', 'Ⓠ' => 'ⓠ', 'Ⓡ' => 'ⓡ', 'Ⓢ' => 'ⓢ', 'Ⓣ' => 'ⓣ', 'Ⓤ' => 'ⓤ', 'Ⓥ' => 'ⓥ', 'Ⓦ' => 'ⓦ', 'Ⓧ' => 'ⓧ', 'Ⓨ' => 'ⓨ', 'Ⓩ' => 'ⓩ', 'Ⰰ' => 'ⰰ', 'Ⰱ' => 'ⰱ', 'Ⰲ' => 'ⰲ', 'Ⰳ' => 'ⰳ', 'Ⰴ' => 'ⰴ', 'Ⰵ' => 'ⰵ', 'Ⰶ' => 'ⰶ', 'Ⰷ' => 'ⰷ', 'Ⰸ' => 'ⰸ', 'Ⰹ' => 'ⰹ', 'Ⰺ' => 'ⰺ', 'Ⰻ' => 'ⰻ', 'Ⰼ' => 'ⰼ', 'Ⰽ' => 'ⰽ', 'Ⰾ' => 'ⰾ', 'Ⰿ' => 'ⰿ', 'Ⱀ' => 'ⱀ', 'Ⱁ' => 'ⱁ', 'Ⱂ' => 'ⱂ', 'Ⱃ' => 'ⱃ', 'Ⱄ' => 'ⱄ', 'Ⱅ' => 'ⱅ', 'Ⱆ' => 'ⱆ', 'Ⱇ' => 'ⱇ', 'Ⱈ' => 'ⱈ', 'Ⱉ' => 'ⱉ', 'Ⱊ' => 'ⱊ', 'Ⱋ' => 'ⱋ', 'Ⱌ' => 'ⱌ', 'Ⱍ' => 'ⱍ', 'Ⱎ' => 'ⱎ', 'Ⱏ' => 'ⱏ', 'Ⱐ' => 'ⱐ', 'Ⱑ' => 'ⱑ', 'Ⱒ' => 'ⱒ', 'Ⱓ' => 'ⱓ', 'Ⱔ' => 'ⱔ', 'Ⱕ' => 'ⱕ', 'Ⱖ' => 'ⱖ', 'Ⱗ' => 'ⱗ', 'Ⱘ' => 'ⱘ', 'Ⱙ' => 'ⱙ', 'Ⱚ' => 'ⱚ', 'Ⱛ' => 'ⱛ', 'Ⱜ' => 'ⱜ', 'Ⱝ' => 'ⱝ', 'Ⱞ' => 'ⱞ', 'Ⱡ' => 'ⱡ', 'Ɫ' => 'ɫ', 'Ᵽ' => 'ᵽ', 'Ɽ' => 'ɽ', 'Ⱨ' => 'ⱨ', 'Ⱪ' => 'ⱪ', 'Ⱬ' => 'ⱬ', 'Ɑ' => 'ɑ', 'Ɱ' => 'ɱ', 'Ɐ' => 'ɐ', 'Ɒ' => 'ɒ', 'Ⱳ' => 'ⱳ', 'Ⱶ' => 'ⱶ', 'Ȿ' => 'ȿ', 'Ɀ' => 'ɀ', 'Ⲁ' => 'ⲁ', 'Ⲃ' => 'ⲃ', 'Ⲅ' => 'ⲅ', 'Ⲇ' => 'ⲇ', 'Ⲉ' => 'ⲉ', 'Ⲋ' => 'ⲋ', 'Ⲍ' => 'ⲍ', 'Ⲏ' => 'ⲏ', 'Ⲑ' => 'ⲑ', 'Ⲓ' => 'ⲓ', 'Ⲕ' => 'ⲕ', 'Ⲗ' => 'ⲗ', 'Ⲙ' => 'ⲙ', 'Ⲛ' => 'ⲛ', 'Ⲝ' => 'ⲝ', 'Ⲟ' => 'ⲟ', 'Ⲡ' => 'ⲡ', 'Ⲣ' => 'ⲣ', 'Ⲥ' => 'ⲥ', 'Ⲧ' => 'ⲧ', 'Ⲩ' => 'ⲩ', 'Ⲫ' => 'ⲫ', 'Ⲭ' => 'ⲭ', 'Ⲯ' => 'ⲯ', 'Ⲱ' => 'ⲱ', 'Ⲳ' => 'ⲳ', 'Ⲵ' => 'ⲵ', 'Ⲷ' => 'ⲷ', 'Ⲹ' => 'ⲹ', 'Ⲻ' => 'ⲻ', 'Ⲽ' => 'ⲽ', 'Ⲿ' => 'ⲿ', 'Ⳁ' => 'ⳁ', 'Ⳃ' => 'ⳃ', 'Ⳅ' => 'ⳅ', 'Ⳇ' => 'ⳇ', 'Ⳉ' => 'ⳉ', 'Ⳋ' => 'ⳋ', 'Ⳍ' => 'ⳍ', 'Ⳏ' => 'ⳏ', 'Ⳑ' => 'ⳑ', 'Ⳓ' => 'ⳓ', 'Ⳕ' => 'ⳕ', 'Ⳗ' => 'ⳗ', 'Ⳙ' => 'ⳙ', 'Ⳛ' => 'ⳛ', 'Ⳝ' => 'ⳝ', 'Ⳟ' => 'ⳟ', 'Ⳡ' => 'ⳡ', 'Ⳣ' => 'ⳣ', 'Ⳬ' => 'ⳬ', 'Ⳮ' => 'ⳮ', 'Ⳳ' => 'ⳳ', 'Ꙁ' => 'ꙁ', 'Ꙃ' => 'ꙃ', 'Ꙅ' => 'ꙅ', 'Ꙇ' => 'ꙇ', 'Ꙉ' => 'ꙉ', 'Ꙋ' => 'ꙋ', 'Ꙍ' => 'ꙍ', 'Ꙏ' => 'ꙏ', 'Ꙑ' => 'ꙑ', 'Ꙓ' => 'ꙓ', 'Ꙕ' => 'ꙕ', 'Ꙗ' => 'ꙗ', 'Ꙙ' => 'ꙙ', 'Ꙛ' => 'ꙛ', 'Ꙝ' => 'ꙝ', 'Ꙟ' => 'ꙟ', 'Ꙡ' => 'ꙡ', 'Ꙣ' => 'ꙣ', 'Ꙥ' => 'ꙥ', 'Ꙧ' => 'ꙧ', 'Ꙩ' => 'ꙩ', 'Ꙫ' => 'ꙫ', 'Ꙭ' => 'ꙭ', 'Ꚁ' => 'ꚁ', 'Ꚃ' => 'ꚃ', 'Ꚅ' => 'ꚅ', 'Ꚇ' => 'ꚇ', 'Ꚉ' => 'ꚉ', 'Ꚋ' => 'ꚋ', 'Ꚍ' => 'ꚍ', 'Ꚏ' => 'ꚏ', 'Ꚑ' => 'ꚑ', 'Ꚓ' => 'ꚓ', 'Ꚕ' => 'ꚕ', 'Ꚗ' => 'ꚗ', 'Ꚙ' => 'ꚙ', 'Ꚛ' => 'ꚛ', 'Ꜣ' => 'ꜣ', 'Ꜥ' => 'ꜥ', 'Ꜧ' => 'ꜧ', 'Ꜩ' => 'ꜩ', 'Ꜫ' => 'ꜫ', 'Ꜭ' => 'ꜭ', 'Ꜯ' => 'ꜯ', 'Ꜳ' => 'ꜳ', 'Ꜵ' => 'ꜵ', 'Ꜷ' => 'ꜷ', 'Ꜹ' => 'ꜹ', 'Ꜻ' => 'ꜻ', 'Ꜽ' => 'ꜽ', 'Ꜿ' => 'ꜿ', 'Ꝁ' => 'ꝁ', 'Ꝃ' => 'ꝃ', 'Ꝅ' => 'ꝅ', 'Ꝇ' => 'ꝇ', 'Ꝉ' => 'ꝉ', 'Ꝋ' => 'ꝋ', 'Ꝍ' => 'ꝍ', 'Ꝏ' => 'ꝏ', 'Ꝑ' => 'ꝑ', 'Ꝓ' => 'ꝓ', 'Ꝕ' => 'ꝕ', 'Ꝗ' => 'ꝗ', 'Ꝙ' => 'ꝙ', 'Ꝛ' => 'ꝛ', 'Ꝝ' => 'ꝝ', 'Ꝟ' => 'ꝟ', 'Ꝡ' => 'ꝡ', 'Ꝣ' => 'ꝣ', 'Ꝥ' => 'ꝥ', 'Ꝧ' => 'ꝧ', 'Ꝩ' => 'ꝩ', 'Ꝫ' => 'ꝫ', 'Ꝭ' => 'ꝭ', 'Ꝯ' => 'ꝯ', 'Ꝺ' => 'ꝺ', 'Ꝼ' => 'ꝼ', 'Ᵹ' => 'ᵹ', 'Ꝿ' => 'ꝿ', 'Ꞁ' => 'ꞁ', 'Ꞃ' => 'ꞃ', 'Ꞅ' => 'ꞅ', 'Ꞇ' => 'ꞇ', 'Ꞌ' => 'ꞌ', 'Ɥ' => 'ɥ', 'Ꞑ' => 'ꞑ', 'Ꞓ' => 'ꞓ', 'Ꞗ' => 'ꞗ', 'Ꞙ' => 'ꞙ', 'Ꞛ' => 'ꞛ', 'Ꞝ' => 'ꞝ', 'Ꞟ' => 'ꞟ', 'Ꞡ' => 'ꞡ', 'Ꞣ' => 'ꞣ', 'Ꞥ' => 'ꞥ', 'Ꞧ' => 'ꞧ', 'Ꞩ' => 'ꞩ', 'Ɦ' => 'ɦ', 'Ɜ' => 'ɜ', 'Ɡ' => 'ɡ', 'Ɬ' => 'ɬ', 'Ɪ' => 'ɪ', 'Ʞ' => 'ʞ', 'Ʇ' => 'ʇ', 'Ʝ' => 'ʝ', 'Ꭓ' => 'ꭓ', 'Ꞵ' => 'ꞵ', 'Ꞷ' => 'ꞷ', 'Ꞹ' => 'ꞹ', 'Ꞻ' => 'ꞻ', 'Ꞽ' => 'ꞽ', 'Ꞿ' => 'ꞿ', 'Ꟃ' => 'ꟃ', 'Ꞔ' => 'ꞔ', 'Ʂ' => 'ʂ', 'Ᶎ' => 'ᶎ', 'Ꟈ' => 'ꟈ', 'Ꟊ' => 'ꟊ', 'Ꟶ' => 'ꟶ', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', '𐐀' => '𐐨', '𐐁' => '𐐩', '𐐂' => '𐐪', '𐐃' => '𐐫', '𐐄' => '𐐬', '𐐅' => '𐐭', '𐐆' => '𐐮', '𐐇' => '𐐯', '𐐈' => '𐐰', '𐐉' => '𐐱', '𐐊' => '𐐲', '𐐋' => '𐐳', '𐐌' => '𐐴', '𐐍' => '𐐵', '𐐎' => '𐐶', '𐐏' => '𐐷', '𐐐' => '𐐸', '𐐑' => '𐐹', '𐐒' => '𐐺', '𐐓' => '𐐻', '𐐔' => '𐐼', '𐐕' => '𐐽', '𐐖' => '𐐾', '𐐗' => '𐐿', '𐐘' => '𐑀', '𐐙' => '𐑁', '𐐚' => '𐑂', '𐐛' => '𐑃', '𐐜' => '𐑄', '𐐝' => '𐑅', '𐐞' => '𐑆', '𐐟' => '𐑇', '𐐠' => '𐑈', '𐐡' => '𐑉', '𐐢' => '𐑊', '𐐣' => '𐑋', '𐐤' => '𐑌', '𐐥' => '𐑍', '𐐦' => '𐑎', '𐐧' => '𐑏', '𐒰' => '𐓘', '𐒱' => '𐓙', '𐒲' => '𐓚', '𐒳' => '𐓛', '𐒴' => '𐓜', '𐒵' => '𐓝', '𐒶' => '𐓞', '𐒷' => '𐓟', '𐒸' => '𐓠', '𐒹' => '𐓡', '𐒺' => '𐓢', '𐒻' => '𐓣', '𐒼' => '𐓤', '𐒽' => '𐓥', '𐒾' => '𐓦', '𐒿' => '𐓧', '𐓀' => '𐓨', '𐓁' => '𐓩', '𐓂' => '𐓪', '𐓃' => '𐓫', '𐓄' => '𐓬', '𐓅' => '𐓭', '𐓆' => '𐓮', '𐓇' => '𐓯', '𐓈' => '𐓰', '𐓉' => '𐓱', '𐓊' => '𐓲', '𐓋' => '𐓳', '𐓌' => '𐓴', '𐓍' => '𐓵', '𐓎' => '𐓶', '𐓏' => '𐓷', '𐓐' => '𐓸', '𐓑' => '𐓹', '𐓒' => '𐓺', '𐓓' => '𐓻', '𐲀' => '𐳀', '𐲁' => '𐳁', '𐲂' => '𐳂', '𐲃' => '𐳃', '𐲄' => '𐳄', '𐲅' => '𐳅', '𐲆' => '𐳆', '𐲇' => '𐳇', '𐲈' => '𐳈', '𐲉' => '𐳉', '𐲊' => '𐳊', '𐲋' => '𐳋', '𐲌' => '𐳌', '𐲍' => '𐳍', '𐲎' => '𐳎', '𐲏' => '𐳏', '𐲐' => '𐳐', '𐲑' => '𐳑', '𐲒' => '𐳒', '𐲓' => '𐳓', '𐲔' => '𐳔', '𐲕' => '𐳕', '𐲖' => '𐳖', '𐲗' => '𐳗', '𐲘' => '𐳘', '𐲙' => '𐳙', '𐲚' => '𐳚', '𐲛' => '𐳛', '𐲜' => '𐳜', '𐲝' => '𐳝', '𐲞' => '𐳞', '𐲟' => '𐳟', '𐲠' => '𐳠', '𐲡' => '𐳡', '𐲢' => '𐳢', '𐲣' => '𐳣', '𐲤' => '𐳤', '𐲥' => '𐳥', '𐲦' => '𐳦', '𐲧' => '𐳧', '𐲨' => '𐳨', '𐲩' => '𐳩', '𐲪' => '𐳪', '𐲫' => '𐳫', '𐲬' => '𐳬', '𐲭' => '𐳭', '𐲮' => '𐳮', '𐲯' => '𐳯', '𐲰' => '𐳰', '𐲱' => '𐳱', '𐲲' => '𐳲', '𑢠' => '𑣀', '𑢡' => '𑣁', '𑢢' => '𑣂', '𑢣' => '𑣃', '𑢤' => '𑣄', '𑢥' => '𑣅', '𑢦' => '𑣆', '𑢧' => '𑣇', '𑢨' => '𑣈', '𑢩' => '𑣉', '𑢪' => '𑣊', '𑢫' => '𑣋', '𑢬' => '𑣌', '𑢭' => '𑣍', '𑢮' => '𑣎', '𑢯' => '𑣏', '𑢰' => '𑣐', '𑢱' => '𑣑', '𑢲' => '𑣒', '𑢳' => '𑣓', '𑢴' => '𑣔', '𑢵' => '𑣕', '𑢶' => '𑣖', '𑢷' => '𑣗', '𑢸' => '𑣘', '𑢹' => '𑣙', '𑢺' => '𑣚', '𑢻' => '𑣛', '𑢼' => '𑣜', '𑢽' => '𑣝', '𑢾' => '𑣞', '𑢿' => '𑣟', '𖹀' => '𖹠', '𖹁' => '𖹡', '𖹂' => '𖹢', '𖹃' => '𖹣', '𖹄' => '𖹤', '𖹅' => '𖹥', '𖹆' => '𖹦', '𖹇' => '𖹧', '𖹈' => '𖹨', '𖹉' => '𖹩', '𖹊' => '𖹪', '𖹋' => '𖹫', '𖹌' => '𖹬', '𖹍' => '𖹭', '𖹎' => '𖹮', '𖹏' => '𖹯', '𖹐' => '𖹰', '𖹑' => '𖹱', '𖹒' => '𖹲', '𖹓' => '𖹳', '𖹔' => '𖹴', '𖹕' => '𖹵', '𖹖' => '𖹶', '𖹗' => '𖹷', '𖹘' => '𖹸', '𖹙' => '𖹹', '𖹚' => '𖹺', '𖹛' => '𖹻', '𖹜' => '𖹼', '𖹝' => '𖹽', '𖹞' => '𖹾', '𖹟' => '𖹿', '𞤀' => '𞤢', '𞤁' => '𞤣', '𞤂' => '𞤤', '𞤃' => '𞤥', '𞤄' => '𞤦', '𞤅' => '𞤧', '𞤆' => '𞤨', '𞤇' => '𞤩', '𞤈' => '𞤪', '𞤉' => '𞤫', '𞤊' => '𞤬', '𞤋' => '𞤭', '𞤌' => '𞤮', '𞤍' => '𞤯', '𞤎' => '𞤰', '𞤏' => '𞤱', '𞤐' => '𞤲', '𞤑' => '𞤳', '𞤒' => '𞤴', '𞤓' => '𞤵', '𞤔' => '𞤶', '𞤕' => '𞤷', '𞤖' => '𞤸', '𞤗' => '𞤹', '𞤘' => '𞤺', '𞤙' => '𞤻', '𞤚' => '𞤼', '𞤛' => '𞤽', '𞤜' => '𞤾', '𞤝' => '𞤿', '𞤞' => '𞥀', '𞤟' => '𞥁', '𞤠' => '𞥂', '𞤡' => '𞥃'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php index d81f1bb30..861d3c356 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php @@ -1,6 +1,6 @@ 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', 'µ' => 'Μ', 'à' => 'À', 'á' => 'Á', 'â' => 'Â', 'ã' => 'Ã', 'ä' => 'Ä', 'å' => 'Å', 'æ' => 'Æ', 'ç' => 'Ç', 'è' => 'È', 'é' => 'É', 'ê' => 'Ê', 'ë' => 'Ë', 'ì' => 'Ì', 'í' => 'Í', 'î' => 'Î', 'ï' => 'Ï', 'ð' => 'Ð', 'ñ' => 'Ñ', 'ò' => 'Ò', 'ó' => 'Ó', 'ô' => 'Ô', 'õ' => 'Õ', 'ö' => 'Ö', 'ø' => 'Ø', 'ù' => 'Ù', 'ú' => 'Ú', 'û' => 'Û', 'ü' => 'Ü', 'ý' => 'Ý', 'þ' => 'Þ', 'ÿ' => 'Ÿ', 'ā' => 'Ā', 'ă' => 'Ă', 'ą' => 'Ą', 'ć' => 'Ć', 'ĉ' => 'Ĉ', 'ċ' => 'Ċ', 'č' => 'Č', 'ď' => 'Ď', 'đ' => 'Đ', 'ē' => 'Ē', 'ĕ' => 'Ĕ', 'ė' => 'Ė', 'ę' => 'Ę', 'ě' => 'Ě', 'ĝ' => 'Ĝ', 'ğ' => 'Ğ', 'ġ' => 'Ġ', 'ģ' => 'Ģ', 'ĥ' => 'Ĥ', 'ħ' => 'Ħ', 'ĩ' => 'Ĩ', 'ī' => 'Ī', 'ĭ' => 'Ĭ', 'į' => 'Į', 'ı' => 'I', 'ij' => 'IJ', 'ĵ' => 'Ĵ', 'ķ' => 'Ķ', 'ĺ' => 'Ĺ', 'ļ' => 'Ļ', 'ľ' => 'Ľ', 'ŀ' => 'Ŀ', 'ł' => 'Ł', 'ń' => 'Ń', 'ņ' => 'Ņ', 'ň' => 'Ň', 'ŋ' => 'Ŋ', 'ō' => 'Ō', 'ŏ' => 'Ŏ', 'ő' => 'Ő', 'œ' => 'Œ', 'ŕ' => 'Ŕ', 'ŗ' => 'Ŗ', 'ř' => 'Ř', 'ś' => 'Ś', 'ŝ' => 'Ŝ', 'ş' => 'Ş', 'š' => 'Š', 'ţ' => 'Ţ', 'ť' => 'Ť', 'ŧ' => 'Ŧ', 'ũ' => 'Ũ', 'ū' => 'Ū', 'ŭ' => 'Ŭ', 'ů' => 'Ů', 'ű' => 'Ű', 'ų' => 'Ų', 'ŵ' => 'Ŵ', 'ŷ' => 'Ŷ', 'ź' => 'Ź', 'ż' => 'Ż', 'ž' => 'Ž', 'ſ' => 'S', 'ƀ' => 'Ƀ', 'ƃ' => 'Ƃ', 'ƅ' => 'Ƅ', 'ƈ' => 'Ƈ', 'ƌ' => 'Ƌ', 'ƒ' => 'Ƒ', 'ƕ' => 'Ƕ', 'ƙ' => 'Ƙ', 'ƚ' => 'Ƚ', 'ƞ' => 'Ƞ', 'ơ' => 'Ơ', 'ƣ' => 'Ƣ', 'ƥ' => 'Ƥ', 'ƨ' => 'Ƨ', 'ƭ' => 'Ƭ', 'ư' => 'Ư', 'ƴ' => 'Ƴ', 'ƶ' => 'Ƶ', 'ƹ' => 'Ƹ', 'ƽ' => 'Ƽ', 'ƿ' => 'Ƿ', 'Dž' => 'DŽ', 'dž' => 'DŽ', 'Lj' => 'LJ', 'lj' => 'LJ', 'Nj' => 'NJ', 'nj' => 'NJ', 'ǎ' => 'Ǎ', 'ǐ' => 'Ǐ', 'ǒ' => 'Ǒ', 'ǔ' => 'Ǔ', 'ǖ' => 'Ǖ', 'ǘ' => 'Ǘ', 'ǚ' => 'Ǚ', 'ǜ' => 'Ǜ', 'ǝ' => 'Ǝ', 'ǟ' => 'Ǟ', 'ǡ' => 'Ǡ', 'ǣ' => 'Ǣ', 'ǥ' => 'Ǥ', 'ǧ' => 'Ǧ', 'ǩ' => 'Ǩ', 'ǫ' => 'Ǫ', 'ǭ' => 'Ǭ', 'ǯ' => 'Ǯ', 'Dz' => 'DZ', 'dz' => 'DZ', 'ǵ' => 'Ǵ', 'ǹ' => 'Ǹ', 'ǻ' => 'Ǻ', 'ǽ' => 'Ǽ', 'ǿ' => 'Ǿ', 'ȁ' => 'Ȁ', 'ȃ' => 'Ȃ', 'ȅ' => 'Ȅ', 'ȇ' => 'Ȇ', 'ȉ' => 'Ȉ', 'ȋ' => 'Ȋ', 'ȍ' => 'Ȍ', 'ȏ' => 'Ȏ', 'ȑ' => 'Ȑ', 'ȓ' => 'Ȓ', 'ȕ' => 'Ȕ', 'ȗ' => 'Ȗ', 'ș' => 'Ș', 'ț' => 'Ț', 'ȝ' => 'Ȝ', 'ȟ' => 'Ȟ', 'ȣ' => 'Ȣ', 'ȥ' => 'Ȥ', 'ȧ' => 'Ȧ', 'ȩ' => 'Ȩ', 'ȫ' => 'Ȫ', 'ȭ' => 'Ȭ', 'ȯ' => 'Ȯ', 'ȱ' => 'Ȱ', 'ȳ' => 'Ȳ', 'ȼ' => 'Ȼ', 'ȿ' => 'Ȿ', 'ɀ' => 'Ɀ', 'ɂ' => 'Ɂ', 'ɇ' => 'Ɇ', 'ɉ' => 'Ɉ', 'ɋ' => 'Ɋ', 'ɍ' => 'Ɍ', 'ɏ' => 'Ɏ', 'ɐ' => 'Ɐ', 'ɑ' => 'Ɑ', 'ɒ' => 'Ɒ', 'ɓ' => 'Ɓ', 'ɔ' => 'Ɔ', 'ɖ' => 'Ɖ', 'ɗ' => 'Ɗ', 'ə' => 'Ə', 'ɛ' => 'Ɛ', 'ɜ' => 'Ɜ', 'ɠ' => 'Ɠ', 'ɡ' => 'Ɡ', 'ɣ' => 'Ɣ', 'ɥ' => 'Ɥ', 'ɦ' => 'Ɦ', 'ɨ' => 'Ɨ', 'ɩ' => 'Ɩ', 'ɪ' => 'Ɪ', 'ɫ' => 'Ɫ', 'ɬ' => 'Ɬ', 'ɯ' => 'Ɯ', 'ɱ' => 'Ɱ', 'ɲ' => 'Ɲ', 'ɵ' => 'Ɵ', 'ɽ' => 'Ɽ', 'ʀ' => 'Ʀ', 'ʂ' => 'Ʂ', 'ʃ' => 'Ʃ', 'ʇ' => 'Ʇ', 'ʈ' => 'Ʈ', 'ʉ' => 'Ʉ', 'ʊ' => 'Ʊ', 'ʋ' => 'Ʋ', 'ʌ' => 'Ʌ', 'ʒ' => 'Ʒ', 'ʝ' => 'Ʝ', 'ʞ' => 'Ʞ', 'ͅ' => 'Ι', 'ͱ' => 'Ͱ', 'ͳ' => 'Ͳ', 'ͷ' => 'Ͷ', 'ͻ' => 'Ͻ', 'ͼ' => 'Ͼ', 'ͽ' => 'Ͽ', 'ά' => 'Ά', 'έ' => 'Έ', 'ή' => 'Ή', 'ί' => 'Ί', 'α' => 'Α', 'β' => 'Β', 'γ' => 'Γ', 'δ' => 'Δ', 'ε' => 'Ε', 'ζ' => 'Ζ', 'η' => 'Η', 'θ' => 'Θ', 'ι' => 'Ι', 'κ' => 'Κ', 'λ' => 'Λ', 'μ' => 'Μ', 'ν' => 'Ν', 'ξ' => 'Ξ', 'ο' => 'Ο', 'π' => 'Π', 'ρ' => 'Ρ', 'ς' => 'Σ', 'σ' => 'Σ', 'τ' => 'Τ', 'υ' => 'Υ', 'φ' => 'Φ', 'χ' => 'Χ', 'ψ' => 'Ψ', 'ω' => 'Ω', 'ϊ' => 'Ϊ', 'ϋ' => 'Ϋ', 'ό' => 'Ό', 'ύ' => 'Ύ', 'ώ' => 'Ώ', 'ϐ' => 'Β', 'ϑ' => 'Θ', 'ϕ' => 'Φ', 'ϖ' => 'Π', 'ϗ' => 'Ϗ', 'ϙ' => 'Ϙ', 'ϛ' => 'Ϛ', 'ϝ' => 'Ϝ', 'ϟ' => 'Ϟ', 'ϡ' => 'Ϡ', 'ϣ' => 'Ϣ', 'ϥ' => 'Ϥ', 'ϧ' => 'Ϧ', 'ϩ' => 'Ϩ', 'ϫ' => 'Ϫ', 'ϭ' => 'Ϭ', 'ϯ' => 'Ϯ', 'ϰ' => 'Κ', 'ϱ' => 'Ρ', 'ϲ' => 'Ϲ', 'ϳ' => 'Ϳ', 'ϵ' => 'Ε', 'ϸ' => 'Ϸ', 'ϻ' => 'Ϻ', 'а' => 'А', 'б' => 'Б', 'в' => 'В', 'г' => 'Г', 'д' => 'Д', 'е' => 'Е', 'ж' => 'Ж', 'з' => 'З', 'и' => 'И', 'й' => 'Й', 'к' => 'К', 'л' => 'Л', 'м' => 'М', 'н' => 'Н', 'о' => 'О', 'п' => 'П', 'р' => 'Р', 'с' => 'С', 'т' => 'Т', 'у' => 'У', 'ф' => 'Ф', 'х' => 'Х', 'ц' => 'Ц', 'ч' => 'Ч', 'ш' => 'Ш', 'щ' => 'Щ', 'ъ' => 'Ъ', 'ы' => 'Ы', 'ь' => 'Ь', 'э' => 'Э', 'ю' => 'Ю', 'я' => 'Я', 'ѐ' => 'Ѐ', 'ё' => 'Ё', 'ђ' => 'Ђ', 'ѓ' => 'Ѓ', 'є' => 'Є', 'ѕ' => 'Ѕ', 'і' => 'І', 'ї' => 'Ї', 'ј' => 'Ј', 'љ' => 'Љ', 'њ' => 'Њ', 'ћ' => 'Ћ', 'ќ' => 'Ќ', 'ѝ' => 'Ѝ', 'ў' => 'Ў', 'џ' => 'Џ', 'ѡ' => 'Ѡ', 'ѣ' => 'Ѣ', 'ѥ' => 'Ѥ', 'ѧ' => 'Ѧ', 'ѩ' => 'Ѩ', 'ѫ' => 'Ѫ', 'ѭ' => 'Ѭ', 'ѯ' => 'Ѯ', 'ѱ' => 'Ѱ', 'ѳ' => 'Ѳ', 'ѵ' => 'Ѵ', 'ѷ' => 'Ѷ', 'ѹ' => 'Ѹ', 'ѻ' => 'Ѻ', 'ѽ' => 'Ѽ', 'ѿ' => 'Ѿ', 'ҁ' => 'Ҁ', 'ҋ' => 'Ҋ', 'ҍ' => 'Ҍ', 'ҏ' => 'Ҏ', 'ґ' => 'Ґ', 'ғ' => 'Ғ', 'ҕ' => 'Ҕ', 'җ' => 'Җ', 'ҙ' => 'Ҙ', 'қ' => 'Қ', 'ҝ' => 'Ҝ', 'ҟ' => 'Ҟ', 'ҡ' => 'Ҡ', 'ң' => 'Ң', 'ҥ' => 'Ҥ', 'ҧ' => 'Ҧ', 'ҩ' => 'Ҩ', 'ҫ' => 'Ҫ', 'ҭ' => 'Ҭ', 'ү' => 'Ү', 'ұ' => 'Ұ', 'ҳ' => 'Ҳ', 'ҵ' => 'Ҵ', 'ҷ' => 'Ҷ', 'ҹ' => 'Ҹ', 'һ' => 'Һ', 'ҽ' => 'Ҽ', 'ҿ' => 'Ҿ', 'ӂ' => 'Ӂ', 'ӄ' => 'Ӄ', 'ӆ' => 'Ӆ', 'ӈ' => 'Ӈ', 'ӊ' => 'Ӊ', 'ӌ' => 'Ӌ', 'ӎ' => 'Ӎ', 'ӏ' => 'Ӏ', 'ӑ' => 'Ӑ', 'ӓ' => 'Ӓ', 'ӕ' => 'Ӕ', 'ӗ' => 'Ӗ', 'ә' => 'Ә', 'ӛ' => 'Ӛ', 'ӝ' => 'Ӝ', 'ӟ' => 'Ӟ', 'ӡ' => 'Ӡ', 'ӣ' => 'Ӣ', 'ӥ' => 'Ӥ', 'ӧ' => 'Ӧ', 'ө' => 'Ө', 'ӫ' => 'Ӫ', 'ӭ' => 'Ӭ', 'ӯ' => 'Ӯ', 'ӱ' => 'Ӱ', 'ӳ' => 'Ӳ', 'ӵ' => 'Ӵ', 'ӷ' => 'Ӷ', 'ӹ' => 'Ӹ', 'ӻ' => 'Ӻ', 'ӽ' => 'Ӽ', 'ӿ' => 'Ӿ', 'ԁ' => 'Ԁ', 'ԃ' => 'Ԃ', 'ԅ' => 'Ԅ', 'ԇ' => 'Ԇ', 'ԉ' => 'Ԉ', 'ԋ' => 'Ԋ', 'ԍ' => 'Ԍ', 'ԏ' => 'Ԏ', 'ԑ' => 'Ԑ', 'ԓ' => 'Ԓ', 'ԕ' => 'Ԕ', 'ԗ' => 'Ԗ', 'ԙ' => 'Ԙ', 'ԛ' => 'Ԛ', 'ԝ' => 'Ԝ', 'ԟ' => 'Ԟ', 'ԡ' => 'Ԡ', 'ԣ' => 'Ԣ', 'ԥ' => 'Ԥ', 'ԧ' => 'Ԧ', 'ԩ' => 'Ԩ', 'ԫ' => 'Ԫ', 'ԭ' => 'Ԭ', 'ԯ' => 'Ԯ', 'ա' => 'Ա', 'բ' => 'Բ', 'գ' => 'Գ', 'դ' => 'Դ', 'ե' => 'Ե', 'զ' => 'Զ', 'է' => 'Է', 'ը' => 'Ը', 'թ' => 'Թ', 'ժ' => 'Ժ', 'ի' => 'Ի', 'լ' => 'Լ', 'խ' => 'Խ', 'ծ' => 'Ծ', 'կ' => 'Կ', 'հ' => 'Հ', 'ձ' => 'Ձ', 'ղ' => 'Ղ', 'ճ' => 'Ճ', 'մ' => 'Մ', 'յ' => 'Յ', 'ն' => 'Ն', 'շ' => 'Շ', 'ո' => 'Ո', 'չ' => 'Չ', 'պ' => 'Պ', 'ջ' => 'Ջ', 'ռ' => 'Ռ', 'ս' => 'Ս', 'վ' => 'Վ', 'տ' => 'Տ', 'ր' => 'Ր', 'ց' => 'Ց', 'ւ' => 'Ւ', 'փ' => 'Փ', 'ք' => 'Ք', 'օ' => 'Օ', 'ֆ' => 'Ֆ', 'ა' => 'Ა', 'ბ' => 'Ბ', 'გ' => 'Გ', 'დ' => 'Დ', 'ე' => 'Ე', 'ვ' => 'Ვ', 'ზ' => 'Ზ', 'თ' => 'Თ', 'ი' => 'Ი', 'კ' => 'Კ', 'ლ' => 'Ლ', 'მ' => 'Მ', 'ნ' => 'Ნ', 'ო' => 'Ო', 'პ' => 'Პ', 'ჟ' => 'Ჟ', 'რ' => 'Რ', 'ს' => 'Ს', 'ტ' => 'Ტ', 'უ' => 'Უ', 'ფ' => 'Ფ', 'ქ' => 'Ქ', 'ღ' => 'Ღ', 'ყ' => 'Ყ', 'შ' => 'Შ', 'ჩ' => 'Ჩ', 'ც' => 'Ც', 'ძ' => 'Ძ', 'წ' => 'Წ', 'ჭ' => 'Ჭ', 'ხ' => 'Ხ', 'ჯ' => 'Ჯ', 'ჰ' => 'Ჰ', 'ჱ' => 'Ჱ', 'ჲ' => 'Ჲ', 'ჳ' => 'Ჳ', 'ჴ' => 'Ჴ', 'ჵ' => 'Ჵ', 'ჶ' => 'Ჶ', 'ჷ' => 'Ჷ', 'ჸ' => 'Ჸ', 'ჹ' => 'Ჹ', 'ჺ' => 'Ჺ', 'ჽ' => 'Ჽ', 'ჾ' => 'Ჾ', 'ჿ' => 'Ჿ', 'ᏸ' => 'Ᏸ', 'ᏹ' => 'Ᏹ', 'ᏺ' => 'Ᏺ', 'ᏻ' => 'Ᏻ', 'ᏼ' => 'Ᏼ', 'ᏽ' => 'Ᏽ', 'ᲀ' => 'В', 'ᲁ' => 'Д', 'ᲂ' => 'О', 'ᲃ' => 'С', 'ᲄ' => 'Т', 'ᲅ' => 'Т', 'ᲆ' => 'Ъ', 'ᲇ' => 'Ѣ', 'ᲈ' => 'Ꙋ', 'ᵹ' => 'Ᵹ', 'ᵽ' => 'Ᵽ', 'ᶎ' => 'Ᶎ', 'ḁ' => 'Ḁ', 'ḃ' => 'Ḃ', 'ḅ' => 'Ḅ', 'ḇ' => 'Ḇ', 'ḉ' => 'Ḉ', 'ḋ' => 'Ḋ', 'ḍ' => 'Ḍ', 'ḏ' => 'Ḏ', 'ḑ' => 'Ḑ', 'ḓ' => 'Ḓ', 'ḕ' => 'Ḕ', 'ḗ' => 'Ḗ', 'ḙ' => 'Ḙ', 'ḛ' => 'Ḛ', 'ḝ' => 'Ḝ', 'ḟ' => 'Ḟ', 'ḡ' => 'Ḡ', 'ḣ' => 'Ḣ', 'ḥ' => 'Ḥ', 'ḧ' => 'Ḧ', 'ḩ' => 'Ḩ', 'ḫ' => 'Ḫ', 'ḭ' => 'Ḭ', 'ḯ' => 'Ḯ', 'ḱ' => 'Ḱ', 'ḳ' => 'Ḳ', 'ḵ' => 'Ḵ', 'ḷ' => 'Ḷ', 'ḹ' => 'Ḹ', 'ḻ' => 'Ḻ', 'ḽ' => 'Ḽ', 'ḿ' => 'Ḿ', 'ṁ' => 'Ṁ', 'ṃ' => 'Ṃ', 'ṅ' => 'Ṅ', 'ṇ' => 'Ṇ', 'ṉ' => 'Ṉ', 'ṋ' => 'Ṋ', 'ṍ' => 'Ṍ', 'ṏ' => 'Ṏ', 'ṑ' => 'Ṑ', 'ṓ' => 'Ṓ', 'ṕ' => 'Ṕ', 'ṗ' => 'Ṗ', 'ṙ' => 'Ṙ', 'ṛ' => 'Ṛ', 'ṝ' => 'Ṝ', 'ṟ' => 'Ṟ', 'ṡ' => 'Ṡ', 'ṣ' => 'Ṣ', 'ṥ' => 'Ṥ', 'ṧ' => 'Ṧ', 'ṩ' => 'Ṩ', 'ṫ' => 'Ṫ', 'ṭ' => 'Ṭ', 'ṯ' => 'Ṯ', 'ṱ' => 'Ṱ', 'ṳ' => 'Ṳ', 'ṵ' => 'Ṵ', 'ṷ' => 'Ṷ', 'ṹ' => 'Ṹ', 'ṻ' => 'Ṻ', 'ṽ' => 'Ṽ', 'ṿ' => 'Ṿ', 'ẁ' => 'Ẁ', 'ẃ' => 'Ẃ', 'ẅ' => 'Ẅ', 'ẇ' => 'Ẇ', 'ẉ' => 'Ẉ', 'ẋ' => 'Ẋ', 'ẍ' => 'Ẍ', 'ẏ' => 'Ẏ', 'ẑ' => 'Ẑ', 'ẓ' => 'Ẓ', 'ẕ' => 'Ẕ', 'ẛ' => 'Ṡ', 'ạ' => 'Ạ', 'ả' => 'Ả', 'ấ' => 'Ấ', 'ầ' => 'Ầ', 'ẩ' => 'Ẩ', 'ẫ' => 'Ẫ', 'ậ' => 'Ậ', 'ắ' => 'Ắ', 'ằ' => 'Ằ', 'ẳ' => 'Ẳ', 'ẵ' => 'Ẵ', 'ặ' => 'Ặ', 'ẹ' => 'Ẹ', 'ẻ' => 'Ẻ', 'ẽ' => 'Ẽ', 'ế' => 'Ế', 'ề' => 'Ề', 'ể' => 'Ể', 'ễ' => 'Ễ', 'ệ' => 'Ệ', 'ỉ' => 'Ỉ', 'ị' => 'Ị', 'ọ' => 'Ọ', 'ỏ' => 'Ỏ', 'ố' => 'Ố', 'ồ' => 'Ồ', 'ổ' => 'Ổ', 'ỗ' => 'Ỗ', 'ộ' => 'Ộ', 'ớ' => 'Ớ', 'ờ' => 'Ờ', 'ở' => 'Ở', 'ỡ' => 'Ỡ', 'ợ' => 'Ợ', 'ụ' => 'Ụ', 'ủ' => 'Ủ', 'ứ' => 'Ứ', 'ừ' => 'Ừ', 'ử' => 'Ử', 'ữ' => 'Ữ', 'ự' => 'Ự', 'ỳ' => 'Ỳ', 'ỵ' => 'Ỵ', 'ỷ' => 'Ỷ', 'ỹ' => 'Ỹ', 'ỻ' => 'Ỻ', 'ỽ' => 'Ỽ', 'ỿ' => 'Ỿ', 'ἀ' => 'Ἀ', 'ἁ' => 'Ἁ', 'ἂ' => 'Ἂ', 'ἃ' => 'Ἃ', 'ἄ' => 'Ἄ', 'ἅ' => 'Ἅ', 'ἆ' => 'Ἆ', 'ἇ' => 'Ἇ', 'ἐ' => 'Ἐ', 'ἑ' => 'Ἑ', 'ἒ' => 'Ἒ', 'ἓ' => 'Ἓ', 'ἔ' => 'Ἔ', 'ἕ' => 'Ἕ', 'ἠ' => 'Ἠ', 'ἡ' => 'Ἡ', 'ἢ' => 'Ἢ', 'ἣ' => 'Ἣ', 'ἤ' => 'Ἤ', 'ἥ' => 'Ἥ', 'ἦ' => 'Ἦ', 'ἧ' => 'Ἧ', 'ἰ' => 'Ἰ', 'ἱ' => 'Ἱ', 'ἲ' => 'Ἲ', 'ἳ' => 'Ἳ', 'ἴ' => 'Ἴ', 'ἵ' => 'Ἵ', 'ἶ' => 'Ἶ', 'ἷ' => 'Ἷ', 'ὀ' => 'Ὀ', 'ὁ' => 'Ὁ', 'ὂ' => 'Ὂ', 'ὃ' => 'Ὃ', 'ὄ' => 'Ὄ', 'ὅ' => 'Ὅ', 'ὑ' => 'Ὑ', 'ὓ' => 'Ὓ', 'ὕ' => 'Ὕ', 'ὗ' => 'Ὗ', 'ὠ' => 'Ὠ', 'ὡ' => 'Ὡ', 'ὢ' => 'Ὢ', 'ὣ' => 'Ὣ', 'ὤ' => 'Ὤ', 'ὥ' => 'Ὥ', 'ὦ' => 'Ὦ', 'ὧ' => 'Ὧ', 'ὰ' => 'Ὰ', 'ά' => 'Ά', 'ὲ' => 'Ὲ', 'έ' => 'Έ', 'ὴ' => 'Ὴ', 'ή' => 'Ή', 'ὶ' => 'Ὶ', 'ί' => 'Ί', 'ὸ' => 'Ὸ', 'ό' => 'Ό', 'ὺ' => 'Ὺ', 'ύ' => 'Ύ', 'ὼ' => 'Ὼ', 'ώ' => 'Ώ', 'ᾀ' => 'ἈΙ', 'ᾁ' => 'ἉΙ', 'ᾂ' => 'ἊΙ', 'ᾃ' => 'ἋΙ', 'ᾄ' => 'ἌΙ', 'ᾅ' => 'ἍΙ', 'ᾆ' => 'ἎΙ', 'ᾇ' => 'ἏΙ', 'ᾐ' => 'ἨΙ', 'ᾑ' => 'ἩΙ', 'ᾒ' => 'ἪΙ', 'ᾓ' => 'ἫΙ', 'ᾔ' => 'ἬΙ', 'ᾕ' => 'ἭΙ', 'ᾖ' => 'ἮΙ', 'ᾗ' => 'ἯΙ', 'ᾠ' => 'ὨΙ', 'ᾡ' => 'ὩΙ', 'ᾢ' => 'ὪΙ', 'ᾣ' => 'ὫΙ', 'ᾤ' => 'ὬΙ', 'ᾥ' => 'ὭΙ', 'ᾦ' => 'ὮΙ', 'ᾧ' => 'ὯΙ', 'ᾰ' => 'Ᾰ', 'ᾱ' => 'Ᾱ', 'ᾳ' => 'ΑΙ', 'ι' => 'Ι', 'ῃ' => 'ΗΙ', 'ῐ' => 'Ῐ', 'ῑ' => 'Ῑ', 'ῠ' => 'Ῠ', 'ῡ' => 'Ῡ', 'ῥ' => 'Ῥ', 'ῳ' => 'ΩΙ', 'ⅎ' => 'Ⅎ', 'ⅰ' => 'Ⅰ', 'ⅱ' => 'Ⅱ', 'ⅲ' => 'Ⅲ', 'ⅳ' => 'Ⅳ', 'ⅴ' => 'Ⅴ', 'ⅵ' => 'Ⅵ', 'ⅶ' => 'Ⅶ', 'ⅷ' => 'Ⅷ', 'ⅸ' => 'Ⅸ', 'ⅹ' => 'Ⅹ', 'ⅺ' => 'Ⅺ', 'ⅻ' => 'Ⅻ', 'ⅼ' => 'Ⅼ', 'ⅽ' => 'Ⅽ', 'ⅾ' => 'Ⅾ', 'ⅿ' => 'Ⅿ', 'ↄ' => 'Ↄ', 'ⓐ' => 'Ⓐ', 'ⓑ' => 'Ⓑ', 'ⓒ' => 'Ⓒ', 'ⓓ' => 'Ⓓ', 'ⓔ' => 'Ⓔ', 'ⓕ' => 'Ⓕ', 'ⓖ' => 'Ⓖ', 'ⓗ' => 'Ⓗ', 'ⓘ' => 'Ⓘ', 'ⓙ' => 'Ⓙ', 'ⓚ' => 'Ⓚ', 'ⓛ' => 'Ⓛ', 'ⓜ' => 'Ⓜ', 'ⓝ' => 'Ⓝ', 'ⓞ' => 'Ⓞ', 'ⓟ' => 'Ⓟ', 'ⓠ' => 'Ⓠ', 'ⓡ' => 'Ⓡ', 'ⓢ' => 'Ⓢ', 'ⓣ' => 'Ⓣ', 'ⓤ' => 'Ⓤ', 'ⓥ' => 'Ⓥ', 'ⓦ' => 'Ⓦ', 'ⓧ' => 'Ⓧ', 'ⓨ' => 'Ⓨ', 'ⓩ' => 'Ⓩ', 'ⰰ' => 'Ⰰ', 'ⰱ' => 'Ⰱ', 'ⰲ' => 'Ⰲ', 'ⰳ' => 'Ⰳ', 'ⰴ' => 'Ⰴ', 'ⰵ' => 'Ⰵ', 'ⰶ' => 'Ⰶ', 'ⰷ' => 'Ⰷ', 'ⰸ' => 'Ⰸ', 'ⰹ' => 'Ⰹ', 'ⰺ' => 'Ⰺ', 'ⰻ' => 'Ⰻ', 'ⰼ' => 'Ⰼ', 'ⰽ' => 'Ⰽ', 'ⰾ' => 'Ⰾ', 'ⰿ' => 'Ⰿ', 'ⱀ' => 'Ⱀ', 'ⱁ' => 'Ⱁ', 'ⱂ' => 'Ⱂ', 'ⱃ' => 'Ⱃ', 'ⱄ' => 'Ⱄ', 'ⱅ' => 'Ⱅ', 'ⱆ' => 'Ⱆ', 'ⱇ' => 'Ⱇ', 'ⱈ' => 'Ⱈ', 'ⱉ' => 'Ⱉ', 'ⱊ' => 'Ⱊ', 'ⱋ' => 'Ⱋ', 'ⱌ' => 'Ⱌ', 'ⱍ' => 'Ⱍ', 'ⱎ' => 'Ⱎ', 'ⱏ' => 'Ⱏ', 'ⱐ' => 'Ⱐ', 'ⱑ' => 'Ⱑ', 'ⱒ' => 'Ⱒ', 'ⱓ' => 'Ⱓ', 'ⱔ' => 'Ⱔ', 'ⱕ' => 'Ⱕ', 'ⱖ' => 'Ⱖ', 'ⱗ' => 'Ⱗ', 'ⱘ' => 'Ⱘ', 'ⱙ' => 'Ⱙ', 'ⱚ' => 'Ⱚ', 'ⱛ' => 'Ⱛ', 'ⱜ' => 'Ⱜ', 'ⱝ' => 'Ⱝ', 'ⱞ' => 'Ⱞ', 'ⱡ' => 'Ⱡ', 'ⱥ' => 'Ⱥ', 'ⱦ' => 'Ⱦ', 'ⱨ' => 'Ⱨ', 'ⱪ' => 'Ⱪ', 'ⱬ' => 'Ⱬ', 'ⱳ' => 'Ⱳ', 'ⱶ' => 'Ⱶ', 'ⲁ' => 'Ⲁ', 'ⲃ' => 'Ⲃ', 'ⲅ' => 'Ⲅ', 'ⲇ' => 'Ⲇ', 'ⲉ' => 'Ⲉ', 'ⲋ' => 'Ⲋ', 'ⲍ' => 'Ⲍ', 'ⲏ' => 'Ⲏ', 'ⲑ' => 'Ⲑ', 'ⲓ' => 'Ⲓ', 'ⲕ' => 'Ⲕ', 'ⲗ' => 'Ⲗ', 'ⲙ' => 'Ⲙ', 'ⲛ' => 'Ⲛ', 'ⲝ' => 'Ⲝ', 'ⲟ' => 'Ⲟ', 'ⲡ' => 'Ⲡ', 'ⲣ' => 'Ⲣ', 'ⲥ' => 'Ⲥ', 'ⲧ' => 'Ⲧ', 'ⲩ' => 'Ⲩ', 'ⲫ' => 'Ⲫ', 'ⲭ' => 'Ⲭ', 'ⲯ' => 'Ⲯ', 'ⲱ' => 'Ⲱ', 'ⲳ' => 'Ⲳ', 'ⲵ' => 'Ⲵ', 'ⲷ' => 'Ⲷ', 'ⲹ' => 'Ⲹ', 'ⲻ' => 'Ⲻ', 'ⲽ' => 'Ⲽ', 'ⲿ' => 'Ⲿ', 'ⳁ' => 'Ⳁ', 'ⳃ' => 'Ⳃ', 'ⳅ' => 'Ⳅ', 'ⳇ' => 'Ⳇ', 'ⳉ' => 'Ⳉ', 'ⳋ' => 'Ⳋ', 'ⳍ' => 'Ⳍ', 'ⳏ' => 'Ⳏ', 'ⳑ' => 'Ⳑ', 'ⳓ' => 'Ⳓ', 'ⳕ' => 'Ⳕ', 'ⳗ' => 'Ⳗ', 'ⳙ' => 'Ⳙ', 'ⳛ' => 'Ⳛ', 'ⳝ' => 'Ⳝ', 'ⳟ' => 'Ⳟ', 'ⳡ' => 'Ⳡ', 'ⳣ' => 'Ⳣ', 'ⳬ' => 'Ⳬ', 'ⳮ' => 'Ⳮ', 'ⳳ' => 'Ⳳ', 'ⴀ' => 'Ⴀ', 'ⴁ' => 'Ⴁ', 'ⴂ' => 'Ⴂ', 'ⴃ' => 'Ⴃ', 'ⴄ' => 'Ⴄ', 'ⴅ' => 'Ⴅ', 'ⴆ' => 'Ⴆ', 'ⴇ' => 'Ⴇ', 'ⴈ' => 'Ⴈ', 'ⴉ' => 'Ⴉ', 'ⴊ' => 'Ⴊ', 'ⴋ' => 'Ⴋ', 'ⴌ' => 'Ⴌ', 'ⴍ' => 'Ⴍ', 'ⴎ' => 'Ⴎ', 'ⴏ' => 'Ⴏ', 'ⴐ' => 'Ⴐ', 'ⴑ' => 'Ⴑ', 'ⴒ' => 'Ⴒ', 'ⴓ' => 'Ⴓ', 'ⴔ' => 'Ⴔ', 'ⴕ' => 'Ⴕ', 'ⴖ' => 'Ⴖ', 'ⴗ' => 'Ⴗ', 'ⴘ' => 'Ⴘ', 'ⴙ' => 'Ⴙ', 'ⴚ' => 'Ⴚ', 'ⴛ' => 'Ⴛ', 'ⴜ' => 'Ⴜ', 'ⴝ' => 'Ⴝ', 'ⴞ' => 'Ⴞ', 'ⴟ' => 'Ⴟ', 'ⴠ' => 'Ⴠ', 'ⴡ' => 'Ⴡ', 'ⴢ' => 'Ⴢ', 'ⴣ' => 'Ⴣ', 'ⴤ' => 'Ⴤ', 'ⴥ' => 'Ⴥ', 'ⴧ' => 'Ⴧ', 'ⴭ' => 'Ⴭ', 'ꙁ' => 'Ꙁ', 'ꙃ' => 'Ꙃ', 'ꙅ' => 'Ꙅ', 'ꙇ' => 'Ꙇ', 'ꙉ' => 'Ꙉ', 'ꙋ' => 'Ꙋ', 'ꙍ' => 'Ꙍ', 'ꙏ' => 'Ꙏ', 'ꙑ' => 'Ꙑ', 'ꙓ' => 'Ꙓ', 'ꙕ' => 'Ꙕ', 'ꙗ' => 'Ꙗ', 'ꙙ' => 'Ꙙ', 'ꙛ' => 'Ꙛ', 'ꙝ' => 'Ꙝ', 'ꙟ' => 'Ꙟ', 'ꙡ' => 'Ꙡ', 'ꙣ' => 'Ꙣ', 'ꙥ' => 'Ꙥ', 'ꙧ' => 'Ꙧ', 'ꙩ' => 'Ꙩ', 'ꙫ' => 'Ꙫ', 'ꙭ' => 'Ꙭ', 'ꚁ' => 'Ꚁ', 'ꚃ' => 'Ꚃ', 'ꚅ' => 'Ꚅ', 'ꚇ' => 'Ꚇ', 'ꚉ' => 'Ꚉ', 'ꚋ' => 'Ꚋ', 'ꚍ' => 'Ꚍ', 'ꚏ' => 'Ꚏ', 'ꚑ' => 'Ꚑ', 'ꚓ' => 'Ꚓ', 'ꚕ' => 'Ꚕ', 'ꚗ' => 'Ꚗ', 'ꚙ' => 'Ꚙ', 'ꚛ' => 'Ꚛ', 'ꜣ' => 'Ꜣ', 'ꜥ' => 'Ꜥ', 'ꜧ' => 'Ꜧ', 'ꜩ' => 'Ꜩ', 'ꜫ' => 'Ꜫ', 'ꜭ' => 'Ꜭ', 'ꜯ' => 'Ꜯ', 'ꜳ' => 'Ꜳ', 'ꜵ' => 'Ꜵ', 'ꜷ' => 'Ꜷ', 'ꜹ' => 'Ꜹ', 'ꜻ' => 'Ꜻ', 'ꜽ' => 'Ꜽ', 'ꜿ' => 'Ꜿ', 'ꝁ' => 'Ꝁ', 'ꝃ' => 'Ꝃ', 'ꝅ' => 'Ꝅ', 'ꝇ' => 'Ꝇ', 'ꝉ' => 'Ꝉ', 'ꝋ' => 'Ꝋ', 'ꝍ' => 'Ꝍ', 'ꝏ' => 'Ꝏ', 'ꝑ' => 'Ꝑ', 'ꝓ' => 'Ꝓ', 'ꝕ' => 'Ꝕ', 'ꝗ' => 'Ꝗ', 'ꝙ' => 'Ꝙ', 'ꝛ' => 'Ꝛ', 'ꝝ' => 'Ꝝ', 'ꝟ' => 'Ꝟ', 'ꝡ' => 'Ꝡ', 'ꝣ' => 'Ꝣ', 'ꝥ' => 'Ꝥ', 'ꝧ' => 'Ꝧ', 'ꝩ' => 'Ꝩ', 'ꝫ' => 'Ꝫ', 'ꝭ' => 'Ꝭ', 'ꝯ' => 'Ꝯ', 'ꝺ' => 'Ꝺ', 'ꝼ' => 'Ꝼ', 'ꝿ' => 'Ꝿ', 'ꞁ' => 'Ꞁ', 'ꞃ' => 'Ꞃ', 'ꞅ' => 'Ꞅ', 'ꞇ' => 'Ꞇ', 'ꞌ' => 'Ꞌ', 'ꞑ' => 'Ꞑ', 'ꞓ' => 'Ꞓ', 'ꞔ' => 'Ꞔ', 'ꞗ' => 'Ꞗ', 'ꞙ' => 'Ꞙ', 'ꞛ' => 'Ꞛ', 'ꞝ' => 'Ꞝ', 'ꞟ' => 'Ꞟ', 'ꞡ' => 'Ꞡ', 'ꞣ' => 'Ꞣ', 'ꞥ' => 'Ꞥ', 'ꞧ' => 'Ꞧ', 'ꞩ' => 'Ꞩ', 'ꞵ' => 'Ꞵ', 'ꞷ' => 'Ꞷ', 'ꞹ' => 'Ꞹ', 'ꞻ' => 'Ꞻ', 'ꞽ' => 'Ꞽ', 'ꞿ' => 'Ꞿ', 'ꟃ' => 'Ꟃ', 'ꟈ' => 'Ꟈ', 'ꟊ' => 'Ꟊ', 'ꟶ' => 'Ꟶ', 'ꭓ' => 'Ꭓ', 'ꭰ' => 'Ꭰ', 'ꭱ' => 'Ꭱ', 'ꭲ' => 'Ꭲ', 'ꭳ' => 'Ꭳ', 'ꭴ' => 'Ꭴ', 'ꭵ' => 'Ꭵ', 'ꭶ' => 'Ꭶ', 'ꭷ' => 'Ꭷ', 'ꭸ' => 'Ꭸ', 'ꭹ' => 'Ꭹ', 'ꭺ' => 'Ꭺ', 'ꭻ' => 'Ꭻ', 'ꭼ' => 'Ꭼ', 'ꭽ' => 'Ꭽ', 'ꭾ' => 'Ꭾ', 'ꭿ' => 'Ꭿ', 'ꮀ' => 'Ꮀ', 'ꮁ' => 'Ꮁ', 'ꮂ' => 'Ꮂ', 'ꮃ' => 'Ꮃ', 'ꮄ' => 'Ꮄ', 'ꮅ' => 'Ꮅ', 'ꮆ' => 'Ꮆ', 'ꮇ' => 'Ꮇ', 'ꮈ' => 'Ꮈ', 'ꮉ' => 'Ꮉ', 'ꮊ' => 'Ꮊ', 'ꮋ' => 'Ꮋ', 'ꮌ' => 'Ꮌ', 'ꮍ' => 'Ꮍ', 'ꮎ' => 'Ꮎ', 'ꮏ' => 'Ꮏ', 'ꮐ' => 'Ꮐ', 'ꮑ' => 'Ꮑ', 'ꮒ' => 'Ꮒ', 'ꮓ' => 'Ꮓ', 'ꮔ' => 'Ꮔ', 'ꮕ' => 'Ꮕ', 'ꮖ' => 'Ꮖ', 'ꮗ' => 'Ꮗ', 'ꮘ' => 'Ꮘ', 'ꮙ' => 'Ꮙ', 'ꮚ' => 'Ꮚ', 'ꮛ' => 'Ꮛ', 'ꮜ' => 'Ꮜ', 'ꮝ' => 'Ꮝ', 'ꮞ' => 'Ꮞ', 'ꮟ' => 'Ꮟ', 'ꮠ' => 'Ꮠ', 'ꮡ' => 'Ꮡ', 'ꮢ' => 'Ꮢ', 'ꮣ' => 'Ꮣ', 'ꮤ' => 'Ꮤ', 'ꮥ' => 'Ꮥ', 'ꮦ' => 'Ꮦ', 'ꮧ' => 'Ꮧ', 'ꮨ' => 'Ꮨ', 'ꮩ' => 'Ꮩ', 'ꮪ' => 'Ꮪ', 'ꮫ' => 'Ꮫ', 'ꮬ' => 'Ꮬ', 'ꮭ' => 'Ꮭ', 'ꮮ' => 'Ꮮ', 'ꮯ' => 'Ꮯ', 'ꮰ' => 'Ꮰ', 'ꮱ' => 'Ꮱ', 'ꮲ' => 'Ꮲ', 'ꮳ' => 'Ꮳ', 'ꮴ' => 'Ꮴ', 'ꮵ' => 'Ꮵ', 'ꮶ' => 'Ꮶ', 'ꮷ' => 'Ꮷ', 'ꮸ' => 'Ꮸ', 'ꮹ' => 'Ꮹ', 'ꮺ' => 'Ꮺ', 'ꮻ' => 'Ꮻ', 'ꮼ' => 'Ꮼ', 'ꮽ' => 'Ꮽ', 'ꮾ' => 'Ꮾ', 'ꮿ' => 'Ꮿ', 'a' => 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', '𐐨' => '𐐀', '𐐩' => '𐐁', '𐐪' => '𐐂', '𐐫' => '𐐃', '𐐬' => '𐐄', '𐐭' => '𐐅', '𐐮' => '𐐆', '𐐯' => '𐐇', '𐐰' => '𐐈', '𐐱' => '𐐉', '𐐲' => '𐐊', '𐐳' => '𐐋', '𐐴' => '𐐌', '𐐵' => '𐐍', '𐐶' => '𐐎', '𐐷' => '𐐏', '𐐸' => '𐐐', '𐐹' => '𐐑', '𐐺' => '𐐒', '𐐻' => '𐐓', '𐐼' => '𐐔', '𐐽' => '𐐕', '𐐾' => '𐐖', '𐐿' => '𐐗', '𐑀' => '𐐘', '𐑁' => '𐐙', '𐑂' => '𐐚', '𐑃' => '𐐛', '𐑄' => '𐐜', '𐑅' => '𐐝', '𐑆' => '𐐞', '𐑇' => '𐐟', '𐑈' => '𐐠', '𐑉' => '𐐡', '𐑊' => '𐐢', '𐑋' => '𐐣', '𐑌' => '𐐤', '𐑍' => '𐐥', '𐑎' => '𐐦', '𐑏' => '𐐧', '𐓘' => '𐒰', '𐓙' => '𐒱', '𐓚' => '𐒲', '𐓛' => '𐒳', '𐓜' => '𐒴', '𐓝' => '𐒵', '𐓞' => '𐒶', '𐓟' => '𐒷', '𐓠' => '𐒸', '𐓡' => '𐒹', '𐓢' => '𐒺', '𐓣' => '𐒻', '𐓤' => '𐒼', '𐓥' => '𐒽', '𐓦' => '𐒾', '𐓧' => '𐒿', '𐓨' => '𐓀', '𐓩' => '𐓁', '𐓪' => '𐓂', '𐓫' => '𐓃', '𐓬' => '𐓄', '𐓭' => '𐓅', '𐓮' => '𐓆', '𐓯' => '𐓇', '𐓰' => '𐓈', '𐓱' => '𐓉', '𐓲' => '𐓊', '𐓳' => '𐓋', '𐓴' => '𐓌', '𐓵' => '𐓍', '𐓶' => '𐓎', '𐓷' => '𐓏', '𐓸' => '𐓐', '𐓹' => '𐓑', '𐓺' => '𐓒', '𐓻' => '𐓓', '𐳀' => '𐲀', '𐳁' => '𐲁', '𐳂' => '𐲂', '𐳃' => '𐲃', '𐳄' => '𐲄', '𐳅' => '𐲅', '𐳆' => '𐲆', '𐳇' => '𐲇', '𐳈' => '𐲈', '𐳉' => '𐲉', '𐳊' => '𐲊', '𐳋' => '𐲋', '𐳌' => '𐲌', '𐳍' => '𐲍', '𐳎' => '𐲎', '𐳏' => '𐲏', '𐳐' => '𐲐', '𐳑' => '𐲑', '𐳒' => '𐲒', '𐳓' => '𐲓', '𐳔' => '𐲔', '𐳕' => '𐲕', '𐳖' => '𐲖', '𐳗' => '𐲗', '𐳘' => '𐲘', '𐳙' => '𐲙', '𐳚' => '𐲚', '𐳛' => '𐲛', '𐳜' => '𐲜', '𐳝' => '𐲝', '𐳞' => '𐲞', '𐳟' => '𐲟', '𐳠' => '𐲠', '𐳡' => '𐲡', '𐳢' => '𐲢', '𐳣' => '𐲣', '𐳤' => '𐲤', '𐳥' => '𐲥', '𐳦' => '𐲦', '𐳧' => '𐲧', '𐳨' => '𐲨', '𐳩' => '𐲩', '𐳪' => '𐲪', '𐳫' => '𐲫', '𐳬' => '𐲬', '𐳭' => '𐲭', '𐳮' => '𐲮', '𐳯' => '𐲯', '𐳰' => '𐲰', '𐳱' => '𐲱', '𐳲' => '𐲲', '𑣀' => '𑢠', '𑣁' => '𑢡', '𑣂' => '𑢢', '𑣃' => '𑢣', '𑣄' => '𑢤', '𑣅' => '𑢥', '𑣆' => '𑢦', '𑣇' => '𑢧', '𑣈' => '𑢨', '𑣉' => '𑢩', '𑣊' => '𑢪', '𑣋' => '𑢫', '𑣌' => '𑢬', '𑣍' => '𑢭', '𑣎' => '𑢮', '𑣏' => '𑢯', '𑣐' => '𑢰', '𑣑' => '𑢱', '𑣒' => '𑢲', '𑣓' => '𑢳', '𑣔' => '𑢴', '𑣕' => '𑢵', '𑣖' => '𑢶', '𑣗' => '𑢷', '𑣘' => '𑢸', '𑣙' => '𑢹', '𑣚' => '𑢺', '𑣛' => '𑢻', '𑣜' => '𑢼', '𑣝' => '𑢽', '𑣞' => '𑢾', '𑣟' => '𑢿', '𖹠' => '𖹀', '𖹡' => '𖹁', '𖹢' => '𖹂', '𖹣' => '𖹃', '𖹤' => '𖹄', '𖹥' => '𖹅', '𖹦' => '𖹆', '𖹧' => '𖹇', '𖹨' => '𖹈', '𖹩' => '𖹉', '𖹪' => '𖹊', '𖹫' => '𖹋', '𖹬' => '𖹌', '𖹭' => '𖹍', '𖹮' => '𖹎', '𖹯' => '𖹏', '𖹰' => '𖹐', '𖹱' => '𖹑', '𖹲' => '𖹒', '𖹳' => '𖹓', '𖹴' => '𖹔', '𖹵' => '𖹕', '𖹶' => '𖹖', '𖹷' => '𖹗', '𖹸' => '𖹘', '𖹹' => '𖹙', '𖹺' => '𖹚', '𖹻' => '𖹛', '𖹼' => '𖹜', '𖹽' => '𖹝', '𖹾' => '𖹞', '𖹿' => '𖹟', '𞤢' => '𞤀', '𞤣' => '𞤁', '𞤤' => '𞤂', '𞤥' => '𞤃', '𞤦' => '𞤄', '𞤧' => '𞤅', '𞤨' => '𞤆', '𞤩' => '𞤇', '𞤪' => '𞤈', '𞤫' => '𞤉', '𞤬' => '𞤊', '𞤭' => '𞤋', '𞤮' => '𞤌', '𞤯' => '𞤍', '𞤰' => '𞤎', '𞤱' => '𞤏', '𞤲' => '𞤐', '𞤳' => '𞤑', '𞤴' => '𞤒', '𞤵' => '𞤓', '𞤶' => '𞤔', '𞤷' => '𞤕', '𞤸' => '𞤖', '𞤹' => '𞤗', '𞤺' => '𞤘', '𞤻' => '𞤙', '𞤼' => '𞤚', '𞤽' => '𞤛', '𞤾' => '𞤜', '𞤿' => '𞤝', '𞥀' => '𞤞', '𞥁' => '𞤟', '𞥂' => '𞤠', '𞥃' => '𞤡', 'ß' => 'SS', 'ff' => 'FF', 'fi' => 'FI', 'fl' => 'FL', 'ffi' => 'FFI', 'ffl' => 'FFL', 'ſt' => 'ST', 'st' => 'ST', 'և' => 'ԵՒ', 'ﬓ' => 'ՄՆ', 'ﬔ' => 'ՄԵ', 'ﬕ' => 'ՄԻ', 'ﬖ' => 'ՎՆ', 'ﬗ' => 'ՄԽ', 'ʼn' => 'ʼN', 'ΐ' => 'Ϊ́', 'ΰ' => 'Ϋ́', 'ǰ' => 'J̌', 'ẖ' => 'H̱', 'ẗ' => 'T̈', 'ẘ' => 'W̊', 'ẙ' => 'Y̊', 'ẚ' => 'Aʾ', 'ὐ' => 'Υ̓', 'ὒ' => 'Υ̓̀', 'ὔ' => 'Υ̓́', 'ὖ' => 'Υ̓͂', 'ᾶ' => 'Α͂', 'ῆ' => 'Η͂', 'ῒ' => 'Ϊ̀', 'ΐ' => 'Ϊ́', 'ῖ' => 'Ι͂', 'ῗ' => 'Ϊ͂', 'ῢ' => 'Ϋ̀', 'ΰ' => 'Ϋ́', 'ῤ' => 'Ρ̓', 'ῦ' => 'Υ͂', 'ῧ' => 'Ϋ͂', 'ῶ' => 'Ω͂', 'ᾈ' => 'ἈΙ', 'ᾉ' => 'ἉΙ', 'ᾊ' => 'ἊΙ', 'ᾋ' => 'ἋΙ', 'ᾌ' => 'ἌΙ', 'ᾍ' => 'ἍΙ', 'ᾎ' => 'ἎΙ', 'ᾏ' => 'ἏΙ', 'ᾘ' => 'ἨΙ', 'ᾙ' => 'ἩΙ', 'ᾚ' => 'ἪΙ', 'ᾛ' => 'ἫΙ', 'ᾜ' => 'ἬΙ', 'ᾝ' => 'ἭΙ', 'ᾞ' => 'ἮΙ', 'ᾟ' => 'ἯΙ', 'ᾨ' => 'ὨΙ', 'ᾩ' => 'ὩΙ', 'ᾪ' => 'ὪΙ', 'ᾫ' => 'ὫΙ', 'ᾬ' => 'ὬΙ', 'ᾭ' => 'ὭΙ', 'ᾮ' => 'ὮΙ', 'ᾯ' => 'ὯΙ', 'ᾼ' => 'ΑΙ', 'ῌ' => 'ΗΙ', 'ῼ' => 'ΩΙ', 'ᾲ' => 'ᾺΙ', 'ᾴ' => 'ΆΙ', 'ῂ' => 'ῊΙ', 'ῄ' => 'ΉΙ', 'ῲ' => 'ῺΙ', 'ῴ' => 'ΏΙ', 'ᾷ' => 'Α͂Ι', 'ῇ' => 'Η͂Ι', 'ῷ' => 'Ω͂Ι'); diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php index d1ca0420e..79930c25f 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; /** * Marker Interface for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php index d8bb21003..a5631194b 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; /** * InvalidArgumentException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php index 2408a50f5..eb890d66d 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; /** * LogicException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php index b4ddf1306..105e72bc8 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * Exception for failed processes. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php index 26ba434eb..1f91b15e2 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * Exception that is thrown when a process has been signaled. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php index 3bf781fc6..d05394722 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * Exception that is thrown when a process times out. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php b/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php index 203fe8de3..eeb4b47f1 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; -use RectorPrefix202402\Symfony\Component\Process\Messenger\RunProcessContext; +use RectorPrefix202403\Symfony\Component\Process\Messenger\RunProcessContext; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php index 4d8c7689d..2f9b262b7 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Exception; +namespace RectorPrefix202403\Symfony\Component\Process\Exception; /** * RuntimeException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php index efd191ae8..37285939e 100644 --- a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; /** * Generic executable finder. @@ -65,7 +65,7 @@ public function find(string $name, ?string $default = null, array $extraDirs = [ } } } - $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v'; + $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v --'; if (\function_exists('exec') && ($executablePath = \strtok(@\exec($command . ' ' . \escapeshellarg($name)), \PHP_EOL)) && @\is_executable($executablePath)) { return $executablePath; } diff --git a/vendor/rector/rector/vendor/symfony/process/InputStream.php b/vendor/rector/rector/vendor/symfony/process/InputStream.php index af1775635..e501dd4ba 100644 --- a/vendor/rector/rector/vendor/symfony/process/InputStream.php +++ b/vendor/rector/rector/vendor/symfony/process/InputStream.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; -use RectorPrefix202402\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; /** * Provides a way to continuously write to the input of a Process until the InputStream is closed. * diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php index e32e7ba6b..1cc4bfd6e 100644 --- a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Messenger; +namespace RectorPrefix202403\Symfony\Component\Process\Messenger; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php index a41c1ae98..077bfa1f5 100644 --- a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Messenger; +namespace RectorPrefix202403\Symfony\Component\Process\Messenger; /** * @author Kevin Bond diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php index 3d9602b42..d43251a81 100644 --- a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Messenger; +namespace RectorPrefix202403\Symfony\Component\Process\Messenger; -use RectorPrefix202402\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202402\Symfony\Component\Process\Exception\RunProcessFailedException; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202403\Symfony\Component\Process\Exception\RunProcessFailedException; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php index 567f64d55..5ad2e49c6 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; /** * An executable finder specifically designed for the PHP executable. diff --git a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php index 2a51a2e84..3adafef62 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; -use RectorPrefix202402\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; /** * PhpProcess runs a PHP script in an independent process. * diff --git a/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php b/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php index 2a06c5d78..5b55b0b4e 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; -use RectorPrefix202402\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; /** * PhpSubprocess runs a PHP command as a subprocess while keeping the original php.ini settings. * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php index d577dc9d7..5c5f5a70c 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Pipes; +namespace RectorPrefix202403\Symfony\Component\Process\Pipes; -use RectorPrefix202402\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Process\Exception\InvalidArgumentException; /** * @author Romain Neutron * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php index f52c89cb6..c38fb1646 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Pipes; +namespace RectorPrefix202403\Symfony\Component\Process\Pipes; /** * PipesInterface manages descriptors and pipes for the use of proc_open. diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php index ea1c811cd..3c775ecbd 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Pipes; +namespace RectorPrefix202403\Symfony\Component\Process\Pipes; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * UnixPipes implementation uses unix pipes as handles. * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php index 71ac37abf..f2fd2e2ac 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process\Pipes; +namespace RectorPrefix202403\Symfony\Component\Process\Pipes; -use RectorPrefix202402\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Process\Process; +use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Process\Process; /** * WindowsPipes implementation uses temporary files as handles. * diff --git a/vendor/rector/rector/vendor/symfony/process/Process.php b/vendor/rector/rector/vendor/symfony/process/Process.php index bbf816303..cd52322ec 100644 --- a/vendor/rector/rector/vendor/symfony/process/Process.php +++ b/vendor/rector/rector/vendor/symfony/process/Process.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; -use RectorPrefix202402\Symfony\Component\Process\Exception\InvalidArgumentException; -use RectorPrefix202402\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202402\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202402\Symfony\Component\Process\Exception\ProcessSignaledException; -use RectorPrefix202402\Symfony\Component\Process\Exception\ProcessTimedOutException; -use RectorPrefix202402\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202402\Symfony\Component\Process\Pipes\UnixPipes; -use RectorPrefix202402\Symfony\Component\Process\Pipes\WindowsPipes; +use RectorPrefix202403\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessSignaledException; +use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessTimedOutException; +use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Process\Pipes\UnixPipes; +use RectorPrefix202403\Symfony\Component\Process\Pipes\WindowsPipes; /** * Process is a thin wrapper around proc_* functions to easily * start independent PHP processes. @@ -135,6 +135,10 @@ class Process implements \IteratorAggregate * @var int|null */ private $latestSignal; + /** + * @var int|null + */ + private $cachedExitCode; /** * @var bool|null */ @@ -1183,6 +1187,17 @@ protected function updateStatus(bool $blocking) } $this->processInformation = \proc_get_status($this->process); $running = $this->processInformation['running']; + // In PHP < 8.3, "proc_get_status" only returns the correct exit status on the first call. + // Subsequent calls return -1 as the process is discarded. This workaround caches the first + // retrieved exit status for consistent results in later calls, mimicking PHP 8.3 behavior. + if (\PHP_VERSION_ID < 80300) { + if (!isset($this->cachedExitCode) && !$running && -1 !== $this->processInformation['exitcode']) { + $this->cachedExitCode = $this->processInformation['exitcode']; + } + if (isset($this->cachedExitCode) && !$running && -1 === $this->processInformation['exitcode']) { + $this->processInformation['exitcode'] = $this->cachedExitCode; + } + } $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); if ($this->fallbackStatus && $this->isSigchildEnabled()) { $this->processInformation = $this->fallbackStatus + $this->processInformation; diff --git a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php index b09c8e90c..690f21520 100644 --- a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php +++ b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Component\Process; +namespace RectorPrefix202403\Symfony\Component\Process; -use RectorPrefix202402\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Process\Exception\InvalidArgumentException; /** * ProcessUtils is a bunch of utility methods. * diff --git a/vendor/rector/rector/vendor/symfony/process/composer.json b/vendor/rector/rector/vendor/symfony/process/composer.json index 5aae27b44..8f03427ca 100644 --- a/vendor/rector/rector/vendor/symfony/process/composer.json +++ b/vendor/rector/rector/vendor/symfony/process/composer.json @@ -20,7 +20,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Component\\Process\\": "" + "RectorPrefix202403\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php index 8206c0301..ac6cfda39 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202403\Symfony\Contracts\Service\Attribute; /** * A required dependency. diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php index d74a2c159..ad7c18a59 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202403\Symfony\Contracts\Service\Attribute; -use RectorPrefix202402\Symfony\Contracts\Service\ServiceSubscriberInterface; -use RectorPrefix202402\Symfony\Contracts\Service\ServiceSubscriberTrait; +use RectorPrefix202403\Symfony\Contracts\Service\ServiceSubscriberInterface; +use RectorPrefix202403\Symfony\Contracts\Service\ServiceSubscriberTrait; /** * For use as the return value for {@see ServiceSubscriberInterface}. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php index a14563b9f..185f2cecf 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service; +namespace RectorPrefix202403\Symfony\Contracts\Service; /** * Provides a way to reset an object to its initial state. diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php index 1400a2c19..e6577efbd 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service; +namespace RectorPrefix202403\Symfony\Contracts\Service; -use RectorPrefix202402\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202402\Psr\Container\NotFoundExceptionInterface; +use RectorPrefix202403\Psr\Container\ContainerExceptionInterface; +use RectorPrefix202403\Psr\Container\NotFoundExceptionInterface; // Help opcache.preload discover always-needed symbols \class_exists(ContainerExceptionInterface::class); \class_exists(NotFoundExceptionInterface::class); diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php index 9daceb520..c6956394f 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service; +namespace RectorPrefix202403\Symfony\Contracts\Service; -use RectorPrefix202402\Psr\Container\ContainerInterface; +use RectorPrefix202403\Psr\Container\ContainerInterface; /** * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php index f451f16f6..a551e1721 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service; +namespace RectorPrefix202403\Symfony\Contracts\Service; -use RectorPrefix202402\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202403\Symfony\Contracts\Service\Attribute\SubscribedService; /** * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 439438c45..f7463ba4a 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202402\Symfony\Contracts\Service; +namespace RectorPrefix202403\Symfony\Contracts\Service; -use RectorPrefix202402\Psr\Container\ContainerInterface; -use RectorPrefix202402\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202402\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202403\Psr\Container\ContainerInterface; +use RectorPrefix202403\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202403\Symfony\Contracts\Service\Attribute\SubscribedService; /** * Implementation of ServiceSubscriberInterface that determines subscribed services from * method return types. Service ids are available as "ClassName::methodName". diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json index 7fe96a00e..514af08c2 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json +++ b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json @@ -31,7 +31,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202403\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" diff --git a/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php b/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php new file mode 100644 index 000000000..1d61290bb --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php @@ -0,0 +1,243 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Command; + +use RectorPrefix202403\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202403\Symfony\Component\Console\CI\GithubActionReporter; +use RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202403\Symfony\Component\Yaml\Parser; +use RectorPrefix202403\Symfony\Component\Yaml\Yaml; +/** + * Validates YAML files syntax and outputs encountered errors. + * + * @author Grégoire Pineau + * @author Robin Chalas + */ +class LintCommand extends Command +{ + /** + * @var \Symfony\Component\Yaml\Parser + */ + private $parser; + /** + * @var string|null + */ + private $format; + /** + * @var bool + */ + private $displayCorrectFiles; + /** + * @var \Closure|null + */ + private $directoryIteratorProvider; + /** + * @var \Closure|null + */ + private $isReadableProvider; + public function __construct(?string $name = null, ?callable $directoryIteratorProvider = null, ?callable $isReadableProvider = null) + { + parent::__construct($name); + $this->directoryIteratorProvider = null === $directoryIteratorProvider ? null : \Closure::fromCallable($directoryIteratorProvider); + $this->isReadableProvider = null === $isReadableProvider ? null : \Closure::fromCallable($isReadableProvider); + } + /** + * @return void + */ + protected function configure() + { + $this->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')->addOption('format', null, InputOption::VALUE_REQUIRED, \sprintf('The output format ("%s")', \implode('", "', $this->getAvailableFormatOptions())))->addOption('exclude', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Path(s) to exclude')->addOption('parse-tags', null, InputOption::VALUE_NEGATABLE, 'Parse custom tags', null)->setHelp(<<%command.name% command lints a YAML file and outputs to STDOUT +the first encountered syntax error. + +You can validates YAML contents passed from STDIN: + + cat filename | php %command.full_name% - + +You can also validate the syntax of a file: + + php %command.full_name% filename + +Or of a whole directory: + + php %command.full_name% dirname + php %command.full_name% dirname --format=json + +You can also exclude one or more specific files: + + php %command.full_name% dirname --exclude="dirname/foo.yaml" --exclude="dirname/bar.yaml" + +EOF +); + } + protected function execute(InputInterface $input, OutputInterface $output) : int + { + $io = new SymfonyStyle($input, $output); + $filenames = (array) $input->getArgument('filename'); + $excludes = $input->getOption('exclude'); + $this->format = $input->getOption('format'); + $flags = $input->getOption('parse-tags'); + if (null === $this->format) { + // Autodetect format according to CI environment + $this->format = \class_exists(GithubActionReporter::class) && GithubActionReporter::isGithubActionEnvironment() ? 'github' : 'txt'; + } + $flags = $flags ? Yaml::PARSE_CUSTOM_TAGS : 0; + $this->displayCorrectFiles = $output->isVerbose(); + if (['-'] === $filenames) { + return $this->display($io, [$this->validate(\file_get_contents('php://stdin'), $flags)]); + } + if (!$filenames) { + throw new RuntimeException('Please provide a filename or pipe file content to STDIN.'); + } + $filesInfo = []; + foreach ($filenames as $filename) { + if (!$this->isReadable($filename)) { + throw new RuntimeException(\sprintf('File or directory "%s" is not readable.', $filename)); + } + foreach ($this->getFiles($filename) as $file) { + if (!\in_array($file->getPathname(), $excludes, \true)) { + $filesInfo[] = $this->validate(\file_get_contents($file), $flags, $file); + } + } + } + return $this->display($io, $filesInfo); + } + private function validate(string $content, int $flags, ?string $file = null) : array + { + $prevErrorHandler = \set_error_handler(function ($level, $message, $file, $line) use(&$prevErrorHandler) { + if (\E_USER_DEPRECATED === $level) { + throw new ParseException($message, $this->getParser()->getRealCurrentLineNb() + 1); + } + return $prevErrorHandler ? $prevErrorHandler($level, $message, $file, $line) : \false; + }); + try { + $this->getParser()->parse($content, Yaml::PARSE_CONSTANT | $flags); + } catch (ParseException $e) { + return ['file' => $file, 'line' => $e->getParsedLine(), 'valid' => \false, 'message' => $e->getMessage()]; + } finally { + \restore_error_handler(); + } + return ['file' => $file, 'valid' => \true]; + } + private function display(SymfonyStyle $io, array $files) : int + { + switch ($this->format) { + case 'txt': + return $this->displayTxt($io, $files); + case 'json': + return $this->displayJson($io, $files); + case 'github': + return $this->displayTxt($io, $files, \true); + default: + throw new InvalidArgumentException(\sprintf('Supported formats are "%s".', \implode('", "', $this->getAvailableFormatOptions()))); + } + } + private function displayTxt(SymfonyStyle $io, array $filesInfo, bool $errorAsGithubAnnotations = \false) : int + { + $countFiles = \count($filesInfo); + $erroredFiles = 0; + $suggestTagOption = \false; + if ($errorAsGithubAnnotations) { + $githubReporter = new GithubActionReporter($io); + } + foreach ($filesInfo as $info) { + if ($info['valid'] && $this->displayCorrectFiles) { + $io->comment('OK' . ($info['file'] ? \sprintf(' in %s', $info['file']) : '')); + } elseif (!$info['valid']) { + ++$erroredFiles; + $io->text(' ERROR ' . ($info['file'] ? \sprintf(' in %s', $info['file']) : '')); + $io->text(\sprintf(' >> %s', $info['message'])); + if (\strpos($info['message'], 'PARSE_CUSTOM_TAGS') !== \false) { + $suggestTagOption = \true; + } + if ($errorAsGithubAnnotations) { + $githubReporter->error($info['message'], $info['file'] ?? 'php://stdin', $info['line']); + } + } + } + if (0 === $erroredFiles) { + $io->success(\sprintf('All %d YAML files contain valid syntax.', $countFiles)); + } else { + $io->warning(\sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : '')); + } + return \min($erroredFiles, 1); + } + private function displayJson(SymfonyStyle $io, array $filesInfo) : int + { + $errors = 0; + \array_walk($filesInfo, function (&$v) use(&$errors) { + $v['file'] = (string) $v['file']; + if (!$v['valid']) { + ++$errors; + } + if (isset($v['message']) && \strpos($v['message'], 'PARSE_CUSTOM_TAGS') !== \false) { + $v['message'] .= ' Use the --parse-tags option if you want parse custom tags.'; + } + }); + $io->writeln(\json_encode($filesInfo, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES)); + return \min($errors, 1); + } + private function getFiles(string $fileOrDirectory) : iterable + { + if (\is_file($fileOrDirectory)) { + (yield new \SplFileInfo($fileOrDirectory)); + return; + } + foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) { + if (!\in_array($file->getExtension(), ['yml', 'yaml'])) { + continue; + } + (yield $file); + } + } + private function getParser() : Parser + { + return $this->parser = $this->parser ?? new Parser(); + } + private function getDirectoryIterator(string $directory) : iterable + { + $default = function ($directory) { + return new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), \RecursiveIteratorIterator::LEAVES_ONLY); + }; + if (null !== $this->directoryIteratorProvider) { + return ($this->directoryIteratorProvider)($directory, $default); + } + return $default($directory); + } + private function isReadable(string $fileOrDirectory) : bool + { + $default = \Closure::fromCallable('is_readable'); + if (null !== $this->isReadableProvider) { + return ($this->isReadableProvider)($fileOrDirectory, $default); + } + return $default($fileOrDirectory); + } + public function complete(CompletionInput $input, CompletionSuggestions $suggestions) : void + { + if ($input->mustSuggestOptionValuesFor('format')) { + $suggestions->suggestValues($this->getAvailableFormatOptions()); + } + } + private function getAvailableFormatOptions() : array + { + return ['txt', 'json', 'github']; + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Dumper.php b/vendor/rector/rector/vendor/symfony/yaml/Dumper.php new file mode 100644 index 000000000..b323de265 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Dumper.php @@ -0,0 +1,140 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +/** + * Dumper dumps PHP variables to YAML strings. + * + * @author Fabien Potencier + * + * @final + */ +class Dumper +{ + /** + * The amount of spaces to use for indentation of nested nodes. + * @var int + */ + private $indentation; + public function __construct(int $indentation = 4) + { + if ($indentation < 1) { + throw new \InvalidArgumentException('The indentation must be greater than zero.'); + } + $this->indentation = $indentation; + } + /** + * Dumps a PHP value to YAML. + * + * @param mixed $input The PHP value + * @param int $inline The level where you switch to inline YAML + * @param int $indent The level of indentation (used internally) + * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string + */ + public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0) : string + { + $output = ''; + $prefix = $indent ? \str_repeat(' ', $indent) : ''; + $dumpObjectAsInlineMap = \true; + if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($input instanceof \ArrayObject || $input instanceof \stdClass)) { + $dumpObjectAsInlineMap = empty((array) $input); + } + if ($inline <= 0 || !\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap || empty($input)) { + $output .= $prefix . Inline::dump($input, $flags); + } elseif ($input instanceof TaggedValue) { + $output .= $this->dumpTaggedValue($input, $inline, $indent, $flags, $prefix); + } else { + $dumpAsMap = Inline::isHash($input); + foreach ($input as $key => $value) { + if ('' !== $output && "\n" !== $output[-1]) { + $output .= "\n"; + } + if (\is_int($key) && Yaml::DUMP_NUMERIC_KEY_AS_STRING & $flags) { + $key = (string) $key; + } + if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value) && \strpos($value, "\n") !== \false && \strpos($value, "\r") === \false) { + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value); + if (isset($value[-2]) && "\n" === $value[-2] && "\n" === $value[-1]) { + $blockChompingIndicator = '+'; + } elseif ("\n" === $value[-1]) { + $blockChompingIndicator = ''; + } else { + $blockChompingIndicator = '-'; + } + $output .= \sprintf('%s%s%s |%s%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags) . ':' : '-', '', $blockIndentationIndicator, $blockChompingIndicator); + foreach (\explode("\n", $value) as $row) { + if ('' === $row) { + $output .= "\n"; + } else { + $output .= \sprintf("\n%s%s%s", $prefix, \str_repeat(' ', $this->indentation), $row); + } + } + continue; + } + if ($value instanceof TaggedValue) { + $output .= \sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags) . ':' : '-', $value->getTag()); + if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && \strpos($value->getValue(), "\n") !== \false && \strpos($value->getValue(), "\r\n") === \false) { + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue()); + $output .= \sprintf(' |%s', $blockIndentationIndicator); + foreach (\explode("\n", $value->getValue()) as $row) { + $output .= \sprintf("\n%s%s%s", $prefix, \str_repeat(' ', $this->indentation), $row); + } + continue; + } + if ($inline - 1 <= 0 || null === $value->getValue() || \is_scalar($value->getValue())) { + $output .= ' ' . $this->dump($value->getValue(), $inline - 1, 0, $flags) . "\n"; + } else { + $output .= "\n"; + $output .= $this->dump($value->getValue(), $inline - 1, $dumpAsMap ? $indent + $this->indentation : $indent + 2, $flags); + } + continue; + } + $dumpObjectAsInlineMap = \true; + if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \ArrayObject || $value instanceof \stdClass)) { + $dumpObjectAsInlineMap = empty((array) $value); + } + $willBeInlined = $inline - 1 <= 0 || !\is_array($value) && $dumpObjectAsInlineMap || empty($value); + $output .= \sprintf('%s%s%s%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags) . ':' : '-', $willBeInlined ? ' ' : "\n", $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $flags)) . ($willBeInlined ? "\n" : ''); + } + } + return $output; + } + private function dumpTaggedValue(TaggedValue $value, int $inline, int $indent, int $flags, string $prefix) : string + { + $output = \sprintf('%s!%s', $prefix ? $prefix . ' ' : '', $value->getTag()); + if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && \strpos($value->getValue(), "\n") !== \false && \strpos($value->getValue(), "\r\n") === \false) { + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue()); + $output .= \sprintf(' |%s', $blockIndentationIndicator); + foreach (\explode("\n", $value->getValue()) as $row) { + $output .= \sprintf("\n%s%s%s", $prefix, \str_repeat(' ', $this->indentation), $row); + } + return $output; + } + if ($inline - 1 <= 0 || null === $value->getValue() || \is_scalar($value->getValue())) { + return $output . ' ' . $this->dump($value->getValue(), $inline - 1, 0, $flags) . "\n"; + } + return $output . "\n" . $this->dump($value->getValue(), $inline - 1, $indent, $flags); + } + private function getBlockIndentationIndicator(string $value) : string + { + $lines = \explode("\n", $value); + // If the first line (that is neither empty nor contains only spaces) + // starts with a space character, the spec requires a block indentation indicator + // http://www.yaml.org/spec/1.2/spec.html#id2793979 + foreach ($lines as $line) { + if ('' !== \trim($line, ' ')) { + return ' ' === \substr($line, 0, 1) ? (string) $this->indentation : ''; + } + } + return ''; + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Escaper.php b/vendor/rector/rector/vendor/symfony/yaml/Escaper.php new file mode 100644 index 000000000..7055dd23e --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Escaper.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +/** + * Escaper encapsulates escaping rules for single and double-quoted + * YAML strings. + * + * @author Matthew Lewinski + * + * @internal + */ +class Escaper +{ + // Characters that would cause a dumped string to require double quoting. + public const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]||…| |
|
"; + // Mapping arrays for escaping a double quoted string. The backslash is + // first to ensure proper escaping because str_replace operates iteratively + // on the input arrays. This ordering of the characters avoids the use of strtr, + // which performs more slowly. + private const ESCAPEES = ['\\', '\\\\', '\\"', '"', "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\t", "\n", "\v", "\f", "\r", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "", "…", " ", "
", "
"]; + private const ESCAPED = ['\\\\', '\\"', '\\\\', '\\"', '\\0', '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a', '\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f', '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17', '\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f', '\\x7f', '\\N', '\\_', '\\L', '\\P']; + /** + * Determines if a PHP value would require double quoting in YAML. + * + * @param string $value A PHP value + */ + public static function requiresDoubleQuoting(string $value) : bool + { + return 0 < \preg_match('/' . self::REGEX_CHARACTER_TO_ESCAPE . '/u', $value); + } + /** + * Escapes and surrounds a PHP value with double quotes. + * + * @param string $value A PHP value + */ + public static function escapeWithDoubleQuotes(string $value) : string + { + return \sprintf('"%s"', \str_replace(self::ESCAPEES, self::ESCAPED, $value)); + } + /** + * Determines if a PHP value would require single quoting in YAML. + * + * @param string $value A PHP value + */ + public static function requiresSingleQuoting(string $value) : bool + { + // Determines if a PHP value is entirely composed of a value that would + // require single quoting in YAML. + if (\in_array(\strtolower($value), ['null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'])) { + return \true; + } + // Determines if the PHP value contains any single characters that would + // cause it to require single quoting in YAML. + return 0 < \preg_match('/[ \\s \' " \\: \\{ \\} \\[ \\] , & \\* \\# \\?] | \\A[ \\- ? | < > = ! % @ ` \\p{Zs}]/xu', $value); + } + /** + * Escapes and surrounds a PHP value with single quotes. + * + * @param string $value A PHP value + */ + public static function escapeWithSingleQuotes(string $value) : string + { + return \sprintf("'%s'", \str_replace('\'', '\'\'', $value)); + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php new file mode 100644 index 000000000..e6dc05444 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Exception; + +/** + * Exception class thrown when an error occurs during dumping. + * + * @author Fabien Potencier + */ +class DumpException extends RuntimeException +{ +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php new file mode 100644 index 000000000..a5ec14b1c --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Exception; + +/** + * Exception interface for all exceptions thrown by the component. + * + * @author Fabien Potencier + */ +interface ExceptionInterface extends \Throwable +{ +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php new file mode 100644 index 000000000..150d38b46 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php @@ -0,0 +1,125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Exception; + +/** + * Exception class thrown when an error occurs during parsing. + * + * @author Fabien Potencier + */ +class ParseException extends RuntimeException +{ + /** + * @var string|null + */ + private $parsedFile; + /** + * @var int + */ + private $parsedLine; + /** + * @var string|null + */ + private $snippet; + /** + * @var string + */ + private $rawMessage; + /** + * @param string $message The error message + * @param int $parsedLine The line where the error occurred + * @param string|null $snippet The snippet of code near the problem + * @param string|null $parsedFile The file name where the error occurred + */ + public function __construct(string $message, int $parsedLine = -1, ?string $snippet = null, ?string $parsedFile = null, ?\Throwable $previous = null) + { + $this->parsedFile = $parsedFile; + $this->parsedLine = $parsedLine; + $this->snippet = $snippet; + $this->rawMessage = $message; + $this->updateRepr(); + parent::__construct($this->message, 0, $previous); + } + /** + * Gets the snippet of code near the error. + */ + public function getSnippet() : string + { + return $this->snippet; + } + /** + * Sets the snippet of code near the error. + * + * @return void + */ + public function setSnippet(string $snippet) + { + $this->snippet = $snippet; + $this->updateRepr(); + } + /** + * Gets the filename where the error occurred. + * + * This method returns null if a string is parsed. + */ + public function getParsedFile() : string + { + return $this->parsedFile; + } + /** + * Sets the filename where the error occurred. + * + * @return void + */ + public function setParsedFile(string $parsedFile) + { + $this->parsedFile = $parsedFile; + $this->updateRepr(); + } + /** + * Gets the line where the error occurred. + */ + public function getParsedLine() : int + { + return $this->parsedLine; + } + /** + * Sets the line where the error occurred. + * + * @return void + */ + public function setParsedLine(int $parsedLine) + { + $this->parsedLine = $parsedLine; + $this->updateRepr(); + } + private function updateRepr() : void + { + $this->message = $this->rawMessage; + $dot = \false; + if (\substr_compare($this->message, '.', -\strlen('.')) === 0) { + $this->message = \substr($this->message, 0, -1); + $dot = \true; + } + if (null !== $this->parsedFile) { + $this->message .= \sprintf(' in %s', \json_encode($this->parsedFile, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)); + } + if ($this->parsedLine >= 0) { + $this->message .= \sprintf(' at line %d', $this->parsedLine); + } + if ($this->snippet) { + $this->message .= \sprintf(' (near "%s")', $this->snippet); + } + if ($dot) { + $this->message .= '.'; + } + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php new file mode 100644 index 000000000..302af13f9 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Exception; + +/** + * Exception class thrown when an error occurs during parsing. + * + * @author Romain Neutron + */ +class RuntimeException extends \RuntimeException implements ExceptionInterface +{ +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Inline.php b/vendor/rector/rector/vendor/symfony/yaml/Inline.php new file mode 100644 index 000000000..65709354e --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Inline.php @@ -0,0 +1,735 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +use RectorPrefix202403\Symfony\Component\Yaml\Exception\DumpException; +use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +/** + * Inline implements a YAML parser/dumper for the YAML inline syntax. + * + * @author Fabien Potencier + * + * @internal + */ +class Inline +{ + public const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')'; + /** + * @var int + */ + public static $parsedLineNumber = -1; + /** + * @var string|null + */ + public static $parsedFilename; + /** + * @var bool + */ + private static $exceptionOnInvalidType = \false; + /** + * @var bool + */ + private static $objectSupport = \false; + /** + * @var bool + */ + private static $objectForMap = \false; + /** + * @var bool + */ + private static $constantSupport = \false; + public static function initialize(int $flags, ?int $parsedLineNumber = null, ?string $parsedFilename = null) : void + { + self::$exceptionOnInvalidType = (bool) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $flags); + self::$objectSupport = (bool) (Yaml::PARSE_OBJECT & $flags); + self::$objectForMap = (bool) (Yaml::PARSE_OBJECT_FOR_MAP & $flags); + self::$constantSupport = (bool) (Yaml::PARSE_CONSTANT & $flags); + self::$parsedFilename = $parsedFilename; + if (null !== $parsedLineNumber) { + self::$parsedLineNumber = $parsedLineNumber; + } + } + /** + * Converts a YAML string to a PHP value. + * + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior + * @param array $references Mapping of variable names to values + * + * @throws ParseException + * @return mixed + */ + public static function parse(string $value, int $flags = 0, array &$references = []) + { + self::initialize($flags); + $value = \trim($value); + if ('' === $value) { + return ''; + } + $i = 0; + $tag = self::parseTag($value, $i, $flags); + switch ($value[$i]) { + case '[': + $result = self::parseSequence($value, $flags, $i, $references); + ++$i; + break; + case '{': + $result = self::parseMapping($value, $flags, $i, $references); + ++$i; + break; + default: + $result = self::parseScalar($value, $flags, null, $i, \true, $references); + } + // some comments are allowed at the end + if (\preg_replace('/\\s*#.*$/A', '', \substr($value, $i))) { + throw new ParseException(\sprintf('Unexpected characters near "%s".', \substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + if (null !== $tag && '' !== $tag) { + return new TaggedValue($tag, $result); + } + return $result; + } + /** + * Dumps a given PHP variable to a YAML string. + * + * @param mixed $value The PHP variable to convert + * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string + * + * @throws DumpException When trying to dump PHP resource + */ + public static function dump($value, int $flags = 0) : string + { + switch (\true) { + case \is_resource($value): + if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) { + throw new DumpException(\sprintf('Unable to dump PHP resources in a YAML file ("%s").', \get_resource_type($value))); + } + return self::dumpNull($flags); + case $value instanceof \DateTimeInterface: + return $value->format((function () use($value) { + switch (\true) { + case !($length = \strlen(\rtrim($value->format('u'), '0'))): + return 'c'; + case $length < 4: + return 'Y-m-d\\TH:i:s.vP'; + default: + return 'Y-m-d\\TH:i:s.uP'; + } + })()); + case $value instanceof \UnitEnum: + return \sprintf('!php/const %s::%s', \get_class($value), $value->name); + case \is_object($value): + if ($value instanceof TaggedValue) { + return '!' . $value->getTag() . ' ' . self::dump($value->getValue(), $flags); + } + if (Yaml::DUMP_OBJECT & $flags) { + return '!php/object ' . self::dump(\serialize($value)); + } + if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \stdClass || $value instanceof \ArrayObject)) { + return self::dumpHashArray($value, $flags); + } + if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) { + throw new DumpException('Object support when dumping a YAML file has been disabled.'); + } + return self::dumpNull($flags); + case \is_array($value): + return self::dumpArray($value, $flags); + case null === $value: + return self::dumpNull($flags); + case \true === $value: + return 'true'; + case \false === $value: + return 'false'; + case \is_int($value): + return $value; + case \is_numeric($value) && \false === \strpbrk($value, "\f\n\r\t\v"): + $locale = \setlocale(\LC_NUMERIC, 0); + if (\false !== $locale) { + \setlocale(\LC_NUMERIC, 'C'); + } + if (\is_float($value)) { + $repr = (string) $value; + if (\is_infinite($value)) { + $repr = \str_ireplace('INF', '.Inf', $repr); + } elseif (\floor($value) == $value && $repr == $value) { + // Preserve float data type since storing a whole number will result in integer value. + if (\strpos($repr, 'E') === \false) { + $repr .= '.0'; + } + } + } else { + $repr = \is_string($value) ? "'{$value}'" : (string) $value; + } + if (\false !== $locale) { + \setlocale(\LC_NUMERIC, $locale); + } + return $repr; + case '' == $value: + return "''"; + case self::isBinaryString($value): + return '!!binary ' . \base64_encode($value); + case Escaper::requiresDoubleQuoting($value): + return Escaper::escapeWithDoubleQuotes($value); + case Escaper::requiresSingleQuoting($value): + $singleQuoted = Escaper::escapeWithSingleQuotes($value); + if (\strpos($value, "'") === \false) { + return $singleQuoted; + } + // Attempt double-quoting the string instead to see if it's more efficient. + $doubleQuoted = Escaper::escapeWithDoubleQuotes($value); + return \strlen($doubleQuoted) < \strlen($singleQuoted) ? $doubleQuoted : $singleQuoted; + case Parser::preg_match('{^[0-9]+[_0-9]*$}', $value): + case Parser::preg_match(self::getHexRegex(), $value): + case Parser::preg_match(self::getTimestampRegex(), $value): + return Escaper::escapeWithSingleQuotes($value); + default: + return $value; + } + } + /** + * Check if given array is hash or just normal indexed array. + * @param mixed[]|\ArrayObject|\stdClass $value + */ + public static function isHash($value) : bool + { + if ($value instanceof \stdClass || $value instanceof \ArrayObject) { + return \true; + } + $expectedKey = 0; + foreach ($value as $key => $val) { + if ($key !== $expectedKey++) { + return \true; + } + } + return \false; + } + /** + * Dumps a PHP array to a YAML string. + * + * @param array $value The PHP array to dump + * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string + */ + private static function dumpArray(array $value, int $flags) : string + { + // array + if (($value || Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE & $flags) && !self::isHash($value)) { + $output = []; + foreach ($value as $val) { + $output[] = self::dump($val, $flags); + } + return \sprintf('[%s]', \implode(', ', $output)); + } + return self::dumpHashArray($value, $flags); + } + /** + * Dumps hash array to a YAML string. + * + * @param array|\ArrayObject|\stdClass $value The hash array to dump + * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string + */ + private static function dumpHashArray($value, int $flags) : string + { + $output = []; + foreach ($value as $key => $val) { + if (\is_int($key) && Yaml::DUMP_NUMERIC_KEY_AS_STRING & $flags) { + $key = (string) $key; + } + $output[] = \sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags)); + } + return \sprintf('{ %s }', \implode(', ', $output)); + } + private static function dumpNull(int $flags) : string + { + if (Yaml::DUMP_NULL_AS_TILDE & $flags) { + return '~'; + } + return 'null'; + } + /** + * Parses a YAML scalar. + * + * @throws ParseException When malformed inline YAML string is parsed + * @return mixed + */ + public static function parseScalar(string $scalar, int $flags = 0, ?array $delimiters = null, int &$i = 0, bool $evaluate = \true, array &$references = [], ?bool &$isQuoted = null) + { + if (\in_array($scalar[$i], ['"', "'"], \true)) { + // quoted scalar + $isQuoted = \true; + $output = self::parseQuotedScalar($scalar, $i); + if (null !== $delimiters) { + $tmp = \ltrim(\substr($scalar, $i), " \n"); + if ('' === $tmp) { + throw new ParseException(\sprintf('Unexpected end of line, expected one of "%s".', \implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + if (!\in_array($tmp[0], $delimiters)) { + throw new ParseException(\sprintf('Unexpected characters (%s).', \substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + } + } else { + // "normal" string + $isQuoted = \false; + if (!$delimiters) { + $output = \substr($scalar, $i); + $i += \strlen($output); + // remove comments + if (Parser::preg_match('/[ \\t]+#/', $output, $match, \PREG_OFFSET_CAPTURE)) { + $output = \substr($output, 0, $match[0][1]); + } + } elseif (Parser::preg_match('/^(.*?)(' . \implode('|', $delimiters) . ')/', \substr($scalar, $i), $match)) { + $output = $match[1]; + $i += \strlen($output); + $output = \trim($output); + } else { + throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename); + } + // a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >) + if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0] || '%' === $output[0])) { + throw new ParseException(\sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename); + } + if ($evaluate) { + $output = self::evaluateScalar($output, $flags, $references, $isQuoted); + } + } + return $output; + } + /** + * Parses a YAML quoted scalar. + * + * @throws ParseException When malformed inline YAML string is parsed + */ + private static function parseQuotedScalar(string $scalar, int &$i = 0) : string + { + if (!Parser::preg_match('/' . self::REGEX_QUOTED_STRING . '/Au', \substr($scalar, $i), $match)) { + throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', \substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + $output = \substr($match[0], 1, -1); + $unescaper = new Unescaper(); + if ('"' == $scalar[$i]) { + $output = $unescaper->unescapeDoubleQuotedString($output); + } else { + $output = $unescaper->unescapeSingleQuotedString($output); + } + $i += \strlen($match[0]); + return $output; + } + /** + * Parses a YAML sequence. + * + * @throws ParseException When malformed inline YAML string is parsed + */ + private static function parseSequence(string $sequence, int $flags, int &$i = 0, array &$references = []) : array + { + $output = []; + $len = \strlen($sequence); + ++$i; + // [foo, bar, ...] + while ($i < $len) { + if (']' === $sequence[$i]) { + return $output; + } + if (',' === $sequence[$i] || ' ' === $sequence[$i]) { + ++$i; + continue; + } + $tag = self::parseTag($sequence, $i, $flags); + switch ($sequence[$i]) { + case '[': + // nested sequence + $value = self::parseSequence($sequence, $flags, $i, $references); + break; + case '{': + // nested mapping + $value = self::parseMapping($sequence, $flags, $i, $references); + break; + default: + $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references, $isQuoted); + // the value can be an array if a reference has been resolved to an array var + if (\is_string($value) && !$isQuoted && \strpos($value, ': ') !== \false) { + // embedded mapping? + try { + $pos = 0; + $value = self::parseMapping('{' . $value . '}', $flags, $pos, $references); + } catch (\InvalidArgumentException $exception) { + // no, it's not + } + } + if (!$isQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { + $references[$matches['ref']] = $matches['value']; + $value = $matches['value']; + } + --$i; + } + if (null !== $tag && '' !== $tag) { + $value = new TaggedValue($tag, $value); + } + $output[] = $value; + ++$i; + } + throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename); + } + /** + * Parses a YAML mapping. + * + * @throws ParseException When malformed inline YAML string is parsed + * @return mixed[]|\stdClass + */ + private static function parseMapping(string $mapping, int $flags, int &$i = 0, array &$references = []) + { + $output = []; + $len = \strlen($mapping); + ++$i; + $allowOverwrite = \false; + // {foo: bar, bar:foo, ...} + while ($i < $len) { + switch ($mapping[$i]) { + case ' ': + case ',': + case "\n": + ++$i; + continue 2; + case '}': + if (self::$objectForMap) { + return (object) $output; + } + return $output; + } + // key + $offsetBeforeKeyParsing = $i; + $isKeyQuoted = \in_array($mapping[$i], ['"', "'"], \true); + $key = self::parseScalar($mapping, $flags, [':', ' '], $i, \false); + if ($offsetBeforeKeyParsing === $i) { + throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping); + } + if ('!php/const' === $key || '!php/enum' === $key) { + $key .= ' ' . self::parseScalar($mapping, $flags, [':'], $i, \false); + $key = self::evaluateScalar($key, $flags); + } + if (\false === ($i = \strpos($mapping, ':', $i))) { + break; + } + if (!$isKeyQuoted) { + $evaluatedKey = self::evaluateScalar($key, $flags, $references); + if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) { + throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping); + } + } + if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], \true))) { + throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping); + } + if ('<<' === $key) { + $allowOverwrite = \true; + } + while ($i < $len) { + if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) { + ++$i; + continue; + } + $tag = self::parseTag($mapping, $i, $flags); + switch ($mapping[$i]) { + case '[': + // nested sequence + $value = self::parseSequence($mapping, $flags, $i, $references); + // Spec: Keys MUST be unique; first one wins. + // Parser cannot abort this mapping earlier, since lines + // are processed sequentially. + // But overwriting is allowed when a merge node is used in current block. + if ('<<' === $key) { + foreach ($value as $parsedValue) { + $output += $parsedValue; + } + } elseif ($allowOverwrite || !isset($output[$key])) { + if (null !== $tag) { + $output[$key] = new TaggedValue($tag, $value); + } else { + $output[$key] = $value; + } + } elseif (isset($output[$key])) { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); + } + break; + case '{': + // nested mapping + $value = self::parseMapping($mapping, $flags, $i, $references); + // Spec: Keys MUST be unique; first one wins. + // Parser cannot abort this mapping earlier, since lines + // are processed sequentially. + // But overwriting is allowed when a merge node is used in current block. + if ('<<' === $key) { + $output += $value; + } elseif ($allowOverwrite || !isset($output[$key])) { + if (null !== $tag) { + $output[$key] = new TaggedValue($tag, $value); + } else { + $output[$key] = $value; + } + } elseif (isset($output[$key])) { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); + } + break; + default: + $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references, $isValueQuoted); + // Spec: Keys MUST be unique; first one wins. + // Parser cannot abort this mapping earlier, since lines + // are processed sequentially. + // But overwriting is allowed when a merge node is used in current block. + if ('<<' === $key) { + $output += $value; + } elseif ($allowOverwrite || !isset($output[$key])) { + if (!$isValueQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && !self::isBinaryString($value) && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { + $references[$matches['ref']] = $matches['value']; + $value = $matches['value']; + } + if (null !== $tag) { + $output[$key] = new TaggedValue($tag, $value); + } else { + $output[$key] = $value; + } + } elseif (isset($output[$key])) { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); + } + --$i; + } + ++$i; + continue 2; + } + } + throw new ParseException(\sprintf('Malformed inline YAML string: "%s".', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename); + } + /** + * Evaluates scalars and replaces magic values. + * + * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved + * @return mixed + */ + private static function evaluateScalar(string $scalar, int $flags, array &$references = [], ?bool &$isQuotedString = null) + { + $isQuotedString = \false; + $scalar = \trim($scalar); + if (\strncmp($scalar, '*', \strlen('*')) === 0) { + if (\false !== ($pos = \strpos($scalar, '#'))) { + $value = \substr($scalar, 1, $pos - 2); + } else { + $value = \substr($scalar, 1); + } + // an unquoted * + if (\false === $value || '' === $value) { + throw new ParseException('A reference must contain at least one character.', self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + if (!\array_key_exists($value, $references)) { + throw new ParseException(\sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + return $references[$value]; + } + $scalarLower = \strtolower($scalar); + switch (\true) { + case 'null' === $scalarLower: + case '' === $scalar: + case '~' === $scalar: + return null; + case 'true' === $scalarLower: + return \true; + case 'false' === $scalarLower: + return \false; + case '!' === $scalar[0]: + switch (\true) { + case \strncmp($scalar, '!!str ', \strlen('!!str ')) === 0: + $s = (string) \substr($scalar, 6); + if (\in_array($s[0] ?? '', ['"', "'"], \true)) { + $isQuotedString = \true; + $s = self::parseQuotedScalar($s); + } + return $s; + case \strncmp($scalar, '! ', \strlen('! ')) === 0: + return \substr($scalar, 2); + case \strncmp($scalar, '!php/object', \strlen('!php/object')) === 0: + if (self::$objectSupport) { + if (!isset($scalar[12])) { + throw new ParseException('Missing value for tag "!php/object".', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return \unserialize(self::parseScalar(\substr($scalar, 12))); + } + if (self::$exceptionOnInvalidType) { + throw new ParseException('Object support when parsing a YAML file has been disabled.', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return null; + case \strncmp($scalar, '!php/const', \strlen('!php/const')) === 0: + if (self::$constantSupport) { + if (!isset($scalar[11])) { + throw new ParseException('Missing value for tag "!php/const".', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + $i = 0; + if (\defined($const = self::parseScalar(\substr($scalar, 11), 0, null, $i, \false))) { + return \constant($const); + } + throw new ParseException(\sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + if (self::$exceptionOnInvalidType) { + throw new ParseException(\sprintf('The string "%s" could not be parsed as a constant. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return null; + case \strncmp($scalar, '!php/enum', \strlen('!php/enum')) === 0: + if (self::$constantSupport) { + if (!isset($scalar[11])) { + throw new ParseException('Missing value for tag "!php/enum".', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + $i = 0; + $enum = self::parseScalar(\substr($scalar, 10), 0, null, $i, \false); + if ($useValue = \substr_compare($enum, '->value', -\strlen('->value')) === 0) { + $enum = \substr($enum, 0, -7); + } + if (!\defined($enum)) { + throw new ParseException(\sprintf('The enum "%s" is not defined.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + $value = \constant($enum); + if (!$value instanceof \UnitEnum) { + throw new ParseException(\sprintf('The string "%s" is not the name of a valid enum.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + if (!$useValue) { + return $value; + } + if (!$value instanceof \BackedEnum) { + throw new ParseException(\sprintf('The enum "%s" defines no value next to its name.', $enum), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return $value->value; + } + if (self::$exceptionOnInvalidType) { + throw new ParseException(\sprintf('The string "%s" could not be parsed as an enum. Did you forget to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return null; + case \strncmp($scalar, '!!float ', \strlen('!!float ')) === 0: + return (float) \substr($scalar, 8); + case \strncmp($scalar, '!!binary ', \strlen('!!binary ')) === 0: + return self::evaluateBinaryScalar(\substr($scalar, 9)); + } + throw new ParseException(\sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename); + case \preg_match('/^(?:\\+|-)?0o(?P[0-7_]++)$/', $scalar, $matches): + $value = \str_replace('_', '', $matches['value']); + if ('-' === $scalar[0]) { + return -\octdec($value); + } + return \octdec($value); + case \in_array($scalar[0], ['+', '-', '.'], \true) || \is_numeric($scalar[0]): + if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) { + $scalar = \str_replace('_', '', $scalar); + } + switch (\true) { + case \ctype_digit($scalar): + case '-' === $scalar[0] && \ctype_digit(\substr($scalar, 1)): + $cast = (int) $scalar; + return $scalar === (string) $cast ? $cast : $scalar; + case \is_numeric($scalar): + case Parser::preg_match(self::getHexRegex(), $scalar): + $scalar = \str_replace('_', '', $scalar); + return '0x' === $scalar[0] . $scalar[1] ? \hexdec($scalar) : (float) $scalar; + case '.inf' === $scalarLower: + case '.nan' === $scalarLower: + return -\log(0); + case '-.inf' === $scalarLower: + return \log(0); + case Parser::preg_match('/^(-|\\+)?[0-9][0-9_]*(\\.[0-9_]+)?$/', $scalar): + return (float) \str_replace('_', '', $scalar); + case Parser::preg_match(self::getTimestampRegex(), $scalar): + // When no timezone is provided in the parsed date, YAML spec says we must assume UTC. + $time = new \DateTimeImmutable($scalar, new \DateTimeZone('UTC')); + if (Yaml::PARSE_DATETIME & $flags) { + return $time; + } + if ('' !== \rtrim($time->format('u'), '0')) { + return (float) $time->format('U.u'); + } + try { + if (\false !== ($scalar = $time->getTimestamp())) { + return $scalar; + } + } catch (\ValueError $exception) { + // no-op + } + return $time->format('U'); + } + } + return (string) $scalar; + } + private static function parseTag(string $value, int &$i, int $flags) : ?string + { + if ('!' !== $value[$i]) { + return null; + } + $tagLength = \strcspn($value, " \t\n[]{},", $i + 1); + $tag = \substr($value, $i + 1, $tagLength); + $nextOffset = $i + $tagLength + 1; + $nextOffset += \strspn($value, ' ', $nextOffset); + if ('' === $tag && (!isset($value[$nextOffset]) || \in_array($value[$nextOffset], [']', '}', ','], \true))) { + throw new ParseException('Using the unquoted scalar value "!" is not supported. You must quote it.', self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + // Is followed by a scalar and is a built-in tag + if ('' !== $tag && (!isset($value[$nextOffset]) || !\in_array($value[$nextOffset], ['[', '{'], \true)) && ('!' === $tag[0] || \in_array($tag, ['str', 'php/const', 'php/enum', 'php/object'], \true))) { + // Manage in {@link self::evaluateScalar()} + return null; + } + $i = $nextOffset; + // Built-in tags + if ('' !== $tag && '!' === $tag[0]) { + throw new ParseException(\sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + if ('' !== $tag && !isset($value[$i])) { + throw new ParseException(\sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + if ('' === $tag || Yaml::PARSE_CUSTOM_TAGS & $flags) { + return $tag; + } + throw new ParseException(\sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + } + public static function evaluateBinaryScalar(string $scalar) : string + { + $parsedBinaryData = self::parseScalar(\preg_replace('/\\s/', '', $scalar)); + if (0 !== \strlen($parsedBinaryData) % 4) { + throw new ParseException(\sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + if (!Parser::preg_match('#^[A-Z0-9+/]+={0,2}$#i', $parsedBinaryData)) { + throw new ParseException(\sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); + } + return \base64_decode($parsedBinaryData, \true); + } + private static function isBinaryString(string $value) : bool + { + return !\preg_match('//u', $value) || \preg_match('/[^\\x00\\x07-\\x0d\\x1B\\x20-\\xff]/', $value); + } + /** + * Gets a regex that matches a YAML date. + * + * @see http://www.yaml.org/spec/1.2/spec.html#id2761573 + */ + private static function getTimestampRegex() : string + { + return <<[0-9][0-9][0-9][0-9]) + -(?P[0-9][0-9]?) + -(?P[0-9][0-9]?) + (?:(?:[Tt]|[ \t]+) + (?P[0-9][0-9]?) + :(?P[0-9][0-9]) + :(?P[0-9][0-9]) + (?:\\.(?P[0-9]*))? + (?:[ \t]*(?PZ|(?P[-+])(?P[0-9][0-9]?) + (?::(?P[0-9][0-9]))?))?)? + \$~x +EOF; + } + /** + * Gets a regex that matches a YAML number in hexadecimal notation. + */ + private static function getHexRegex() : string + { + return '~^0x[0-9a-f_]++$~i'; + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/LICENSE b/vendor/rector/rector/vendor/symfony/yaml/LICENSE new file mode 100644 index 000000000..0138f8f07 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-present Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Parser.php b/vendor/rector/rector/vendor/symfony/yaml/Parser.php new file mode 100644 index 000000000..bac5c6d61 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Parser.php @@ -0,0 +1,1062 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +/** + * Parser parses YAML strings to convert them to PHP arrays. + * + * @author Fabien Potencier + * + * @final + */ +class Parser +{ + public const TAG_PATTERN = '(?P![\\w!.\\/:-]+)'; + public const BLOCK_SCALAR_HEADER_PATTERN = '(?P\\||>)(?P\\+|\\-|\\d+|\\+\\d+|\\-\\d+|\\d+\\+|\\d+\\-)?(?P +#.*)?'; + public const REFERENCE_PATTERN = '#^&(?P[^ ]++) *+(?P.*)#u'; + /** + * @var string|null + */ + private $filename; + /** + * @var int + */ + private $offset = 0; + /** + * @var int + */ + private $numberOfParsedLines = 0; + /** + * @var int|null + */ + private $totalNumberOfLines; + /** + * @var mixed[] + */ + private $lines = []; + /** + * @var int + */ + private $currentLineNb = -1; + /** + * @var string + */ + private $currentLine = ''; + /** + * @var mixed[] + */ + private $refs = []; + /** + * @var mixed[] + */ + private $skippedLineNumbers = []; + /** + * @var mixed[] + */ + private $locallySkippedLineNumbers = []; + /** + * @var mixed[] + */ + private $refsBeingParsed = []; + /** + * Parses a YAML file into a PHP value. + * + * @param string $filename The path to the YAML file to be parsed + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior + * + * @throws ParseException If the file could not be read or the YAML is not valid + * @return mixed + */ + public function parseFile(string $filename, int $flags = 0) + { + if (!\is_file($filename)) { + throw new ParseException(\sprintf('File "%s" does not exist.', $filename)); + } + if (!\is_readable($filename)) { + throw new ParseException(\sprintf('File "%s" cannot be read.', $filename)); + } + $this->filename = $filename; + try { + return $this->parse(\file_get_contents($filename), $flags); + } finally { + $this->filename = null; + } + } + /** + * Parses a YAML string to a PHP value. + * + * @param string $value A YAML string + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior + * + * @throws ParseException If the YAML is not valid + * @return mixed + */ + public function parse(string $value, int $flags = 0) + { + if (\false === \preg_match('//u', $value)) { + throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename); + } + $this->refs = []; + try { + $data = $this->doParse($value, $flags); + } finally { + $this->refsBeingParsed = []; + $this->offset = 0; + $this->lines = []; + $this->currentLine = ''; + $this->numberOfParsedLines = 0; + $this->refs = []; + $this->skippedLineNumbers = []; + $this->locallySkippedLineNumbers = []; + $this->totalNumberOfLines = null; + } + return $data; + } + /** + * @return mixed + */ + private function doParse(string $value, int $flags) + { + $this->currentLineNb = -1; + $this->currentLine = ''; + $value = $this->cleanup($value); + $this->lines = \explode("\n", $value); + $this->numberOfParsedLines = \count($this->lines); + $this->locallySkippedLineNumbers = []; + $this->totalNumberOfLines = $this->totalNumberOfLines ?? $this->numberOfParsedLines; + if (!$this->moveToNextLine()) { + return null; + } + $data = []; + $context = null; + $allowOverwrite = \false; + while ($this->isCurrentLineEmpty()) { + if (!$this->moveToNextLine()) { + return null; + } + } + // Resolves the tag and returns if end of the document + if (null !== ($tag = $this->getLineTag($this->currentLine, $flags, \false)) && !$this->moveToNextLine()) { + return new TaggedValue($tag, ''); + } + do { + if ($this->isCurrentLineEmpty()) { + continue; + } + // tab? + if ("\t" === $this->currentLine[0]) { + throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + Inline::initialize($flags, $this->getRealCurrentLineNb(), $this->filename); + $isRef = $mergeNode = \false; + if ('-' === $this->currentLine[0] && self::preg_match('#^\\-((?P\\s+)(?P.+))?$#u', \rtrim($this->currentLine), $values)) { + if ($context && 'mapping' == $context) { + throw new ParseException('You cannot define a sequence item when in a mapping.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + $context = 'sequence'; + if (isset($values['value']) && '&' === $values['value'][0] && self::preg_match(self::REFERENCE_PATTERN, $values['value'], $matches)) { + $isRef = $matches['ref']; + $this->refsBeingParsed[] = $isRef; + $values['value'] = $matches['value']; + } + if (isset($values['value'][1]) && '?' === $values['value'][0] && ' ' === $values['value'][1]) { + throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine); + } + // array + if (isset($values['value']) && \strncmp(\ltrim($values['value'], ' '), '-', \strlen('-')) === 0) { + // Inline first child + $currentLineNumber = $this->getRealCurrentLineNb(); + $sequenceIndentation = \strlen($values['leadspaces']) + 1; + $sequenceYaml = \substr($this->currentLine, $sequenceIndentation); + $sequenceYaml .= "\n" . $this->getNextEmbedBlock($sequenceIndentation, \true); + $data[] = $this->parseBlock($currentLineNumber, \rtrim($sequenceYaml), $flags); + } elseif (!isset($values['value']) || '' == \trim($values['value'], ' ') || \strncmp(\ltrim($values['value'], ' '), '#', \strlen('#')) === 0) { + $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, \true) ?? '', $flags); + } elseif (null !== ($subTag = $this->getLineTag(\ltrim($values['value'], ' '), $flags))) { + $data[] = new TaggedValue($subTag, $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, \true), $flags)); + } else { + if (isset($values['leadspaces']) && ('!' === $values['value'][0] || self::preg_match('#^(?P' . Inline::REGEX_QUOTED_STRING . '|[^ \'"\\{\\[].*?) *\\:(\\s+(?P.+?))?\\s*$#u', $this->trimTag($values['value']), $matches))) { + $block = $values['value']; + if ($this->isNextLineIndented() || isset($matches['value']) && '>-' === $matches['value']) { + $block .= "\n" . $this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1); + } + $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $flags); + } else { + $data[] = $this->parseValue($values['value'], $flags, $context); + } + } + if ($isRef) { + $this->refs[$isRef] = \end($data); + \array_pop($this->refsBeingParsed); + } + } elseif (self::preg_match('#^(?P(?:![^\\s]++\\s++)?(?:' . Inline::REGEX_QUOTED_STRING . '|(?:!?!php/const:)?[^ \'"\\[\\{!].*?)) *\\:(( |\\t)++(?P.+))?$#u', \rtrim($this->currentLine), $values) && (\strpos($values['key'], ' #') === \false || \in_array($values['key'][0], ['"', "'"]))) { + if (\strncmp($values['key'], '!php/const:', \strlen('!php/const:')) === 0) { + trigger_deprecation('symfony/yaml', '6.2', 'YAML syntax for key "%s" is deprecated and replaced by "!php/const %s".', $values['key'], \substr($values['key'], 11)); + } + if ($context && 'sequence' == $context) { + throw new ParseException('You cannot define a mapping item when in a sequence.', $this->currentLineNb + 1, $this->currentLine, $this->filename); + } + $context = 'mapping'; + try { + $key = Inline::parseScalar($values['key']); + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + if (!\is_string($key) && !\is_int($key)) { + throw new ParseException((\is_numeric($key) ? 'Numeric' : 'Non-string') . ' keys are not supported. Quote your evaluable mapping keys instead.', $this->getRealCurrentLineNb() + 1, $this->currentLine); + } + // Convert float keys to strings, to avoid being converted to integers by PHP + if (\is_float($key)) { + $key = (string) $key; + } + if ('<<' === $key && (!isset($values['value']) || '&' !== $values['value'][0] || !self::preg_match('#^&(?P[^ ]+)#u', $values['value'], $refMatches))) { + $mergeNode = \true; + $allowOverwrite = \true; + if (isset($values['value'][0]) && '*' === $values['value'][0]) { + $refName = \substr(\rtrim($values['value']), 1); + if (!\array_key_exists($refName, $this->refs)) { + if (\false !== ($pos = \array_search($refName, $this->refsBeingParsed, \true))) { + throw new ParseException(\sprintf('Circular reference [%s] detected for reference "%s".', \implode(', ', \array_merge(\array_slice($this->refsBeingParsed, $pos), [$refName])), $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename); + } + throw new ParseException(\sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + $refValue = $this->refs[$refName]; + if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $refValue instanceof \stdClass) { + $refValue = (array) $refValue; + } + if (!\is_array($refValue)) { + throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + $data += $refValue; + // array union + } else { + if (isset($values['value']) && '' !== $values['value']) { + $value = $values['value']; + } else { + $value = $this->getNextEmbedBlock(); + } + $parsed = $this->parseBlock($this->getRealCurrentLineNb() + 1, $value, $flags); + if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsed instanceof \stdClass) { + $parsed = (array) $parsed; + } + if (!\is_array($parsed)) { + throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + if (isset($parsed[0])) { + // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes + // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier + // in the sequence override keys specified in later mapping nodes. + foreach ($parsed as $parsedItem) { + if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsedItem instanceof \stdClass) { + $parsedItem = (array) $parsedItem; + } + if (!\is_array($parsedItem)) { + throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem, $this->filename); + } + $data += $parsedItem; + // array union + } + } else { + // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the + // current mapping, unless the key already exists in it. + $data += $parsed; + // array union + } + } + } elseif ('<<' !== $key && isset($values['value']) && '&' === $values['value'][0] && self::preg_match(self::REFERENCE_PATTERN, $values['value'], $matches)) { + $isRef = $matches['ref']; + $this->refsBeingParsed[] = $isRef; + $values['value'] = $matches['value']; + } + $subTag = null; + if ($mergeNode) { + // Merge keys + } elseif (!isset($values['value']) || '' === $values['value'] || \strncmp($values['value'], '#', \strlen('#')) === 0 || null !== ($subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) { + // hash + // if next line is less indented or equal, then it means that the current value is null + if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) { + // Spec: Keys MUST be unique; first one wins. + // But overwriting is allowed when a merge node is used in current block. + if ($allowOverwrite || !isset($data[$key])) { + if (null !== $subTag) { + $data[$key] = new TaggedValue($subTag, ''); + } else { + $data[$key] = null; + } + } else { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine); + } + } else { + // remember the parsed line number here in case we need it to provide some contexts in error messages below + $realCurrentLineNbKey = $this->getRealCurrentLineNb(); + $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags); + if ('<<' === $key) { + $this->refs[$refMatches['ref']] = $value; + if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) { + $value = (array) $value; + } + $data += $value; + } elseif ($allowOverwrite || !isset($data[$key])) { + // Spec: Keys MUST be unique; first one wins. + // But overwriting is allowed when a merge node is used in current block. + if (null !== $subTag) { + $data[$key] = new TaggedValue($subTag, $value); + } else { + $data[$key] = $value; + } + } else { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine); + } + } + } else { + $value = $this->parseValue(\rtrim($values['value']), $flags, $context); + // Spec: Keys MUST be unique; first one wins. + // But overwriting is allowed when a merge node is used in current block. + if ($allowOverwrite || !isset($data[$key])) { + $data[$key] = $value; + } else { + throw new ParseException(\sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine); + } + } + if ($isRef) { + $this->refs[$isRef] = $data[$key]; + \array_pop($this->refsBeingParsed); + } + } elseif ('"' === $this->currentLine[0] || "'" === $this->currentLine[0]) { + if (null !== $context) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + try { + return Inline::parse($this->lexInlineQuotedString(), $flags, $this->refs); + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + } elseif ('{' === $this->currentLine[0]) { + if (null !== $context) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + try { + $parsedMapping = Inline::parse($this->lexInlineMapping(), $flags, $this->refs); + while ($this->moveToNextLine()) { + if (!$this->isCurrentLineEmpty()) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + } + return $parsedMapping; + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + } elseif ('[' === $this->currentLine[0]) { + if (null !== $context) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + try { + $parsedSequence = Inline::parse($this->lexInlineSequence(), $flags, $this->refs); + while ($this->moveToNextLine()) { + if (!$this->isCurrentLineEmpty()) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + } + return $parsedSequence; + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + } else { + // multiple documents are not supported + if ('---' === $this->currentLine) { + throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine, $this->filename); + } + if ($deprecatedUsage = isset($this->currentLine[1]) && '?' === $this->currentLine[0] && ' ' === $this->currentLine[1]) { + throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine); + } + // 1-liner optionally followed by newline(s) + if (\is_string($value) && $this->lines[0] === \trim($value)) { + try { + $value = Inline::parse($this->lines[0], $flags, $this->refs); + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + return $value; + } + // try to parse the value as a multi-line string as a last resort + if (0 === $this->currentLineNb) { + $previousLineWasNewline = \false; + $previousLineWasTerminatedWithBackslash = \false; + $value = ''; + foreach ($this->lines as $line) { + $trimmedLine = \trim($line); + if ('#' === ($trimmedLine[0] ?? '')) { + continue; + } + // If the indentation is not consistent at offset 0, it is to be considered as a ParseError + if (0 === $this->offset && !$deprecatedUsage && isset($line[0]) && ' ' === $line[0]) { + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + if (\strpos($line, ': ') !== \false) { + throw new ParseException('Mapping values are not allowed in multi-line blocks.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + if ('' === $trimmedLine) { + $value .= "\n"; + } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) { + $value .= ' '; + } + if ('' !== $trimmedLine && \substr_compare($line, '\\', -\strlen('\\')) === 0) { + $value .= \ltrim(\substr($line, 0, -1)); + } elseif ('' !== $trimmedLine) { + $value .= $trimmedLine; + } + if ('' === $trimmedLine) { + $previousLineWasNewline = \true; + $previousLineWasTerminatedWithBackslash = \false; + } elseif (\substr_compare($line, '\\', -\strlen('\\')) === 0) { + $previousLineWasNewline = \false; + $previousLineWasTerminatedWithBackslash = \true; + } else { + $previousLineWasNewline = \false; + $previousLineWasTerminatedWithBackslash = \false; + } + } + try { + return Inline::parse(\trim($value)); + } catch (ParseException $exception) { + // fall-through to the ParseException thrown below + } + } + throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + } while ($this->moveToNextLine()); + if (null !== $tag) { + $data = new TaggedValue($tag, $data); + } + if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && 'mapping' === $context && !\is_object($data)) { + $object = new \stdClass(); + foreach ($data as $key => $value) { + $object->{$key} = $value; + } + $data = $object; + } + return empty($data) ? null : $data; + } + /** + * @return mixed + */ + private function parseBlock(int $offset, string $yaml, int $flags) + { + $skippedLineNumbers = $this->skippedLineNumbers; + foreach ($this->locallySkippedLineNumbers as $lineNumber) { + if ($lineNumber < $offset) { + continue; + } + $skippedLineNumbers[] = $lineNumber; + } + $parser = new self(); + $parser->offset = $offset; + $parser->totalNumberOfLines = $this->totalNumberOfLines; + $parser->skippedLineNumbers = $skippedLineNumbers; + $parser->refs =& $this->refs; + $parser->refsBeingParsed = $this->refsBeingParsed; + return $parser->doParse($yaml, $flags); + } + /** + * Returns the current line number (takes the offset into account). + * + * @internal + */ + public function getRealCurrentLineNb() : int + { + $realCurrentLineNumber = $this->currentLineNb + $this->offset; + foreach ($this->skippedLineNumbers as $skippedLineNumber) { + if ($skippedLineNumber > $realCurrentLineNumber) { + break; + } + ++$realCurrentLineNumber; + } + return $realCurrentLineNumber; + } + private function getCurrentLineIndentation() : int + { + if (' ' !== ($this->currentLine[0] ?? '')) { + return 0; + } + return \strlen($this->currentLine) - \strlen(\ltrim($this->currentLine, ' ')); + } + /** + * Returns the next embed block of YAML. + * + * @param int|null $indentation The indent level at which the block is to be read, or null for default + * @param bool $inSequence True if the enclosing data structure is a sequence + * + * @throws ParseException When indentation problem are detected + */ + private function getNextEmbedBlock(?int $indentation = null, bool $inSequence = \false) : string + { + $oldLineIndentation = $this->getCurrentLineIndentation(); + if (!$this->moveToNextLine()) { + return ''; + } + if (null === $indentation) { + $newIndent = null; + $movements = 0; + do { + $EOF = \false; + // empty and comment-like lines do not influence the indentation depth + if ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) { + $EOF = !$this->moveToNextLine(); + if (!$EOF) { + ++$movements; + } + } else { + $newIndent = $this->getCurrentLineIndentation(); + } + } while (!$EOF && null === $newIndent); + for ($i = 0; $i < $movements; ++$i) { + $this->moveToPreviousLine(); + } + $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem(); + if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) { + throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + } else { + $newIndent = $indentation; + } + $data = []; + if ($this->getCurrentLineIndentation() >= $newIndent) { + $data[] = \substr($this->currentLine, $newIndent ?? 0); + } elseif ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) { + $data[] = $this->currentLine; + } else { + $this->moveToPreviousLine(); + return ''; + } + if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) { + // the previous line contained a dash but no item content, this line is a sequence item with the same indentation + // and therefore no nested list or mapping + $this->moveToPreviousLine(); + return ''; + } + $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem(); + $isItComment = $this->isCurrentLineComment(); + while ($this->moveToNextLine()) { + if ($isItComment && !$isItUnindentedCollection) { + $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem(); + $isItComment = $this->isCurrentLineComment(); + } + $indent = $this->getCurrentLineIndentation(); + if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) { + $this->moveToPreviousLine(); + break; + } + if ($this->isCurrentLineBlank()) { + $data[] = \substr($this->currentLine, $newIndent); + continue; + } + if ($indent >= $newIndent) { + $data[] = \substr($this->currentLine, $newIndent); + } elseif ($this->isCurrentLineComment()) { + $data[] = $this->currentLine; + } elseif (0 == $indent) { + $this->moveToPreviousLine(); + break; + } else { + throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); + } + } + return \implode("\n", $data); + } + private function hasMoreLines() : bool + { + return \count($this->lines) - 1 > $this->currentLineNb; + } + /** + * Moves the parser to the next line. + */ + private function moveToNextLine() : bool + { + if ($this->currentLineNb >= $this->numberOfParsedLines - 1) { + return \false; + } + $this->currentLine = $this->lines[++$this->currentLineNb]; + return \true; + } + /** + * Moves the parser to the previous line. + */ + private function moveToPreviousLine() : bool + { + if ($this->currentLineNb < 1) { + return \false; + } + $this->currentLine = $this->lines[--$this->currentLineNb]; + return \true; + } + /** + * Parses a YAML value. + * + * @param string $value A YAML value + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior + * @param string $context The parser context (either sequence or mapping) + * + * @throws ParseException When reference does not exist + * @return mixed + */ + private function parseValue(string $value, int $flags, string $context) + { + if (\strncmp($value, '*', \strlen('*')) === 0) { + if (\false !== ($pos = \strpos($value, '#'))) { + $value = \substr($value, 1, $pos - 2); + } else { + $value = \substr($value, 1); + } + if (!\array_key_exists($value, $this->refs)) { + if (\false !== ($pos = \array_search($value, $this->refsBeingParsed, \true))) { + throw new ParseException(\sprintf('Circular reference [%s] detected for reference "%s".', \implode(', ', \array_merge(\array_slice($this->refsBeingParsed, $pos), [$value])), $value), $this->currentLineNb + 1, $this->currentLine, $this->filename); + } + throw new ParseException(\sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename); + } + return $this->refs[$value]; + } + if (\in_array($value[0], ['!', '|', '>'], \true) && self::preg_match('/^(?:' . self::TAG_PATTERN . ' +)?' . self::BLOCK_SCALAR_HEADER_PATTERN . '$/', $value, $matches)) { + $modifiers = $matches['modifiers'] ?? ''; + $data = $this->parseBlockScalar($matches['separator'], \preg_replace('#\\d+#', '', $modifiers), \abs((int) $modifiers)); + if ('' !== $matches['tag'] && '!' !== $matches['tag']) { + if ('!!binary' === $matches['tag']) { + return Inline::evaluateBinaryScalar($data); + } + return new TaggedValue(\substr($matches['tag'], 1), $data); + } + return $data; + } + try { + if ('' !== $value && '{' === $value[0]) { + $cursor = \strlen(\rtrim($this->currentLine)) - \strlen(\rtrim($value)); + return Inline::parse($this->lexInlineMapping($cursor), $flags, $this->refs); + } elseif ('' !== $value && '[' === $value[0]) { + $cursor = \strlen(\rtrim($this->currentLine)) - \strlen(\rtrim($value)); + return Inline::parse($this->lexInlineSequence($cursor), $flags, $this->refs); + } + switch ($value[0] ?? '') { + case '"': + case "'": + $cursor = \strlen(\rtrim($this->currentLine)) - \strlen(\rtrim($value)); + $parsedValue = Inline::parse($this->lexInlineQuotedString($cursor), $flags, $this->refs); + if (isset($this->currentLine[$cursor]) && \preg_replace('/\\s*(#.*)?$/A', '', \substr($this->currentLine, $cursor))) { + throw new ParseException(\sprintf('Unexpected characters near "%s".', \substr($this->currentLine, $cursor))); + } + return $parsedValue; + default: + $lines = []; + while ($this->moveToNextLine()) { + // unquoted strings end before the first unindented line + if (0 === $this->getCurrentLineIndentation()) { + $this->moveToPreviousLine(); + break; + } + $lines[] = \trim($this->currentLine); + } + for ($i = 0, $linesCount = \count($lines), $previousLineBlank = \false; $i < $linesCount; ++$i) { + if ('' === $lines[$i]) { + $value .= "\n"; + $previousLineBlank = \true; + } elseif ($previousLineBlank) { + $value .= $lines[$i]; + $previousLineBlank = \false; + } else { + $value .= ' ' . $lines[$i]; + $previousLineBlank = \false; + } + } + Inline::$parsedLineNumber = $this->getRealCurrentLineNb(); + $parsedValue = Inline::parse($value, $flags, $this->refs); + if ('mapping' === $context && \is_string($parsedValue) && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && \strpos($parsedValue, ': ') !== \false) { + throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $value, $this->filename); + } + return $parsedValue; + } + } catch (ParseException $e) { + $e->setParsedLine($this->getRealCurrentLineNb() + 1); + $e->setSnippet($this->currentLine); + throw $e; + } + } + /** + * Parses a block scalar. + * + * @param string $style The style indicator that was used to begin this block scalar (| or >) + * @param string $chomping The chomping indicator that was used to begin this block scalar (+ or -) + * @param int $indentation The indentation indicator that was used to begin this block scalar + */ + private function parseBlockScalar(string $style, string $chomping = '', int $indentation = 0) : string + { + $notEOF = $this->moveToNextLine(); + if (!$notEOF) { + return ''; + } + $isCurrentLineBlank = $this->isCurrentLineBlank(); + $blockLines = []; + // leading blank lines are consumed before determining indentation + while ($notEOF && $isCurrentLineBlank) { + // newline only if not EOF + if ($notEOF = $this->moveToNextLine()) { + $blockLines[] = ''; + $isCurrentLineBlank = $this->isCurrentLineBlank(); + } + } + // determine indentation if not specified + if (0 === $indentation) { + $currentLineLength = \strlen($this->currentLine); + for ($i = 0; $i < $currentLineLength && ' ' === $this->currentLine[$i]; ++$i) { + ++$indentation; + } + } + if ($indentation > 0) { + $pattern = \sprintf('/^ {%d}(.*)$/', $indentation); + while ($notEOF && ($isCurrentLineBlank || self::preg_match($pattern, $this->currentLine, $matches))) { + if ($isCurrentLineBlank && \strlen($this->currentLine) > $indentation) { + $blockLines[] = \substr($this->currentLine, $indentation); + } elseif ($isCurrentLineBlank) { + $blockLines[] = ''; + } else { + $blockLines[] = $matches[1]; + } + // newline only if not EOF + if ($notEOF = $this->moveToNextLine()) { + $isCurrentLineBlank = $this->isCurrentLineBlank(); + } + } + } elseif ($notEOF) { + $blockLines[] = ''; + } + if ($notEOF) { + $blockLines[] = ''; + $this->moveToPreviousLine(); + } elseif (!$notEOF && !$this->isCurrentLineLastLineInDocument()) { + $blockLines[] = ''; + } + // folded style + if ('>' === $style) { + $text = ''; + $previousLineIndented = \false; + $previousLineBlank = \false; + for ($i = 0, $blockLinesCount = \count($blockLines); $i < $blockLinesCount; ++$i) { + if ('' === $blockLines[$i]) { + $text .= "\n"; + $previousLineIndented = \false; + $previousLineBlank = \true; + } elseif (' ' === $blockLines[$i][0]) { + $text .= "\n" . $blockLines[$i]; + $previousLineIndented = \true; + $previousLineBlank = \false; + } elseif ($previousLineIndented) { + $text .= "\n" . $blockLines[$i]; + $previousLineIndented = \false; + $previousLineBlank = \false; + } elseif ($previousLineBlank || 0 === $i) { + $text .= $blockLines[$i]; + $previousLineIndented = \false; + $previousLineBlank = \false; + } else { + $text .= ' ' . $blockLines[$i]; + $previousLineIndented = \false; + $previousLineBlank = \false; + } + } + } else { + $text = \implode("\n", $blockLines); + } + // deal with trailing newlines + if ('' === $chomping) { + $text = \preg_replace('/\\n+$/', "\n", $text); + } elseif ('-' === $chomping) { + $text = \preg_replace('/\\n+$/', '', $text); + } + return $text; + } + /** + * Returns true if the next line is indented. + */ + private function isNextLineIndented() : bool + { + $currentIndentation = $this->getCurrentLineIndentation(); + $movements = 0; + do { + $EOF = !$this->moveToNextLine(); + if (!$EOF) { + ++$movements; + } + } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment())); + if ($EOF) { + for ($i = 0; $i < $movements; ++$i) { + $this->moveToPreviousLine(); + } + return \false; + } + $ret = $this->getCurrentLineIndentation() > $currentIndentation; + for ($i = 0; $i < $movements; ++$i) { + $this->moveToPreviousLine(); + } + return $ret; + } + private function isCurrentLineEmpty() : bool + { + return $this->isCurrentLineBlank() || $this->isCurrentLineComment(); + } + private function isCurrentLineBlank() : bool + { + return '' === $this->currentLine || '' === \trim($this->currentLine, ' '); + } + private function isCurrentLineComment() : bool + { + // checking explicitly the first char of the trim is faster than loops or strpos + $ltrimmedLine = '' !== $this->currentLine && ' ' === $this->currentLine[0] ? \ltrim($this->currentLine, ' ') : $this->currentLine; + return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0]; + } + private function isCurrentLineLastLineInDocument() : bool + { + return $this->offset + $this->currentLineNb >= $this->totalNumberOfLines - 1; + } + private function cleanup(string $value) : string + { + $value = \str_replace(["\r\n", "\r"], "\n", $value); + // strip YAML header + $count = 0; + $value = \preg_replace('#^\\%YAML[: ][\\d\\.]+.*\\n#u', '', $value, -1, $count); + $this->offset += $count; + // remove leading comments + $trimmedValue = \preg_replace('#^(\\#.*?\\n)+#s', '', $value, -1, $count); + if (1 === $count) { + // items have been removed, update the offset + $this->offset += \substr_count($value, "\n") - \substr_count($trimmedValue, "\n"); + $value = $trimmedValue; + } + // remove start of the document marker (---) + $trimmedValue = \preg_replace('#^\\-\\-\\-.*?\\n#s', '', $value, -1, $count); + if (1 === $count) { + // items have been removed, update the offset + $this->offset += \substr_count($value, "\n") - \substr_count($trimmedValue, "\n"); + $value = $trimmedValue; + // remove end of the document marker (...) + $value = \preg_replace('#\\.\\.\\.\\s*$#', '', $value); + } + return $value; + } + private function isNextLineUnIndentedCollection() : bool + { + $currentIndentation = $this->getCurrentLineIndentation(); + $movements = 0; + do { + $EOF = !$this->moveToNextLine(); + if (!$EOF) { + ++$movements; + } + } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment())); + if ($EOF) { + return \false; + } + $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem(); + for ($i = 0; $i < $movements; ++$i) { + $this->moveToPreviousLine(); + } + return $ret; + } + private function isStringUnIndentedCollectionItem() : bool + { + return '-' === \rtrim($this->currentLine) || \strncmp($this->currentLine, '- ', \strlen('- ')) === 0; + } + /** + * A local wrapper for "preg_match" which will throw a ParseException if there + * is an internal error in the PCRE engine. + * + * This avoids us needing to check for "false" every time PCRE is used + * in the YAML engine + * + * @throws ParseException on a PCRE internal error + * + * @internal + */ + public static function preg_match(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0) : int + { + if (\false === ($ret = \preg_match($pattern, $subject, $matches, $flags, $offset))) { + throw new ParseException(\preg_last_error_msg()); + } + return $ret; + } + /** + * Trim the tag on top of the value. + * + * Prevent values such as "!foo {quz: bar}" to be considered as + * a mapping block. + */ + private function trimTag(string $value) : string + { + if ('!' === $value[0]) { + return \ltrim(\substr($value, 1, \strcspn($value, " \r\n", 1)), ' '); + } + return $value; + } + private function getLineTag(string $value, int $flags, bool $nextLineCheck = \true) : ?string + { + if ('' === $value || '!' !== $value[0] || 1 !== self::preg_match('/^' . self::TAG_PATTERN . ' *( +#.*)?$/', $value, $matches)) { + return null; + } + if ($nextLineCheck && !$this->isNextLineIndented()) { + return null; + } + $tag = \substr($matches['tag'], 1); + // Built-in tags + if ($tag && '!' === $tag[0]) { + throw new ParseException(\sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename); + } + if (Yaml::PARSE_CUSTOM_TAGS & $flags) { + return $tag; + } + throw new ParseException(\sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename); + } + private function lexInlineQuotedString(int &$cursor = 0) : string + { + $quotation = $this->currentLine[$cursor]; + $value = $quotation; + ++$cursor; + $previousLineWasNewline = \true; + $previousLineWasTerminatedWithBackslash = \false; + $lineNumber = 0; + do { + if (++$lineNumber > 1) { + $cursor += \strspn($this->currentLine, ' ', $cursor); + } + if ($this->isCurrentLineBlank()) { + $value .= "\n"; + } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) { + $value .= ' '; + } + for (; \strlen($this->currentLine) > $cursor; ++$cursor) { + switch ($this->currentLine[$cursor]) { + case '\\': + if ("'" === $quotation) { + $value .= '\\'; + } elseif (isset($this->currentLine[++$cursor])) { + $value .= '\\' . $this->currentLine[$cursor]; + } + break; + case $quotation: + ++$cursor; + if ("'" === $quotation && isset($this->currentLine[$cursor]) && "'" === $this->currentLine[$cursor]) { + $value .= "''"; + break; + } + return $value . $quotation; + default: + $value .= $this->currentLine[$cursor]; + } + } + if ($this->isCurrentLineBlank()) { + $previousLineWasNewline = \true; + $previousLineWasTerminatedWithBackslash = \false; + } elseif ('\\' === $this->currentLine[-1]) { + $previousLineWasNewline = \false; + $previousLineWasTerminatedWithBackslash = \true; + } else { + $previousLineWasNewline = \false; + $previousLineWasTerminatedWithBackslash = \false; + } + if ($this->hasMoreLines()) { + $cursor = 0; + } + } while ($this->moveToNextLine()); + throw new ParseException('Malformed inline YAML string.'); + } + private function lexUnquotedString(int &$cursor) : string + { + $offset = $cursor; + $cursor += \strcspn($this->currentLine, '[]{},: ', $cursor); + if ($cursor === $offset) { + throw new ParseException('Malformed unquoted YAML string.'); + } + return \substr($this->currentLine, $offset, $cursor - $offset); + } + private function lexInlineMapping(int &$cursor = 0) : string + { + return $this->lexInlineStructure($cursor, '}'); + } + private function lexInlineSequence(int &$cursor = 0) : string + { + return $this->lexInlineStructure($cursor, ']'); + } + private function lexInlineStructure(int &$cursor, string $closingTag) : string + { + $value = $this->currentLine[$cursor]; + ++$cursor; + do { + $this->consumeWhitespaces($cursor); + while (isset($this->currentLine[$cursor])) { + switch ($this->currentLine[$cursor]) { + case '"': + case "'": + $value .= $this->lexInlineQuotedString($cursor); + break; + case ':': + case ',': + $value .= $this->currentLine[$cursor]; + ++$cursor; + break; + case '{': + $value .= $this->lexInlineMapping($cursor); + break; + case '[': + $value .= $this->lexInlineSequence($cursor); + break; + case $closingTag: + $value .= $this->currentLine[$cursor]; + ++$cursor; + return $value; + case '#': + break 2; + default: + $value .= $this->lexUnquotedString($cursor); + } + if ($this->consumeWhitespaces($cursor)) { + $value .= ' '; + } + } + if ($this->hasMoreLines()) { + $cursor = 0; + } + } while ($this->moveToNextLine()); + throw new ParseException('Malformed inline YAML string.'); + } + private function consumeWhitespaces(int &$cursor) : bool + { + $whitespacesConsumed = 0; + do { + $whitespaceOnlyTokenLength = \strspn($this->currentLine, ' ', $cursor); + $whitespacesConsumed += $whitespaceOnlyTokenLength; + $cursor += $whitespaceOnlyTokenLength; + if (isset($this->currentLine[$cursor])) { + return 0 < $whitespacesConsumed; + } + if ($this->hasMoreLines()) { + $cursor = 0; + } + } while ($this->moveToNextLine()); + return 0 < $whitespacesConsumed; + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/README.md b/vendor/rector/rector/vendor/symfony/yaml/README.md new file mode 100644 index 000000000..ac25024b6 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/README.md @@ -0,0 +1,13 @@ +Yaml Component +============== + +The Yaml component loads and dumps YAML files. + +Resources +--------- + + * [Documentation](https://symfony.com/doc/current/components/yaml.html) + * [Contributing](https://symfony.com/doc/current/contributing/index.html) + * [Report issues](https://github.com/symfony/symfony/issues) and + [send Pull Requests](https://github.com/symfony/symfony/pulls) + in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint b/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint new file mode 100755 index 000000000..47c3c710c --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint @@ -0,0 +1,35 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +if ('cli' !== \PHP_SAPI) { + throw new \Exception('This script must be run from the command line.'); +} +/** + * Runs the Yaml lint command. + * + * @author Jan Schädlich + */ +use RectorPrefix202403\Symfony\Component\Console\Application; +use RectorPrefix202403\Symfony\Component\Yaml\Command\LintCommand; +function includeIfExists(string $file) : bool +{ + return \file_exists($file) && (include $file); +} +if (!includeIfExists(__DIR__ . '/../../../../autoload.php') && !includeIfExists(__DIR__ . '/../../vendor/autoload.php') && !includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php')) { + \fwrite(\STDERR, 'Install dependencies using Composer.' . \PHP_EOL); + exit(1); +} +if (!\class_exists(Application::class)) { + \fwrite(\STDERR, 'You need the "symfony/console" component in order to run the Yaml linter.' . \PHP_EOL); + exit(1); +} +(new Application())->add($command = new LintCommand())->getApplication()->setDefaultCommand($command->getName(), \true)->run(); diff --git a/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php b/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php new file mode 100644 index 000000000..7512e0ec9 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml\Tag; + +/** + * @author Nicolas Grekas + * @author Guilhem N. + */ +final class TaggedValue +{ + /** + * @var string + */ + private $tag; + /** + * @var mixed + */ + private $value; + /** + * @param mixed $value + */ + public function __construct(string $tag, $value) + { + $this->tag = $tag; + $this->value = $value; + } + public function getTag() : string + { + return $this->tag; + } + /** + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php b/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php new file mode 100644 index 000000000..e176a39f4 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php @@ -0,0 +1,120 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +/** + * Unescaper encapsulates unescaping rules for single and double-quoted + * YAML strings. + * + * @author Matthew Lewinski + * + * @internal + */ +class Unescaper +{ + /** + * Regex fragment that matches an escaped character in a double quoted string. + */ + public const REGEX_ESCAPED_CHARACTER = '\\\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|.)'; + /** + * Unescapes a single quoted string. + * + * @param string $value A single quoted string + */ + public function unescapeSingleQuotedString(string $value) : string + { + return \str_replace('\'\'', '\'', $value); + } + /** + * Unescapes a double quoted string. + * + * @param string $value A double quoted string + */ + public function unescapeDoubleQuotedString(string $value) : string + { + $callback = function ($match) { + return $this->unescapeCharacter($match[0]); + }; + // evaluate the string + return \preg_replace_callback('/' . self::REGEX_ESCAPED_CHARACTER . '/u', $callback, $value); + } + /** + * Unescapes a character that was found in a double-quoted string. + * + * @param string $value An escaped character + */ + private function unescapeCharacter(string $value) : string + { + switch ($value[1]) { + case '0': + return "\x00"; + case 'a': + return "\x07"; + case 'b': + return "\x08"; + case 't': + return "\t"; + case "\t": + return "\t"; + case 'n': + return "\n"; + case 'v': + return "\v"; + case 'f': + return "\f"; + case 'r': + return "\r"; + case 'e': + return "\x1b"; + case ' ': + return ' '; + case '"': + return '"'; + case '/': + return '/'; + case '\\': + return '\\'; + case 'N': + return "…"; + case '_': + return " "; + case 'L': + return "
"; + case 'P': + return "
"; + case 'x': + return self::utf8chr(\hexdec(\substr($value, 2, 2))); + case 'u': + return self::utf8chr(\hexdec(\substr($value, 2, 4))); + case 'U': + return self::utf8chr(\hexdec(\substr($value, 2, 8))); + default: + throw new ParseException(\sprintf('Found unknown escape character "%s".', $value)); + } + } + /** + * Get the UTF-8 character for the given code point. + */ + private static function utf8chr(int $c) : string + { + if (0x80 > ($c %= 0x200000)) { + return \chr($c); + } + if (0x800 > $c) { + return \chr(0xc0 | $c >> 6) . \chr(0x80 | $c & 0x3f); + } + if (0x10000 > $c) { + return \chr(0xe0 | $c >> 12) . \chr(0x80 | $c >> 6 & 0x3f) . \chr(0x80 | $c & 0x3f); + } + return \chr(0xf0 | $c >> 18) . \chr(0x80 | $c >> 12 & 0x3f) . \chr(0x80 | $c >> 6 & 0x3f) . \chr(0x80 | $c & 0x3f); + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/Yaml.php b/vendor/rector/rector/vendor/symfony/yaml/Yaml.php new file mode 100644 index 000000000..285c897fa --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/Yaml.php @@ -0,0 +1,91 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202403\Symfony\Component\Yaml; + +use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +/** + * Yaml offers convenience methods to load and dump YAML. + * + * @author Fabien Potencier + * + * @final + */ +class Yaml +{ + public const DUMP_OBJECT = 1; + public const PARSE_EXCEPTION_ON_INVALID_TYPE = 2; + public const PARSE_OBJECT = 4; + public const PARSE_OBJECT_FOR_MAP = 8; + public const DUMP_EXCEPTION_ON_INVALID_TYPE = 16; + public const PARSE_DATETIME = 32; + public const DUMP_OBJECT_AS_MAP = 64; + public const DUMP_MULTI_LINE_LITERAL_BLOCK = 128; + public const PARSE_CONSTANT = 256; + public const PARSE_CUSTOM_TAGS = 512; + public const DUMP_EMPTY_ARRAY_AS_SEQUENCE = 1024; + public const DUMP_NULL_AS_TILDE = 2048; + public const DUMP_NUMERIC_KEY_AS_STRING = 4096; + /** + * Parses a YAML file into a PHP value. + * + * Usage: + * + * $array = Yaml::parseFile('config.yml'); + * print_r($array); + * + * @param string $filename The path to the YAML file to be parsed + * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * + * @throws ParseException If the file could not be read or the YAML is not valid + * @return mixed + */ + public static function parseFile(string $filename, int $flags = 0) + { + $yaml = new Parser(); + return $yaml->parseFile($filename, $flags); + } + /** + * Parses YAML into a PHP value. + * + * Usage: + * + * $array = Yaml::parse(file_get_contents('config.yml')); + * print_r($array); + * + * + * @param string $input A string containing YAML + * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * + * @throws ParseException If the YAML is not valid + * @return mixed + */ + public static function parse(string $input, int $flags = 0) + { + $yaml = new Parser(); + return $yaml->parse($input, $flags); + } + /** + * Dumps a PHP value to a YAML string. + * + * The dump method, when supplied with an array, will do its best + * to convert the array into friendly YAML. + * + * @param mixed $input The PHP value + * @param int $inline The level where you switch to inline YAML + * @param int $indent The amount of spaces to use for indentation of nested nodes + * @param int $flags A bit field of DUMP_* constants to customize the dumped YAML string + */ + public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0) : string + { + $yaml = new Dumper($indent); + return $yaml->dump($input, $inline, 0, $flags); + } +} diff --git a/vendor/rector/rector/vendor/symfony/yaml/composer.json b/vendor/rector/rector/vendor/symfony/yaml/composer.json new file mode 100644 index 000000000..a85d13e28 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/yaml/composer.json @@ -0,0 +1,41 @@ +{ + "name": "symfony\/yaml", + "type": "library", + "description": "Loads and dumps YAML files", + "keywords": [], + "homepage": "https:\/\/symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https:\/\/symfony.com\/contributors" + } + ], + "require": { + "php": ">=8.1", + "symfony\/deprecation-contracts": "^2.5|^3", + "symfony\/polyfill-ctype": "^1.8" + }, + "require-dev": { + "symfony\/console": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony\/console": "<5.4" + }, + "autoload": { + "psr-4": { + "RectorPrefix202403\\Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "\/Tests\/" + ] + }, + "bin": [ + "Resources\/bin\/yaml-lint" + ], + "minimum-stability": "dev" +} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json index c37f01ab5..160c77b66 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json @@ -5,35 +5,33 @@ "require": { "php": ">=8.1", "clue\/ndjson-react": "^1.3", - "fidry\/cpu-core-counter": "^0.4.0 || ^0.5.1", + "fidry\/cpu-core-counter": "^0.5.1|^1.1", "nette\/utils": "^3.2|^4.0", "react\/child-process": "^0.6.5", - "react\/event-loop": "^1.3", - "react\/socket": "^1.12", + "react\/event-loop": "^1.5", + "react\/socket": "^1.15", "symfony\/console": "^6.2|^7.0" }, "require-dev": { - "phpstan\/extension-installer": "^1.3", "phpunit\/phpunit": "^10.5", - "rector\/rector": "^0.18.13", - "symplify\/easy-coding-standard": "^12.0", - "symplify\/phpstan-extensions": "^11.4", + "rector\/rector": "^1.0", + "symplify\/easy-coding-standard": "^12.1", "tomasvotruba\/class-leak": "^0.2.6" }, "autoload": { "psr-4": { - "RectorPrefix202402\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202403\\Symplify\\EasyParallel\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202402\\Symplify\\EasyParallel\\Tests\\": "tests" + "RectorPrefix202403\\Symplify\\EasyParallel\\Tests\\": "tests" } }, "scripts": { "check-cs": "vendor\/bin\/ecs check --ansi", "fix-cs": "vendor\/bin\/ecs check --fix --ansi", - "phpstan": "vendor\/bin\/phpstan analyse --ansi --error-format symplify", + "phpstan": "vendor\/bin\/phpstan analyse --ansi", "rector": "vendor\/bin\/rector process --dry-run --ansi" }, "config": { diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php index 8373adaf0..08fecf642 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php @@ -1,9 +1,9 @@ services(); $services->defaults()->public()->autowire(); diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php b/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php deleted file mode 100644 index e6432373f..000000000 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php +++ /dev/null @@ -1,11 +0,0 @@ -paths([__DIR__ . '/config', __DIR__ . '/ecs.php', __DIR__ . '/rector.php', __DIR__ . '/src', __DIR__ . '/tests']); - $ecsConfig->sets([SetList::COMMON, SetList::PSR_12]); -}; diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/phpstan.neon b/vendor/rector/rector/vendor/symplify/easy-parallel/phpstan.neon deleted file mode 100644 index 097c572f1..000000000 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/phpstan.neon +++ /dev/null @@ -1,17 +0,0 @@ -parameters: - level: 8 - - paths: - - src - - tests - - excludePaths: - - '*/Source/*' - - '*/Fixture/*' - - ignoreErrors: - - - message: '#Parameter \#2 \$length of function array_chunk expects int<1, max>, int given#' - path: src/ScheduleFactory.php - - - '#Parameter \#1 \$stream of function (rewind|stream_get_contents|fclose) expects resource, resource\|null given#' diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php b/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php deleted file mode 100644 index 3551fc6fc..000000000 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php +++ /dev/null @@ -1,26 +0,0 @@ -sets([ - SetList::CODE_QUALITY, - SetList::DEAD_CODE, - // @todo bump to PHP 8.1 - LevelSetList::UP_TO_PHP_80, - SetList::CODING_STYLE, - SetList::TYPE_DECLARATION, - SetList::NAMING, - SetList::PRIVATIZATION, - SetList::EARLY_RETURN, - PHPUnitSetList::PHPUNIT_CODE_QUALITY, - ]); - $rectorConfig->paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests']); - $rectorConfig->importNames(); - $rectorConfig->skip(['*/Source/*', '*/Fixture/*']); -}; diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php b/vendor/rector/rector/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php index 40670d39a..a98e87fe9 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php @@ -1,12 +1,12 @@ diffToArray( $this->normalizeDiffInput($from), @@ -108,7 +108,7 @@ public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null) * @param array|string $to * @param LongestCommonSubsequenceCalculator $lcs */ - public function diffToArray($from, $to, LongestCommonSubsequenceCalculator $lcs = null): array + public function diffToArray($from, $to, ?LongestCommonSubsequenceCalculator $lcs = null): array { if (is_string($from)) { $from = $this->splitStringByLines($from); diff --git a/vendor/sebastian/diff/src/Exception/ConfigurationException.php b/vendor/sebastian/diff/src/Exception/ConfigurationException.php index b767b2194..8847a2e58 100644 --- a/vendor/sebastian/diff/src/Exception/ConfigurationException.php +++ b/vendor/sebastian/diff/src/Exception/ConfigurationException.php @@ -22,7 +22,7 @@ public function __construct( string $expected, $value, int $code = 0, - Exception $previous = null + ?Exception $previous = null ) { parent::__construct( sprintf( diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index e236be92a..7b9de9229 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -503,19 +503,7 @@ private function isInteractiveInput($inputStream): bool return self::$stdinIsInteractive; } - if (\function_exists('stream_isatty')) { - return self::$stdinIsInteractive = @stream_isatty(fopen('php://stdin', 'r')); - } - - if (\function_exists('posix_isatty')) { - return self::$stdinIsInteractive = @posix_isatty(fopen('php://stdin', 'r')); - } - - if (!\function_exists('shell_exec')) { - return self::$stdinIsInteractive = true; - } - - return self::$stdinIsInteractive = (bool) shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); + return self::$stdinIsInteractive = @stream_isatty(fopen('php://stdin', 'r')); } /** diff --git a/vendor/symfony/console/Helper/Table.php b/vendor/symfony/console/Helper/Table.php index 408a76d67..698f9693b 100644 --- a/vendor/symfony/console/Helper/Table.php +++ b/vendor/symfony/console/Helper/Table.php @@ -621,9 +621,10 @@ private function buildTableRows(array $rows): TableRows if (!strstr($cell ?? '', "\n")) { continue; } - $escaped = implode("\n", array_map([OutputFormatter::class, 'escapeTrailingBackslash'], explode("\n", $cell))); + $eol = str_contains($cell ?? '', "\r\n") ? "\r\n" : "\n"; + $escaped = implode($eol, array_map([OutputFormatter::class, 'escapeTrailingBackslash'], explode($eol, $cell))); $cell = $cell instanceof TableCell ? new TableCell($escaped, ['colspan' => $cell->getColspan()]) : $escaped; - $lines = explode("\n", str_replace("\n", "\n", $cell)); + $lines = explode($eol, str_replace($eol, ''.$eol, $cell)); foreach ($lines as $lineKey => $line) { if ($colspan > 1) { $line = new TableCell($line, ['colspan' => $colspan]); @@ -685,8 +686,9 @@ private function fillNextRows(array $rows, int $line): array $nbLines = $cell->getRowspan() - 1; $lines = [$cell]; if (strstr($cell, "\n")) { - $lines = explode("\n", str_replace("\n", "\n", $cell)); - $nbLines = \count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines; + $eol = str_contains($cell, "\r\n") ? "\r\n" : "\n"; + $lines = explode($eol, str_replace($eol, ''.$eol.'', $cell)); + $nbLines = \count($lines) > $nbLines ? substr_count($cell, $eol) : $nbLines; $rows[$line][$column] = new TableCell($lines[0], ['colspan' => $cell->getColspan(), 'style' => $cell->getStyle()]); unset($lines[0]); diff --git a/vendor/symfony/console/Input/InputOption.php b/vendor/symfony/console/Input/InputOption.php index 1d8dbca31..99807f59e 100644 --- a/vendor/symfony/console/Input/InputOption.php +++ b/vendor/symfony/console/Input/InputOption.php @@ -69,7 +69,7 @@ public function __construct(string $name, $shortcut = null, ?int $mode = null, s throw new InvalidArgumentException('An option name cannot be empty.'); } - if ('' === $shortcut || [] === $shortcut) { + if ('' === $shortcut || [] === $shortcut || false === $shortcut) { $shortcut = null; } diff --git a/vendor/symfony/console/Output/StreamOutput.php b/vendor/symfony/console/Output/StreamOutput.php index 0ef15cf31..5f5ffce32 100644 --- a/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/symfony/console/Output/StreamOutput.php @@ -95,50 +95,29 @@ protected function hasColorSupport() return false; } - if (!$this->isTty()) { + // Detect msysgit/mingw and assume this is a tty because detection + // does not work correctly, see https://github.com/composer/composer/issues/9690 + if (!@stream_isatty($this->stream) && !\in_array(strtoupper((string) getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], true)) { return false; } - if (\DIRECTORY_SEPARATOR === '\\' - && \function_exists('sapi_windows_vt100_support') - && @sapi_windows_vt100_support($this->stream) - ) { + if ('\\' === \DIRECTORY_SEPARATOR && @sapi_windows_vt100_support($this->stream)) { return true; } - return 'Hyper' === getenv('TERM_PROGRAM') + if ('Hyper' === getenv('TERM_PROGRAM') + || false !== getenv('COLORTERM') || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') - || str_starts_with((string) getenv('TERM'), 'xterm'); - } - - /** - * Checks if the stream is a TTY, i.e; whether the output stream is connected to a terminal. - * - * Reference: Composer\Util\Platform::isTty - * https://github.com/composer/composer - */ - private function isTty(): bool - { - // Detect msysgit/mingw and assume this is a tty because detection - // does not work correctly, see https://github.com/composer/composer/issues/9690 - if (\in_array(strtoupper((string) getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], true)) { + ) { return true; } - // Modern cross-platform function, includes the fstat fallback so if it is present we trust it - if (\function_exists('stream_isatty')) { - return stream_isatty($this->stream); - } - - // Only trusting this if it is positive, otherwise prefer fstat fallback. - if (\function_exists('posix_isatty') && posix_isatty($this->stream)) { - return true; + if ('dumb' === $term = (string) getenv('TERM')) { + return false; } - $stat = @fstat($this->stream); - - // Check if formatted mode is S_IFCHR - return $stat ? 0020000 === ($stat['mode'] & 0170000) : false; + // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 + return preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); } } diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php index 2b6ed9efa..a4b0a784c 100644 --- a/vendor/symfony/process/Process.php +++ b/vendor/symfony/process/Process.php @@ -80,6 +80,7 @@ class Process implements \IteratorAggregate private $processPipes; private $latestSignal; + private $cachedExitCode; private static $sigchild; @@ -1345,6 +1346,19 @@ protected function updateStatus(bool $blocking) $this->processInformation = proc_get_status($this->process); $running = $this->processInformation['running']; + // In PHP < 8.3, "proc_get_status" only returns the correct exit status on the first call. + // Subsequent calls return -1 as the process is discarded. This workaround caches the first + // retrieved exit status for consistent results in later calls, mimicking PHP 8.3 behavior. + if (\PHP_VERSION_ID < 80300) { + if (!isset($this->cachedExitCode) && !$running && -1 !== $this->processInformation['exitcode']) { + $this->cachedExitCode = $this->processInformation['exitcode']; + } + + if (isset($this->cachedExitCode) && !$running && -1 === $this->processInformation['exitcode']) { + $this->processInformation['exitcode'] = $this->cachedExitCode; + } + } + $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); if ($this->fallbackStatus && $this->isSigchildEnabled()) { diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php index 30b18a381..60eace3c9 100644 --- a/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/vendor/symfony/string/Inflector/EnglishInflector.php @@ -291,6 +291,12 @@ final class EnglishInflector implements InflectorInterface // circuses (circus) ['suc', 3, true, true, 'cuses'], + // hippocampi (hippocampus) + ['supmacoppih', 11, false, false, 'hippocampi'], + + // campuses (campus) + ['sup', 3, true, true, 'puses'], + // status (status) ['sutats', 6, true, true, ['status', 'statuses']],