From 40a961372a173793078b9d4d6d035a84a3f60b6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 May 2024 07:50:54 +0200 Subject: [PATCH] Bump rector/rector from 1.0.3 to 1.0.5 (#176) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Staab --- composer.json | 2 +- composer.lock | 178 +-- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 204 +-- vendor/composer/installed.php | 88 +- vendor/composer/xdebug-handler/CHANGELOG.md | 10 +- .../xdebug-handler/src/XdebugHandler.php | 5 + vendor/phpstan/phpstan/phpstan.phar | Bin 22562101 -> 22573237 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- vendor/rector/rector/README.md | 1 + .../rector/bin/add-phpstan-self-replace.php | 10 +- vendor/rector/rector/bin/rector | 2 +- vendor/rector/rector/bin/rector.php | 12 +- vendor/rector/rector/composer.json | 5 +- vendor/rector/rector/config/config.php | 6 +- .../rector/rector/config/set/code-quality.php | 9 +- .../rector/rector/config/set/coding-style.php | 2 +- vendor/rector/rector/config/set/dead-code.php | 2 +- .../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 +- .../rector/config/set/level/up-to-php84.php | 11 + 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 | 5 +- vendor/rector/rector/config/set/php83.php | 2 +- vendor/rector/rector/config/set/php84.php | 10 + .../rector/config/set/privatization.php | 2 +- .../rector/config/set/strict-booleans.php | 2 +- .../rector/config/set/type-declaration.php | 2 +- vendor/rector/rector/preload.php | 3 + .../ClassMethod/ArgumentAdderRector.php | 2 +- .../ReplaceArgumentDefaultValueRector.php | 2 +- ...tionArgumentDefaultValueReplacerRector.php | 2 +- .../RemoveMethodCallParamRector.php | 2 +- .../ClassMethod/ExplicitReturnNullRector.php | 174 +++ .../OptionalParametersAfterRequiredRector.php | 79 +- .../Rector/Concat/JoinStringConcatRector.php | 2 +- .../ForRepeatedCountToOwnVariableRector.php | 10 +- .../FuncCall/SimplifyRegexPatternRector.php | 2 +- .../FuncCall/SimplifyStrposLowerRector.php | 19 +- .../AbsolutizeRequireAndIncludePathRector.php | 2 +- .../SimplifyTautologyTernaryRector.php | 2 +- .../Application/UseImportsAdder.php | 2 +- ...yQualifiedNameClassNameImportSkipVoter.php | 17 +- .../ClassNameImport/ShortNameResolver.php | 43 +- .../rules/CodingStyle/Naming/ClassNaming.php | 2 +- .../NodeAnalyzer/UseImportNameMatcher.php | 2 +- .../CatchExceptionNameMatchingTypeRector.php | 2 +- .../EncapsedStringsToSprintfRector.php | 2 +- .../Stmt/NewlineAfterStatementRector.php | 2 +- ...RemoveUselessAliasInUseStatementRector.php | 2 +- ...assKeywordForClassNameResolutionRector.php | 2 +- .../Reflection/VendorLocationDetector.php | 10 + .../NodeAnalyzer/CallCollectionAnalyzer.php | 7 +- .../IsClassMethodUsedAnalyzer.php | 19 +- .../PropertyWriteonlyAnalyzer.php | 5 +- .../SafeLeftTypeBooleanAndOrAnalyzer.php | 66 + .../PhpDoc/DeadParamTagValueNodeAnalyzer.php | 19 +- .../PhpDoc/TagRemover/ParamTagRemover.php | 5 - .../Rector/Cast/RecastingRemovalRector.php | 2 +- .../ClassLike/RemoveAnnotationRector.php | 2 +- .../RemoveUnusedConstructorParamRector.php | 20 +- .../If_/ReduceAlwaysFalseIfOrRector.php | 87 ++ .../If_/RemoveAlwaysTrueIfConditionRector.php | 64 +- .../Rector/If_/RemoveDeadInstanceOfRector.php | 64 +- .../RemoveUselessReadOnlyTagRector.php | 107 ++ .../SideEffect/SideEffectNodeDetector.php | 2 +- .../PreparedValueToEarlyReturnRector.php | 4 + .../InflectorSingularResolver.php | 4 +- .../Naming/Naming/ExpectedNameResolver.php | 4 + .../rules/Naming/Naming/PropertyNaming.php | 2 +- ...iableToMatchMethodCallReturnTypeRector.php | 2 +- .../rules/Naming/RectorNamingInflector.php | 4 +- .../PropertyRenameFactory.php | 2 +- .../FuncCall/PregReplaceEModifierRector.php | 13 +- .../StringClassNameToClassConstantRector.php | 2 +- .../rector/rules/Php55/RegexMatcher.php | 21 +- .../rules/Php70/EregToPcreTransformer.php | 2 +- .../NodeFactory/AnonymousFunctionFactory.php | 2 +- .../Php72/Rector/Assign/ListEachRector.php | 42 +- .../While_/WhileEachToForeachRector.php | 27 +- .../rules/Php72/ValueObject/ListAndEach.php | 33 + .../Rector/FuncCall/RegexDashEscapeRector.php | 2 +- .../AddLiteralSeparatorToNumberRector.php | 2 +- ...efaultNullToNullableTypePropertyRector.php | 19 +- .../PromotedPropertyCandidateResolver.php | 3 + .../Class_/AnnotationToAttributeRector.php | 2 +- .../NestedAnnotationToAttributeRector.php | 2 +- .../AnnotationPropertyToAttributeClass.php | 4 +- .../ValueObject/AnnotationToAttribute.php | 2 +- .../rules/Php81/NodeFactory/EnumFactory.php | 2 +- .../Array_/FirstClassCallableRector.php | 17 +- .../NullToStrictStringFuncCallArgRector.php | 26 +- .../SpatieEnumMethodCallToEnumConstRector.php | 2 +- .../Property/ReadOnlyPropertyRector.php | 45 +- .../Rector/Class_/ReadOnlyClassRector.php | 8 + ...riableInStringInterpolationFixerRector.php | 74 + .../AddSensitiveParameterAttributeRector.php | 2 +- .../ClassConst/AddTypeToConstRector.php | 27 +- .../Param/ExplicitNullableParamTypeRector.php | 75 + .../NodeManipulator/VisibilityManipulator.php | 2 +- .../Class_/FinalizeTestCaseClassRector.php | 4 +- .../ClassMethod/ArgumentRemoverRector.php | 2 +- .../Rector/Class_/RemoveInterfacesRector.php | 2 +- .../Rector/Class_/RemoveTraitUseRector.php | 2 +- .../FuncCall/RemoveFuncCallArgRector.php | 2 +- .../Rector/FuncCall/RemoveFuncCallRector.php | 2 +- .../Renaming/NodeManipulator/ClassRenamer.php | 3 + .../RenameClassConstFetchRector.php | 2 +- .../ClassMethod/RenameAnnotationRector.php | 2 +- .../ConstFetch/RenameConstantRector.php | 2 +- .../Rector/FuncCall/RenameFunctionRector.php | 2 +- ...nctionLikeParamWithinCallLikeArgRector.php | 2 +- .../Rector/MethodCall/RenameMethodRector.php | 2 +- .../Rector/Name/RenameClassRector.php | 2 +- .../PropertyFetch/RenamePropertyRector.php | 2 +- .../StaticCall/RenameStaticMethodRector.php | 2 +- .../Rector/String_/RenameStringRector.php | 2 +- .../AbstractFalsyScalarRuleFixerRector.php | 2 +- .../ArrayDimFetchToMethodCallRector.php | 65 + .../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 | 2 +- .../RectorConfigBuilderRector.php | 2 +- .../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 +- .../ValueObject/ArrayDimFetchToMethodCall.php | 32 + .../ValueObject/ParentClassToTraits.php | 2 +- ...AutowiredClassMethodOrPropertyAnalyzer.php | 3 +- .../NodeAnalyzer/CallTypesResolver.php | 13 +- .../NodeAnalyzer/DeclareStrictTypeFinder.php | 24 + .../NodeAnalyzer/NeverFuncCallAnalyzer.php | 25 +- .../PHPStan/ObjectTypeSpecifier.php | 2 +- ...amTypeBasedOnPHPUnitDataProviderRector.php | 6 +- .../AddParamTypeDeclarationRector.php | 2 +- .../AddReturnTypeDeclarationRector.php | 2 +- ...rnTypeFromStrictScalarReturnExprRector.php | 2 +- ...eturnTypeFromStrictTypedPropertyRector.php | 2 +- ...ChildDoctrineRepositoryClassTypeRector.php | 10 +- .../ReturnTypeFromStrictTernaryRector.php | 2 +- ...LikeWithinCallLikeArgDeclarationRector.php | 2 +- .../AddPropertyTypeDeclarationRector.php | 2 +- .../TypedPropertyFromAssignsRector.php | 4 +- .../DeclareStrictTypesRector.php | 30 +- .../IncreaseDeclareStrictTypesRector.php | 115 ++ .../TypeInferer/SilentVoidResolver.php | 169 +- .../ChangeConstantVisibilityRector.php | 2 +- .../ChangeMethodVisibilityRector.php | 2 +- .../Application/ApplicationFileProcessor.php | 12 +- .../rector/src/Application/FileProcessor.php | 7 +- .../src/Application/VersionResolver.php | 4 +- .../src/Autoloading/AdditionalAutoloader.php | 4 +- .../Autoloading/BootstrapFilesIncluder.php | 2 +- .../PhpDocInfo/PhpDocInfo.php | 25 + .../PhpDocManipulator/PhpDocClassRenamer.php | 2 +- .../BetterPhpDocParser/PhpDocNodeMapper.php | 2 +- .../PhpDocParser/BetterPhpDocParser.php | 2 +- .../DoctrineAnnotationDecorator.php | 4 +- .../Printer/DocBlockInliner.php | 2 +- .../Printer/PhpDocInfoPrinter.php | 2 +- .../DoctrineAnnotation/CurlyListNode.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 | 4 +- .../ValueObject/RectorWithLineChange.php | 6 +- .../rector/src/Config/Level/DeadCodeLevel.php | 4 + .../rector/rector/src/Config/RectorConfig.php | 16 +- .../src/Configuration/ConfigInitializer.php | 6 +- .../Configuration/ConfigurationFactory.php | 4 +- .../Levels/LevelRulesResolver.php | 2 +- .../rector/src/Configuration/Option.php | 5 + .../Parameter/SimpleParameterProvider.php | 2 +- .../src/Configuration/RectorConfigBuilder.php | 44 +- .../src/Console/Command/CustomRuleCommand.php | 120 +- .../src/Console/Command/DetectNodeCommand.php | 12 +- .../src/Console/Command/ListRulesCommand.php | 14 +- .../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 | 4 +- .../src/Console/Formatter/ConsoleDiffer.php | 4 +- .../src/Console/ProcessConfigureDecorator.php | 6 +- .../rector/src/Console/Style/RectorStyle.php | 12 +- .../src/Console/Style/SymfonyStyleFactory.php | 10 +- .../Laravel/ContainerMemento.php | 2 +- .../LazyContainerFactory.php | 37 +- .../RectorContainerFactory.php | 2 +- .../rector/src/Differ/DefaultDiffer.php | 4 +- .../Reflection/FamilyRelationsAnalyzer.php | 28 +- .../rector/src/FileSystem/FilePathHelper.php | 6 +- .../rector/src/FileSystem/FilesFinder.php | 2 +- .../src/FileSystem/InitFilePathsResolver.php | 4 +- .../rector/src/FileSystem/JsonFileSystem.php | 8 +- .../rector/src/Git/RepositoryHelper.php | 4 +- .../NodeAnalyzer/PropertyFetchAnalyzer.php | 7 +- .../ArrayCallableMethodMatcher.php | 40 +- .../src/NodeManipulator/AssignManipulator.php | 28 +- .../NodeManipulator/PropertyManipulator.php | 2 +- .../src/NodeNameResolver/NodeNameResolver.php | 18 +- .../PHPStanServicesFactory.php | 8 +- .../src/NodeTypeResolver/NodeTypeResolver.php | 6 +- .../Scope/PHPStanNodeScopeResolver.php | 4 +- .../NodeTypeResolver/PHPStan/TypeHasher.php | 21 - .../NameImportingPhpDocNodeVisitor.php | 2 +- .../DynamicSourceLocatorProvider.php | 44 +- .../ExprScopeFromStmtNodeVisitor.php | 7 +- .../PHPStanStaticTypeMapper.php | 2 +- .../TypeMapper/ConditionalTypeMapper.php | 5 +- .../TypeMapper/ObjectTypeMapper.php | 2 +- .../TypeMapper/UnionTypeMapper.php | 44 +- .../Application/ParallelFileProcessor.php | 30 +- .../Command/WorkerCommandLineFactory.php | 8 +- .../ProjectComposerJsonPhpVersionResolver.php | 8 +- .../src/Php/PolyfillPackagesProvider.php | 6 +- .../AnnotationToAttributeMapper.php | 2 +- .../ArrayAnnotationToAttributeMapper.php | 2 +- ...rayItemNodeAnnotationToAttributeMapper.php | 2 +- ...rlyListNodeAnnotationToAttributeMapper.php | 2 +- .../AttributeArrayNameInliner.php | 2 +- .../NodeFactory/NamedArgsFactory.php | 2 +- .../PhpNestedAttributeGroupFactory.php | 4 +- .../src/PhpParser/Node/BetterNodeFinder.php | 2 +- .../NodeFinder/PropertyFetchFinder.php | 8 +- .../src/PhpParser/Parser/InlineCodeParser.php | 4 +- .../src/PhpParser/Parser/SimplePhpParser.php | 2 +- .../Printer/BetterStandardPrinter.php | 31 +- .../Printer/FormatPerservingPrinter.php | 2 +- .../Rector/ClassRenamingPostRector.php | 16 +- .../Rector/UnusedImportRemovingPostRector.php | 2 +- .../src/Reflection/ReflectionResolver.php | 13 + .../src/Set/ValueObject/LevelSetList.php | 4 + .../rector/src/Set/ValueObject/SetList.php | 4 + .../rector/src/Skipper/Skipper/Skipper.php | 2 +- .../Mapper/PhpParserNodeMapper.php | 11 +- .../Mapper/ScalarStringToTypeMapper.php | 2 +- .../PhpDoc/PhpDocTypeMapper.php | 2 +- .../PhpDocParser/IdentifierTypeMapper.php | 2 +- .../PhpParser/NameNodeMapper.php | 76 +- .../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 | 7 +- .../Testing/TestingParser/TestingParser.php | 2 +- .../rector/rector/src/Util/MemoryLimiter.php | 2 +- .../rector/src/Util/NewLineSplitter.php | 2 +- vendor/rector/rector/src/Util/NodePrinter.php | 4 +- 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/PhpVersion.php | 4 + .../src/ValueObject/PhpVersionFeature.php | 10 + .../rector/src/ValueObject/ProcessResult.php | 2 +- .../src/ValueObject/Reporting/FileDiff.php | 8 +- .../ClassMethodReturnTypeOverrideGuard.php | 52 +- .../rector/src/functions/node_helper.php | 6 +- vendor/rector/rector/vendor/autoload.php | 2 +- vendor/rector/rector/vendor/bin/php-parse | 6 +- vendor/rector/rector/vendor/bin/yaml-lint | 6 +- .../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 | 1264 +++++++-------- .../rector/vendor/composer/autoload_psr4.php | 56 +- .../rector/vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 1384 +++++++++-------- .../rector/vendor/composer/installed.json | 319 ++-- .../rector/vendor/composer/installed.php | 4 +- .../rector/vendor/composer/pcre/composer.json | 4 +- .../composer/pcre/src/MatchAllResult.php | 2 +- .../pcre/src/MatchAllStrictGroupsResult.php | 2 +- .../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 | 8 +- .../rector/vendor/composer/pcre/src/Regex.php | 2 +- .../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 +- .../vendor/composer/xdebug-handler/README.md | 15 +- .../composer/xdebug-handler/composer.json | 12 +- .../composer/xdebug-handler/src/PhpConfig.php | 2 +- .../composer/xdebug-handler/src/Process.php | 5 +- .../composer/xdebug-handler/src/Status.php | 38 +- .../xdebug-handler/src/XdebugHandler.php | 146 +- .../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 | 38 +- .../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 +- .../fidry/cpu-core-counter/bin/diagnose.php | 6 +- .../fidry/cpu-core-counter/bin/execute.php | 6 +- .../fidry/cpu-core-counter/composer.json | 4 +- .../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 | 2 +- .../src/Finder/CmiCmdletPhysicalFinder.php | 2 +- .../src/Finder/CpuCoreFinder.php | 2 +- .../src/Finder/CpuInfoFinder.php | 2 +- .../src/Finder/DummyCpuCoreFinder.php | 2 +- .../src/Finder/FinderRegistry.php | 2 +- .../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 | 2 +- .../src/Finder/OnlyOnOSFamilyFinder.php | 2 +- .../src/Finder/ProcOpenBasedFinder.php | 6 +- .../src/Finder/SkipOnOSFamilyFinder.php | 2 +- .../Finder/WindowsRegistryLogicalFinder.php | 2 +- .../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 +- .../vendor/illuminate/container/PATCHES.txt | 2 +- .../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 +- .../rector/vendor/nette/utils/composer.json | 12 +- .../rector/vendor/nette/utils/readme.md | 2 + .../vendor/nette/utils/src/HtmlStringable.php | 2 +- .../utils/src/Iterators/CachingIterator.php | 10 +- .../nette/utils/src/Iterators/Mapper.php | 6 +- .../vendor/nette/utils/src/SmartObject.php | 19 +- .../vendor/nette/utils/src/StaticClass.php | 10 +- .../vendor/nette/utils/src/Translator.php | 9 +- .../nette/utils/src/Utils/ArrayHash.php | 18 +- .../nette/utils/src/Utils/ArrayList.php | 18 +- .../vendor/nette/utils/src/Utils/Arrays.php | 139 +- .../vendor/nette/utils/src/Utils/Callback.php | 67 +- .../vendor/nette/utils/src/Utils/DateTime.php | 23 +- .../vendor/nette/utils/src/Utils/FileInfo.php | 57 + .../nette/utils/src/Utils/FileSystem.php | 61 +- .../vendor/nette/utils/src/Utils/Finder.php | 456 ++++++ .../vendor/nette/utils/src/Utils/Floats.php | 4 +- .../vendor/nette/utils/src/Utils/Helpers.php | 44 +- .../vendor/nette/utils/src/Utils/Html.php | 77 +- .../vendor/nette/utils/src/Utils/Image.php | 370 +++-- .../nette/utils/src/Utils/ImageColor.php | 66 + .../nette/utils/src/Utils/ImageType.php | 17 + .../nette/utils/src/Utils/Iterables.php | 142 ++ .../vendor/nette/utils/src/Utils/Json.php | 35 +- .../nette/utils/src/Utils/ObjectHelpers.php | 11 +- .../nette/utils/src/Utils/ObjectMixin.php | 32 - .../nette/utils/src/Utils/Paginator.php | 16 +- .../vendor/nette/utils/src/Utils/Random.php | 12 +- .../nette/utils/src/Utils/Reflection.php | 107 +- .../utils/src/Utils/ReflectionMethod.php | 35 + .../vendor/nette/utils/src/Utils/Strings.php | 170 +- .../vendor/nette/utils/src/Utils/Type.php | 37 +- .../nette/utils/src/Utils/Validators.php | 80 +- .../nette/utils/src/Utils/exceptions.php | 5 +- .../vendor/nette/utils/src/compatibility.php | 6 +- .../vendor/nette/utils/src/exceptions.php | 2 +- .../rector/vendor/nikic/php-parser/README.md | 2 +- .../vendor/nikic/php-parser/bin/php-parse | 2 +- .../vendor/nikic/php-parser/composer.json | 2 +- .../lib/PhpParser/ConstExprEvaluator.php | 2 +- .../Internal/PrintableNewAnonClassNode.php | 2 +- .../nikic/php-parser/lib/PhpParser/Lexer.php | 2 +- .../lib/PhpParser/Lexer/Emulative.php | 2 +- .../php-parser/lib/PhpParser/NameContext.php | 2 +- .../php-parser/lib/PhpParser/Node/Arg.php | 2 +- .../lib/PhpParser/Node/Expr/ArrayDimFetch.php | 2 +- .../lib/PhpParser/Node/Expr/ArrayItem.php | 2 +- .../lib/PhpParser/Node/Expr/Exit_.php | 2 +- .../lib/PhpParser/Node/Expr/Yield_.php | 2 +- .../php-parser/lib/PhpParser/Node/Name.php | 2 +- .../php-parser/lib/PhpParser/Node/Param.php | 2 +- .../lib/PhpParser/Node/Stmt/Break_.php | 2 +- .../lib/PhpParser/Node/Stmt/Catch_.php | 2 +- .../lib/PhpParser/Node/Stmt/Continue_.php | 2 +- .../lib/PhpParser/Node/Stmt/Declare_.php | 2 +- .../lib/PhpParser/Node/Stmt/EnumCase.php | 2 +- .../lib/PhpParser/Node/Stmt/Namespace_.php | 2 +- .../PhpParser/Node/Stmt/PropertyProperty.php | 2 +- .../lib/PhpParser/Node/Stmt/Return_.php | 2 +- .../lib/PhpParser/Node/Stmt/StaticVar.php | 2 +- .../lib/PhpParser/Node/Stmt/TryCatch.php | 2 +- .../php-parser/lib/PhpParser/NodeDumper.php | 2 +- .../PhpParser/NodeVisitor/NameResolver.php | 4 +- .../nikic/php-parser/lib/PhpParser/Parser.php | 2 +- .../lib/PhpParser/Parser/Multiple.php | 2 +- .../lib/PhpParser/ParserAbstract.php | 2 +- .../lib/PhpParser/ParserFactory.php | 2 +- .../vendor/ondram/ci-detector/composer.json | 4 +- .../rector/vendor/ondram/ci-detector/ecs.php | 14 +- .../ondram/ci-detector/src/Ci/AbstractCi.php | 4 +- .../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 | 8 +- .../ondram/ci-detector/src/CiDetector.php | 6 +- .../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 | 2 +- .../PhpDoc/ParamClosureThisTagValueNode.php | 28 + ...ImmediatelyInvokedCallableTagValueNode.php | 24 + .../ParamLaterInvokedCallableTagValueNode.php | 24 + .../src/Ast/PhpDoc/PhpDocNode.php | 27 + .../src/Ast/Type/OffsetAccessTypeNode.php | 2 +- .../phpdoc-parser/src/Parser/PhpDocParser.php | 49 +- .../phpdoc-parser/src/Parser/TypeParser.php | 10 +- .../phpdoc-parser/src/Printer/Printer.php | 16 +- .../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 +- .../rector/rector-doctrine/composer.json | 2 +- .../config/sets/attributes/doctrine.php | 2 +- .../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 | 8 +- .../config/sets/doctrine-collection-22.php | 2 +- .../config/sets/doctrine-common-20.php | 2 +- .../config/sets/doctrine-dbal-210.php | 2 +- .../config/sets/doctrine-dbal-211.php | 2 +- .../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 | 2 +- .../config/yaml-to-annotations.php | 8 +- .../TableClassAttributeTransformer.php | 18 +- .../InverseJoinColumnAttributeTransformer.php | 56 + .../JoinColumnAttributeTransformer.php | 20 +- .../JoinTableAttributeTransformer.php | 45 + .../ManyToManyAttributeTransformer.php | 45 + .../ManyToOneAttributeTransformer.php | 2 +- .../CodeQuality/EntityMappingResolver.php | 8 +- .../ExplicitRelationCollectionRector.php | 132 ++ ...nitializeDefaultEntityCollectionRector.php | 22 +- .../RemoveEmptyTableAttributeRector.php | 8 +- .../YamlToAttributeDoctrineMappingRector.php | 2 +- ...edPropertyFromDoctrineCollectionRector.php | 1 + .../CodeQuality/Utils/CaseStringHelper.php | 2 +- .../CodeQuality/ValueObject/EntityMapping.php | 11 +- .../rector-doctrine/src/Enum/MappingClass.php | 16 + .../src/NodeAnalyzer/AttrinationFinder.php | 11 +- .../ToOneRelationPropertyTypeResolver.php | 2 +- .../src/PhpDoc/ShortClassExpander.php | 2 +- .../rector/rector-downgrade-php/composer.json | 2 +- .../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 | 2 +- .../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 | 2 +- .../config/set/level/down-to-php82.php | 2 +- .../DowngradeParameterTypeWideningRector.php | 2 +- .../DowngradeAttributeToAnnotationRector.php | 2 +- .../StaticCall/DowngradePhpTokenRector.php | 5 +- .../Symfony/Component/Annotation/Route.php | 2 +- .../rector/rector-phpunit/composer.json | 11 +- .../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 +- .../TestWithAnnotationToAttributeRector.php | 2 +- .../AnnotationWithValueToAttributeRector.php | 2 +- ...rsAnnotationWithValueToAttributeRector.php | 2 +- .../TicketAnnotationToAttributeRector.php | 2 +- .../DataProviderArrayItemsNewLinedRector.php | 6 - .../Class_/AddCoversClassAttributeRector.php | 157 ++ .../Class_/TestWithToDataProviderRector.php | 19 +- .../AssertInstanceOfComparisonRector.php | 14 +- .../RemoveDataProviderTestPrefixRector.php | 2 +- .../src/PhpDoc/DataProviderMethodRenamer.php | 2 +- .../WithConsecutiveRector.php | 192 ++- .../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 | 6 +- .../config/sets/symfony/symfony50.php | 2 +- .../config/sets/symfony/symfony51.php | 2 +- .../symfony52-validator-attributes.php | 4 +- .../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 | 2 +- .../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 +- .../ClassMethod/ActionSuffixRemoverRector.php | 2 +- .../EventListenerToEventSubscriberRector.php | 2 +- .../StringExtensionToConfigBuilderRector.php | 10 +- .../NestedConfigCallsFactory.php | 2 +- ...iceSettersToSettersAutodiscoveryRector.php | 2 +- .../MethodCall/RedirectToRouteRector.php | 2 +- .../Rector/StaticCall/ParseFileRector.php | 2 +- .../RemoveDefaultGetBlockPrefixRector.php | 2 +- .../StringToArrayArgumentProcessRector.php | 2 +- ...plateShortNotationToBundleSyntaxRector.php | 2 +- .../FuncCall/ReplaceServiceArgumentRector.php | 2 +- ...mentValueResolverToValueResolverRector.php | 4 +- .../Symfony/ContainerServiceProvider.php | 4 +- .../Symfony/Routing/SymfonyRoutesProvider.php | 4 +- .../FormTypeStringToTypeProvider.php | 2 +- .../src/Helper/TemplateGuesser.php | 9 +- .../ValueObject/IntlBundleClassToNewClass.php | 2 +- .../ValueObjectFactory/ServiceMapFactory.php | 6 +- .../rector/rector/vendor/scoper-autoload.php | 102 +- .../vendor/sebastian/diff/src/Chunk.php | 2 +- .../rector/vendor/sebastian/diff/src/Diff.php | 2 +- .../vendor/sebastian/diff/src/Differ.php | 4 +- .../src/Exception/ConfigurationException.php | 2 +- .../diff/src/Exception/Exception.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../rector/vendor/sebastian/diff/src/Line.php | 2 +- .../LongestCommonSubsequenceCalculator.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../src/Output/AbstractChunkOutputBuilder.php | 2 +- .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 +- .../src/Output/DiffOutputBuilderInterface.php | 2 +- .../Output/StrictUnifiedDiffOutputBuilder.php | 6 +- .../src/Output/UnifiedDiffOutputBuilder.php | 4 +- .../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 | 10 +- .../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 | 18 +- .../console/Helper/ProgressIndicator.php | 8 +- .../symfony/console/Helper/QuestionHelper.php | 30 +- .../console/Helper/SymfonyQuestionHelper.php | 14 +- .../vendor/symfony/console/Helper/Table.php | 16 +- .../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 | 18 +- .../console/Input/InputAwareInterface.php | 2 +- .../symfony/console/Input/InputDefinition.php | 6 +- .../symfony/console/Input/InputInterface.php | 6 +- .../symfony/console/Input/InputOption.php | 20 +- .../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 | 6 +- .../console/Output/TrimmedBufferOutput.php | 6 +- .../console/Question/ChoiceQuestion.php | 4 +- .../console/Question/ConfirmationQuestion.php | 2 +- .../symfony/console/Question/Question.php | 10 +- .../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/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 | 14 +- .../rector/vendor/symfony/filesystem/Path.php | 6 +- .../vendor/symfony/filesystem/composer.json | 5 +- .../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 | 10 +- .../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 +- .../symfony/polyfill-mbstring/bootstrap80.php | 10 +- .../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 | 2 +- .../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 | 18 +- .../vendor/symfony/process/ProcessUtils.php | 4 +- .../vendor/symfony/process/composer.json | 2 +- .../service-contracts/Attribute/Required.php | 2 +- .../Attribute/SubscribedService.php | 8 +- .../service-contracts/ResetInterface.php | 2 +- .../ServiceCollectionInterface.php | 25 + .../service-contracts/ServiceLocatorTrait.php | 6 +- .../ServiceMethodsSubscriberTrait.php | 72 + .../ServiceProviderInterface.php | 4 +- .../ServiceSubscriberInterface.php | 4 +- .../ServiceSubscriberTrait.php | 22 +- .../symfony/service-contracts/composer.json | 7 +- .../symfony/yaml/Command/LintCommand.php | 32 +- .../rector/vendor/symfony/yaml/Dumper.php | 4 +- .../rector/vendor/symfony/yaml/Escaper.php | 2 +- .../symfony/yaml/Exception/DumpException.php | 2 +- .../yaml/Exception/ExceptionInterface.php | 2 +- .../symfony/yaml/Exception/ParseException.php | 2 +- .../yaml/Exception/RuntimeException.php | 2 +- .../rector/vendor/symfony/yaml/Inline.php | 8 +- .../rector/vendor/symfony/yaml/Parser.php | 10 +- .../symfony/yaml/Resources/bin/yaml-lint | 6 +- .../vendor/symfony/yaml/Tag/TaggedValue.php | 2 +- .../rector/vendor/symfony/yaml/Unescaper.php | 4 +- .../rector/vendor/symfony/yaml/Yaml.php | 4 +- .../rector/vendor/symfony/yaml/composer.json | 2 +- .../symplify/easy-parallel/composer.json | 4 +- .../symplify/easy-parallel/config/config.php | 4 +- .../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 +- .../composer.json | 3 +- .../src/ValueObject/RuleDefinition.php | 4 +- .../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/symfony/console/Helper/ProgressBar.php | 5 +- vendor/symfony/deprecation-contracts/LICENSE | 2 +- .../EventDispatcherInterface.php | 2 +- .../event-dispatcher-contracts/LICENSE | 2 +- .../Debug/WrappedListener.php | 2 +- vendor/symfony/filesystem/Filesystem.php | 7 +- vendor/symfony/filesystem/composer.json | 3 +- vendor/symfony/service-contracts/LICENSE | 2 +- .../ServiceSubscriberTrait.php | 9 +- .../Test/ServiceLocatorTest.php | 80 +- .../Test/ServiceLocatorTestCase.php | 95 ++ vendor/symfony/string/LazyString.php | 2 +- 1175 files changed, 8730 insertions(+), 5244 deletions(-) create mode 100644 vendor/rector/rector/config/set/level/up-to-php84.php create mode 100644 vendor/rector/rector/config/set/php84.php create mode 100644 vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/ExplicitReturnNullRector.php create mode 100644 vendor/rector/rector/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php create mode 100644 vendor/rector/rector/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php create mode 100644 vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php create mode 100644 vendor/rector/rector/rules/Php72/ValueObject/ListAndEach.php create mode 100644 vendor/rector/rector/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php create mode 100644 vendor/rector/rector/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php create mode 100644 vendor/rector/rector/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php create mode 100644 vendor/rector/rector/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/FileInfo.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/Finder.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/ImageColor.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/ImageType.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/Iterables.php delete mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php create mode 100644 vendor/rector/rector/vendor/nette/utils/src/Utils/ReflectionMethod.php create mode 100644 vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php create mode 100644 vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php create mode 100644 vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.php create mode 100644 vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php create mode 100644 vendor/rector/rector/vendor/symfony/service-contracts/ServiceCollectionInterface.php create mode 100644 vendor/rector/rector/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php create mode 100644 vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php diff --git a/composer.json b/composer.json index 81c0a69b1..229e0223b 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "require": { "php": ">=7.4", - "rector/rector": "1.0.3", + "rector/rector": "1.0.5", "friendsofphp/php-cs-fixer": "3.38.2", "redaxo/php-cs-fixer-config": "^1.0" }, diff --git a/composer.lock b/composer.lock index c5b239ad2..c88e43f49 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "aade00242bab9470bd3e4bc5df576908", + "content-hash": "95ff7e8f234a2bf2a45b6eda334f9b72", "packages": [ { "name": "composer/pcre", @@ -160,16 +160,16 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -206,7 +206,7 @@ "support": { "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.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -222,7 +222,7 @@ "type": "tidelift" } ], - "time": "2024-03-26T18:29:49+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -319,16 +319,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.66", + "version": "1.10.67", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/16ddbe776f10da6a95ebd25de7c1dbed397dc493", + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493", "shasum": "" }, "require": { @@ -371,13 +371,9 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2024-03-28T16:17:31+00:00" + "time": "2024-04-16T07:22:02+00:00" }, { "name": "psr/container", @@ -529,16 +525,16 @@ }, { "name": "rector/rector", - "version": "1.0.3", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b" + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/c59507a9090b465d65e1aceed91e5b81986e375b", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/73eb63e4f9011dba6b7c66c3262543014e352f34", + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34", "shasum": "" }, "require": { @@ -551,6 +547,9 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, "bin": [ "bin/rector" ], @@ -573,7 +572,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.3" + "source": "https://github.com/rectorphp/rector/tree/1.0.5" }, "funding": [ { @@ -581,7 +580,7 @@ "type": "github" } ], - "time": "2024-03-14T15:04:18+00:00" + "time": "2024-05-10T05:31:15+00:00" }, { "name": "redaxo/php-cs-fixer-config", @@ -692,16 +691,16 @@ }, { "name": "symfony/console", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "url": "https://api.github.com/repos/symfony/console/zipball/f3e591c48688a0cfa1a3296205926c05e84b22b1", + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1", "shasum": "" }, "require": { @@ -771,7 +770,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.36" + "source": "https://github.com/symfony/console/tree/v5.4.39" }, "funding": [ { @@ -787,20 +786,20 @@ "type": "tidelift" } ], - "time": "2024-02-20T16:33:57+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { @@ -838,7 +837,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" }, "funding": [ { @@ -854,20 +853,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-01-24T14:02:46+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d40fae9fd85c762b6ba378152fdd1157a85d7e4f", + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f", "shasum": "" }, "require": { @@ -923,7 +922,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.39" }, "funding": [ { @@ -939,20 +938,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", "shasum": "" }, "require": { @@ -1002,7 +1001,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" }, "funding": [ { @@ -1018,27 +1017,28 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086" + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/5a553607d4ffbfa9c0ab62facadea296c9db7086", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e6edd875d5d39b03de51f3c3951148cfa79a4d12", + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.16", + "symfony/process": "^5.4|^6.4" }, "type": "library", "autoload": { @@ -1066,7 +1066,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.35" + "source": "https://github.com/symfony/filesystem/tree/v5.4.39" }, "funding": [ { @@ -1082,20 +1082,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/finder", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "url": "https://api.github.com/repos/symfony/finder/zipball/f6a96e4fcd468a25fede16ee665f50ced856bd0a", + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a", "shasum": "" }, "require": { @@ -1129,7 +1129,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.35" + "source": "https://github.com/symfony/finder/tree/v5.4.39" }, "funding": [ { @@ -1145,20 +1145,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.4.21", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + "reference": "1303bb73d6c3882f07c618129295503085dfddb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1303bb73d6c3882f07c618129295503085dfddb9", + "reference": "1303bb73d6c3882f07c618129295503085dfddb9", "shasum": "" }, "require": { @@ -1198,7 +1198,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.39" }, "funding": [ { @@ -1214,7 +1214,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/polyfill-ctype", @@ -1768,16 +1768,16 @@ }, { "name": "symfony/process", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", - "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", + "url": "https://api.github.com/repos/symfony/process/zipball/85a554acd7c28522241faf2e97b9541247a0d3d5", + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5", "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.36" + "source": "https://github.com/symfony/process/tree/v5.4.39" }, "funding": [ { @@ -1826,20 +1826,20 @@ "type": "tidelift" } ], - "time": "2024-02-12T15:49:53+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { @@ -1893,7 +1893,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.3" }, "funding": [ { @@ -1909,20 +1909,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407" + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/887762aa99ff16f65dc8b48aafead415f942d407", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb97497490bcec8a3c32c809cacfdd4c15dc8390", + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390", "shasum": "" }, "require": { @@ -1955,7 +1955,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.35" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.39" }, "funding": [ { @@ -1971,20 +1971,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/string", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", + "url": "https://api.github.com/repos/symfony/string/zipball/495e71bae5862308051b9e63cc3e34078eed83ef", + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef", "shasum": "" }, "require": { @@ -2041,7 +2041,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.36" + "source": "https://github.com/symfony/string/tree/v5.4.39" }, "funding": [ { @@ -2057,7 +2057,7 @@ "type": "tidelift" } ], - "time": "2024-02-01T08:49:30+00:00" + "time": "2024-04-18T08:26:06+00:00" } ], "packages-dev": [], diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 82af332e6..c795f005f 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -810,6 +810,7 @@ 'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', 'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php', + 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTestCase' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTestCase.php', 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => $vendorDir . '/symfony/polyfill-intl-grapheme/Grapheme.php', 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 320ebdd1b..150085553 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -968,6 +968,7 @@ class ComposerStaticInit432d9322d3d4193d52e9a1d1ec2ff418 'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', 'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php', + 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTestCase' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTestCase.php', 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/Grapheme.php', 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 360e1e30e..0d8857162 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -160,17 +160,17 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.4", - "version_normalized": "3.0.4.0", + "version": "3.0.5", + "version_normalized": "3.0.5.0", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -183,7 +183,7 @@ "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, - "time": "2024-03-26T18:29:49+00:00", + "time": "2024-05-06T16:37:16+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -209,7 +209,7 @@ "support": { "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.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -325,17 +325,17 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.66", - "version_normalized": "1.10.66.0", + "version": "1.10.67", + "version_normalized": "1.10.67.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/16ddbe776f10da6a95ebd25de7c1dbed397dc493", + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493", "shasum": "" }, "require": { @@ -344,7 +344,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2024-03-28T16:17:31+00:00", + "time": "2024-04-16T07:22:02+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -380,10 +380,6 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], "install-path": "../phpstan/phpstan" @@ -547,17 +543,17 @@ }, { "name": "rector/rector", - "version": "1.0.3", - "version_normalized": "1.0.3.0", + "version": "1.0.5", + "version_normalized": "1.0.5.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b" + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/c59507a9090b465d65e1aceed91e5b81986e375b", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/73eb63e4f9011dba6b7c66c3262543014e352f34", + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34", "shasum": "" }, "require": { @@ -570,7 +566,10 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, - "time": "2024-03-14T15:04:18+00:00", + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, + "time": "2024-05-10T05:31:15+00:00", "bin": [ "bin/rector" ], @@ -594,7 +593,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.3" + "source": "https://github.com/rectorphp/rector/tree/1.0.5" }, "funding": [ { @@ -719,17 +718,17 @@ }, { "name": "symfony/console", - "version": "v5.4.36", - "version_normalized": "5.4.36.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "url": "https://api.github.com/repos/symfony/console/zipball/f3e591c48688a0cfa1a3296205926c05e84b22b1", + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1", "shasum": "" }, "require": { @@ -767,7 +766,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2024-02-20T16:33:57+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -801,7 +800,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.36" + "source": "https://github.com/symfony/console/tree/v5.4.39" }, "funding": [ { @@ -821,23 +820,23 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", - "version_normalized": "2.5.2.0", + "version": "v2.5.3", + "version_normalized": "2.5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2022-01-02T09:53:40+00:00", + "time": "2023-01-24T14:02:46+00:00", "type": "library", "extra": { "branch-alias": { @@ -871,7 +870,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" }, "funding": [ { @@ -891,17 +890,17 @@ }, { "name": "symfony/event-dispatcher", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d40fae9fd85c762b6ba378152fdd1157a85d7e4f", + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f", "shasum": "" }, "require": { @@ -931,7 +930,7 @@ "symfony/dependency-injection": "", "symfony/http-kernel": "" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -959,7 +958,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.39" }, "funding": [ { @@ -979,17 +978,17 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", - "version_normalized": "2.5.2.0", + "version": "v2.5.3", + "version_normalized": "2.5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", "shasum": "" }, "require": { @@ -999,7 +998,7 @@ "suggest": { "symfony/event-dispatcher-implementation": "" }, - "time": "2022-01-02T09:53:40+00:00", + "time": "2024-01-23T13:51:25+00:00", "type": "library", "extra": { "branch-alias": { @@ -1041,7 +1040,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" }, "funding": [ { @@ -1061,26 +1060,27 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086" + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/5a553607d4ffbfa9c0ab62facadea296c9db7086", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e6edd875d5d39b03de51f3c3951148cfa79a4d12", + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.16", + "symfony/process": "^5.4|^6.4" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1108,7 +1108,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.35" + "source": "https://github.com/symfony/filesystem/tree/v5.4.39" }, "funding": [ { @@ -1128,17 +1128,17 @@ }, { "name": "symfony/finder", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "url": "https://api.github.com/repos/symfony/finder/zipball/f6a96e4fcd468a25fede16ee665f50ced856bd0a", + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a", "shasum": "" }, "require": { @@ -1146,7 +1146,7 @@ "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1174,7 +1174,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.35" + "source": "https://github.com/symfony/finder/tree/v5.4.39" }, "funding": [ { @@ -1194,17 +1194,17 @@ }, { "name": "symfony/options-resolver", - "version": "v5.4.21", - "version_normalized": "5.4.21.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + "reference": "1303bb73d6c3882f07c618129295503085dfddb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1303bb73d6c3882f07c618129295503085dfddb9", + "reference": "1303bb73d6c3882f07c618129295503085dfddb9", "shasum": "" }, "require": { @@ -1213,7 +1213,7 @@ "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.16" }, - "time": "2023-02-14T08:03:56+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1246,7 +1246,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.39" }, "funding": [ { @@ -1837,24 +1837,24 @@ }, { "name": "symfony/process", - "version": "v5.4.36", - "version_normalized": "5.4.36.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", - "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", + "url": "https://api.github.com/repos/symfony/process/zipball/85a554acd7c28522241faf2e97b9541247a0d3d5", + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-php80": "^1.16" }, - "time": "2024-02-12T15:49:53+00:00", + "time": "2024-04-18T08:26:06+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.36" + "source": "https://github.com/symfony/process/tree/v5.4.39" }, "funding": [ { @@ -1902,17 +1902,17 @@ }, { "name": "symfony/service-contracts", - "version": "v2.5.2", - "version_normalized": "2.5.2.0", + "version": "v2.5.3", + "version_normalized": "2.5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { @@ -1926,7 +1926,7 @@ "suggest": { "symfony/service-implementation": "" }, - "time": "2022-05-30T19:17:29+00:00", + "time": "2023-04-21T15:04:16+00:00", "type": "library", "extra": { "branch-alias": { @@ -1968,7 +1968,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.3" }, "funding": [ { @@ -1988,24 +1988,24 @@ }, { "name": "symfony/stopwatch", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407" + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/887762aa99ff16f65dc8b48aafead415f942d407", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb97497490bcec8a3c32c809cacfdd4c15dc8390", + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/service-contracts": "^1|^2|^3" }, - "time": "2024-01-23T13:51:25+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2033,7 +2033,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.35" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.39" }, "funding": [ { @@ -2053,17 +2053,17 @@ }, { "name": "symfony/string", - "version": "v5.4.36", - "version_normalized": "5.4.36.0", + "version": "v5.4.39", + "version_normalized": "5.4.39.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", + "url": "https://api.github.com/repos/symfony/string/zipball/495e71bae5862308051b9e63cc3e34078eed83ef", + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef", "shasum": "" }, "require": { @@ -2083,7 +2083,7 @@ "symfony/translation-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0|^6.0" }, - "time": "2024-02-01T08:49:30+00:00", + "time": "2024-04-18T08:26:06+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2122,7 +2122,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.36" + "source": "https://github.com/symfony/string/tree/v5.4.39" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 3603444be..6b1891888 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' => '37d2bd0a8bcfffaba45aa42f1b2ae8b0cfa6fd22', + 'reference' => '6e4343516f2667323b3b38369ea21e52d3a47f8e', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => '37d2bd0a8bcfffaba45aa42f1b2ae8b0cfa6fd22', + 'reference' => '6e4343516f2667323b3b38369ea21e52d3a47f8e', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -38,9 +38,9 @@ 'dev_requirement' => false, ), 'composer/xdebug-handler' => array( - 'pretty_version' => '3.0.4', - 'version' => '3.0.4.0', - 'reference' => '4f988f8fdf580d53bdb2d1278fe93d1ed5462255', + 'pretty_version' => '3.0.5', + 'version' => '3.0.5.0', + 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), @@ -56,9 +56,9 @@ 'dev_requirement' => false, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.66', - 'version' => '1.10.66.0', - 'reference' => '94779c987e4ebd620025d9e5fdd23323903950bd', + 'pretty_version' => '1.10.67', + 'version' => '1.10.67.0', + 'reference' => '16ddbe776f10da6a95ebd25de7c1dbed397dc493', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), @@ -104,9 +104,9 @@ ), ), 'rector/rector' => array( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'reference' => 'c59507a9090b465d65e1aceed91e5b81986e375b', + 'pretty_version' => '1.0.5', + 'version' => '1.0.5.0', + 'reference' => '73eb63e4f9011dba6b7c66c3262543014e352f34', 'type' => 'library', 'install_path' => __DIR__ . '/../rector/rector', 'aliases' => array(), @@ -131,36 +131,36 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v5.4.36', - 'version' => '5.4.36.0', - 'reference' => '39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => 'f3e591c48688a0cfa1a3296205926c05e84b22b1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/deprecation-contracts' => array( - 'pretty_version' => 'v2.5.2', - 'version' => '2.5.2.0', - 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', + 'pretty_version' => 'v2.5.3', + 'version' => '2.5.3.0', + 'reference' => '80d075412b557d41002320b96a096ca65aa2c98d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/event-dispatcher' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => '7a69a85c7ea5bdd1e875806a99c51a87d3a74b38', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => 'd40fae9fd85c762b6ba378152fdd1157a85d7e4f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/event-dispatcher-contracts' => array( - 'pretty_version' => 'v2.5.2', - 'version' => '2.5.2.0', - 'reference' => 'f98b54df6ad059855739db6fcbc2d36995283fe1', + 'pretty_version' => 'v2.5.3', + 'version' => '2.5.3.0', + 'reference' => '540f4c73e87fd0c71ca44a6aa305d024ac68cb73', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', 'aliases' => array(), @@ -173,27 +173,27 @@ ), ), 'symfony/filesystem' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => '5a553607d4ffbfa9c0ab62facadea296c9db7086', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => 'e6edd875d5d39b03de51f3c3951148cfa79a4d12', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/finder' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => 'abe6d6f77d9465fed3cd2d029b29d03b56b56435', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => 'f6a96e4fcd468a25fede16ee665f50ced856bd0a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/options-resolver' => array( - 'pretty_version' => 'v5.4.21', - 'version' => '5.4.21.0', - 'reference' => '4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => '1303bb73d6c3882f07c618129295503085dfddb9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/options-resolver', 'aliases' => array(), @@ -263,36 +263,36 @@ 'dev_requirement' => false, ), 'symfony/process' => array( - 'pretty_version' => 'v5.4.36', - 'version' => '5.4.36.0', - 'reference' => '4fdf34004f149cc20b2f51d7d119aa500caad975', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => '85a554acd7c28522241faf2e97b9541247a0d3d5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/service-contracts' => array( - 'pretty_version' => 'v2.5.2', - 'version' => '2.5.2.0', - 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', + 'pretty_version' => 'v2.5.3', + 'version' => '2.5.3.0', + 'reference' => 'a2329596ddc8fd568900e3fc76cba42489ecc7f3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/stopwatch' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => '887762aa99ff16f65dc8b48aafead415f942d407', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => 'fb97497490bcec8a3c32c809cacfdd4c15dc8390', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/string' => array( - 'pretty_version' => 'v5.4.36', - 'version' => '5.4.36.0', - 'reference' => '4e232c83622bd8cd32b794216aa29d0d266d353b', + 'pretty_version' => 'v5.4.39', + 'version' => '5.4.39.0', + 'reference' => '495e71bae5862308051b9e63cc3e34078eed83ef', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), diff --git a/vendor/composer/xdebug-handler/CHANGELOG.md b/vendor/composer/xdebug-handler/CHANGELOG.md index 49fdc45d4..62ebe223a 100644 --- a/vendor/composer/xdebug-handler/CHANGELOG.md +++ b/vendor/composer/xdebug-handler/CHANGELOG.md @@ -1,5 +1,8 @@ ## [Unreleased] +## [3.0.5] - 2024-05-06 + * Fixed: fail restart if PHP_BINARY is not available + ## [3.0.4] - 2024-03-26 * Added: Functional tests. * Fixed: Incompatibility with PHPUnit 10. @@ -112,9 +115,10 @@ * Break: the following class was renamed: - `Composer\XdebugHandler` -> `Composer\XdebugHandler\XdebugHandler` -[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 +[Unreleased]: https://github.com/composer/xdebug-handler/compare/3.0.5...HEAD +[3.0.5]: https://github.com/composer/xdebug-handler/compare/3.0.4...3.0.5 +[3.0.4]: https://github.com/composer/xdebug-handler/compare/3.0.3...3.0.4 +[3.0.3]: https://github.com/composer/xdebug-handler/compare/3.0.2...3.0.3 [3.0.2]: https://github.com/composer/xdebug-handler/compare/3.0.1...3.0.2 [3.0.1]: https://github.com/composer/xdebug-handler/compare/3.0.0...3.0.1 [3.0.0]: https://github.com/composer/xdebug-handler/compare/2.0.3...3.0.0 diff --git a/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/composer/xdebug-handler/src/XdebugHandler.php index 37fc313a5..a665939d6 100644 --- a/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -590,6 +590,11 @@ private function checkConfiguration(?string &$info): bool return false; } + if (!file_exists(PHP_BINARY)) { + $info = 'PHP_BINARY is not available'; + return false; + } + if (extension_loaded('uopz') && !((bool) ini_get('uopz.disable'))) { // uopz works at opcode level and disables exit calls if (function_exists('uopz_allow_exit')) { diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index fd8f0c0d8033be3429e17ed2d3736257441d5655..207b04ace4e3afb044c21f23a060d40e201f8590 100755 GIT binary patch delta 311155 zcmZr(1z1!~_h;F?yEK4-D(o3|})3eai)04sfrAzt_ zHaDxe3>)I0rhLr;(oCgq*O|TV>0aR*^=@%xLL%AU=P} zpe3v{O5e!*B5;W95ifgel&;I_)0SV%^z_VxH_q6yjyOhOtq@I?{z{RIWpyaG(YN9o(8{3zX%>e5m zUx1rL`7GoT{=W;#8H1G4^l=N$hi7NL3J9lshsqh;PSx zEs@*|YfxQ0fmXLB7Ic#q8`ccMZX-ZB_mkT^(2%VJ4aSY1FnFBzxR@cMBF2Y}ix?d- zWPBKSg?}BaIL0|d%(1+ZFYOg-QPOhIM9u9FFH2?mF0`PN0nqAX+Ei+&s7wpYpv&Gt z8(T@;jjGWCduZ|N!pKh2X9HJS-~`;192yob^^(`LNA`+A>a*UrXK2{71Cr`Z&q8H( zs#wN|WTIrECAsVA#cjx6A=NZu<9n+>ze~#ANZE3~21qO$I-fn9&_P2CoRP~qB{G%@ zSC7#ghNw(P_K?aIjJN_AJ8c(rUy4w;J0q>pAZ=Tt1_L#;>^UtGZmX~sZ*V$@!@O6$ zm2wQdsDMYH*&3zKK&f2rEG-i(Y2i^Q4Bfl_fV4zjol2bxqe-9Fn`?+WK?C*4r=c<@ zu?PGU$44C2!@xm$t_+|=lrYq{&uLAhSf!)nY9L67Dl;j@z<^f1fy(leQEjC$s;1PN z7DK`7Z)ZMeMsStP3~bf$Gdsvk#PfUz#PZ=QUrU04FQsAxos!Z!IY~!U&1k_ZXwjtM zWToVzs!t2PLBYc{t(!{wm9=R>Bd|f&!bK~AE7syE(6D&aw6f$YumUS6SbB5qVd;bc z>(U>xf#T1+?a~T`2c=Q$p{G|`bCfISjHL%-=rU&2qTiCEoG}&y!x}B?`BXZo@S$A> zDE0Ju&FN??eK)K^3x-0A`=1|glv0h{X~778J-r2KFI=SN$|`kHpqz2vl@$NOfp+@}%nTe+xtBDi8g{EJ)%syWD;`0ZRv8^rs;MBOlhZBCP5AJL zODDV`;pH-G;E#D@Cn%ibV_r`qcV(%=7kf%<3It9ytDqxf({Oz&$>e8cY0*zMN4bCn zZjSc*u937d$=;Q2EAHXrApRQna;&ymGWh05Nw$ERh$S9#$@0aZqK)7DX=w!bfZ4Hg z-^ly9RP~ifOqDDvaUzV5T0^uMZ0anzAEVNe?3!8jVhV_gwTKry&s0Mtk(_E-1|(s7 zy0w_k?S{B)YUB`&5KZZblfZMGCJJGkWFRd}14{4h<&j+7#$-UPEDJG*3x&9K&z3im zMQz5#yKU)$^x%gX?OP29x^C%nN~=Wz)z;!4&IRJs&C{Dn^Ns7#_DzA>oP}aDriiu1 zwq)_1bQkl-ygj0r>`i2M+(WELodkgeP$GE$!3|TFFmE1Y zp&;3bf|Ffv`&L1ny9YJk+#~jiyP-#BtP~oMK_>+>k`|e2NG6U^W{#N>?NOXBNg7?H9xK}q(8r#gyNI8%uFL+9s_(w!Qb(6Wj+ zlh-3I?Qiv3XG}^d)-S_a{LLF7s)w%cLAq|zA!0+ zzX0Z;{AK%Q*odLrs}MW;oUg>SFfi4UWSOKK6*x^~@6QtHj=<5@fT21wg`3`YB zFLc5ZQxfY9I&Fi&4}v0glSb;H5VVJaqHrccu?SY(xcx4!iH6WK`U&ND-UxrK9H&~IM`@lP{HO(+19ml4cI4t1KhIrvz zmD?I^3`K1;!G@k<(amS}~1K8Y2z}Hq;m64+!%pGd`fUZO>*bBr^|k@3e$W z@Hw;QViJB7M5EoV#ilxmxuY3b#HXigpCjcN!dP*<3oAwZb@l5CtqrZns6#>}I!04a zR$;Bx%eC=mMV#iPRuc71SzpA9%g6LW^+(frKOcJZuBWG+<))GAnL=}t+BL(FgiMCW zdz~ZrQQ9$XdU}o3h409#au$hQ_=lUdn9HxfT9wVF7NTN!cr$BgwD zbM29iNczoAH4)qLITG<@^{){+^}j#}`@oAaiDmwBWh>7h|lZY>2xx|X>$m9vKHiS&8;y+EbqgfGg zVycZgWKd6;LVR9_jft4Ed2)9~yevx)$g&<8jt&K!XT-31j|%_MKTxWxnqkSbzUCCy zT@PSqO3>7{Wa?pI1a<7Ehe3&54hwEnl5gP4{#_^bk-{OA)}I!-(o$atz<|K5`7C&o zk3rV`FH2yv`*c{kcdC+e4OJRRTl<;l>D~Et_7x9ToIRRl3Rbi(8C$i;yZ}_;G)* z>P^9ll&lj%XpdQ-*n{ccwxApxNlptHOqLr2w(!0Hv#Z&bxpR=+gmQGBAJ*j#x5r;0!X$2j;ev?Lr+=vQ{uAAsYm? z0JX2Fr`IrJ$#%@c-ARf7N!6D-7vh4caq**24MQDiY3CoWS2BdHBptr zCJUK&+0L2Q2i6W|&l##!cqdBa9qhc?RuBA)O6yJrDl?44P%p+2Vs~RPK+6%=Uda}| z(Ypg-_ND~+_x)vs@a%1lK|t_{R#o1OO1dXr=xRY{PHqPDq}larspdIL8K{-msK z0aariNGRx;h^2e_7f2SHtjOZ!f5ud5|7wcr4W}7FgFzDJfWla$Ku54Ko7r!lt z+Bl=SSeJ$FFvN~YE?d~h$!#ItK2&495IcL#U%;wpnk#9SY9OY7U!XM+n_9euV>a%l z?J3j6klc{u`$yH1CwWdR&@IDG)eAxddXNV@gekOP1QZz7I%9<*j;1Azp=7jg-dycC zZX}^{hOL;vx(-8(-J87?*D@1mk3}%;M(y}eucC)kWN4674K@^e_wZEM0cO0EIo>NO z+7OpL-21E{gy#DV{G&0xH_2(9W=N*26&&b9<_GnW%Z$jFt3pGP9F$sF{01k2C^({7 z{LVAd$r)DU%~hcZ&4;Hw$kha)FP&IwC-M~b zAM}{m`Nk2g!+4P71c4pKodzEZJ1)g*)0+qBvM5y`VV8xflx`?A2<&I2B~adc>1EK6W4{ zr^0MJ=!(#Sj*Zj*8SCHUrT2DLILEi5r4K;a4-Tca(s~$Wxw7~H%8?ji{rO?#bi0fS z;v#up;rVwMI8=)X!AjC%uh5ICYTaI84E=}sKA}GyQvF@xPVNyQf4w4fu*`mQx< zI!X?f)unh#I9Rh{bNfwTQrw&HPAavmOIuEa@vSEKua@5X!dbel8S%QAZYmmaQ4u{x z);1+AWOzzZSBXuWT1O0t85%JbkC=`CJro1c{#l-#mdx)Ca30i3?WaY+4%_tG z!15#M*4uIt9wk^wqBo^0nOn0XgpEMVA#u+EV6q0O6r80pcjv<(-WSf2K~aLWwp$4A zmJX}!+NMXEOWA%@6cC&(%sfFGUrH_wWCsIIHV$OeRSXZxY_o~m67k}klc-gP74AmFdw;rtbj_am#qO$l zddC#;=h1#pDJ527=N$Fmy!qPqb1kI(m1;?DE^MrwV9q1U8g7HaMs)D1KsxUFm@Z_~ zI&hORXA%0VNKSgXo%oZh0?}>v?6cCzntTA-z);F|VMh7_skpX_p@Y<-3N~0#$&`%F zNw*TM_?{B6VN#|8)upK;^Ya(r_}xAxy?~=AN;SvPm>jQ@Wh*}8!y@kV&g>w)cVwx3 zDhO2Q>A9|=2g@A8VUro`bKOTH0vs4S+fm`p*}#@;TWElWbJ3Zd6U4w(i*-(Mdmvqh zOmCWHCtC8DM%<9IgOnu;=}0<;w?V6ASO(^e*(nwz#0>& zOJz1z6;NSu$F^MQc4W|DINytefiMvuep&XW9n-I^6z#?sY3l(KOZwna-N8&Gd1VVK z>I3lY^>^AjNn=DS$<#wc=d=-5z=a{wMEn*rvyqN(8%bRpnCgbWe6csb(L#+|d!0@< z5ikdisPNtiQxFAQS5DzZc`b^7mbmJ@=@e)@9V$JdQW{@%Z5D}={_~u#0;yus;c1B#d z?{O~gT$3un9m1-^&K)1P6M#J$XIYCeJcl9%O~@@}Zm5#>*@>jUJIhjxgvh6w2W)@n zW;Z%*Ny&C}k0?F2W83%~U^lQ$ju#m-8#Hm$llk^bAgcId?yM;lamnS+M?@UAaC?d- z;fRu0M@d3PXBmpO2C*>_ciI=ZYV^x4E}|foUd7vv)F_Wl-gywKPajpfkK(PUV=E>4 zG6PO+sHa!={4Xo2i=&<mq9R9mUc zo0;tfG`DORy_$`|!YCfX$ocw}Y)EZ2$&6UA!kDg%d&IrtTFwOGbtHcucC`5ba_?@d zc_%oVq%0C9gcEM82V#}?FYZ9*bC9mp5s6D=mWlWuH#*|+!=DW`a@!K|bGm_;$aZPN z5SItl7^&$jP4;1H)-k`*7lRsbr>^i`$DGuI`?sfq<4Lpq^o`P^!BYBTv@|r zVj1|R?(ItDVEr{9GP_q;3KmJ;9D5ohZA^WwGfauXu_u8rvr$1n;Y#xEeY&yO2GSb3 z6Jn?9p}#q|Mx^68xR4pmeFITuK5ssZ;6c{rrdx;x;9%Gf(I$0fvc_vH$hu*m!Am?L zBTk%Qx)S-8eCjb1ZG*zk;r$oV%b$|EY(r57Inkie_bD1eEbHn+E~q_a$sUcaM3U16 z$e#mwaCAideLnu$YAMKzx!H5z_}iO0;I;3)?q@W~9SPY>>--rZGf2_it9>kJn%hvHU7&si z`?}bzu3gdPU419Xtv>VSE#NgCE+xHr7kA010W}S-4gU5d5_Z##ZVxI zk|G`(+h9Jm&%64TB;k3wkvN&F8F6h~r6W>a!`kHCAaMHM5E|GI(Zr`2=f z?v+=JjUGr>FW6;IL$VjBS4F;5BzPcPiC*C* zL%cB2z=L{QNi|p2B<~@tfr9v)jF{-Y`Lo7N1xeFR>QRj`i+2I7avrYL9mr1fg6RxZ ziFkTnk(YEmN{5Z!B@o$%xe5?pbwBzBwB3fX{s?UHbW9^P4^AbHY2RaVELG_}E-+&H z?71;MTbPed2ptVU2o~I@V%=xVs7@xHY3+ zX&G_~1%_lz*szEZkw>a&YNfR5OnqTMZ*Gv$LG&GIiib$oU8kV%evR9tG#_q@XVj`n zPTT`q&xJiK>J(9#vTrtZx753^`jEIq5sNyVItJdvw!J?g0MzAeyWuKZn(oOCqn6YH zpZk#zPpZ|Iu_q>YB^tYbSr?kbh;dz+NDS)BSQ@(nG_T*DQVn9r3aeNTXE*|BV-qzE zlN;+WsIE*&`WPHAb5Mi(BAu5SLR4)!(!C|OEG{qL^R7+zJL`KBjy|& zGdwtAV#H_+qF~+%G4XZELzkdmcJHL*xgnMPn;gkGS^rD>F#?R^*rue_YlR zqQds5C!8#<10jJsYvSU|xr+r}5^W3avnlVDsh!lt#F(n)JVnwnFJ@1el?ciBB?;pNyeJZf-E z4ElsWOq3`b;`L``N<+L{m>vY$Vv}wi zXx?(ykZ00w6Xrh_Kvcir>L5*jDa4HJO(UV@tdbqE(9+AH_1KtbnvwjV6nR1Xq~3Ny zx@XFqXbouNki309jO0ZwPr}tWw>@G9waibWC-w|x1CDDsu0P635`II{y2-^veD!qr zQLK@AiEKfp06|7o?NLKR#8G-;#-@o&K>p+RR_kD3Pv_PV<6+K=p@%1rz^ce9;*dBO zGx|OU4VY-cl2|jKIp%fia_RbPD+wxA86K!267XT{h1f&v9|y{|CYSRBH?>)KsLW8z zg6D8pkGLT+o;hsD57+&g`R{w~;YV1V7@oE7OFYz59WNsOkXig2gAK z#dkch^hsB#`!Cd&8PG;}C5nv@{WG6`#A$&{y)SsE#l4|2xLAN)71krZvVUkp_6tfn zhJzT*yCNRy+oBVub6RCePE>;B>omx-*cI`QIBO4)-3Rs(tE5|#*LV26Vie@RsFW#f z**#9@J3?KOx;N8C{KCzSSSzzG?6>an^VbMiD0Pmo3uT9fm-0Xnl%&Z`!I7qSylObw zUM62qWp|)g<30$0EH+9L#P?A33Xt4`X|8Wapc)H-Mdz znlNL#aMwcI7n>f8R|0KFVvTeI^)H}eA@<`05Lbm&-^dz#_W;^yTol9u0mE7n)4RfO z%9A6MJPEBfrD8O7&WKQ%mH3i-CgPKX_WIbR4XJTkaHj`_!MBAjB7Rfj2$*m6=%(gS+k;!YmqF$jSYF4qM$;&qfi8=RyN@ z8aRQe_@g@Og7_zE-lz&E8AP4rAS@oy(uiLto`BU#ZEIrwOK>3}i(oDCVk4_Y{BPSy z;|dp!EfS2W8~z3%kOE?#oV-sJO`2C%vc2O72$1EIcWfgkAAvwKcVya%6RWabi0g_@ zI?&j0E)}YhUr+ey_+99w+$FceHI^TVFM8l8-rUN1A;x9B2bXvQaS@UQ1a;34JLEmG zN0;qKbslzK7(oA#eP8E#YE_xBo)o^tili0^YI9>q!=Vf#uRP7^kY$;A(&O zQfChel^KifT*-(#v;5|f76k&EU|PdcGRdI(8jZ31C=0D&$&k?MaBCz_!(AZjuW@Ts z>!+vJx{azC+K|QNCJ5)A{@tSKdofb}4Z=ADY)6*a!jZ1-<#CN0BZJA9$3kPZ7#0do zM7?>8Ahun<=n-j=55qxUHk%9w-b_ZtoYoc_kU{pa-|EM21rYoH2&s=blUXhc455si z6pU%okEB_{Y3ErU)rigPr_Mw@(=jN21|(%urh)jFGlE!l;;QvuN;DwvHfI`%cua|^ zM-2CD;(_L8gs3zI>S&P3Of{G>N6a1xt%&E=OcODHuk;avofMfB#LLu~mf|8#7qRH& z`yHs)#$?Sye%Y`GH+6+iU1+h|d?1cd6~qKq$cV=)gk*s;mv_(zFb-cH5rl3IQbV8$2S}CuFI_cNCn7-YnI3^_iA5!4Lo&!9%alqqpHoCUW!1G4W`O{Qpdlk-!f++Fk_(J@ zp>|%mHcD!$12Z|C4ot7?{fGM( zp(oWy9Q1cOXXwcq0eedI)$O?az{?v{Iil>@*~c0OtU-K?vkXLhDUH>L88bao*!Z45 z1XD`(8}u3ynY94tn1&>Ne7cfs{FVt%G+%KSm;|fct%{%ZS-(qh5TS&Rh#1$Z_?uQ^ zD)QD4P77)=2Ofr)ZM5VAGmq_gSBZG%iS>x< z-!$8Uu?SD~zJQT)6mUX&mDeL?MrUti*(rpj_wzuN(h=73L~upi>pu8kZtJEE>6{Jr3xWSHelO3JvNI{>$h2km&y^qe*Z z^xU7ziMX_P&;%xDT70@G2~lJz#BF>zi)eM)+oZzxFe2Da{va^;-=_}KdEd7@`KqDV zR^8_ui?5t=m;i4;5i*Nd+o|7r=4jL-%)f)Tj)j9jtVcYx=&iECYU-5Dp)!?Ni%X06 zc;>r`P+&)*JAm$9MdMdIMbAjL7xCZ-Ng__l=~kj6z{c4yAL2C^)+0XHWm#Rzk~t~) z&h>`N#x_kOg0%uF)fAr@MWfES5x1$HHc5?(BsJc9XU`FNPeE2&<;0my$?5q z#Py}%O_OTZm+<^;`a+n9b=PIrbAwFLJKECKeiHN?={bgMx-K+y@D2$d8y*Wuhxt>y z&uxWxDk^a*Myo#&-+?-2e#kT;quux<(;Yg?B85rl2eg5O=)$=|%pZ8Y2YZq*u!=H> zng9=j?2g~wzu$=nab6GSq@PFaOCk4c9&P|=V`oAWk^2dj0h z#u8=h=yXR_Q&vSfS5|f-uAg9q(}p)jv{e78yJ|l?5%l>jaDw;Um24ht4fVBsOlNBc zO!}Bh^tV6w3!h#bz27USx4Elx} z6!D~I7l(>?e=(OK`X~Q^8O1^wKwO{TDwh!% zhIq<+mlaNQ0mNKi=}7(5Q(qZGil0Hs(7m2`|8iwJObK0R2((9G14rNGS--@HDwexXp}-?LNrd;nwFMOW&J@4sfP zhaoCeT`Mt-Udw?6Z!>71BxS#N27L=H>f|hZt#P)RYH?hs%u;;HDIoSdvQ18zAz?Bl zJ5xk<&aZfot&ydXU2k@nh2o%|5No&%`+|o%RK*7Hu>XK>LX3k3{K=X5%w&ut&j(`|<`UrWS4QH<u?o&s)}Syx+;|H^)9k;yLt^59Hc9q!vcX968wqK?{21o#L3rQE$yJw?g;K!3FCgP|r9#^z#Feb?%>89qlxpEPQ%8!%q z7eKn$74mzss5Bxj`I!c)o2(64ZKmu%+`7SvD4+L29CYIJWwOak$yTCR618PjT`eQ# zBA%=u3yA(TI}Bh|@dc1ib*q|_WA+$;O-XHy?Y@9ivo6{^*En5Gwd*qYoK{qVO_3tv z#$}z1we=*vS-K%fYm=_BYY|Pqg>1>?NBn(n$Kk)4+Wj?^Y!2>dM8X}ELFz6ua3P5w z6X7U`vm0fEqDuymtCmWYx-1T2N^Hg(ARcvV=tnyfA6w?zB+ypLp6TI(iptKp$25`K zlI8)N8kaWyeef@i3`uMrIFl~d>b3`C+0Z90WSWYBd{D%za7e3(V|GB(07{b|ER?e; z*vCO>OA}pV-U+dzQ|eL1Y3Fvh%i&dszCSV)f3YKycTPM3;H3NV{>C3P4?eI{wxOxI zhP`qqm8LyZulr3p;#?f0zBUt63YMV)5j|4&jYla$X=@~w=}@N`3p#4F=o^qM@S`~F zfjA@5+?R<_);j(Fi}5Eh`#Xxk+zz?FykbunS5&8TQx#t&5Pv7gG2jxWf7xs3w5?Mst`l`lDjsE?JnT^tv zD#gV{$sT8;iR;H+X~4Kjuu=-@G;l40zc{(R^x!V^d$uX~04~48;)0*f!X&Xrx+u=& zn=HhD9p3dZO$4Y%FU3>WROo{&A)Z{FG8|J6JKL=R38PWn47y_pATv$*bclH8Eg1q#4CqxMdKC9S#c>blXg@6vuqSMiVFBo5N5F)5LASMfzY z-e!+t(Hz?g)+o9&{*2#epX!JQiwGszGXSzHpFoEpeysPkD=w1)Fr*F0G-JM44ug=- zw5rzv>)62{CV|JXCfBGhsm(zn7GgF}?ueEJt=lq6FkiB}jGJ6e#O6!hUaD9TU3&=2 z^W=VD=Se)rAcnkNrlOxK1pg6gl7WUw_KNB`P;cQd^CGnc5nn=d>P`@mRWh(1 z8P&z}@yyeQGmq#wtovhj;gfR^R=6|Z-5fd#V!za0Q_1u^fjz1$gSFGP$17_Q3s-o% z*7qa31Z@l?-nNcx3wPI8Xi5IqWSNUs;5Y`UAhz3;AE&JyZJTB8u$ym25a*j5JgnJb zR3Yz81h=HB0$Wqm0n#o{?Y;0$)PB*l zEzN*3$H#`$=%DP5lvf<{*2HRu4B?MV1fI3vyIRh zGxkfWo2m`d15rB)eJFG5VLtcCEr5%oVVa>zj%CzTO<>MPI@|M)=R)9st$dr_0K8-8 zJiR#qUm%{X#ms}au%#zl4{-BYk+AFxb1{$SJj9sUKeO=bco%izflyeYcxJ-)5NEk* z5I1_yv8Vb}$Da?CH56rxi(!aqhfW5NYgy14>m1c@&%pdnd=@HIWTu!Vin@8PW%U;Z zWK1PcOR^bUh4CnN+`!ZvJWww^k zaa89gUZiV`rcxby8ut-PuVfgIL{q+*Xj>PaA7>fL@V5mtM7r4W4~jBig#2&YjuDHl ze-Tj;*F5;r8J|~S@FE_)`Mopp&c5EN3yCPz{?$Ti2DNx1ROTYy=B*J|S1VEw3p0Mv z5DO|=5cqg0UTf+a*j?NU4B!ZeXB!7ys&EfSb(iBXPms6f0y`R!i9F(ZK-+2iqL%AY z!?y0?M@|iK;8WP4psqQcF8XO^fBoP>jT=3#=z1I*u8AVeR1D^(MKnL>0~;d9C)_b> zfMeQ=UfgpK`&?>v7G?FP`nNTQn^7tg;*QgeNZNn;+_XtD_+V$G1-IZ6pq_GO?NAos zX@+SgYO_nP0gzC^`sjacH&kpCE}MXzm9Zl;(8OJZ4<9T%)QlMp^oQp z=XhhubI3a2Zpm%sXV$w=m1Zm6P~D@;@N@Rxbks*h zOEu&lqP+voUxbv!Fyb9e_$N%rR%$!DXT;Y|uJJ`TQ||3}JZsr3c`JTyqfs_Gv>_3% zW*CULPC`#XwCO$eIL&?3CNAoxkTPtFr$*#hO>#-@RdyiDh*DG_DRJVR;o^nN3z&eXr>l(LuCR(+p4j2A{J!JRunI#6rl`V#JX+=K?86l2oVoipeNbkCl* z{ZOGa5>=F8C3ffHBR+d#xrfa%S`kgf8@vJHdh-o^s6o`?RnURBo!240sN3wmR<#bq z%L!%{d#-v!_sw-4XlCU`?4Zj-VEdtN5EPZhY#O9heHC)WKFvTp4Ve&?hv@C-IZdk* zbCRs$;gGNxvV`+WC+*NsrxaA`V|h431i(uSq<}bcVflDc>Z4gA0R;o{OUXYLJ?a71 z;~x8_{X>R?D0xQN1P2>GyDoVAcLM`*q;i_2h@a8mFo+Yphabild(_1!Gj`&JL#!UL z>*A+zIA?m1YY!CW#O#5>kOUVi*vvB&jJxUKkYLg^i8WxK>2!zUKMRJJ;#!0EQ+pP= zh<%_O$3;BzyIyx9D^akeQy`QSycxL@{js8l5qW%{k5nHT4FA>56HHRUiHf8bE3Bz; za*GvgYug_hUQqfQU}EtiiH{ZRvkmN@v~#He`U@>KB*&j9Y-!)`j}%Qv?H0u7das<9U5t%?SQ zWNLwe&EZJ6+t`zbN!Rr{4P0p$`9WRMr9#ucI~$M(1q#+cJA8{$1)FzAKo^@)Q@lvp z9t9t7V~K)o4m8qIZBbsK3huui{mUygtfql2nfXY;-n2CY;(eUTz;KQ*BHQ19WmqJW!*iWzVmRc23&j51&%QK+ZkW9PJ z^;8?WE?&5!CF9WU{=dEeivc>OAvs#at=tT{1dKWng$o5<*AMEbqfILUM{~Q&f3yz8 zulaOQ=L#Lh-&L>xY6DeAifgvP48w(jZe}FG0|EAM(EKU!+y} z3ifI%2pWuSQZ|GIJ~a(xaLKs;`4&$# zdt{LD4R0Q7w72fCxs>5IlzugPi=RWEI+JY zhcWxb9!BM24@0zj zh*hw%N8K(h=bXktm#|L-Y8_6Fd{9_Ym&^O0U@vD}KZ2@@zbV*vg_sHs%{6~XZAZj6 zz(Jq)3idP{IS5upJFv_Q`Ya`f-z$pQ6+je*9Bs_oMeb;>Ej)l?lIWN&49e};xYX>D${ofesv{t@Q z*ihqnL0v&5xC8s!osQHlFc)!JKu!?t*Uoh3?uh!!|IRIlpG;k|aGTERsBW*x;HKrm zE+Bw$iUbf#E&D~W*{h<_!d)QmaNY<}Pcg6>u3NZFwgVy6!s|Xt1TlW)EcmDjTo58q zN#1Us#yXchY0x%<3Ou-{B<3e}^! zzO!R?EG_3*1|#`HwF~JwYBMR*QSzl)t=i~_ExhC^!OVL1={~yWf#3H*b%9FQonw2b z%j>^zE*t9g7d{k**Yx5ACv}E`WMV>^|K!1diNjOuRp9K9K*D)SO@Qc@(qY+@;HX7&qbXI5)9SJiDhHrcU%sD!{@Yd?nNb z>iiZ?fd{@nxo4wYsxRARL+u83fpZcWe=1lXvP!ku$Ct4X-v6G5a82mZWpl^~Hteyd zd{~@zp4`mqjme-nbx! z3lYNrHG{bK=aWRL8Kd`HGmW4$dVj6KP|9vt%E6D7xd&@77p3X==C4A>zr53!f6yb_$b= zOvP=yE8>jl|K(}B3It{fLz4KDJL61fP$i^lO)~4PqASfUE1@Lo$AGHZfKZZOdkbvD zzMLdtjrYZubleG&FI!c+p(ak5M*YK5k54?WgE>A-IUZk)^169?i1w{@d@eiM~M?r&Y-}>lg_e*l_P1B+7-Hq&} zItgOrQ@#M7^%U$bY8)8TZ|>`vKPvn_@fTlO{(`D4e{MyyrGq9oO-Sdwd?RvgXMrFF zLkn~q#0g)G;r2wEkJ^6bRB)MpYu8ajod^N_nvkn|3sfRbDM$cuQGb&M|75*YHTXVx zFw}3}8k&oVx&cZ0!qZ0>6d%~<-d%@7|6hC^j&s5s$L(;di#r~Tt2vAKJ3%-kVyh`# zEOds9Qt&tUm|stJX|R9>!ieVz_T5@*2vM(taLMNk%ZcV?3RlwfD`y0kJm(7%Ah5L) zRDg!b0H~`Hbw*@HcG_NG`PY(o*`J9R(&L?htT9 z#Jn#9K$%)2cI;3js(P?`;{Fy?pZG`)&lA7P1^bxDp>%C}op(ptu-g$94!cPEOs!f}f5BZHpH4N1U}LKE>Kr;Qjr zeBB4QZ;>}mdMsyKn-M_OU%sXeX;BDNo4=E@&B`NaJhY4HN*zWTJk()iu{0~e^zkHmhKn~~uAa<*(Kf_{yj zu7;lmdcss@CZ6FW5%0MAdosCy-{W#;0kwf~pFiO$nR60#%Q94XvbXf;b0bB~0E78wXSX^}s8a3#~;HP7Sf)X74#Vf|lQxt4Q=E zuvZRe81dY(tL=3pzWRwvycO!E9~sdQ-MA_7It9YmbJ~bg4d0z)=34lLTd^M$U-+E4 zN5?w`oPyEv`Dlpux5h>>4=5>;v%L~pIJ;}gFBUJsCkxF*B_9Ye@$P1UDYV)zZu|vM zY~Jo5JjcNZ3%OhK;y38|vs4f>GrV7Cw43HRnb?2x4rz!_9ScyA-3(l}8`q zAcJr4^GF!b3Fkq-y3aD&_lS@)Pslk}Xe?%P))42#qy}h{i_&3SNztGOZnFA#}@=b_6c>4HSc}Jm%*qbq$A%AK?505_#vS72s%wb*HGMyf z5+l<8DObg3P(|)FNg^#?$=OQ>JV<~1XDJ`wGY@2&%;_NR+WPAt%d?RAMDi;OT<#bU z!Eq1`>ek!Kthw<5So0gNLVW(jaT1>PFra2^{GK2+mEUt- zcNfeKO|}}#m_%hq3XRB&qhK@L*GStP+N-pRHzcOHg*Jb^*UH{5g*N6nz#nP@@uUo%N2ul0uM7#D z`VT$hCg}rRpG8eRr=6?e31U{EvPfe%k(qq~Xy* ztH1naYo=UAqq$O{n5dYmHSx=pH*$&r`bAVVdqwjL27wT52IWXH|wnqsO|JjR zTz&v!1RjR&5xg3)>ZMfheOxv*{ll$sALJ^kIk16Nw}#|?4v5tJ4HpS6k@Twfb9|4A z4RDN|95z0NDn5bJMcmN*{W~4SZ1|>=^~$Gw+^oa$(X%kOzvN0qbSrkAfIKxM%l<1; zk}Lle8Hi(eJ)-$``J~3w03>f1m27c z!FhcUY%0?e&f^pgSc6yJh8o3eJJkM z=9W{xP)IGWNB|qV$8>gnS z$1=E}e=1{}F`V;lCeHtjn}xbWd@3_0S+8W)G+4Sq-H7$@8{_(*McOU)HN3?-{)G2M zH80w-tE!f+DOvnn#&+j{Pch153U}8uJvnP=MQzUzY}Ka^c(+_*ENT_xt1<3 zSiaK?%GB!zb&V@Kt_%TRb?UpkcOff9A8zZzm=ue+8>3FzBprfHzLs~FV{oaCe51|~{gT_w zVmfPnLnk6PrhHhY!@Ao+xXe%F-4M+ajA~)7Y(zR=<3DtTL2kF>Sx&`huuC2uO@+iD z#}N^i7EVuLsWR~fq_Hkwj=!``209TulZ18iRd`}na#u#bI3jQF%36}ZOf+5|Hy$2P z&p6u5M{9JI{g4QH452pBZwoujV?U4pkie3ANlyaO0%S6F&E3=5*#m#`2sH!WHf zdqi8OB29JOb7h-%ZT@jjGT=yop*gND(4vSNmhNR|Ep*)2%mNctcUDbIuFG0FMNHBz zTX8Le-4MsGbNHjf@Ao{;??9*S*2u zaZ0!2ugIpc=&TO#9_CmeWVS*Dqk*_@SupGtTf^)H^_A%G3OT%^96Owpu7$%9wS&T( zZJGvGXT1==6c0#%G^?Td)1KdmV5&J+>rx*w>jo_1W=?>0{LIsQpRf$-LW6r<;S0cv zu;^|&7cL*BaBdNIe|YUld@sw{hh;HPa-+p*`0nAVJcK&n6DV2sXsa!;I4EyHeocTW z9`Bw|A&4m#Baf4=+44@baUzr)Z?wmjEI%Y?KiYyBsQ0d&iRAqiSfh@+DQDSZArwbs znq-sGQ*dzTP;HtqahqKzh&Y=fX~dOzF`yB=TS(jo%jpvr`NI4W)J=Uq#E&hIXx*_a zey@NlfbyX`F7P~#{fy_sY^>&V5$zQd;Hh;CqiafBr+`N4@p{D8o;#y)n*v9K$3bIt z&hT*~pzgm@Z@+5$8jvTq`BHoi)ZN-~Ac^cx2YF6R11;&g-Q+7B9}|mfP<1p@&Vm=$ zUI%ZiAmTMRK=RAxr!Kfy-P0rPn-2do7Xkk>pd9sr*tyS^qiBsLBF|~6 zHfd_1F&T7$@95h@RipYZ?=bSQ^WYQ&SIZYiWE;PPzQD2s8J%a6WDZdZK7FyX4k6>$xSl$!yRk6t%)ERf1+Hr6MHi6e8 zE^#e@RLsNBfb?AeFH1{KbL-*I<6E26&^9o19ugBBjX&~>?#Uft7~X6bw zE9?it`$2K)yj5?|bsCYtecX~6P;8#GcCilk0XcH^c6BP$>2JR3%+hFV8tlWJkMrP0 zSL%MQPYH9Sj`z4~dqQ#bft_Dr7p9(}P;z&N!xNV5n%|WxNwayN(9KYeUVyl--GtK> z(NdPjc|#k{E;9^3mOIlqVF8pZ>Z&3ZHVQu)Sx4ewYZk>xAzFS-^~0!cM55+{a<}p- z#H#z>T4@8%fUH?kXszOFEmCq^&fb4u`VS3D-Js)Bl;2Uf;#zP?H1R>7?l<^WpGx5|pFBh?Q}njUu8-ca=FqmYvlADg_?~1r!$)UY0JpQCW79TVTZaR@2lmziar)lt4-q3%k zO=2!_1+0U*i)MG{GLvF+RtN7oFwBC!l!VquLW0kH4Sn&ol`hW!B~Ip5h-q7kPP3}c zi=gT`uRKhF6VO`l$58E4mZzP#EE#U&T#wbQ0g z0}{Wu&{P!<<-i2-N|U!F$#X#&xZXy#5LX_P?f6?+g8kSSHjxeB?GSGq`C82KBurKo z=4*Ks;?=&NNceo1p+GPL5|+usk3iM6qRFaMjs}?7F}W z_y>9!pN*KLW88$XFvqV+m$Q9xXJ`<+{&|c}(*8CLrjh1n`80xoblZBSm3CYexpRiA z?kv=$79AST1~s|J2b~VZ!i@NEZhA~G2~dPOLQL&+uL-&>+txOPlBc%wQnmR@NnTHc z<VlrN`O3zJh-9e)=Ln;Yp>`PiO_EY!9!j3{k7tf6 zc-57K&d4kt8I7TryOj@QYOUApN#O(Sfx6jO!oswZq%~PL7Cf>ql%rUPd%rj)B9o1Y z%MwULy3XAF;}LjWjE0$bg7df?dL&&>g}DirW;6$xp5k{0O`xvX*gczRe9(Ez^)$Fb zY}ILoYlyb+Ya6W|D_Yx}$E1s$7$^5Da? zIUv&_P5{xj{xAA%7>`mhi*tyB?`=2oIPN{zCIw60U+>_rLz3Fc?h;oo8YR1p=`6G} z+v%WXkG2ck%>u8pCh*Qd@wPqlEwC6)`{LjnY3&4lP(2muWXIPK-;Yq0I6-Dal9M0; zgP|B@M$GLk#_M!_HJKln;aS`Vi&>D$@YO)bESWjkNI+i-8S9HUFQ_NKx2Lqr5(-s+ zMfZ}>UM}d=j4g+VNfATnR5y{2k63Eg(wOHAE*fo}n92|Pa7Ib=m;}f6 zoTL-IstBAeYfX+OzPD93ApT$?TlOVsK2eQ6=QWSPtf4}u0}OCB9$N&&;L ztDTcj9K7KH{8F@5FwiC3(@*0kv}2)x-h$8zIt_A`f^lSK<5t9|qY?1;E)Y4arJhLrFbuoqQ+{u~+G@2-SKeU2W5KZA>Y1$s3ned4)G;gQJ} zr_J1@Q0FcY84gX6I%_egLprYpd zZjsLn;F<^<)|g5B6cZFXHo*Zp7QYX26hP+7ij!XIi-)AXI za_Xrjv-t%BYNbm3vQbQ62u}7^0%dg!Yz{YsS+c%#w-f{=Loa=i-gkxHc043we^U?B zPv39t{*SHej*Iem`r$ZwJH$d!QDd)QZ!|li0`?Aws3=nHSg>~l3u{ABV{h2IVk|MS zk;Dq9#F*F>HL;iXJG;a2kl*{y&F8i~yR);iGqba^m1wdWi0s2A_F}~mrt|K|dwui} z0s_$}uN+1Mh{VHe+orq;@9!Yy5qYj6&mcY=F;Ny@Kjbw(llq$)NxdV?%7}Z9o~nkcKlYBuvxWg`9Q2Yq*t-vNHXny zYoc^ntS(S&9JiC4HQ_Xkk9OjD}*YpT;IrI0;MUyz8o!)1*jq^v8FzKcI7+L1(EcS${JxiVW_P^#3gOKi0t_`s zaO#Mkhbyhx_l^#(ymxh$Vr`yI`SVUe^@*Dv%u-HeC}8PAPHJ-Vp^2nM2tIt*aht+; zVIvAZB#chh|nzH>}$ggU<=wVCP@%y0cdq;>?=$?5~{>D0Ms^gUe%;ghFR$ABA9 za9cOi@kG0xvZPCN*vS7~ibo!_?Pe_FCh2rKs-CE~^!g#KV(uz2u|I%cr=Yk zg{dM@=kH%%1=5ArqK}w~dOP`2++-AJ+i?uo1P_pL1zgytEx;fLbK3-`e?8x)sJ9p+ z;)Sf4V5V&3BqvZO2%0yYDWkH;Pr8ZFIq2jN&L_Cv{Xhje>(+LuGZ0_w(zjc+Ui}qQ zka%A^7w4JU-bAH#yQb`Q$geE1L<=PO?If7HjMEi35A#_NutA?T52K;&jyg&3Y2^^O zw(r$<5ZS9H=*6W>Hslj!jJswvf_R#?gY$wm*of#IOc}&1<4ygJspI_oJ-9LLwvX38 z8F(sY>^fp>0aUYUf|YQXi!O9SCUt?}sumA_SIbonF?Kdi!)WbOKEbQy%cdHss*K3o z&lg&Vxtq6daZ~BOk{Yfq$Z;x$K9|UjCDitd&M9+T4OAOl*K45izM8yOr`9zg)hBr5 zXz^;Vu8Hv3!|OF@kIq-j>w~GIwMtzg`0h>}mTpns+$|zLK4Fx)A-tVS5$v_=pPy87 zYcjdH-I+QivD2D5xS-ANN~EGzMBhG`+fc4gFw<>DPpaR%3_?+o9q1ls5-j!Gw^Y@5 z3i>K1o``DCytlYvzgO2rrVKzzg;>?2 ziCoM_@QI5}ddh}~RJuPHQH`8ulpxUvDU1L129qO?3RJUqi5SgSQM3}_*w~p6PspJK zWo*QwS-j(gqyCCMy*`PGsU}_IH+mxF>)jgr$#=m^1Z)5^(=wM=od(rXbcUdhwjyZ( z3sJ-rhB?OCQrCQieJ;*V8Y79Oir}!EQKyZ4v=QH~<=R@bQ~6@feD)ifgap%uWzCHR z?OkGr@?c25pvDNkyjrCT;nLSRmUF9fF2O@{m*Bo>Av#3LLY9RBkhe_42dIHn&m)__ zLKD5*gh{u2|E_LYvWcGvxq-gd;|2*1@y}>Wl@xw@Amw9=duf!?${G8FqzPK>)IEYD znqCjmpvYlEp1s8;l`oFX!Ngz5gH+p@YY?n7EPgQ|4!0WaFyvl~W8WQd^K=(rXWIS)NH8Zlv`>YloZLLU5Wg5&0{->fNg zZzhZD#CndbeFeW6AX*$tHL;bLBK*%7w@B>qMg;4u`|yC11Qkj{;t7?9qJM>a8bi*H zUanY{(aLdBOOVUApZrM<*)1|5tk9o4g8L<5m%NXJV_)%Q5zCl?$R0SjOb3N3^Hf$e zgOD8goy!6v&K(dm21@EsZjIpLmqP-S2axP;@3|&+ayay*l`n9#M_!eZqH`B;vn`Ny zbVl=u8stdq*SiG_68ob0Cio%s?hVbi@7=<;N!g)%g0;*nKJbl)`4GQc+lPD@>+vp04tC(Kl41EvQN>~Pb&>WP~T<{yP6@HzDDqg z*I3-i{$6HVB7RFA!k*NLwG;Q8O|9gRU!l;<;o0(7JJVI?E~ zOVPhHTh+EA>qsxd-C`}f6+1$`**vtf2zKL>3KA)wOl>VvJ#l)S<&3*ruBj8PMcFcJ z?OB2bBi*MiC>#l1CMnB?LAtxpSHJX*lt$4FYv%+$O4@@;G){t*_O1z|&ovjz%9^TJ zDm%)WwiaH6%`8NrHsvNh5r5b~^2H!+jhFOxa61G$9`-|ESqR7YQqei|1E+xfg{gR5 z#g)xw6r}aQIOlCeS?Dzj9psNrog-LhNySd$)loGG$7?$!!qKZ2o!?NtZ3e=2E6gC~bgb z(*T>kMY#RTjd9x?SJR3s^?mNNh)h2c>%(iwh_B(~YN$`(#qjQQp zK{30C(B#Z!u}NiMl>R&LSBZA{h0A5w$VQ6xyNgpAkkGD%T-Sx^Yd5m&rzLM8_mPI; ziwnnJSmg{{zG(YQ2@e6abIKQckKUe9ywl!q*BJ*X>Unwzu~nN6WO_HW9nV=%HRH+i2;A%}{- zsphdM@+QYcyrkE=oJ43Zgs&{tDNFIS2{S7%6y3ZpeS8r%3{PMW^HCojLU73Ssj#h* zC$em$Z(~+$iCQW@csZ3!9O{w_bvLdn?s8mm!gSNz8%?jbQg@=iwv>|Ea=qFc6-Fh({77VVYoW z=N^yMfmvZ&V#>K3bMf^Y^e2)Rs35_2y_WWsQk-mTiz(mkK4q$JBPN}Jw@qs6GfjJDTvYNCZq)CZj4^^o-tOu`OVfxkGtub` zFh(*7A%fu4_1H}42)(G60q5ZH6vFKgY;*CYGT9cD*?k6Oh#09If_D}=&naw288E9M zbxgSoE4kO9CNvOp4!|%1Sveb?o-VAQrk&7ZV_@PRLhyNN6T~rqyCkYxD_xD`P5LIm z6?UQeV)!x_(H43oc#weklliA5>vkX-a36{+mj%fBZm=Y5K}nI_8(&R21*7S* z?s*O(`$x80rlXC`A>+De+HgO^>ymcl^!Xi2EBOFjRw1>B3-w#wxV^*|ebx>)l(?sK zfVH@P_d2SI{9bw%oY(K3Wj3`I1s)#QyIFYdfY1{9BRCWasJ&|{^3uW)$4;6uWaT<1 z*>2VddAIMr_))PwnO7qS@h*tX5c&wtd^qL3>XgjCTsRJ55+71uUT05fLVa#9>bB*& z1gqYzHAQ__PEAN~o>ejL?HUg^^Uj)z0TP3JuXW-ke;@%5Sa}jtCUSj)^NfSqKaT%Wm zB>yxQWp?OPw5eW{z2JAT&H{#CLv5Xna81#vJ0GN(oWIdAQ2aVk*W6{us2C-y4dDg} z*4tn0iAY_pYas@e<_2jiS+}T{$QX*$jN%Ei`5X^S@-C4?jBHu!1Es}D;Kch&rX z-GcKuke$!N9O^q$r!Gr)qwuFm2R_o+T8J;R8Ev#jo^1Pl8DV0H&*lf^ScvQ?oJX4E z#0DKtDJ(s*;K9{K^3dnoBh=s)4MTS-M8Q;)wJXQGn4Rlj?u$f4bh}sQ*o&kY+?AJT zpx*iK{DjFUo${ciFBOdVAxq8az{DEV<_>nvVu+>aS($KGkqA4D`X^<2Qj70)RmI@c_i}UH}zGQmy`Mek1a~!6j-}U z_Y0VdAW1EC>fZhrR9InUI)Ep+PQ7unu6`)tNLgDo*}vGF*Y93qj$W-w{R zUwy3GVd@{4rLRuyk(Ax3ebWwV;?maf$r6c~3wO+!Mz(4{k>P|>r=*kF*2`Y#)QRo^ zja5C4iL1M^2V=MVO^&{WK4qO`4v` zz9Dj&o=e|KSZ*O)zrY!68n;F8(#yaA#j_6%XC^>fPVB^=zf;LGKl2_>?C!Wz9|WkS zy-<>Og-|AM`iT9Tk@uMUzh-lD{%e!gBC`v(OAByw)22VES&I$Q>7B>Nsa$YXD@uFGA?6~XI3FNST&hn z6^D^s+Cys!;kpF-emICj0vK#W(r%rV$nD0&8Hl{clh)uImiAtUVc?KQ;mn|Bx>&S@sp=#E&;%}Z|X@a_0)f*~;!m!nW?m{HjdAs$KVmWIX zKwjL!H3$v~e<8!LG#7SF^57L;iFd|_$Qx6k%Wk<5g?gb6(b>7Biz(|THdP5FM0p9X zU070DJ>G4r^J?Xpk?Ei_h)FH-iu+t%xYR^i5u1yGYP`kM%;Ypci5SNUgGYZFS1#pWYTFGY4`ZB4o#y zv&-ZbCxT`%eUR}W&Zp;J#6Z17xjxM8X-jI=&F@#m=p4*I_PhJx(2q7X>O8^Bi;rI` zVdC=&+z^X>#VRfBL5IKleURejM@#e8M5yRfag=zq3i5j9_t=_h@5E|}*$IpHF>aQi z?FqP0N=Yz#Ba0P7k(_vIFwO*)qmvFzp|%UILD02%6DvjEp&dcrM8MQXf^(k_$X7HP z6r(FEeP3c?fR>uNJX;4c{ZK)Izbpw?m!*;%(X+oDdB(kvHKMmEqN$~TmAV9JIPCp@ z7T#3yM%_&sd87W+99#?pr%r3aLIU9`X~D(GidhA&hVEcB1j1&8={(zYQJ_iYfrFAr z;52UZABaN+b&%k?#ctBP(L$VP4f$RxjM=|zfN8}BDEfEFv$611wZz;oT^nJWj>4U} z9fIA@Hk_qcha@7OaHdp}(Jq892^FuZprL|QIk-8pl{-kZ_i;oZ!oblEl>G+BNLe#; z9E*7a&bKsKLdVquq($=zYIK}-EP(K)4jZZcVaqzfEEJ$qPAR0uzWwF>HMx9!6R`%9 z1E2Q zUOMI&T*DF)VwC%2FfyrM1b^H&yOUyy3j$#fA<>Mo2rgT56K`_SDZykARLB}8*eb|c ze7|yAwH`c%=9LsF-FO-%@$GxCugbgf;(DYMEe9kv(71 zlH}*UK6w@*Bs!48#q8jM1b4R(J5?7#bWk$Jau&f&7OPrv?+h%Q{)ps~m2XW~bSRaG zplu+M-J5`;Ra}>#Q$44;N({)Th`q=Lh$X0!`*2$XQ~wI|QA;v&7Ia?UwoIu+RzufS zU!@uxI#0u2$63Cap{7DwVGhjYyaT9G=23koB`H4ZfcT%p3#iuwcXtWtt&souzlMs_ z$>ktSk=T8;BuI)DH`OATGBtjqTBMTf?RMkN4T+?bPq2x}=|H*bmW>J@5(y6yN$y&r zbhE0RCQMf8dP}yr6LpgHHTJ4bW>?mTvlF&=O;z)KWd&Haw(ss!D%DY1q_2ODUfBq> z;`92}xN;>aXps+75Y0$z;P-$0XFcTmV1I~E0}x3bpqFuP*us{KR8hg7_0m42xS`!h z?lJG<5T*9{&VUn=Ay%gx9}8HZb914_yB|A?$un4c*=!yE%0s{N#fa?bjr<= z^w5ooi))h*qV!L~)rXD_bJh4-`Y?z53&|(?rlRfk*o}@X$|>QX)nRwr&0i9{88@p( zf%jrRQnp7Y6OduQ$4ymVot;@lC0ow@JMBNJo$bn7wuF-|dTHMXTsX23|AuP&$2ZU>%yG7UE=qiHh)Zxd7_Ura3(7IwKL~J;IU1fgToJ~Lexa?a3mbppF{We03#3`8!?lhjc)DvW=)K?2Rnq+P};Fp z3u!aH<7`FYn`d*)QK)(Kamqv4X#|W=3y?SieUhO4sGGR9KpMkKORhwuGyPP#3nWo^ zi{u52McO8v+E21p+a#nIwcpZ^qc_~LR^#$`pQ9I7mLozqVV6Ea(4>J?nj(bER@lW; z%$e+IMh9-$h2X0jfzy=Dj736q!M=h2s(u|$<9-pPY;-DXsgldZaWX9wzwYKbks8D# zH4!OC4$U7T)|H2q5lhBQv%7XeCiRQp%T_1WsD(etg}X$_sU!L$t~^PaCtk7PvI&w; zu3V05=p+WV@5wyp6q374-ZNL>MDCn5g0Y{GLP;MXIQ?=EoRkaq>DtYBkhD*CKKLuV zevNwLi0L{Gj*L8?@ZW`}Irh3xf3WVqEl=ZJ%LCzy0RHQ~)K$J@`aZg@` z;x$kIYZJ^3Z3Y9~55x;9Vw$&a)mclXR{_;RqGB$qMhmI17B@<8O`mpJo!xdQPM>FT zK0&`(&m)Otcp;cpu9braXAwNo7D05*kVfI4vvmoN;V`MRfl!wTo_g-Fj5aKFrFITd ze!f5Vg(9Qcc1%Vaklg0%jN=;2z(lEx%`K3Z(y+aaqTviv4DMy?90v=gB{8)e7^(R{ zp1nmVJ@5Nak@YXj!o;deowpdTw(Np`*nUG=TjMi>rYdYcT*-vd3&}smtV1k3HboX* zh1Tu}j;Z=(s<~40S<4{V>e`|B`YIW-ZX4XV_ZFh7zK^#@x)}@plp01Y^ zCh9g|OptVNw${|1a>Fty(WBAGrxu=c4?2gQHCbY^Lp zl>RB3Z_zt&EyTH|I(3Rk!|7G>c7z7umpkG{;XT!uc)uCiOVGc3{76%sxzI0OZMK6W zhSrZ~hi~E*^l^f%OH76mOx(<47mtRJAJ*c@A8PK3q_^B8X6%Fozhl2X(-dg3gl$G$ zkoWh}mhkYRMG7m2wOdG7e0-Q%7Ft23y63(#a<7%5Y5C*X7Q*KZPL;F^>!JUEAJopU zaTebw5l8TZ9T}yLML>J)h9nvfL8s)Nwa66NT19)Mc&2R&C*DBY@X(Yn+fB%7Qy^uc#cil!Hn0-w6bX9!?QoD?4eOHgQV~k!?g)M zynF9gwJ`;i$Sac;$pebpeMoeQ$8sWdHqwmagXFKXzKV*Lq}6rBd40YKYytBV zbSjutdIFaDj?VCj`&OMd#b{KyQo^l+Bs#az(XnCS>hNzCGHB!kyG`nTThfMX&S1u} z5b1ZdN*^67ejTn;A^&Iz4@HN3?0&yd5mDAI9PVg$n)R0(_7N2) z>RO5`Vcfq;sNqmB9W9c0`?{TGo^Wb`mOeYLqN!QKBtF3-juNW5KKiQ+*K8s@c!C4pAD+mHlA8BsQWQmd)|1V?S@ zXQQ-~E}eOi5Fg6=_yVIQf$wEFAH)tp^1VMFi+klj40oUN{h|n@KDrmaSg{3Z)Qff2 zvA5nJWYUKSu6la`&&$fgg*JJXVy+!))#1oHK5HZ<%jkb4c|-I+xz5GZEwj+=+thM; z-U-WzL=9@2V6(op5Vtf%=j9fX5F5pJ^#*eRf@iPZxUA;3U?I=#JS10nXa7>MlqYq- zQs|KpYLeif$G#&J0`3mPEi_^$ltnPk?ZX(7k<~?b8r!fYZBE>D(IQ~GP zzU3?eS9fD-p>X8%Wr9PG{@I5Zq+0L;(BSNW^$)2A_5OS~McdARrB50vmVNJcT%}uy zBx-};*L#aksV#O_V_p&@M4f(nI#(?;X#2Ke%~hOmP>-n^!95C!QaE$Wd!%a03Jn&7bWf zXU|o0-q(r?5VUw*U4+d9-^h0d|NhC7S7aMx)n48GwB}$k%K<0JBO`b>&PIWWSBF

(?3=>s2$Itn4E;@BU-K`FZJ{@6=SwKHAwZne;{50pXwX z)M|;Xj3fBI%Xn!L(XBgwbB&U--;Lt#cpy3H+lTVB=P2(3+RQIs{Og5U`5pV`SmOm8 zHvJPZCF;5cD^VZ8%p^~5k5ob*!T#$SUM-Ye@XB&D2&)EX6Rfn=r!CE`ztkLvT^w3E z6=4C$F=WXtmobB`297S4R z_6(h~#1rWZr_+MVs|`=OybSEEVY%lg{CHi_11#U>V#0jxSUT!$Nq7x9-O3oJ5j6R2 zl|i%Z`37NzQ^vFGGztaW%Rb@Rj}iP85~*Gtg!`35U-b~&;UZCyhA81rrG1JR>MBR5 zobx%G;8f?G)s?UzEvrA**6i5B9^8PdKKUHj!RR7~OEmeLW5Z~Lw7!>fN;~**YXs9j z;kD7@xDZRyzVoOsb)sC0OAxH--Kwv`)wf5m=xJBgrL6bn#JD<2YN=}rk)}ddo?hA{ zKP^vQ|r6!c5>0X#{a+K zfTwqVxpte2$O||_@Lj+p6NYBbUa60F0LdB5r2+N>?W$|<_n?EC43NKtm;iD!&|W~j zC3q(NbR(MS?h;Wn!7ryjS5Y9PT-a|KQ}ZNbEjifkKFPpJh9Ruhs8bb=qolt{Y4uVB zqqQIMo=yJ|k6n^9C>5Z!OYvz|>ZO6`#>9_is@Jvy@@z#`I**7XoG%mSV22~`u+S#l zByq+zM-G-$+c_QUh=2f?gGM5qMnllS3zvfEh|L9hy|TxVs7cub*IrGkuX?onAvS56 zd&(lXXhToCB9Y4037nJoBV`j@KJS-RBs2ApON64{cTJj^NQm_k2|-Mg15ohqxE9zx z=YY$d)nyVmSq zo+CiLJTKgcX}z~tvszv(4USXG!rBc%9I^`!LdW3izBM+sAPjhkvd!S@s>Q&g%vE5N zTao2ZTEoFUWjx2j5p;Y#u_+G8h>8g*1S9^uUy)c+i)G_^k0*zrwsk^gl6dSVcKE_& zm+Xa9f#8Nsr#EYs#iwp{iO0& ze_;n>;`|%dn(tKGXdZ2&1$IndZISnRSxsxTcV)gbVHtHC(y6BeFR$+$qr}^7-Vkp$ zaTdW@PkaJs5qJrY4EEL`3WK0bkNmW_8tBl~yq&wS2oykI8(j4Icmt5tPXG z9~#CzL(}|1!Mu#v)dpm>2i>H>6Fggedx)ZBspc&V$gxffz#Z;DRHZTmZJs`cDSm$CDLI86oTxFT4LXn; z_Sepo6RB~!R$~5hJ`M3h^2(vE=hPv|mVY^UCX%aNvy0bE_3nHeN0KZ}xFPsu=}a@t zbhj9$neNwH8!VOsEITMNy8f^T6`@~iGRkP@kgHJOI}|$uF>z{`V9oD0rz#eLvubOx zrXeG>H}ZO#UF%;srv`EP6Ye;?TocUeM2q6vr)S`9`vBh1qX%F^-`O7&uz^2BuxE6K zgGyhHoR(A4K`X`&Zgg4v`WR<2N$;WPlv@G6jqJ%h@%2&l;ivj=TO##edIPVq*IB1^ z#agaVjtddf?_6W7DC}$*;XbkOP}-BJkl?T<1vzkT8eM>Bm}%>XEZVcl`LQSrdmHOw)pLo^^xU0~bKNpC(yLx&qT*b)CtZWo(vn^5OkdH|hjkx~hi-{7~iTriqSxeQ! z3M09PUP!jSYrkLZKhj#(EDc+hMpBdP$|E4S_iIKC5oU$Kkr79XGh@RdiL5uv#8uTO6n8)Krb~_P z>RPZ^yh_z|lG_{+-{7{r@PwmD3s|3>#EF(L!V&TaQv?^>+;NN5vt95m4CgF@wg+}0 ztR5+h5>x#OeG$kAF*TvdJ02I^7MW6?xndgf?w#80N*L}dWi{IEA0KL{Y#O4a8~ow+ zAc?+DaN(eUSIW)qNGqQ0DZsMHK;KGA{rC4}`TZ4251lmswxVNrFRNqmI3#yH)u=03 zdpj7ljj0D$i&v+xw@Ym!GYA`=*7TTs31L6vB=`M-XjH@@s6zxxY@5AT$%h7-v1vn@ z|j`A^P7+cmiXf`>}SG%RF?&LXH?9&b@8T!!HO3q!vsOOR9vbLy~d zj2>r9yBTSaq7f|ak#QWwfuuL;AwjPuu7@=W& z44o5wzQA2T(#lM4t}zB#CRI$fN~4n)@GoZnpej9t;M;@EA1H+4P}SOP)Ue3tAu1q( zc6V6cxZhdDdqX{R2DhP+35EXiJ-97`b)w&xDi)ug0eLPzccQttW6L})9tD0Fwda%K zV|TY>tXcsq`Bm3g5*gGXY7z>sxxcxC?6h0V=;*<`vuovoTJ@6JC__+8yb8`liaX5_ z!TQg_>S?wMk9Ls6_i;YK9&wE-)AH^o74cJ6I1Nl%4W=E%We6UgyB59{G`75n6`wrhW5?L$zE2XsQZX2PNx6}dMm%?e|M{bDV^OTYNjt<=m%HF~D3!1<_8=9GER>a9dV=~GAE2?h86T|EP zpl+0q=#uQ>_p@T#(IvpPntXj3tNFI2}$cF7k#D8DV%u>WGL=6R9r* zmt?FjMKzVKO=`sF)q#DORl?7~IXXhw|LBB;DiNITy5NFFZCt*DQ8g2J|9Vt@tu`K9 zLvj?(O?in>pFBj_+6ue4AEpy<@;&z3(WpY*CAjROIv>Z)1da}*wa2+UZHY+nbaX4%bW&%uzMg9n zjQ$)IMjDs0W;RC3fb6hrrD!D%%`M|FhYJ&Y@fyC-6iGy0+u3fwSvZMZ=!v)!3SxU~ z!o;=~sS}R=d8?Rqpcf~+uyHY?k(UIf9B<>UP+h3#JBYIXApS@Mf0baDF;n{)m3=F* zbs!Wkt^E6L+0Tm=-eD>;7Z)Faw6r|1@wz#s2nFhfCGEZbC91RAI26~SOQDlaJsqs+ zO_F0?8N)2@2tn&yU-oE`_DhG!yr~hTS;u;JRXW0gpD;mM()JDRk9f;;e4 zboA2s7xG|(xE1`joyd%2PS+p#`|5h*f)egm2>1SADq6eS* zDvC{3tdyFO`qYoZF1BLN0oIJZ9sn{>(n|cck4-gHDCk4A*D91l-BB>_)=OZIr~%09 zc)!LF^<<08yO+SOgqM)Faq_FG#ysWx=ZoYWWBQmHldXkSDppJ`(h08w-_~)fLF)tW zwGGr;i<%#EN*B94a=mqn%3|s@h%G_w5f1Nj7rinG6E~e{VcU>IA5W1Lq_-75)(9+L zFPI~Z{eS{9-X=F95=1bxL3%sUe-ghqPuq?A^_CMkk{jh!=%d$*HC^=TmKiCWWj-Xr z+#iQ`+cUZ%UYud5-dv2FIKe{6zgJL##z4^Zm-=Hxa5PHh4})S-+tsR+xZGQBB{#C$ zz4ZaYuBC&cs@Ie25quxi`jYU>G;eybt!0Fzd?#n}rSxE6A!NFqm0~Tg`O^9*0$vbppe0)o8>&~P7(aX^#eH#eg<_8Y z4D@RRV~{kOF%vxh6pj~x{)|z2TVrUQ=@80j^aQK^asYvQLJ=)6#Rd~_H1P(%J>!G= zRES_ekAdDQP>P%hiS3XWj_yX-KJ;Mk6ou_r2l%gPcaWRsZ(FNb#5BXgY6A=YG;W*V zjMOGaY4?<5U=WkraxlBY$csy;j?mdOZjW~QicHSbF5~_Q6F;*#h6Uu_!W;; zZ+vI!Eri<`4zx*Y)NuCUcM9KfD0e?%6V-Cz2kU?8p}K2mi-;zfv-MWO5Ra+NPUQF( z#5jJbdmK;r%m>XR_0e0Vbwhrr8MKW%$Rnf?oIPr4Nk!ji$xdV?!q;+bJCLCv5vrhJ z1l*0Z(%$qpZDNY%N@ULCr9zz>zqQ2##t~7{gr1Benwx^(ED!@K8C|*80p#1+pBDiw zF_Y0tlOODcXB7o8_CS@lES$(@z2 ztL`KP>(vEKVw4@<&Yr^os%cH`w7^VLFQ`d^6}{r`t7%D@s8{Tfc=Og~t=x+`xoZM2 zlx~Yp5{4{D-$Q*dvWMPB6ig)IUxaB%nygp1c8T~(wZZ|iWI}RE14i+5#~|;Yj=u*8 z&v;;`pbKVl+zISQTUDDw2->gu8yN}1 zOi{SaAB@?5IfEoOy8<3XL95L+dpB{(_sA|yb$OATP&PE-HHZjU2ttD^VA5ih;7B~ zD2yPQdq~j1x_4KaI^Gyw*u&b}l=BIGzGrS}+BnJkj!9wj?ApZ!TU2fJk#Y z^2#J*jN`-=LUr3GdL{A=LbYbY?k`c?l$e=j1N;`vfof^JS8Hum znLe!S3js)Z`rUx<6h)(++N+7sTi1EL)3|<|5f0PATx4KEgrPStMp{mD9@fJ16eLH= zkAml^Z6ySGfgzL9MO?C8y*E4zDJ2$^{GgU@c4urfA)z_e4zWn5kr8}3aGnSr4E4HD zur!F5!HK-d&F6vyUrcNMr$PbbBgh^Lc+Vx}_*37naL%63LAz*6{IS_(I1NykG)a3C z$1t)eu-x`Mf=mK25-A_UL^9&=W|}T4v|8Ba2>70uYav`-5jVm zje_9RQCY(CDULD<#$u3CI=d3X+a5`fmY4issh}vl2KRdt8E8a)=~b znv0Wv4i>*YB)pImQF}c1gQSQP?S46B>5|F;VDDw;y_Is5-PgBbwMo zsq6W87oA?g0ADc(o7`I*g-P3o<%!e&q_yiKDum|)IUYit8~tVtJE&n`Wx0e5zq7zAQh)#7s|(8ow-;IItW|3m_OdZO3aUC$&%y@ z@v6;7jdZwr8cT-{Z7|`N2Ae3Y0m`PCD0dlV-2JFSbVP7b$I*_8O~_$P8qXqAfgVo~ zg>LUoA8sNhkH^w_GoGi}q5+PMJ5Paal0C1L-y&(y?>eqpZd~jvL~M7pvKFzUxx?d7 z>SeXkpA}!0l1zRdJs(hLd-lmpfWisEve1r5aLWnYbApX>=8RHkk@^lAQI?mZ$V=P& z=A!xlHWYL5=o0kJQ(TvzeS;40@a5IvAUqnc;5Dz62Py^V4k+${C1fwwj%CUE2M9IU zRj-!e4?vK0#oHh(iE2%EvD=R=H1^O&j5sZF9Fzq5;0rIV#fkb^G zFoFYfy*3-MC{Yb!2*Wy|{f!C{G_0)|s-y`y*RZLmgWR#m%kF$?utr&wOykZgOKa7Q zK-G%yo{DY^uae_xnBuJ3C1}>J!*SZIRp2C&O{%ndC}JB# z(?lGFXt$zUF6oO^=Oh}&jm#}kQXb1{dDZV>ro!5pHb8>h#exc8 zhMt8l5{3z;Kfik%F(vSZLEPiZy1Urp$ED2}VS+ z;1BUhFD8z$MsSfp##ktdiX%_&tFcS91%t5_Ej*wgMj?|%OtAi%?)|7|ZN!NT!Tg7C zO8Eq*1?)u}3g-E>luf~1ms_rwIquB$@y@E(#r8$LC?^C9^rVhZn*=M*jt`-Zb#x0G z7ddjYio`?G>h*4-Ab$eAoFH z)au5#s^es)nkHDeRL>l>!(=bgtDQZi1iW|C@-G@kU@dZE!Tfv0v7|8zT&2OigEfoZ zF2gWoA!SDH0zK{S;;$7|15%Onh%RF%c1_{gNJF10MsJN*6DMs{&#YG1s4Or z@lJVo&=(d_smc)hs(z`_63^(8Y1XE7#iRF-W=SriiUgbM`iIdnLWe9(9mLCbSY}N) zpJ3|AXFKJBk2RPYM6GwQd@$pe&Vw0?dp<16_Oawp@x)p?hYu@5C#JGx3lVFJXPEPw zKpaTs<_WqF`eOsl2Y)`vV5&lzQP<*E9z<+1tHM0nPw09k*ClxDcEg35uE$WX^}4)q`j!HbG(^hx2dW|F!`*BJDqjOLXM)3JqLHMi6(DYL`^Z~Ik@6t zWW2h0tTkA9sqN`#czwetqq!PEEB}g56c&ow_THp7Up7C_ z${~OY63nR)Cn_$(XhPbW;J}pnfO6{Ddm@2W<=g%@zwZ`i43ytI=qz5^>|Z#DN1Ir3 zq5=B94Uy4biUz3UbW(DEJb43G=Ey*k{g=+pB|Lt#x?`+e+||2w-KkDAQO4jLK1@aC z&>n=?Ca*XU7MaoxY(CtJQoO~OH|%gU6Uoo73v6f|8BRKnx;F<)-2m4Q^Ig=>CV}X7k1ugIXv}6U|T%#B8&?!gZ z-4v8dJd8R`aQcy_YCz@a%eZ`HG)jNY>Kdax%uol5R3wQdYSGm>eI94xXM(|geL`X&^>5T zK)UjWAdD^Cyrrkw4dsx(zF_B@-pJFr9qeoDiNPhZka}h#k48eU>)rE@2`yem+9EZH zatY38wxYIDx`;%DFxBs#*i%vA53%UHp$p_c zVxQKvDDYw0XFm-s2K~w2gaOD){TS(?Waxrd9G8H4TBXUhgNmw>{$Z37vCmm$9;9i> zHlJG}LL5{jLxtm(Go1EHr;d7tBg?G8gM~$lPmFuOy-z@%!$E5cq9R%A@N14mLnM>< zWc_!>A~#khEOJ!Ov`T0kww?QW!y zSN9J_-WVjGT9w^Ou9xfrT}jcY?(cX}_xIScr4i#>5~M#S4AV# zHPN$NCvIN3&c#@3)%|^h;|*{|xfH&5V>xSCSK06f?bWF8{VH-t-;7oZYIGcVjR+now@O8oUi^5FrE{x#Ch>_(86 z{E$lcBDnJAi9a;`i1IZ0Ts!4}dIL475@gW9mIgd&zluib82wdoCz*nQY+YR-B8ZH0D-_{kFEY8Y#(1=KHV9wNo0r_GuL_|Lr0! z1Qa97cu@Zh` z`Hd%9i{#q;G7%|GP96R+7oL}}sbf4&BE2E^avAahm-W6%FNEXpqrR!ZbA?bHU*vUpw0ertU}P62uB1?bCaQ}B=e3?-rY2F2ao2iu zvCsGX9=JIQ{5|F3^|T76u)~qeo<$iQDe{@KPrvck0tO-8jhxF{F{HiU>unh}GX^sOX1 z-!413;25>&Ck9mI2kEP0Aai&Ak*gl=k-hn_F_*R6Puv@VXA_S<(iC#9hBui`_KM?2 zR)`tX+!A~=?fyCqg=VKiCLtbA`2=km8xCsn%Vr=yl=BJN`ESDj=^Y`Wowd*B1>-?M zFHfe66(~__a{}(gk}X_zSmHmV7QYWg;!VHdSqBwy$c69@t3lE~eSY%w#mSn=68Gsf zxia;CQ1!$J&E&YQ$HdM+I`yC6`YEE6qDn(G5Y=RN*44<2wmpAwWli0}#bqv@Rp$OL zMX7!d_vLF!$^Kv6fay15`Xe~SKdn7YR(tVzJs5?Sv>emd!D>SDNFUIcZnaX>(<*Dq z8oOCj4xfaV*Loj_3WQyWyAGTFzsa^WTiLgWv^#IiH8`9_UBUptbGK`Xsg3X!T4sGF z>WxS}debsg1xuDK|GW-PStdLnf(<_nnx>hQyauM~y8Vj=P$=qFVuh8AvKB9o;8F~Y z&$kYqpsTPtml+{VK6Qd%PUOC6MQjSovxLE#)gOYxYFSk*mTfM+)Z}-oa0fmj#q-jMQJSr#UOiJ~eV&56Dgm*0yNnKVW#>Ti z&W2yPHG-?h?#Gj7(yNp9HQS1eiZ;j_@a^LTq6c+!*#?8ppI>FAac5A(y#xhYe65&3 z&;N!>a?e7FZKqdGnr87?wo~0iCLxC4?Z6S^)oz8pDGfXi$x-*ZHPsL_x@5B^IT#+U z_8z>LyP(wZQ~7@u5!&#&%ng1<)~26(yfL;5XH0jdg~=E}Q#aT$f>#3{6{^8HXIYo6 zbAG6IenmoAC1}dLBsbV?yEI@sFe#laJsr2J%0W%^s>7t8nZG>JPj&^>oW%3;?Ds`t zslR^c4CCjVgwG(v$Yaf0n(FF!))apKARt0UB^={y?+Ie_L^Z+?!Er;b>?HYI&A=Z> zv5&d?py*pW-T7Oz`S(3NDMP$!0YiT0)|}iL$=g>shAPG@N7Zo%_^MV{O>4jZEJ?T6 ztSjjq#qJtxZgjPS_eJ>X3{q2kgzrEsbYivCHG-#q>i1A(CAVZ0jYsm*YaZ#w*6dtj z3#0y#-a=Ig{`)E7grK45A3Ridytp!u);_8g^w#f5+SpEpjn~z9og;T_>!PsOLa_0zE>tSK3xS$+? zp@PO8@I=ZG*wS|wQs}%sumX@;NSGmbbIfyGJECb`I0Uj2$tILVFzezPMEj)fR<6fq z-}8}dzF?^rp+dzUAWGk{@(fPRs9;P5E*OpEbC*jct8Qic@M&&GBUaui}%wU`ItJ63lTgQaHE3iww#agO*Q8_lWx}BXj~=sBEX%G zK|J;kUwka+aF7|j$1 z&d;++^Wp_{|({ zm*DZOw-Bf{Qw^BoJH0BWzDscWoEW2* zOG6YGSCIZ$6~J0j4`a+ka`nhrxM)Q}rCdg}n(;Csf#h7f_J|x#PozsUTn)-~bO=Q{ zp@HDZTSG;vr`}gQtF=go*v8OuE_5h^(VV{ws zW;CQ1bXjjMOz@|l$N#OemUmoYE9&|1xTxCVxc9g-!UHHJZna=)8-~1oBaVJh^(4^; z)!;eKLSEHn_2CZNf}fS7b>`jpbAb{|Bu&fd3#`N=^FaX%j{+PI5j(c80l)Gt9!!ta z#Xc1`S1H;Uz)=wN-iyhC#Ou+$FYO>}gF4VA4&MK-YH;KyMw1Vui>#VFC}O|mJA@(_ z7w0*O%iipaCN0>HpD5Fxkjv|M6U|EA;}`kbNVw_=4iXSLwn=3FwzB#XMbSyMD0Xnk zg~JPtP14UWS00-Os&~8OjUWJp>k!W{#1_W9Bf=tTAUIsqMG(?*XkkqNM6gKCBKUA@ za<*D8FS~$ecIPaD1&!MW7vjxcEt!lSU^cXMQp*J2H+DA|8JrUw&HlrTs-0~(PkniA zGd@x7jcWVf-`J&L0dhVKo>&}L6CH7u6bDz;M*J0m7t6M3tzrC4t218bB5&th7X;EH z^At$KLDXr)ghZ>vZ~2ObMglA;uu9k`hGY{O0>N_?ex0jfS5!z;2+lQk7|4YPE_?V? zMQ4-rSF1NrrA0%+-`>xR<8cz110WJ~|91fa=2h(htvu|lX|WEjU6bOEDI4+mGME{EnjIV9E{x9 zn==F{&y&{NR z8tulE;JZPj3Yb154j%=8R7P<-1Y5R#-cofXe=zib$*&R-%)pCR9x;K>lePyKX^qDS zqEVNCXp`TY{@G3~F)TkNgpzgj+N65{MhdYPwtnn#6^gu*Wz3I?;8rXEL?Go$V%}ys z9Jz!u8?Xly$p*FF^k{F~j2*-oS8m83dC%vYWEeZ=BzAi6u1g45__(%{k$X9bk$x;$ zli=Jl?rL{UJ^L_Vg$7I5C0Jk|0LKoJN5I%@i@6Q@hR$eN#6r^sgRrPYs!1?uUFb?$ zdTm71tLt!mug9p2Lf-eMKOWZ1=?za_P#clwUV7fRB61TKYcba*2G^!t>KOG&xnvhK zVhoTTzsKyiiJDPfZOEgfyjjoQHB)_=5`hhbCX2dB@ZpgYk!sov0a!I!!v9;G-lUeV zq?l4o`HAD&P2rD!&(zdb*qQSgA#n-!2`8e|fnL6;sf{??4vu|UW^4nj1TiMTP{*AJ z0d782Iir29y$I5C0YdiSpC-?x)6qs^hZ$5&?{*O9v|M0jt?`ZK0o)vctoy#7ha01XuqsEJz*gBEN)qZs3iHm}KL{ui`{pDaZrgta&jPcrCBx`xDtafp7cL_W2`GN6^PhC&X)+7^LCf~;AdBkc4OvqIHvT-mWe zCxqq*MLKni;OZL77OPahc0!qWkq$wEgS#E2H{{7QMqN&co)2;dFv8ZVW z9W-zy!XNCk<9nG$>~Ph{-ho-o_o!3e&#$b)XRH&7546MQ#&Mej2VC)AVI&fRh$^jD z53fu|o^#(o5nLT6bcuoFGAv%rK-T>)$Mu>KdMufUUD|;e3b}+#?$G{_Y8S&)$6-X1 zUB64iQzP0TD7H-eJ|k$%W_6?wvT+b^OET8HkXLPa_B@4g3`4~bPe$_Lak@<5II|EV z+310Ytudc%aYX1eB?PDSA04lV7LBW0cC_8yh>MliFy%~DHku&k`Oh-YB&Z-XlTgs@ zi1$AtbGzPCAw%N6UdcQQai=toni%_>zn3mAqCWT_=N3G;LH_lP_^=l_4hR--f%6GoZdmamMJ|v_!9rvSyGR|A;fruBS^sUNp?DY5k5D9MbZv4@QITBH z1@<6#?N0vBj<4oMDzX>#91xmHo1ar9YKA&;JZf&Lp4`X+2YXv$RbTb;^1}nUP8PoS z5(Y1PH{jXI7qxNcu%eAZ2f?i?BPY=l&P_!MWzhi%VT$0P*ZUgEH`T?Q^(N}V`kM77 z9pzFU=?Nc$Kbxqtpi?^#{_4?kcxq*Fb%G;Km++to@f66n5>47dBp$)}1kJWgsw<`* zGifODcbV9_42g_V7veTx3!yF$JUnK?D&e>RizRCZKUH196rx7e(bbeVPM>xQ36Cng zO_#wRAb2<9c2h#1?0~&^x{I%;&qTwGZQ?r=eO&BX4zFGVf0$s)n!1h3Q#9p+&Phb+ z7{4S09Lgo!0l;>PbmUuAXiIe&+<(G+3P9IuX?%vyOI3@dxEB&8C5lFKs zcbZ_!`>(I7%@~z!MBTwTP8NwOU#xkr>ny(g%P|G0bakJBD-@1p>F42a6Ku$>5q#Xg z)%WT{mm=~kjjus{q=qU`3V(W8C)3Wt<2|=b8)~Ct{oW}1DOy$}OB~~Am%VLhb;z;X z;Mo}E^|+nCNibmH)!k}erQwS&;o!GgHtss?_A}KdgN|*`^uazGU(c7x%T{Po7ry$4 zh`EHR*f3y<3KDG)OdK2cLS=m(@}I0*i)z7~gIdmEgH?1HZN;=|eH$5v<|I0QVb>9V zG&*8<%zB8W>eO^L64sRViBXQ07!54qANhQJ4)Pif@{JWHB_JwPaN8zKN@;d zqr415rf@H==uFGXwb&YY$L|am!Jg=etma<|Zz2&_qCOA|`WwL*KI+IN@x4h@= z<{6P;Bj%OD9mmaloI>#J_Gg*OClf6@iCtgV|9~W@V-9r{89PUgjFrybS~SKNllV+8aX*U<4!ib0}48riosjtaMnV+3~rYRPhp8@x=6Yp@v_1Ovz za7ak6^LE`&V%;i}rY^CgIVS5Yu21lVgA=Z~Nizl2cdmrs#vM4H;BEgKf6-zny0OqX zA<&YdgTUxPHCn7-u0+J9Ym>A?Eqh;u>Zlsa!6v~N)sibrLV-^a3>2)kkl3`NHBL}27EJV z>W!1xHg&KwiY78;C7RZg+BoK5I-$$wffY(d8C!;qf*rDYE_P zfeu1%g;?l8w6JMR1S_;N^U$FGms8O8NMxaWf)A3eg%`)5@~0&!`G>7%T50;_y^i}u zGQPQI%LbafL#MGD4(4_VJ{X? zW7j7wiCQK2!KE<_J@mmx>$szIjx^xJm7yBE&_XdX*YRAP;G+jeN2?7&Hs3o7&C@uj zd4h=%8F89+k~8q``kFN+%GsJ4Fq^$bOihD$m9Z6KXT4q!zld#6eS($V`!rJXhkR=h zxJ_>(S?PdnxC6ASCoZQGB~WRCjke4}P)FLXWNQO^;ns`R;x%(^%hJZytndt>3QE<3 zn;msyATE?>Fy7;ol*v{%2&CbQ$+2x7~;3^$>0(C7OCS1wMxK%o<8mI1US$m^`6jY9*Q=6P2ZepgwBFN2gDUq-#9Ppb3iv8aD3b>I-XxYt75d5G!L`VZ}k zX#807{iF-%r0-+Uh}HvQnRzW70$|)OO$V{zyd`&!U~bmNUb1<&IQhtf#H%+KAb3Q- z`isI_ZWimHPqSE6@Iro_2@f=`!Z=)$k;bJhvAwrxX`=ii0rP?PG(#qW?(y-Iz&rApt9eS(?MK2fqQB7T1H z!IzV?n|%)Uug$-6v(3=R37=-oX%18Xxaml-$ZhjQ8Lng}443&lifo7FW254!6D@_q z3C1;1%}8A$t;)p1o| zwsyo8I1foDEqsa_VS_HPZ>RnRko0f?vIn2y?4GD4FJU9v@laiHYW&c%1z@HPQHeuNRgkWB~@nb(is-=t^*NXzr6OTnBjLEcJp#MG^4=WLcceWFbV4TW%R@(vd0`dF&~zjNg`W zMLZ|&Tr?TGHna2l7{^`tt#VPM!u;`VO!Sguhj5o|HlopUh@}IQf#AMNQ7;tH8(w0f z)2QmU&E23rU(Myul)Fy-#5E?UguTJEZz|+Ied`375cS(r7=h;88bRj^8#bGyk3YrI zoQWo*?H}TTS(2L7uP|0LA=6k8-0EX<$Amh+zrZk?PJVucZ&Hgx36qhhaPI>D&nPBU%k72BTc4)k%PQI{1(@p-UxKpDd z&&YmSTeoc$G3B~hZIN(^@8%_Qrq~9bf0ZL4;yQx1&yE~tE7FHy5KL{@x*ZzVSHrdb z8g3Mf$mL-DCMX~O`_1YK0hw0i3P1eT=n9ry$Y~`Uhhr25AuExK;33CV%LtVa@#HqI zD(mC(nc#ZEm063LwBpbo+{#v@Rhau*SLIrfXb$;<%Y`GY*`l(Q)M`BK8g43FbejX{ zTOw_5zZS3vXx$|1^eX`~yWkc_Zu^)c+9$V86T(H^#z|I2L$l;Kg@Y|+K}KtK_@}au%k}C*4FcGt24$-7UJAx6EZ|)$40?{B|D(bWDG*Ji{BNG zH|f{M1k7plop2}kK6N54oiK9A#LIkCf;^9QtrxW+hfQ_ibP^}6c2tFnV;3t+f|hB1 zjw1ROzFPi-4OHaC;Av`CpyCnsUqzrIalP>rAX{Ii1qSeCjgtg<DMTq9y^cB#P4oFQKj>1+ z7Uo;iGw>jV1O1CFSOn(*_2kQ4kI{9m)kTj3X7*kKa9OoFJ1T$|(S~5Bn&#UT zA{oDd=^C78y%L7BO9@W$c`ivCwSlskaIgIeSIpCSRY|gfs$es+DyT|=sXxz0;61mi z9QUM~=lq)Ufdr0=9a`bStBNOFmSFA{+i+Dj^#Y%5s)Nrz{u+;vMB28LO+Itz#g z*H&-UP|DWM219kkSg8&YthL8Ys*dU+z!kUf6ru?AouJ<4hPk2*xIib4{>H2pg0%4` zrk5rWt1e#j#oW1)ixF&Ec-D!o!>%Phlt5Zxbt+uLq(B#`Ry9Hb3zKP-&Gl$n0F*141rg{RorYlBwm$Bp1IC0-F3 z?ugX9$p{jxU%ST*g}dalf*fWOvb1OS@kv($EBkz*l&6h~+aTkRxjUyI?6qy+2uu@LFcK5#^F@1Dw@5ozn z?dG_2my}KZIcA=0H1OlR69?7jnbY&Wf4ZW}#ZRo&&=IB8$V0z0<#u_6Ek?;n1e|5* z=!UdfyY|YL4Oz=No?tCo2Wbt@+|Zav#??bC8AE`De#G=#V>c~C!a-)n4JhZH;eO48 zD;#%q<3mTJn1}}nPCt|lw+HDxC@8JyJuT1sJEA}9b{^-*593;b^P$kf`?)B=L+ws7 zpGrQu&;S$LY)&V*cH>~Yc}ptibziKLB7bGP*C0)_9o8fb+EM}^msIh@x15dh5q`Ihj5FP~ov$&LPK4U|0T<;gy zRwExy&_Q^McAou@ZS==&yw4z)-m-kbL3q{@&SIV)!Icmk^T2;DId^3xd?3Qq!oM~y zf6w=oD3ubAvJd9nVCx?U*o)=AL+20Xx(ROGoyC`pNdy<4gK0zd1NEC=h4j-9CUTMN zKFqEk+KDNCVESfqgUEg(Q0Ne^RB1wtuI}cjil9n$%gI=L{DD7fM_G_wT=?GAD9;FOYR9f0A?Hc#A5hux_xT$7Fr>}jSLtsR){iuGxTGIG zC*2=a<+~~!#jblAbxSCD1fyq}HC88FWR-XBYg8me6w-2jyYNMgnoK*K&szqxc+K-G zc%gcSGz8P$(eL zlCA}3MTZpgVX_=K)_g_dFY3a{p+gWKQ?j0039)-17a?{o=UaTBIy)2=Z(c&&or3eY z8B6oD-@PgJ{)+23;WrqgleRQZCtgqC^Fg!*^89tjUt+ku)=vbFH4hNG{PKKtqc-lDGe0CD|AXbLx84{5L7+{T;Y)656CbL{GJE=cgrv0+w}*g^!m=V?VFuRK3L z=|}j3GZFM0+`BFLpXm>x&4!qF5*ZWCb>E$~7?t_{06i6h&E_P~4qdbqjjCgl(Ub?O zjy#8lxu_fWhMHFt*<;N;g~JkXS^{dOz7Pzbc`{zn;kfG+cX4kC=%nX#g53s}e5>w8 z!YEY`ujZlr5>6-BJ9p4+W4asl%j>)4T<2}g<=Hcdsi(MCc$t~UbdCNs_bRjrbqCz+ zDl$qU;E!w}LXu#I;(OeTja2X$$@hHFvWc<~{3WqI9FKH|h^*p*5AclQbb^mg7B5A7 z#H3FPaPts{hw#7=|65fk@q>*mldJCp$Xk1<#7IO=J|-v+f7 zPVwd~Ab}PlyTp~UBHcGnYm7gMo^2i>N7A_SXF8ZQ8ZL-ej0s6~7Z3srtqid^)EZ$#u-E1veMvV+O^VYI*1(SZK)ph$H{T`InX`+c*_?9}xNfacTt9Kv1B!jL_p>Ay6#Bl2b zNA7pCCmB;8WfUN3;szBhu=9DbA{DY>Xs8Kj%4`jGM;m&p|h zAu0KE@)SP9P0TpHc;jzINpui5T@g}8dYeX@;MbNHmJBgJ;VWSs;nUjWbw;LcsvBNHjMgeUv{Jnv;sV19#uFYW+ zbtu(c#8MD<0JlOg@a7_Ue~wfmmf~^!|3q^gSaYv8v1&h&`}Q(Bmtwg*LGLare-nL^ z%*V*i(Qtj-TpgQxte6~xw;RYowj7azVC=f9cfVIm&cc5I&qnKzVeFj>iT|A^{r|pf zCC2yX-jlVG^C~pKMC(LOH}?|#s^vL}28O9|6mpf;PwuE}eKH%o<746naM+NkhN#lY z!=5@BB??@w;ChAW+zxf{LbLaNgl@PWoK}|IZ7m@{jsk4I3CpTNF+oEhFp5}%|wkA z92&#w#niFtQKg_FsZQnRCxv--;H^2t)+1zVm+&PwdOmLdCJzS`nI}>3e@uoGBF@^I z*f+WQF>r&F#%yHDHA~6_;NE+>bsI)dU6B~W!I7KL$|mo7M~y?k^M2JyJok`p0qFzXVk}<+qe-OXzWWq9KGLQncz~@@i;AWx1pP#8eiQ! z9^aYBdAs=HM>M{%vg=RrW%&4R&FHF7soHAG&*Y5V`g!^|Vy8}GauA+DH|3;X-jxb4 z%5z--t$-Qr;TTJi?g`r|dm>xIWQw1+{8(E}TNp*%cPq%P>D#W;ggRO_NfUXUvhn3; z#%?JRhe4MIjc2^0k>)=y0hh3wk`=G4R(50NoP``j3kgTO*`#X8Zt7+&j#tG15seJA zTCubTZt|z04jW-!MK(_S7QCQNMR9S6`AGSNw6(o?y+wTA8!ZK_Yv5c!C|5-Ac4)JF zlcmCi2|SRrOgP*#q8D{;n8Dag;(`QAmVTF@HgR%ynA?h@+jySui?nf#Km4S22@1A= z2I42at!BqhAWNkk=E~7SOuT>KR1xigr6DR&K9J`4`f6FR1;+B~B{v#}uCYI3({8(Y zec|hITW8e_pFj^Wdpqu{n6!g$73hwy{Xconpo}VDg}yv#_wi4)pnS6hWH{Lq;gcg( z`B;LJZ9R;5*orqlac2m{V+Zfx(h{_q+6xPE>K+XO!7=Zy;^KMQOSrhh+(s<)KqQ*! zOn2Smh=U>#8nwY?7q^^@0lIy*n5(nWolsHYksdotXjy$HH&3+q>)lRnMA9;98{a}e z15|EM-~EJIQ$#MA7rkKfxO4aFihL5U$gM1ZHBjVCrSe#=%HYHw`NY>@eDMFsFKQwP4maMd>Cz4k4R;dpb5m6=g;aS|x7WKSF#1G^nFF9O{ zpv9UJxTTp}vlaa|-LleAb5t$CtDY8!@}zXx?3q>U8rX-l=;QY%$+|rghT%m^xsb6% zn^czIj$ityC^uO&V?FN<(;8=E-v@Y)o17q&=7G3QSvs6c6D;p^5Dxm4xYE4jYTl$B zj?b1BQ(sY|Eu{dxLS2c!J;T$<=%VPeo=+tttjB4QHk-J?UMM!OX_?Lx#a_=lIw>h8 zK}95+UJN(o>1Zc0JPoy!T*YAnr%-vfIbBLAvc|2k(8=Ab32RXKXagaLNFTd5i83M5 zu{BJjl}Ian^f)dTB<#Lz;N5sP;8R(@-Gr{5@xw+cluY-kZ|;0^g^GqCa!m!W=b%EO zF2P{mm@Jb<*KOiP38660D>JBMeG$11uCLWxjNr)`>$)m@&ab~^YxPzoiNR@nFwhRj zP3yZP#$DDsU&LH>3erp~RCZS^SW(#{c*6WFe_kKjU(eX`) z2B^%<5*+%&)b)xpGS;!crK6HxPhU$=8^sql!MT7o7r>vWwio zUaSeIa^@lgKEb~TqHfhVi1Ckc_I3{!Be-Jka!XnV;c`c+`}k(Kto*lW)cs1?$Pjg= zlfAUeW%}ps9Jc&BlE#(4GnSmRT=w%8cDkKLny=^PiekwvIB+j+(>Qt>BbCTQOH?Mf z?tR@{lYYszZ$G?kW0j#YiF!Y2lrw2NKJ@Aqfg2XS$MpDC#x#Jsy1gQwrk1D{KDzBD zk~VYDEg65mc(iz8Qp2h(eD;KDPn zFqlV=;56TjjZ~1oVVK;%dscSzL5rWhYr;x|{-{wtv6HC(MzGy&GNG89eYSE4IfbrF zxTRC)Y7L{LcIOGL8_C`0s2iYU+Ufo-&LV7=g;w{4aVKawYjKJgK1bnhDQ^G7T_*#+ z#dfO}Mi#LYwYF%~-X-~D50~upLgCc=Fxcb3A&pX4XAg1sH?2Yc8ZZ;*G7^C}GO3xH z)^-~{{Dn5tFwgfn4A$!{AY@_qPV^-B;(>2hHT)>%B>Zt`OE-nn35GvdF^2SkirE{F zFEgXU>Z&s+5}UIE5ff9n1i>ofON6rrxfSm9iS)xwqbN%pa~IeDndr8f#`%N!NIlLtyMF1S{op0w-HBQN^v^Dt1VX{3`GXEqgs=g zk*nM`!TYs`XgNZf+77FPt6NM3apa@JcmbH=5F~DCWpIVYFf)Y&!I<=Ns}=5xBiR$( z5N+G8n zLbD(Bn_!YphixVmtn`IIgm41{r%z~v!}qf7R;(7h@cC_xhVr-rf?T`s=f?QFTwArI zq7tZR=Q&~opP(WgPc0I(9M%q(V9_9aDu+QR&W#Z)ySAP@dx^+w8U(ktEct~fW>GnH zy2-f8o<56UR{av8!E+GPuv0pkTOt^8b?YC-B3eq#KCn^E^FMIZ9s|^E;9=1a|Xe>oRHx9(787HXH zyYnW)AMAVEBGnfcIeccE3A+A%;FS?)TcR%S^|&yd2sRl0aEr;H5iLA03rbsv2AxPv za8vEsh?(KRw-pV`p(8Cho#3UFb#X$7(rLKF`I5M}z|^bJtXIoqHB<%u7%J0sNKDPlEoqLmLi}X*Fr2jy-qXO@$y^=H)F56%@q)Q_;AGul`ebvK9aer7RuJIk-u1x zJG(O|us@tPd59YycG}~kdfzXchO!k8r8m-kos>FS4JGR28>H5=BoiD`~jC-os=S#<<3^b4FPN|#uD@`7-Y>`XH*tK;GpY8 z<-oH9_nb@J%Tm-DI^cLYl$Z4)onW0>y%E!$t`r)cK&XK9Qru~RcP}2~*$gA&B!+fk z%D+X~c_+#Rn+TUxC0r#zu6JsippRp&y^$N#PT&rFe$j3ZKe{CaJG3-pA%syT*t_PJ zv1%N^!A`m*oJ6qZu$Uc2KClyoez<@>EQ0No`l!4A-lZq_BtbXUCEn(^A?lx|IVPA& zZC9xaGd%_AUo5nqXe5)0$RfSGHh%16QrDg2GG`vXw0g7Qg0ftL6LDZCatdbX=GB7wDPAxBiR0BmHw1Poq`}QVOO6UlIZnB-^mCZ=)jo?{xvniLZKkr z3LMTPB^TBruafhXxX84#|Lyyh=DYb=5YpA1DqDeK=b4rzOweCF37h9FxJiQD@BUq@ zs9Nv1gpn~L)UuUMY)~%*;UBqbg56s- z#cQe|xNi1MFZLcx!RG^YO6AEysrgv#59I;`o$ah$MD%4%_0&kXZx)8}Zfz?h_2^t; zwkXvX#=L(I_%t#u-?A`VwL^Dr5}pKmkKGg`PY$LwN3P&Uw=8wlxdDQ4Z656q8+w@6 z_Zl2MVw5^rYC65m&3TB&PvnJHb4ryB8P;B%eF+-`s`v8_&g>h ztBNvHWg~VS`8weKNXv5CkCPvy!em;TyKq05`q5+i7J8ec-^)ijx%6lZ2s+FSixtD0 znXAj_X~HfWpS?$+-KRNksSvjheEqnXI_4=Gs(J@r8q4=w3wz=A;&bqT?udltV%8$Pxw%@YkoU0bz?pn?fNb)pq2H8tvUN~R zBTXE{q7YC&m>BWPI6!S0?6B*Xyj&&ONo~wa z$c6o!Hs)O=o6*84e@5Gll554-`~NvhIR1ndAtv^s-b1LNb|^ueB$#_=j)%}R zfPb%UPsWpmF@3`e57obdCZNr#Ud)*^?|C;rUZ{rnR3{$de^I35>svFF zNDMbcuw+_}t?Gm%j^ks{o0Ku3LNL+)0SI~1vfR}IW{OzfoR=?8KX8z40!!-ge>7XATepI)E=gW=$^DCiE4~b z-N6`#aa#m0b}NlTuh2X=dCV2kYU4qe&Q%F};^kY|%K8IT>&3+g9-LDAkf_!Q1Guv{ zkH%Ddz7?MRk(5Dm+1Hi$(r4u27RDj972h79BAP6zuLKYDS@>BgMCg4-5!L|P_Y1Gx zvbQ2X6f%icA?D3QMkMxqgL?4o%V9mtn~0C?&DF&oP7(0Ehg^c_4&!Sg?H%6>% zi3aMh(mM$3y|H01wFm3sh4@-&zNe=Nn|^D`@^b-cUn&oIsYEUxn2N|=%)Pyl zcA@_8rPPc1BIzSQu;m0g*0N2%upq1=ncsIp&z%`Yb60rhGr7TyAN$rhz{2^RXE zuBxVfncll4cXd3{Dy{noK7TcvCdZ6X#>Po5OmIeDKTKt;4_#H@1nntNy%8TbYq#Cgi<+sCzMy+?a_j}OS9S4 zl`U5pk&%32|J_rLV;&{3PeCfM9+4(JeRjS+n{zU)ongSqoE!15$yGJro~>BN66bDy z_bAAOxX90w=b52+lnh8%-TnPmYp8a{bxC#mJlv;(C4V zXb93iJ#UeuWG}QKD+f{q9b&iaS1rTBvJ-2rKo#s(Eyoh9{;_vMDpp?%dyLUu#YqIq zP47RMDB4O+LN9xmw-r%4M_Z(}H@B8TOia9^*~;eBUu6an@78WOqr8!_)?#fFp7uyT z%ouClUtcQHMff!~50-V1W%B7pl~6^qbtKMA7kOIo<)v=-lnxEMb_-F3r>%I$+f*6~ z=MTt{jDu;_J0?oHHqtHuh{(C z1xO|tB~%%~zXsg>WMonY_h`lDrn78|@)`3?l=!$yAb5MOf#98qZBHrs6zSfe*5>L^ zMQCd%S*u7MzkSHwregFi+5)LAWGuj(zBL(5l(! zRvS!Ojr^V0aKAfZPj~gmgNi94&uMJD2gbBD>@YS(twa-o&s%nQpjN8XvRC)W=;Xn2 zY6~$}nFw}$HnxMuU)UrkL*wrufFK5v==k2^@c9^nn0QBE<`{ zS{;-lYzX=vSaCs-kxmIdl)2GU%_ zPW&VF%R*40Zb-$|Dk27H>g}HM_`Gf8wZt-0AcxvlbLg@vbR zzk+w)-Xdv^o5xqa(rcKej7Pr&^ zsiwWzI;K6mf&)-dR1EKJ5ME!qzTRi-iI>Q5@~{$teYmU3k>SOQGI%1Dgc-=G^M(EK z+4D}NLTXV&Fk_HGzR@98GCz_^+|;-^z%+s>nSlP71AQ zHqkWaGX*&^Lb5j*qi|0kt;wlDf-XU$FVoyz6E71$78~|w#pCUZ4XxfEzo;HvjMsPw zuh0PYzne~TJ=z4xhjp3@|2`O^?7r-=q8V$|bYI;3La~_WjhBe5lWQR|Y6T$ZaHvMb zjLsdZX)lt-;m-GGRvZrc2V+Mtd0>^_6+=sMfTrsB1es8amd(Q*oWw-vnYss^*rvaJ zQlf!vyu@O|sINuRoFj?y?HJrAKLR064e^P{K=AfazhzWexR^W^F^}CiiQvGQu6~M) zk_wITt$0XGmoDYw%av57FJ&@}hN+#{^uT8vej`?uJij}NWrg_l~rO$d!9w5j=4 zmLj9S$#qgTZCc@q1mds7!!!Ys?P!UyCp!Z#;1L-P?6l&8mZo;bvCu%iG)0myWS~af z;n^N#J2n`q@6b`+=~hZC?yuok#4scgVF-4~zdGUjA+!^(qZzF@WGFpY{A0|(atfKz zid-8Hwu+*;K7tF&4^HMyW8$gYK|Gl?M_P-aqn^m2lY}lb^I(o>!sQ9({M{|gIO>)H zhs~@+WEA5=4vQTDp9YHIS&E^Z#p=P#k0i9-30qJ6M*^t^rIRO6;Zv&`sAuA zOhlNA6f05=L=l3gpMJxYFm$ai*sR{joI_D`0diq{Bckl&r!pO^y6gX!&1A1qG|I!i`X_CYJ!!(FUU8l7c7i+=;@WEa+KrnaOxp%4y$fWFo zKVV7>-FWrSBFc(J8^_w|oba7SjbPh3Vb4hpYY3+hjf)7x5op~k;6&*J-zDyW31^_p z`j?lwYHa1un_6a5zuu4vn=1itl7lBQ{O+ZkbkQ*ySgG%22evDT$qs_F@L zu9n8{w8?=esBz0tWQQ^@(DC%PKVIn|G(X`IvBIW2L4={+MQaL68DH|X69=2IB5sVd zvX$~n6H02`NDBVigl;KCxqYGs3?CIYLU|VZAes6~aK+L=xUDW2N&)ZuDu$Se&qFu* z;0|$$*Gdt%U`w|)&q5iHrV~ufQa{gA%V$F-E74#H2f7hccb*klOxepa!@|XEMUv5W zbW+FBylxY?2`yM~8ZD$2%q~7inf9{WBGf5w$oYb_!?oe}3c>nKCiPnm>^3dq8`BRh z!*elbH-Uj@sZL!a=(MSZo3SM;QMe2TjL6WVbb=2p+$*bHxS}dUmohppAX)wkV)`f! zmKjiigD6~%+18brhTy5qL+^2XM49X-l(=64WHvlro8GH)h zeyL1PN#*Oc>Z0uXMP{GWx({i#o+Gd!C?_gn7a9>id^QY_xX!s86Wgr=-AQ^&;&xl{l)309_iI9|=6Bd~@v3-M+@?=6#e zV94ryn-#0b4Do~WoWHxrb+k5Il(MmO6~Pu}epHErNYCOWTMQal(eigUH7c@vFwr|@;)+a}>9|ilyeYkhjms~4G%?anvO%4>%k_DR`-+er zw~x18MoE5SkwcDVc^BjNF=Hdyzl&Vi=o=eA}yU)H?nSz+9OOlCzPxQ`Ud?afZ8KV_OnTXGxWNU8 z>y1~UrAZr24%_TK)nmEXvjSKYbj!2#FxZ8(EGEhmoE!9Z4~Z*iu+*IW1j9I;VAaV_ zEQ*>yM{UHqMcjlx(!FA4;2KT3XdKNWJbwiC2*O5U&YaAZ5S;bf`w|Kdod@o`Ojw7L z4$+)W(0o}eTqiWk%SwEc@$@6<3qq2hL#rM9#F(UXsNP(~FD^mas)g@8#am(CO!8!nx`tv8Iz%5a=@%~ zK+jDP-2Cv=V3I1lC`7#NupS4UlR2H>zDX_zZs1Q*cqh6a-0@QF_xNh}(Pe0NCG3~QA{Fy3r)ZKZx>=Q9@b z4i-5n?tC20Z+gkJuj_g9f%?3*XQfoCQaSclV~o>2?yjw-PnjDm=`MnoGMQ3P#JZ;M z6mj2Bgp8V>&)Q+VNN!XV(TWMJ;BO#1h43bLY|YkWVw(^#VFkz)xtdo;v^;ay9cf0j zH52w@;c+*$uhM7#Tv5#^lFGU3xK9I6>}|`-y@_}s;>AK%4#Xoj)C< zEv%f=4iG{;)rFQGiO>L9{Yo%Gm*ji{F^8TpP#>(eLDdn8X1cN{^TP&L zrQIY32RmM|7g38@{l%by`kBXnVK*&Qfe6Ti$kNnHq$3#f=LdMY$&{A8%UH%JE<>8t zyWs;(4sN0k)upPSC4FMfX`$A0vTK2xIMiko(yB!L^jPsXka7_dLTqeO4LBtr{o}?D zE^2;}WjC*8_A2jyXMB#0$9pRjz$M8tM(|QT0_DnmT@h%ah2u#Jo0=|BFOS81PtxKd zX$e!4GFIIj-GHP-g|1PR*S7W2>)%$xS;boLqs;f~7{ixW3pD|I=Es zNp}J5AK&*pQmpqilufdN$+f^D-CBfMX)L6lzNM9>fu#B_XpWpCbv#9q3$kZevW-=~ z1Xdwg9| zgJ7>Bi!#pgN@3OAdej=~w!cXKvK!GZrP++FrGs5E{QP4{wl}_P3H^Yk;(nc0MpSb% zpfQ))>WlBhYXpD2IlhG=l*A>;i(N#69ibBwzv1Q;W7$A&_Ak++OL4kOhl{%B**1=7dU9=J2{(Qb54>YaaYGXYy+zgBR zp?(wG|SaQq=qR|3Ig5ZI_FU`;ocf`|pRSdNSm(nPo zSldz>#qrOOvF8ZegGOwfRFk_u?Y7cQ;MxdAx_7TH8f!qed@po~+7(WpcU$WcxnBhL ztUEheuW^>$mK7@@7JnhrQCAZpMa>a>xu9}QRa+wmIAOhASa(!)(bSUYraYU-B$#UqOI`1pJ}Z- z%6%s|$n}b=m=Xyo$Z*n>mAxS!+cAql!<7;=l*Os#yO~y2hk-8WB7S$&G?KXo1Jgfq zR_&zWENaQRMC%0N^#o=-f+cQtwly{d_OnlS&~0H^C0IPL_C8}e?(5V+s(c)fX*%Oe z&{@+xMhv$zG$k`dI&0h|!G}0&)b-`p(ftjLvb>8#OLoJM8;5%x(yeuGN~kd=cxO(7 zOeJ3-4j3NfRKBg}7`k0;*K{x$|2${*(}V_wxr<{VrYUoaB$#2W;+&tG3fYz($o=@nizGfBKKiHH@BvsJbuH9qgcn zi(rQ`DWi?NVj&zWV~#~8TQMPTHx@vsfP|Oe-ZP)(8=9^nxuji1O&j@RRYm6EHONVK9rA+x$XgSJEhVQPfb(&jb8^R|J>2{i+%+ z2!qhHJ@#a-Vj`Kgxe|{g8Kos|_-t3i-W~vNd9NTobJ75uv@h;#Rb!fBnM9!5^+AaV zhHg2Cut4#YHel>Vw@5y8D=6i8=&bJ6FT%kHsI}u>fpy z6x@Z8V0t;|(TMvijVQQ_Hi4|k2cwM(x2l}~t_`iIbU4#d;1vQ3sUO0@9*3(3j%EHX zFF%&92}}Ro7?>V3|AKv$jZ@ka4yeI{>KJM0Ao@PuZLgc?qcA3DeIk2~aYP*5h7Ao$ zN}^o@>Jh=>Ek_(P(%G>Dr4LS;5u`E@Tv2|hnE_)@@$zVdBbDK=iadrQ`%0@K1YPeG;;tCdNf=rORV1YfD~VJPX`98Aq59!E zh({GoB}stsFcGKuG;OMMEQ+avnLqpCU5GX2EsP?DeZR_3M{f>f+UjgOs3r;i+$N=> zvVxr5n8|Fs@UU;OwtLk`O>$$YZCDo9k+vQfLNp7KZIc@H^4~l|44(?($GWnnGY4^7 zUKn*wReQ@-qpo9q>x#+y7Z+}%AIe^RyXpf`xT>se7NqfSeai?n_kDC>=O)F3TrA`M zgBq$dLnGAo4d3$(l^*hI|aL!X_+J1bVBlxBAD(NcZ2C`JP5 zw!+SakBlxw`t(x`R+*GNV{KCQsOvA4O(Z?ZnxoeKLAgI1jvZIyC&{?Vp3CjWY9zh< zv`NGgO3OK74ro(#UK|r8poqk$-QyCDGF%!8G@x59qjv)ATO{0H}$<`tqd1SNw%CG`|icUNaPq?q@ zKZZ4-M{ArLqI#Y~q)4_2R?QXX6hk75o$%4JB5Q>KtlaR zTd`2fs<|hmZFlUkvP3o&qOcu|_3826S}ON>Sb~xwTkv^(%(?zbL4=jll$WT-mD8w5 z?B)qj)E^N#Dpy+e<)LnFmE*bLBHRUb|1Mpns4dgxlxMk2E6=m#TVR>94`=@5Y7?1M zgowQ(oNdo2;+O0)S+-qyCi!fTD{{(@9Yv%&`0SG>TgUcZ5cNVg2+|oh78Wy9{%6PV zx2kfP7U99QbOeL1Z}-sNx?x`);_scqG- zuLQgA?5F;_%a!{Z#2>@7uKITM)x^{d_GX_$vlh^FrB7?%CVoDYrPFD_22?GMA}R$ttef!+RhEt*&%FWURiR zRi;jNL8GcC82AW}ax+S<`kjr`k-Lv5*KYjmZ)8R2$A`M<`!&Li+@Q(SUaBa;{Rcg} z8;gphoGeT4ZX@Uh7rE@Vg`S~45F9aZZUUpAy6uf_H*lCYUg|AsKo(EU$+FO8vtNmz zo!@AWqMoH4M$h_zj8rYbnp4O9X6#uQ5pFd5bqFro`U)o{XM-$34V8uI1ahXAShQ7t zKcuc4q%fedd-DDEqSPp+UgFU#CtY29rZxz=yQVfP>SS&k*nG}x{tzrSzSAvKS5d#c zzD`!@3fpsLmV?s$vS;bXvk=7!^*~h;v~K<4ErlU7Vbwm#Wzdxq|)rw*L8Nor2w*HM?b`rYgsB<#)02x$t-g7Ms`^50|BD%dvnl^QS zRU?=Vk z)GAw=u3mrazS>%8nZqElNZ*ucr`vc=b)R5Tzy9_@6Q!*w^7?7jP)@Lf(N*VDJNm4y z+_(awuk*@xS41xvtt~FT49axX{mp_%@MRmPqw^UjS1>-S6jSJ&U95&>I*iQmf zfojC+1UH==l|u~bEmF#95jXF1z*%>;x=JS)GQsnr8fcjwQ4vk-c0;DVaVitRwIg$X z7OyI3Yf4Y&=F3R-7H%c)FDf)N{T+39mCxrntjQK8IJvVvCG`~xW8 z)80N5XMkv?mMVktgDpkcl!hZ;nWRa)cK>n^hv3U;T|LIdj7TI&S;2~i;N#2X_Wu7$ zC^>!si#GBXv*Sum3{|@8lE4>4DuUr#R+m+MlIh2`X8P&YG*syX54FDhqNq=XJhq~O z*MSncu3Qm8&Fobt42)zWoGNH>)&5p2)w3!wYm|j%O{?^9lBir+8z^aN)Fp324MT;Y zP`p<<0{+7W+9hImMQuHqdsj&WJ#_eXNpTA>QQT4ug4?dajRr+Z14&L|`wlRA0ka;# z&uRXZX*f%Z?9K4}<%Oy~5{#?*PZ^O@4>*jC)vBdybtsW*!e)%vK*NpCCEUMPFR_HY zefaBa;&f=V&JeEbPGB~tt}KstkzrSp#2R|%DlXzn9Spc3lhP_Sm_w_!i@PeS1*i&Y z$>@Xnpyi?|4Mawi)`v>?i1Rz)$=t+UA($Uj;jn?!YKozW^UtXKmqJofwllP|)=tu` z67ZY9ucTP!PRYph(wzrJ#1{n1HnC17x%Uxifk1t6oYs@I zbuME<@MXa1;`+DlE+Q=e0)b3AaW__5TCR+ifvXqho+@Wp8Fd$p1JO~LDSeREO#}?q zs+CnDuE-ehFyJU{Yq^MpgS4$B;>~IyK%Y=+z9uQ$D-k6sIJT%e&@ z)aWAC4c4l|Gvil4(GH0@q=cL%0om^V8pG+!eOndHN|a577F|X6$|UWuFJgXUHDc$Y zy^gwpFtvzU1V?S#^UOFK6;E}^vbWkgQ6`J3f!fw`V57@GngUMgFHUt8yJ{0VRDlB9 zUq!3Jb)%uTo=kXFJ>B%62%x1Fz$8D9kX8ii?#YwhJmVO62+JIp$Cm<8%f0 z5@m?0V$#Ah-yd;CBNAOfn(E3Kn8{;ixLXt%1Cobi*|odjn+ib1L^^_5pNc{~T#dohG#QomVy?(leq+?Mn!9hPQ z{98Y~JXY!*dA6aLs0MX9*Zm(wb>ds3Rz2rAAGwnI^uDG4Bi=<+?VxQU$xIjOT$^15 z7fjK-XJ}C;=H5haOtnnA@VrnXxsV_SBHJUl=;Ct=r^TEg4?4v z8Ev3Q`nJ(3mvRg;Y_1xEE2`SC43xlB@8L8ziN4ejFMrGO&`pH~puQ6<*?-PG5gnwh zA#sm)#d^fm=_+Y?wbPW1<-PgE61DVyOm!hvR7Ul(=a9MA_%ffFiX{aIwqQeCZ=uQ%kGd1(h(Nr#)&fq-Q0m6_i9_ zO|7TU#bs(mR9vQoZV8*V1f9=3+h$OiGNUcT8h+tKZi3*yy>06$G=O3`lZy7E4}=H7 zG8d0W8-&+Qyo$=i9o^Sq$`9c@1bbaSYNcmu6INFLOb2neDsw_95c&3~VOvQ&%BZx9 zL0Sh%({n%~`t0Im1}!XUh1(LS0>A#5PP&^s90Y4uDa1`4bqtmCjKW&zHX}i>O(k*8 z&||gJR0&PLFJ|A9W*@ckoB&UB#FY9r24vOZ?m3K-Mf-bora%N2F~5nnvBYjCro?}0 z%sfpqWf>7X0sCgdUcr7&VL|gR!RB zv~&ikQpG4Mu^K$RazdG+;ncMttuPVB-Z<_z!Ct!>tT7tE)~U_F^tv}$TDhPLWkZJG znPY{^6n!MBj^km?wdF~M;70ei#Y9d^Ls#a$&T>p`&bD&rAjFXUF!hKOuH*H=TEGPZ z-Hg{I$FS+Mb8?Tvs;d&uPZKddIlSZ`=um6yP$E@BNjx{K)*kB{PnMKk+)k?~{RSeF z=XAfmVVra#tsUC=+?FSt!x)K=_3zgtx|N|cJ29aHd?H686um z^mjVU$pmNS)e*x}aH_7LnpQ1p-O=u=sDXzRPO=a+zVkXNzQEj0utD{X8q!+|w<9$e z?U$%@EXBhW}ketgyCPf-_mJeW*bH2tdFiy0}elH8F^0t}npG6`R+zMiHuNAM5hC;=ine{iW`=P$e zv<7{k3eK^rAUG!>rc4nw#AHI(4{9f{g2I^KvGvx~482wx^Bur5vl7iO8f#V-o+DO* zf7Q8vng%RP%Dxxq95nGtYLV8G+%M)gWy{7j1548fiPM!G5Zn+p=e>qJ&WGW*X=G4IAZV3m zgHuSP)$Jp_ppMoyE&a1`iR>*+ZfWstJKV)!a^tK(u+~fb8O+X`MquA9U*izVUJ{0O zSX0KlCzRKE*ET)Lh%6(bE@V0DGL*X{mf#(ifuoBCE%L7{SJANEQ#?Tzrd2l-R0AK* ztuaEbe@W>HFjC}ib@xGNH%Hs#rg#Z-6T!}S=|NXn>8dlC68%R=0KmSv+G$TT8Y zankI&R95N2uJ|&s^=B`WVjmi?xmOND{3#%g)kJV8h?Vgt%#wrcRlf+jml-+OFry)~ z>`|7b`1&ZzO4pPX2SLB*YxgLs$T}RJfNJNMHUwMDE+{1xARK8rA@ig>&T`e2V)_sq zP^?!M8W?3Zq<}s@#=M5{rd${(l?bEBJ^|KOZ#EqW_O$*qm-<>+VOH=E?o+ZvXjBN! zZ(g&K^1ehi(7MX$K5m3cCK!06UUw73sEJ+=vRrg;&^%Q^@L;3vXO&ixh-Z&PrnOH% z0k2jn6Ty{D(=HpRgr}7>X;U))hme z3BBIgM8i-?wC<+63GGDK5j=J`;)R&ffY~ZH7>u|)t~3!+lEg*VhiOdE=RoK4QhHuC z(JJe%8F($S&zThlIx92152T^Tvf{te+=$g$3>xkeqg7|Qn`1(&+bQ*>ab@8uzQmX~ zWN8g1yHezNJ)N;zr~8}nAeeGVH-Sc_g6M_isjfdK5o}|=D%7Bruov!}6{OqDQz^k( zUbCu@o-a#DCB&!*cG0YX5!}6E>-l&ToDsBFU}nI5_tJWmshaIN*;Fe@-oWFw9AnWc3zSuYS=61ZWS@@Ev)Hq08% zx*Tqj;M*e?ha0D7uI^q>t%F#z3{rB0a}qrF%_iU!H~C3y+{e)nO93`+cL#-WOS(dNZUx2tniU$W3gEHvl%4<8Ig z^~-3FGy=wW^HDaOD> z*lGAJ%(L+CEUBD5nWBA{AI469-&K1ZbSqg|66~20cAPfUW$L|Ed+l^>SV{=q*!k|L z$kuS6&nJvh^)R1N#_<#DH3)_A%!Cj6K!Szj5Q3|Jp3z4%G~)x^LBQGns55W|_*gJaM?k4}8=B;<*USjeXS7nT zz9&5}f9(#x31cK+=^c3oq~7z6@;(2Vs3~@;(V7hXhT8%9$z#+WPH7ad$O(QfYq``? z)iRzrJys0Dbl&OMTEIbt?JEL`|_)_nzvVn+D>$+SSMac4uxMIc&^4?vdJ7 z9f9r_Z@K9_WI@*A+bJd?8CO24d%s_Sh@|-lt}g#W55ics<@#7{zs{(kDfYa>sRM?3 zy_)}k^6~_&sXR@wxa_B|#$~@gRvj1sB`_lQWGQ{l4{8ew3q4>FVhjIac`%s#FSw8wfVuawSBqjkZ?;(1xvQCcG3^; zAE=+cSZ#wmeujID!#s|WU7*ij>FGT@abR>pbkNx7_+kERt`V%zrh5nq2I%c($!H{f z(Q|w{cIkt(yd_Rev9#t16z32T0j1h zBE#A;I5B9yaEUQt$Ias8Yu9JrRL4T;G{LTr0?|0!+*PkT>!~lis?!HuR;BGRur80r z;AKO^xayCqRB?FKSO;A_=m;7-f>ZA9Ek*}vT=W-jsFmCq6zp*0K6X){mZGjJ6)+q# ziT=^Wx;WwFqJPzmn(`D4R^h^c)oi5@^zqo_EqZ8{e){yQs|&linZ=As-xcd zYA5-Dj>~>I<37O9b|t;jHKjcNLdu@DuGm1pzNEh3DOFV5Yvjo2LF(M%2;fK96YM`@ zPB#;jbo%`34*J$N6bI9x+s{ou-GodANYdnAR-8j>{+;jnhCn7%++01@<+~+FZg#y; zLlN;|74FZ#L?c@y`1;^)#l9n{KL4_{{>~*E*{h$?^2e@kv$jSE`$TM=6pL+_tdW ze%ZMm;i_{jO5>pCn%`>3wyWP&-KY|a>aMKZB-PF7yNd8zq3Pb3?O!1&Ipwy(s5!i2 zzj~K^DeJ6rTh)0RntE`lq$NgdM*a|AwNux25}R@C)+Siu?fZ)|{w1(=kR;V&Y>zw4 z+K?oxE7L|*_xos=PHrDB%8x!gQ}|+vEo{4{E7+j1FkVFC^oco@;O6t~MKwzcSH1sk zPkqW1H(|Vr=1p%!5rVg8E-H&k+ROHJP$<1??p-Vi9NdD6$=heFbac%d@g>2Nowwm3 zOarH(W?Vv}q76$OD5U5DnhR{N67&vqxyPv` zMAhmzdHW-{o7yHgzf7&ghO)SOMp20D;pag;&Oulj3%+tj`GGcLT6XWhE#*6e)W5wx&*Q%s-4q>&fQT;$FZti5PJT|>?4dKo*q zS;$t6jsEMzHq?7-+$W><@ite)YA8Itll~7(;VDx*1>GWJFWE3d^+3N4W#qLnW7()A zSo3|KX?o3KIY9cPX*Na?Y$wG3UH-^a1*0wirP)G0KfSKQ%_YLV%vyU);8Y zII_vDxX4|HdjyuTwjdbTzT7`WGNAH0>FwJoDvU&q4=p3{f|34Nfs%JM;XT`}^nt|7=>8X6l{bSv9 z``Jt-*xbSVZ$qlyyNg-^4h4qg?))(sjtqriWM>tr&`R)!ds! z_D#PIE@IxnvCg`U+!=!T8|LR5wN1Ycia-lG^pJH-gVwIv`tNdb_)uJ*9;qf5UsS%z z(eVrz1!&B2m$|z`6sr&Hog$~9$4^wwKydHLH*M7vZJDF^?8T2bhwJrmp0q}5ZC8_G ziMGXxh3R88^5d0<>SO;Vm|wikB@EgIs$Cv&8ZBQ)#PC3RA0-rs(c~KNsal314+b;o7@7 zEF!myiSpySChDUVq{p{X<;L=3>{#`&*ep=1Z*MG^u|Dv6rTV`gHbCo{L8s-%?p@W# zVRz9h>k@5IJV^gBTp2UtBC+RuuE#N%b7iW^`6x_N>{Z*29b`lM&Zvg2L8<~vl-a7^ zuqRL-Iony>`!LQ@_v;45q6F;@+_o^L`rnvfsT;Ohr4szI!Y4v@eEl5N@d}9f&x%MJ zWh@dIjUwsmRS|+me8*ZDQ-d#}xxe80AbJxl5p?N84?AL6s7$Uq95*ST-YVoTb&+%`#PgXl_e!uN^9T zzEou=s4th+S!OSotCmGuw}QJ@)EW)#5~vTGuju(M0KvB(Cs*T&m2sCayQPTQhaQ)n zrs^XY__o9E+^6FDwE1d`Y?fp9YR&C+YTVhjnT#npzsu%&u(Xtd{teQRQ8wY0!JyLH zH&Ml3K)=1#G}$9r+%MZlPE@#axY)O*KDdPtw$J~u^%Y=ME#2RsvJcHxK~e<8may|G z*bN4@fB^`IfDHy>x9C>KKG-b>1-&+QE4J6fZpCXS-*3&#LGSzj?(^un?wMJ$YSye- z6X)O=k>+@cnhV>t{%Lf$F50+rc3Q@H5yoAEpPm?F6<-kdB%f2AgNDgh$Y=piLL^xK z7!m?*H4s^^3R z4`X~)sJPlyxYjdwT($i3w%VL?7TTV(;^f~K(C!>wy)e#~VdametT!xzXwJtJ~XkKm$m`jlV)UrM{27nDB2(4O19gs*n-d?!Bm zPnhG9&b+a^`NcFXev^x~^j|UHYa@OwqhIOCHFrH#45WKCu(0rWYsEh{kn7uhSdv@# zSzI)B>7wn(70VVEH*5-pPd;E&imP^ei75F{6FHOc#io2zr7o54e7Iu-kRk})De01A zRD`pZy3~`?8-@~}Moo_xopfbw#zq?v@w9=Q(O8S$Ab!$42LJx$qRyn(DzVPpD6;1R z@b&Y~#3M#s5dvG+CIjP!gp23D!UdWLg1h%7;V>T7VFu{*N19jy?smXxX6l_Y^s0rJ z(NdQdW2s7#g}PDFPq4Y;X`hPH^d2$VhohUX{q)Q~TCj?ai`C{viP$dStdZh>)N!|1c0A zyxxDB#eYy*+cL-*+;}j3;UxTYdy%C7d154ej*C%Vl{LRKb2g|*lA`4-6Y3}71vh9( zboJ-BiKaOz9!rfh)zxOK5Ysi$btpdm2|emoTpQbydUesx>G=x;+H<|okw0qH+j3%^ zF)(Sy1=MYIUk>-L?!}?onqIs&KQkN$Yv{N@>$AEUJD8uS8eiJi?AFEcnknlB@}V&p zcqi|#&HVb9+G9Xg*7U2*wbZp{n$KF5R}5Gi!BIw_;;fD@`y#Auh)UMl`87hz^q%?I zaeM3hHbKK0Cl>lM(M)|LmpTM*PLi?Q1h1=CjbE&N+Q zsp~DZ&+CPkA$d2n9%0H?uZH`I*6^XoMbHwa{r9Oq3tXS!zLgenUnmqSPm_?~p&R8Q z6-q+OZV!YCtH4dafBP<%M+;O?=z$0)NYT ztD@!j+j8~Y_phn-y)8ITZ-LFF8j+hNgSEJ9W1$JhBG}n?3@|OX$#RtX3 zhbU077oXuY^x+2wtwAwR-m(m3y{@c5jYI1b>+$%&04(v_3_= z8y28CkS(0WCD?{@vkqZ!n%-K(0ueP_&&10zJ^!}lalykwGFr>UuNz&f|EmDStyTiX zz{NN*WYMt%pHS=15iw(U16-6`gTNFbMjF?**>J9wg};Pa2p;(Lcrc{mt+jk2(&=uv zQuVe-Y4K)|=6$r07IaM5`9_+77X7PgJ&$+PMxAuy$3)&^I30;9U&VM#q_-9j;HB9e z_vfYbV|v9lJ4YHzd&p8B&F_S;Mf#1p^~2)AwAf=&T*002q1WTA_vmF1H!lnHuuZ>? ztsH|PA95m)*P>%(F&}oNX=e@(;2%bUxU2hye+Qn9^NyNnxkrVymc#dZ4fDqGCy zw3SmZfe8xU+(lfp_LW0HXQ8uon)_`29=cX(wzxPHi=D6sf%T4PX|u#3(tvuVCfc<5 zw|>vclkbYP;DfPP+>HOVnsZclgy3i*RPw_uy958|mnS~fdtTV2Qook<;1hkc{fh)S z5xyWt?Tbf2uvf6VwfI;ErkA(!_RInrFPsztIpl3>(%Hmh5V zmrLW>Od$sY^ufJrNW%cSRnRmb%>*i>0m}#=3EE-&4G!akE56-_Ies zU!K&80W7~H|Fj!9Ly zjw1RD8stlVaUBhqDs)8f!iPSUxReUb6UaV*cxQi?zMPCz^8^{ihnSk&`0;fd=e^53 z!MjVlLfBfy97Jp1fx$u@Y3TO-LWe*ukXQ4BKsH31nso2A!m5Ca{8Pe^MueN1c%L7% zpO2UPQ#!5vX`$+no~9?FU3G5d7QDlZ38KRVUWgtWd8YH4=`Tdh zjb(6>Y15oE&P4hP3lUyhq;S49^<^tA@v!MgJ^j-dPoRK-u5!z6V=A5pwb{dap4ZjP z)i*Y7P^9oPi?C`V+a_3l(6$$x>c=<5DBlCOl^-$k4rhG96Tx`qCp<@SHvJhtL7RBb$7(s(g0yLf9CM~Iab?U5ZHd6L1|60(~V z1#S{6l;)eCPhScn#T0HbW1S0~VXLAwY$8N7^gUKtCoRWv()I+~IEMD)c2ErCoA@Ev zaoZ*j-e`|hWP%UYNq)VafXU{Z;WDCX$&E^U>C)%9 zSaI2d&JoW&aYKfSq9P|NX&A0$6h%0J0Jy2<3%iWE~5$E};E za3}4SXrbL4X~}ic8z;tg9@^2sC@js8C=4JGnZfgQ9~R*=^jAbDeR>II2(ElF>oup_ zae<)wB-Y+`k!9cTk1LvskCnmViVJ!u0y9+uO*pO66|sIVd3Px{g3gTvhY^s){RXv9 z@|q#JqGn6TyhrlB8XRW{DWFJaA2-dp%VWj4{ zu$E@EP^h;sV!7kqqoa)^xD8B-@Wmf)z3Es1QA>i`(vBbJ!#cIQPTST+aSD(>P(yd9 zsS?2#cb;4;h-c07%SGdv&-Yvm-<`!V=c|g z^1EBIiHV7hI_cN6xjp)EbEJD{0Rvq(@SBoa$v969RW<+aX4<;$!rdgoR1U5C_Kadz z>W0d9^%ize1+8r+)!ZyI=1n=u=CGJ8&8BWgmb`|3F@tV zWahiHTY`lPKW(X{#0rHyt%Pd}JKRfPbkxvxhl(NdH*ECofoc80M;A`Ub_;l%9)UJ`6FFa(qADs=kb!tL5vsA}_=jWp)!1UDT0sKoML!a*oq~)GhmQQMXCP z32t>*Jd6?pq91G4dSarjmO8WuXYn;e?=;gakM`R{1>TPZOM9k*+40B@^@en5bP~*~ zxifv6+^cv-1vpnhgOiUoYz&jN>iw2f0wI0xEJ$} zF)ul6V2pSrhjz8MTL}UQE}vVb2duXxC(s&}J0ff5a^fkAp4Q1aPl=Xkz;h>5Df`=Kin!&!U;S;^z9E=%=|w*(B{*g1z(yiH+}~C+^t0z-Xf8zLKV}Mhw-k8@ z!vL|t@f9*}5?W-b5tkMo&Tmy~iQ$dex4{_ybe4(m61?^#w~UmTwPw-ZhU1+9FI&F# zD;Cg&w&!tZ$^eq;Ct!E@LZoo%w%}(~*NYc;<`AXY-f%IO&jLxG{2Dgb?nl(se)Yvq z<_>|Oj+b^w(B0(Fz10HB*lTI6iE!bEd?CV)UzTtFvk$Qz4*(~d z+syMW(2O=HQjGQxPBU zFsR9;k_9?;iV$w^DP*}Ox0hwXJgpf93O@IM&oZkTTr_6?aZqcZSb!dbFq>K3jOUYt zUzEaxc)-jl~JWym5=sDLd$6-2Z*s4j*?+6-QO7Ej&#n=6VnI`$E>Y6K$4Iwvyfa)nmz?WuL_E26V7a2gugW=+8YfqYb4 zh~Rbvv|Ti zL|cvP<7@!NQ%>R%jxT4ktu}d!Si~>h(v4SG59VgsH=2MQ%KF;9&EmE+RzN1XuUKd9 zBGj$rS;)aeMRPX@(cz(QlMUf*&dJhR9FH0B+|B!NQG7fgJ|>idja+YbRJg>SyJ~A^ zcZp>3{axX_8SS@pSbZd&Z}}5_{(CJ;w!(|deTK#j7E2P;ApSA{YZNbDU(5JgOqi!& z80YFP*@cu~J!+=C+9PuI4WO4TbBpOBdclA zSz-jc!3a(Uz8>%g4ohv;9#Oa-F1Ax%0DkL}4u;a9C`mbceK=A6LSaRCbn1$rRb;ux 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%0A; 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 z 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%0DH=}3Ldax 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

  • R< z?=m=OTPSlcNdeyKT#!Y* zntSjua0`n`t0n{USo1KhjGOFKG8_0z4Ky)c38(7*6bjQ5HH z!7yf+Y@iWR&(r#G?4~IO`be7nVRD$X=cD9A=9q23BNiUA)4m|(4KZgB%X5RB0s@q| zyvZC>s!@R=M%kj_IkT&&j96b>EwcZ#_>jm9L)w7ZM_pb`ZwD}MYqbCvrUc)c#z!8STPEHZ;&zo3H z`CyR347{h~=`?tC9hl5eE++AGAY<$7WR?1#Ob$`b`ZG#>21gVxGCC+JP+`q5_RP3y z`cS!0U9mXUb7LjE;7%B2sgn1ystCo4Pmw;00m@$UM*#rfVsBLt_a3gHRVMz;7d7M# zP*??-5rW?oo%%f>sjb8Da) z`(`Zyr_IR(cHI$^2adf0UmMjU6uWQC0hyk~7vm*|lnG0*uehK)BNLmeYgZ|7-s;Bc zP`-424XtnEVmlgCMhj<`=^gZ&5-R{QT9Xl`Afv!{pB;xcbo`V=fEH6KLnU zOHV`io)>Cp7)n{s+9mP)7RUr_YxReogk+$)rl=xJr{{GWjbdHj0dwcuezj9qzSLuY z(vEh&J87q_I#D+puPZBQv^7Htvr|vh*;nYLgGj8ae*W0>p<>o9Z7%S{3O`; z%n&vbi74m1@1V{A#i1+a<@oCP0Pd|ANr#B_Qyfn8f!YaYp*V{#pMP=GLC!$dKWZdR zX3l5>ws^}7h;m+1g~w`m(O(YwGlccL=78xA^D%^(;1B^HSy&b|=uO4|zN-Y7q6)fO zCXS@@;80>zQKU6KX))niRVxUleb2StT3LBJ@cJ%Pv=e`x4P8XL|9ezOa& zj?KsV8h&!ntr{+@{vNyt9(9fwZ_?oO{qU|>z^&;>qIKquq#%fSTs<_!H@X^l*y%w$ zPdkz>2w+Dro>0~by2bHsEb#d7Ge+`G)JQ0Z?rc4V+t*l#b%`FAiw&{bnTv`3(wIwW z0g`QISr{|jRD`v2B&A@}9I<8qz%@Csf=s(jM?=^i_-mEQDW@rXXL~NW;#uE#BWS5S zj*G`-2Cx%&b~Yb@e>EDmC=OU4dn_gmEWWHVi@JP*ulG#@rLx&CWq=t!gD6U6p7eBV zz|Zl03Ull+;QAJTY7%p~vM8R9crlAM1#$Y_X@Wak5 z8b6FXe#xTaegR&gGKVvRp+sz2NGCny2b47H!>X&|GnIAiPNN)Vk{h5^`!?oKGBf1l z3;l*A$CcO{QG6M=%@L_ihBaWqaf<9M;wdj@k=`uL|H}qE0rdW%5;MU*mUYBQ*- zE7SuKbu(Qc>v;ehhV4U`EJRvWQ(D1XOVcp2mL>RtcP!4L*P2)tlxvKl%Xv>#27MdB zPJ!?tK2dajsF(8{mJEs}re{YU)sa(rAvrUOx!#;C zo?A34ZbMH#Bo9l+OR|>bEya_V$&-Rt-UB6`!w=!d7v?eTs|F#; z&rm!BQOyWcC))Bm4#B32+UN;(8xv6s`9@O<Z1EJstZo^P zo%G|y8MHQ_`+gmmTIknEX6QG8&m8+rr0;gr(6!98AeTzIXEtK}-H+x{G{0zPCjA=6 z`oVr7JXMoLPn)>l%ZG95u2@KB8sCnaK^;U^6>Fh+)C3CUkK3~7tw8>6X%=+`F>e!u z8RKFRG3$0h&3AA%-4-RrQpaz(D1(LvoF0`Q zS#_1v0u3#m5|4H0NvMRP_WV!>_`Ty$1~oDF(Gjp-iXRhZr~cwx`Yf7@XIJN_!h`=f zErTwGk)}0^ojBJ2r9zBNva!SmZF5YF*)8bodH+Xl?mbz>WWxeqsB@l79Ckvh@g92>&Ax8N{h zwg&tY##@GGP=NMtb_UmepH4B+%!6Qbv(zu8g(=}w3E|XCWw#*3W?LHK42KMQ$ze{< zW`@{wFi*z^lORtFUmECK-%<(6!0-cQBKiBlu*_n)NPtL$A`eJIF!01ps}KU5mj(8{DTbTwo2B553y`fX&SBb zv$?nzLUNSDH$20KIcQ#?#j5Lk?Eb~Dbb2OOnbkpHq{mIc{HvqslnzA>I;`d&V61xJ zhp=n8h)zX6C!P8Z9d2HfUTD?6+5u`r%L4IqQEx6qozAXZRWP0yre3|=+U zFMc77ehcI0C#91(1sG#8u-?rRk%;HO->2Dbo;ibRVLM!zh9%hgQyLV5JKG2yEbR7l z-vT+T>15`!GSaCP0Nqw-iBFEg;^u-3KV+$2PAWV|@ygPN&0z-FDm?$&J<&*Hd+X8n$kiLge4*smj z8YX0oYEDG3PcfEM?)fQ`CI>MWgh&{>JGuowJ7MidaA8kv3F3yMIrJok|40fUxCf=s zEP}d0zOlA^okPV#e5~44Z^k;fw&l<*e%Dv>fVXl8u@ZH=`SWvsmz_p1L%0RTu}Ha? z8O;n}p}_8Ya=<#`$^yQ-KZn-AddGUVD$Hh+T(g!W^OzkubYBRY4GzG$ROc?yvg(65 zP&Ai6kRxQR*m;{-@Avgo#d^Y;g#Z&T6JsxAp0{n_av_jnxFIr^j>dBFva7?D*JP_a z%^&|QhyDd$@lqir{==}9Oc7sTVqwRUq3lRkF026U8^X-lcT*(|<%Kup(BUZM0S)Z4 z7cnzQ8$5g%6B8(A9gpXLJ5OMeaNL!F=txnQAW&&uYy>%pJ){~WmLGq_o9Q?<-h z48wqR-E4*&RWI<~ROn!RZ>PbB={ZrQ8@w!Ac_Qz~&LucLgA19*1vNs!Rmyf$3~ zKmj`dhVb+np}V_|f!F!%QZCI2as=XU9f9bPOSGk+GD@_wCZd;*oC5K=)UOWF$UB z=z>@|Y~&9_n$QDE_+N?U*D5y~y3MuN4*ZmkK1K}pTsDP<5t!eOr;!c3S?s3Kc(SWET@Y_KJql*b$?*>HEXn2xqg3HI=3Pr+{s zW;^%lz=`)(8X))+KhZ(+h`$qAXPGdocg7enuX*@BlTXXg(?2-8`@=VHBLh?l-*pbIpTX-div zCF?@XVf0HA7sh3t>Rxg0rN~BXk@}{kgiFX3F(@e|BKK^+)E8*TWg-tMMPy(_@V%TedEPE+jS!&RYSS zJ+1`PSlx+ylomMl0HdepVh=2XLz0ilUzi5LcQY(L)$e4UYT(kW1OFzmo|Q2B6hShT znZ~4GPU7ES2BVX5cECK^6zlhZGYlLq?563U9E8nwEf?0<2-PhL;Ue32<+rM<%KPA@ zB0aYQer^Ka0kGlR04DqvUlyd|j!R!m%7j3w*Cj9$K;J~(J1>_W0SL1)4>S35>PUK{ zgnzwr6nzt{e#gXj@yf2@A`|IV;5O?=(MpT}4nH!wCXXT~UtThb-i9-e4^gc1Iv_Rd zDttAPxrPIi;Um_KqU1>FUkM>YdG;%#==m@v9@5HMu%Teo?->PSzpqRX#QX9n(75m0 zw7~8cMhTC?2n0`yKco3OY!qc>{KGxbDWhnav^REDB!6-7C`wP3_O81mnmg-8kya}` z8ow%v^SPtwiU{TDd3;^RD9Q=qVzdEaT-?1WQJH7npmb0Xs5n(7LgyAi4JK+wVYK#m zF{OgIQFKv|a#ud@xn(3hzJ~9-X(YW!d_wdnnn1j0rJX7Rq{~0eM&8l+*+J5(qr1ZS zmNj;IB8VCB<5203KTjku1{5-mr!KKmMhJ7`=UCRCD(p7*LzR$Y4_;vxAp8%L9Mr=c z%Zk9a=T=zhA>Q#*0oj8Y|DaO9Ixhj$W{0~|AQ$^<;Jz~N$ugw8cj^iuFOPgugkSsY zC9wHB->8HS(@G<#9Qb#d1#H}lM`Vf!b1>UiXQUGD_@R>$!#e#THV?7qq(m>|v@ja1d$*hVW^|1$-U=8+#& zqJiLl80mS;8&fYFCcNx1|M7D1mTRK<&Mzt{A()$9s1#WLkYOgeLNZy_hwz>qm2@bW z8J1R12oD2n^b)kr1(kqE`X8{z@s2Ai$r;A`<16XfaMq0<)-l&_rL>7(vAz;2l%E(^ zNeAFqUsFI>NK++%FW4I;@Im@oj8G5W!-bIBp+%K+KOz}-l!K|=H(24-^=b>SWx6h^ zq!$CZfc~EdS0Vs)yvSK8#7c*l%mAz7$?n8T8pDGt zDk%p}^WDP36fcBRXE6eE5K}O=6ecH(Iz(Sw?VM&*vr3XF{t% z8H$H8S6Kn2aYsF-7KE@vB^YV&d0EU`j#pmsMsto9SZ3$SnfMkTFHCwtE4-^*e{O?RuwC&g!qG)dx{n0?K_Y`Y29!phAXdevM$ssBrPrTM#yhkoLZ8~dJ*FQ38^A2Mht*7*oB|VC_dzCDS9rAJ1C-2d z=H1kUr>W21{FNE@z@s}0@vfe9G3~zB%E-!fHTh)9l?-oZhOzkx<01K0T~j*x7A5JwUzFSbZ57fyt&9TsK|EjzG53Dq z5&t(#VLSjcyZaHrAKDx9;THY>BT7E&c*8^~T(>lzHl#|AHM*K%c|8h>MJm=Gkw$; zB`B=pPllJ!QFuMjtw`U7eOamm$ddRrvY>FB^&=mliFxiW0CwQnVgha<%nHQ$5Z#1A zA6kmR_2Qf1((lt&C-dPSl~4(F&n|#6axOQ~J#5>1sT8!sP)a&d8Hgu+QbO6VKM+j9 z695^-araxLv=I=%^imqe;WATVs^lE2D^=7A;7*~dxX@MA7S_MK5C%x!!&bOgra$e# zuWD)#hgOXaW;&-9V!Uf=JlwIabvkgWNDz)w)tW*&gsUDjf`C2grF1~c*WsNx8YSV&l**w0l##HOK5y(nLv) zyy{@q|6K-5w>4LlqPw8)f!dqP0ATe51C(U$ll55Dvxio|oEgH`bmMh#JjPl|>%@i; zV$}f}*RmR9J%mU#Q-;T~>n}A6og=IVRuz^FMZ8814&qH0m(pDtE)qyiB1`7O5~@%K zTnI|2p#j&lc&J!) z;9bk>1T&$Cho8K(l$?lmDESYn38`hJG!d33MuME;v-P#<9uXK5iy6#*XpYA=P!e%i z*B8P>?HyvKDGF#DiX(Dzum=aB;|kV=F(moMpt#&>MU^s;?ORJApV^^%kw7!xsVdtv z&u5M;!W;CGH>-N6l<#%KN}p#`XT!KCp+6And8L3Z<$~5#I%FoXq<7Td4^_L5NP3ft;|Siulp1t%P@WwFo(> z8l|_-E<8UsaeskM%A!(^MuhbcS%`pHenZ zf5;`^=D4e#^^OJBBbokM63K7gT1FO)Z>f8OMhjUnw+>cTAB@sP%v5bfM8h<_5^wA& zO~+8Z`fNe30iZWuT{;yqRdt8!ODhOc@NbNkKaN+u7|*xEkb(Q^z}$c$Plq)CoIe>d zr+=dZJHatt;FuzO2U`*W1EgInKnhb7JAyzdG6n|XH<>7SKON~yV_onr9A^jyFOW?n zQlwQtR0x@x${t^AqHx~ysFe~Bl=(l&#RR$5u^v!7k)MbxBZOTC*d2))si$Mt(Gt=U zW0@U-K9~2SGNMxJb0_*vl~FxEVk@I`4Rb`4VgCuqrdO0@jv|ULX8kZh&CCQ!m2(jU zdpVN-^*vS;sjfFxK+&laAGFfJT4Fldk18T9Pn@9iM}LBuaA z*xnn8D1slv+SO>779p^a{-aQam&L?0LZ#kCs{`4+P-d`=mlx4q)^%NxVCgHc?%khQ zX%6!|W`?-#zOamLR%vvB0(~2pc0&<3S7o@f1u7&77DUHC%YgHxI%l!nSJwOH2S*vx z9;Pxb7vlL8@)Q)6qVkC<1RZQL6v*H{uEqB?#< zy#?$TdJTJ|X=igyih4=bfE1?uUavg+;U{o7yrUH1c zM>do|v%3)!M>GIdOgiHYMc~L!Z!MyxAAe^^&jr1YFwh}WOuHoy=bT<|l1M>Hj)A^cxW@Ne|86h7$q!=ySbl5Cl z5U~z6C5s4_3T(?l-U5|g70B*6w-7pApo2r%!V}|8ZzrDdo{2sqb{C==!?;Kqor`c( zj|mSErRHN<&E17i)`RwSDgWUE6MYrR-$cs5o8`Q>#Z0By%nc+pCPwfvP=fbd2fu9hY zo#ONS1)o(i2iC4gjnuPSQ2HAsDrON+!sgVnMNj5KmI$faUd6m`nW%(!{%)qX0H`W( zf&s7eDCQU<$O@?7sy9NDovl$)eU6BNwr>+?`%u1l4`ewa$I7~hb-tJ-KVgE-EZ%CO z`5J|HdR09wQkG&_---$v$=_H5j}OuLx_Ydd_NWnB%!I1MqV;27+I#TX>@$G-V4Y_$ zMSbmn+zg5EGahHCBoI%JVNExcgH;u_la7A4B%hyn6kHJO&lo;n>@7feDSpd1Qvt)m z`S0(W=?LIa!K_>`YZUSRAT#|Cu1wFDe2Nt{QzJ426vhw?hYSJuY6!@Jvf+3ku#F42 z2&sMn0tWy4PY?`m|2HZ3o|Vc z1mUxGnW;0Fr@UYmibiF|*$YZ(I&;Ft&Oq4HgnZbBrqzk;lllUY4Z3xl*n^`)d2-*T ze6j6*6B6~*4PuLX<`u({)SfcaRz&Kta&^8PDiR7xxd3NAjZy^R9HwYaCNyU#>$y^F zOZR7HS{%Tw_n6Ue7oZ_@f3_br>v_XUGo>Js4^b8G^DMjpCD=s*q{>zeUoH&a=xXHi z7-9Sfa}5F;3{cSxj-AX*5D9C2)|wCxD_G0N@ExTE6^XwWcwsQ7x%M9bT_oW1i&?fcmIMF)$m)c#omb$cjrn+!jU)cLN-hY8#kjC zD`NV+5Q5OKS@555Oj222w{Xd3wHCpA-vZ2Th@}75k~r4%m=Rh+`&2#+XD7ECX&tZr zw-K^kJhxNHOun$S;fh~}*q1@GuiG=xZ0+Hc_^kWP&oAoY%smp%}g&0O+L~{d#eHZ-NHYIwa z%6cxw@Jl2BAt9KBHyq41!$mnywNu#YJB%=24ja&a!Z|8=2rq6m(zgNs;GpNRLH$zV z;{`Vm=~3*+1&x%)dnXssJ!np$%+ecKM1Lx>CG$U$#r%npt{mcfQV(bfO9{KnsN&_U zFnJ<0^1WE5VBq?udKs|cT?@+%8I2Qqns_{@bxv>Wk7sCOiu z?k~+}PgAzP}l(_);(v{CF1^q?Y`(SS=fz_Eg_a@W3cVqk+-M zQQYyii9$))6-${nQnWXyGsD|thMgvu@Sk1-pOD>r9O)pe_4Wc}0d#6JP*a+e6~a0; z0Po_f6pjG**%D|3b3G=2Z09Dxz1%el{E9dS{GCGHxW-6h zLR8B2j0C0UBP|N1E-;;DKWHBRPdCKW?!)hrd+VcLTQxV!&^9Sr5h1l!Nh%OV0;&b+X8;#kZ&BkT%qDmGXI z|6{U=K8oN@1fYIIwaRfj_MQjvq)2|`KpD-6W8MIfE~uR<^4bcHl|!-}`BeODg*AFG zSn61k63$MBm($}u=_lrbm_&0cycZ#~Ga}f|^GuLt6M*O6%2xeY03B2@%z^=WQ?N~> zmd4}|sby7iGF$$J4a?R6dwHnTxhgr5tw(G(#@~Y2jr)F;iVrRf;=g`gKw|=#w^+n4 zM8xVIz=0wv!o?E32f*nc<7CsB8=?p}+u?G*N)I^1pvz7g%&=sGlK5ewRZ4O^r9s#n(GG69EaStpuq(-@A}?l#7}1J%GNy0K$p|8_S$q0Dk)Hde#0BOCQhQT3bMCf?2@=Ve@t< zIrKd!l!;*nP|$|7ygXD+F!$FJ0Ba7S7a2agR|Vx3A;>jEI(*IWFuw0)j67A9Q%Ha) z5a~WhZTn|or69L}a-ip$)x<4zuUBWL$})lMq;UZ( zzYmnck8!$yrzfa9qc}C}5$q5hGrS9BD6y5nsO+`8Y+T43lB;R%- zA7@YfzwVqMsdGV1IC}?A0HAaNCM@>=WL~UM%;2L9?rnNIM2huOvaMnCqSA6;f|Bb0Df}6RQG7t|H7xYN>K?Ge-m_bu@0s;$8 zW1qK~k*M=3UaaDwIK=+fP8QW%tRHPH-S#0 zSq(@E*Bets;9hu^+!I|$ohW`#^ty^rsIT`xPg}cZVOObmF{@3ehCidco{87*@mXKm z)g@HM+2w^aF@UvhErh-o$b2zNs6lzH@0IEhJ&4t#D---+VE!-EKneFJWW$g}7Q)qO zr|&&##5KOPADo!N$QCy9kf`Hy{E9%0H193M)LOx9-;i|0`8s4c|5Qjn2L7+R!g~pr zBly3dl@fp~<{P&c(i;(yX;DfT>q0II(7L^_zBrFGk|r9xAqxSB)ukbS0wsEiPoaLb z3BJ_Re!97eEO zCVOj{4Z275w!{(^^NH6MQLKhNj!LR@W?0z(xmq!y0Ybqq4TSZ7Ekw2V%?kXxc5yKc z;s1UL4oWbO#H+7F4mI@mnIT;P3J&9kE-ONHF+25~D2EZrcaf}b3gBUW%MC?zcK{bZ zWXCAu=VJW-M&9|bY@lfiFNZS}qRa;UESHOlRPVebY+NM|my5*9IY?hqqLrew*vLh$ z_bwD{h}frOib8?nSy@*H?<=PEAbudUkd~v*mSTF&MlRJ$zQ3=5!Ml__rY)fkb_!J& z;ZoJMkJNF*NkVI!ZGXQgf!tdolo@93Rq zq3OK!aSJ^O)X(qnx}Podisp>3F1pboQq|QrIv%jlcsQ0A-7h?RrbW~Z`oHCgKLqH@ zT)D`x@r}6ZVcf6jzSTlM^85E#=n~wnyngdt7Wx{F5=I1D6@%EwlZvfmIdeo)a;%g@ z>g^*BTj*z4uLHC(`QEYRq=n|6ev}yL75oF8Rg`D--hi31J`lpiU-}$_SFbufxZl39 z(0M8aPd_U@%Zhr{?q&&K~|+n zzyOnY_{94xbnG|rHb#ScCWR}Y>CFek*&bx7)mi>HomAcy0$B1h(*R_c;h!5s#!l&k`5 zgIikVfCMo^ z(=$j}!!jkU_v%BrAm}tv2`mZ}L}*E`z^&_1m2# zoe0=LB!eh1a_%fBrs~8Yvz_(M_NC`6oPE06H~Xg&0VYZW(j~7gdl)xeQA{OaK6QKX z$3=7--+iQ%ehg>3@V_yCvm(;@L*JCrg77mUd;TE0XsVE;v|i<+_3F~o&;IxEQhJ@w z9B-w=K}`G)X|4*W(6yuic)OTh5h{)0-G}glK%bh1s!asB=h6yVi|hY2?Rp=|nF%BC7$k!;uXSm2ZeKKF_YfKJjwWylWo}FxB`p7{QTolyYg+L_&3`3RH zQvA6;OX*&8C~i*0>S5Kl;=@J!KKw9Qbhgk1@tr_DPXfUb zs109(U{q&_-)lf2BtQVC7czqHNkTpWO4MN;-|dUAC}M*r94M!60mYpS8S_J$3i>2c za#!1<*uqs6Kz=kZoXU~Ql{E&&n`qH7TzMY27(pC0-Q;@J<`ww{2~0d8R+_mOTXzSd zPv;^pMUa9E&;2@N${8x)vTTJ%7RT5h<#eZi(jhyH!H4kN3{VQd&e^F(VjlnSUWN4& z*a8PemU(A=i)V8aApK}$QB_e7bA6Tfhp93KckgO{}5@zX&Z4d za|c5JsgXpHn`1_0Xc^i0q7fC8HB4ndwSD8FTg3z4oL>o{E0!3LgGm2SC9`ySz~V^h z$EC^XZ1W?66?#DOO6EntVL11A%IO%~2&WCTlweG2H^Oo0ObFT`yc!|d&7*x-XDA5r z8?wU?KSfgboY4sK4P1&S4Q#XR&V3Io3pw zkgvjsI>5}}P8Etw=hx}Wh4rY~-J&NS8dZn}H{X{DH9BC9N3yQzBjFkL)#@mjznyHN z>JT<_tsTh!aqq~X?3u|9dO|5TNl{8!a(MglJkk?8C0aQ$hv-qDCM;_980g)I{p@}`^m3m*W&nd;w0@RR|psx>Ef(6H<<$YUpM5DXYgce z$x&uZkWN(~5?8l956trZqj}UkcoxIp?_B);b0oiHMIPNnNZbnx;&|xsMR4j8705G@bEJO+C$ri4c?fa~pD<x3gJ-N z?mWNbJw6g2pBd~(#>8ixbUE`sL#nL>^kxS9n>RpbF20=P*IsN}YaTSv!0!s1B>$%~ z9;G#zdTDHKHrt152Kh?5za=Mq;3>>74eUJlaW>L!^sFOF zw8ZX5Paa@{zvUtwxp$?0xa2-ZA0+L2VN5jt5O*~sGCjy1^?xkJnVhDu7T+>7kI-aM zw5Ui@Dt5!9ZO>K*^ZaFbuvNGy5c?yT55FXjz5|eY2JIDEBmetN8wE;h9?K5nvoFu1 zw*yfhlLsNzihpC6=$QhDO0?Th8Zbri{=Ip^L-M~!O^ZC7T!-9C$Ca0asw>Vu|2U66 zW$KUKQT2FE=h1cuC+{11A|&^>M+1V-gRkv)N92tj!P9ig)A+1+^JtaEud7NtzYc>l z!^Zz456H)nJ%jHtegG~}z6obPg6}?6UIQJYJh~Uziov`H*PN$e9H(`JoJAAqoYLHc z|6&=2!Q=i35!I4_w2xy`D$EvcJxo zLW2ixOXfKUrj*Q?;xAprcYH0rEAkUdPfVCs<~!`oy$^v2R|I4|*IzJ&-V2qchA)Yc z3b$;BCG(ymQo66jT(thd>QFY$H3hy+()Fvf|Mcq#3(Dq~}vOUl*HCD?-_|MfoU1TYV6+h%G{e zU=-I4&!@jMY!!Y-lNksXVBKg}nJ9VDxInUfH71fjjmvw9i%|l=+5wR~DAc6^S?2T zk2<1Q3P$by2UA?p9$YkJfd?a|7Q%LB~u z|FExf@T=buy`oWMI_r$GAsi=i7qi(SRByxjMFnYsQXd-1mdDs2P9`isle59cF2+Z{ zL-YnuWA-~*%6Z0l^pe8LyD~>W)S$^jl3({V(K;=JKY6i(`qQ}XUWaJxsLY5ho8qAA z!MC2pk>W(n!Oiy%2e_gy|IBE?19)o^TMZVCmrQpc3_D|K6%gjP@kIh3G0j1v{LVxY zy8t#~hl3WwM!Un|{|YfB9h-_id#HyHD<)}w%@~R^-yQTo5PRxT6rb^juoe+PJo7{> zHEH;@fg@;ABHJCAgP0QZb?h_rce%uKiB* z1Dzkv#52RB?&qtc*uKe0gqqC}4tf)3dpn1 zX4b+N>q6iMiXG9rbY^dwLQeKM;#V<}HV8XpPvLmFDuOvo6Mz<75nw67iAS+MqXh`F)bx3$tN z9(CCS$_`@1XlfM2NB^r{%Ewq{;C<%l?3j#A4toiBK?mTsKlds4418-?5*trI~c9MclWO`B`!WB46^O~90& z4|7t??H#8A*^E1?p^3FIEo9}Q)o9po5GY^FT@7XD{2^1N@ckBQ6~+JMSuv6NdGW$7wbn_b}FO|N&P!#EREnV-QGs)PA@|0S!e6vux?%T^Qvn7~!We|Tu?v#Z1Sw>zD55CChzcE7B&FMk zK{?cFs4}Zaetb?F?MADK8WRwTiFmkyRc-+{iL(vDxa~k2d66WfWMcWhpm=qgK)99s zSCw1TmAD%``>l`4iafZH^<>ux^Bde{qk=&0B=F*GtYj}NpFVmh+rr6AYL`VU(tN+4XqR%#%f-i2-kG>H_i0ayDClmuF`jx z)*`^^JTU-HAZ|t ziHVv<)I=e;i#@8eo4xIqu@s5~(k1P*8TcQ1>!A$g_sK|o_hvNFX!h9#oL0qCcD2*H zXlw*gjKUrCuQjUTkqhzo36lS{W~{jSg9uTg)(S1FwEX&Q?bM4?3DFx6^+bpW18sx6 z4dyN9wTmqGzu)IYlyo1{Ldc@T7LqQNc|M$s3}ul7kBFte6bwbO2O^P%e!BvG30hZ*DAX)dB9Z;LiM%4pcIPuoEj=iBH~ zE%hu33FG{$cG?uc1XZleJ5soJ$~9bE^B_8gK(02i4rHMqFsn@Hi8tG60VQXQVr-iGr@r+9?7maDZkJQd!!XXf_*!JHlNH z+i~!?`Zn$b1>)!*i2OrKJ9ti)HaE8R8oc zj-?+F!4gVbh{pR_&!ZF3ptP@W5~|ePU{&PRy*e3p^`oO%AUnJTJSw?EhKDQt&zJ#? z?hq5&JP}Mj@LQJeYeVluy2iIbgw~$k{nAAGf_eWa0$+M})I$x4(%UMf)n%))TZglb zZzsT1Q;Z(o3p1!@qe2WIyo%iG`=OO`!8E7DmgvI%{xFpPh`#yI0llRYQ2{M3aHB+J z5;mOk$7cN7fkv8FFzxnM$O3oj6q?DRAZ_!w_@=x33}fg>{S?}&zK;u;}O+|OMfXQY1%UNTZg&W{WRP1B##xm`t0rR{P=^d z^bv7`b3DyPKmwP>D%D(VT+{<Bv}mUZcF{h8?a6qNba@G8wx}EWql&SqZ9O9mo2EYGLj4?`(%!@eZFt-xm08Q&?0{ zLr5Hid0(Q~!d9+*Z8FVAxCUa`ceirirU2e`#bo+2;|#8Gd^|~QgfousZJSK5=O~K+ z(TRtk-Q}T45c5K3LuxB(-|_Ke!~}(^Ljv8EPFSXTSV>#aC>D%$(yyv^rcassDimP` zA_3*FNRBgFCt~UPiYL=dV#BvLV>7R7ftF=4Vo(GkM+y95=LS4`mG1Pcu`2)T9KwjF-#?kwBX3Wv2Nx4M4+%tg>j*`3qL%{R zF&ml*yG}L6rgdY0Vf@p*lj*}@zHYRNDa?0aWks`Q)G|e|H9IB()l=JdD*lR3%9->| zERoplWV=qj{e>}r8HFzu+N_qcbNlcvEk z8{~JT{xz!`oR`Jka7>^k{=!3$Hb`s|O%=8Ye<#bg)5O^e*=+U?HQ0!13b6Bl4GboX z6ts*(2pZ8JWFi*vN6^-+BVJj3)S9`Q5iAu6YE7&kvewGQS`Skxrpl>$wkxC-VK?uW zW8hEE7(SlrV!C@;vH686nD8IO&?E@jW?JrR*y_2U0a-X=f+(wl&;?T*eU*Ij$b1J3_LoWZIxOxH4``rHwheni1~S zzR)ZfY(YJJgSJym#RzU08$q8gXc;UPMAvP;{UTT~1&y_vX)3>bMKfKBnz&mUgz^7D zJvMRQul1;_)h=p)qwPWKc_cRPK^s?IP*g`=_=>g7bOByk=);;J^^i%w7B$kIC^7h{%HW4} z;|rK>aOM$67d3|KUFk@KLk&YD-@m$nz5!7FKm**0&)ujt9E{VcIStXuL3=6eUQ4sU zZqT)E5)&t;cY#npIC}VROz|IyWb;&@i3-w6-4B$xQarGvi?OIzXf=6;idTl;p46 z)}(;{NsY)z6Ip-LSqGXJplBK?4WkqTKqVCl#Ly9Ao9eB&CN&_uDHb@3cio6GXjne5 z)@;n%Q443H?@$vOf{Q8_Rm`CF@pMO3xH9Oql&5rDie=RgiHSK6)QK2TmsL#60hNYJ~V+Q3ttFGPj9l z1fklok(S{=@-Zk)6oO%m!se;Wy%x;Qe@6%KS5d8urToyRu>9B4bU`y%+jL$NAwL5# zcn&$OYYhP%h zV-N$_`GNd-?0nH0X?-1vpoII0nq6!@t2#$68iW6aY~b4)=oswXY}6q6PrGlt*dw0Q zCJ1;J2p+_r1(ByAG3n+;+QJRLHqg^Z--UJVU~UvV&ST!c>L6OxYg_v3=v0UTD$Y@M z9tvm_VsF~tEV3sR8Q%T>w07ljQC;`G2SE@JhMgH091w7aQBjc@U~oWS7y&`ixWrM@ zG!Y}X#28o7YShGqX7Of|qivIz7zJM!(lmOoX%kHh&}M5kAx#<+Ao{?5HH z7bJao@ALjqX6D{=&pqdNe*5qHbHVkd3`rgrC7N1`P}yVhSA_3T0508Z~}j^ z^t)oVKvplW?gg+;^ba50Sm>*q;)oF{8&Xf{iHSv2_`DCeCBXeB_5oWZ4@@NO>k^g) z5Eriy5hO(FkR=Xv)y7+Xj{FYZHIDoropu-bUm&Rc6~}U;SurHVqr1mz$#|}$dzH+% z71V%QKP=~4=y|-P1T3WfbP3C7h|S0R-+i{2wIbsW+!TH4O;^(}BT1>;vTGt%SHGg3 zKe=H;k-rU~N0ODyDZ$x6spF_3wqG8SbaC%ZCG2}hlOFb5sIzaLXn@L)t*I{tWcr)* zf{6h%|fb-eToya}tzo+4QC@ z5&;)u42$rkr1yUQ=m_XMC zgvhDicA&WMm5bb?-=lfJL-YpocoXQ%p`{fzA$SlfX8p^>F2S$XeLAb8dOd_MYsi7H zB0{Lun$ujyS_0aV*u+{Gy>9l9_GYR|-G}m``09Jyu!0C_h@ZfpuyvqT|Pe~w3?O6cFC5JB#UL=m6o<*I?o+4XZGWNW8A zb93Nfxz~+&*PHtg+b9pRGrv7=0mm&HUq<%6W}NP4<;I_l{O|Y@NHjfTboIWdW4jy1 z*{H3(E>cPdE|2Y*hLLkzq#HwNS8nS2Gx*y!OwRitW$Ds#??ur(13#O+Kl531x%XYv zc|3qGbr0fAy)U9gQD<|*<9HzE*k`;1?xHW%hbq>q^UzTct+Rgk#rV-12N|oIbM$>T zJj2N4oDpxTiRSg#*fOYgr1V+}hJj)}tVm)JzNFys*(LCEsQk39coG>iQlxrKnke3KR|Ud$4p>n!oDMuJL3A&A79bMfLvAYJ z_Nurlkf~RPN|ItgoB=>SYJ;_7K9-MLsx|(B4uR0PB>_aj6DN>ZuCqAgt}5cIeXCF zi;>u(w8TgjdqCOYT2+56Zo zo$aNwo5Vhdi5c*g!)^gs1uAMH`GrD415uYlsxg9skk#2T_(3Kl zJ6t3;UXo9r!yZ< zRtbQ3`YbJYA`L|G=65dIZB-XLc&M0t2;~~9kEq7$fXOD)tCTk_hMD*SrWfF+qyPv$ z;0C;gR{*4P>r1exbPWB6EU&Q-6v2k?w!Ex?B@jfavPA2+MFj-7QDCK??(D0+F0*siP6~h*Yyc%@Xx0y#adtqgodhdySjj>jMNVK(}H?Pr9Mq z==M_TjvF=Ap&gr1tec5?0?07Q)=-S6J6N)K1xCe8_&u@wPE}Zgk(IE2sF!;!Sc_7A zA;riINOAEKJ}(pkDoQo~1?~E%Ao1#QHw%D?zsXIyvsC1vGT8W0_=A(=sU526cR0FJ zrEp&@Q&+_Ec_nNU`mv&AuBgS4T0By2aST5Vbz4oFMcD^znKY@iP2}G#EM%j#!K6u- z2?O$+|K65J=w4DwGt5My9~?hh2)~~5!!O%3>1oG8ORF& z#Y+uVRYR?}6|*Y65vFRSZ$Ii{k3p-z``)HmvZNHDraB3JUy**Ym_6es_YUt(YPz7| z+|a0CCN0ubT)JbJY9tCW62BhMfco-G^e}Lc*j5imvmC_iTB-W2B zBHyfKg^PV6cEX8r3I;0%hmxt<#sn`RXsL2x8)F4-ktZJ>0^Mqm=LT>%zbu2a*_}up zYnoGxWCo%95s*okVgZgkr(PL>qAAwRF2SIIai1zrwxE+88ZHd*K%5&SJuf2Yz9O~? z*eftgT-*b(oWOZN-BJ)nfG#PAXij||T{q{;aNA{T|MLKxbM*f+j{ zBo*3*5>LdQBaC9@T~7ftOG0WYrx%!kX5l~+5)pX05HK@RDdz=pgL7pm*47ScJb7sh3p#uB*}-<5^vCj!IEWzuT;h72_B)iLQ|uG zsQ^7myjoqt+SJ9kg$ch|ZWibV_^)F23Gg*=9#BBnAiUzV?@0|l%k);X9hd`hgR1S5s>{2&RW9F(#Av?Em2Yj3JMdLd7M?ft- zB$y#+HJby}UGTi&1WtV)(V?9QK?>foZk0=AyyS|!QBlL6C zEwCMa@x5>wO2_C#=q#upmeNVkfkV@3$||T--&1lGAgEBWdp{m-)zMA_Je}90e@nP% zgOABXKr!8P`MAuu0dOkDR=ui;n)m41ayUv<&o-z7LhU1Afj8tYaJ>+=5h)O}b?jQ^ zRz@gwPdai{Z?8BFh_tr=2SaKXNwDb}t0ixK0dmaX3=4#Rn-oFm^F_iB4hMD~PMaYj z25R*!-6w=%FB#&iMQ(WbsTETkPlrkrB~>CI#ivimlumY|IJUN!nzfSd7oyZ30^F3u zw-tnM`xHunXi=4hoJ@alHK~LJz*0wa(?mm}SF8N-dPCMA@yV6x>^>xW$&e$3xPB;V zvjYxpiD}#6E`=^3))1O@-AF2BkZ>?c?SJLO2oEyrZ!6$8`;|k8Sq@BP=+>f!oK*Vm znm}06gcNBOmVlY;JQA9as}RB|uO?hnt(?J{f!B+ODKckdsOpCMINcW@!&bubR5|+$ zsb$Dl2o>}W7e~n)8yGT3eF%~%Kz6k~V9}-N>}KQ>%g8Z36U7YQQA68D0FGr)QwE=GIl(;pOn#lYF!FA?H-N@9v7!vTAAN6nmZvLjO4k1&B*4mms-PD z*=))&R~Z|a%W2{$?gIx;;4L$X*>>*Oj(l^`5nsw)0$t;07~AU4zb}9er8Z|z_oMGU z2^5KJ+EEI!xIV6odHlp{L(ACjLi(9EWrWA8{d)yX_uSjO4!6i&_hG^^ppk7p_>b@a`FWVU48h3V1FWHd39)`%i#Ri$Awjuu60hzvcmeZ)qmW6FiLYo<;@q1R?D08*l3YLV<#pig6)L?;x*aXfgR0xqB-n6%_otNz zix5qQYxX1c*t1B(*W7@0hpQ6WC2CBN%NC3P2g17AJMwv#%UDdq&kC_u#1+@_`ae+U zqV^yq`89Dg+m`t)lX%mb3feLPm8Yx)L0JopX)+mDP`=6?YECaw&ZGz;4vahoSj@;Z zC16)^*j>R^3=j?kWUoYs>st!gQUsupv1UzzZKJTJZAASg$U$9@|JHA~&Lwxe8|$%IiNK1{S(=6<}@E z^sr89t0^omU@ehWid1#D^Qb|5`9ILFN>(8ZM??{YA262176AFh?SDygJb&nIshTMW7B9!{v@o-M#&q7JJQ+Xr)PU1P`Ihga39Zog~ zt~Atgrjf{+%v)lB#KJu^ur>#+5j%V)Kw|;T2Wjm`Q{Qo-H!g`Ob+#5>d&!9!04iq{ ztyib8{qXcbFNssyJ@&z({EU-15yk_qVs|fFg1j3hI=^%>8ytRxPO^bfunZ7b`SM+7 zonYdGtoKVqBmgplE+T$$5FaPU=fkMMyJn||`fF3rLqRs}38$3^6XzS8P^?v4N2*UA z%$Hn26|@|5INuaZXz%TnPK1&^MXuE~r1f;KIvOZIg+lK!59TPY&33ZUAOMtP$H*3K z!DvTK-LUqxQS-&laT^95o9<*Bxvx-P&7vzHpT$5E8bB?G_SKs}ZBlyg?TTb$#Ki?p z=290VQIP!qFiPoqXE;h|;+^c_0V8ZMu}3&@k79O0@otKw8rx&3PBvKlKF*1rc6+Ye z93kGrk0nTwnoH=dwHE3c*s?kWT)Xii1u2^*IN1^9`jg4PwXTU_0pid^3=Ze(R)7fe z+I?g3)mpog4fW$^{yGdpx8*t6Z9aSm-l&GRzkxPnlKSM10c8u%6*&j+wgae(mwy9l zj6+2oT0EtphYKKU0(fhqlg#0jLxVWAv_t;dKspP*IOb$)wQB@jgY-&T7!$wv&J?h| zqO>GXSuM8N06c?y+*ekBj;&(M7AM>6LvuhqADZooXUoMlXwZ1|FW+z{Km;X z2Xr<-&sp4ti8i4dJzohTiZ-QmrGo;);A7O9hSG(b$7>tva}A`r^pb|1wu z!ERCNqLG3&3eyI3G>GjI_$72g*e$t<6r7%dZM1wb5hv@l%})4e>ENo*%HV|vdUfkO zYtBt!??8E_`fHkwdh*x#qC>Z@*o8fWR&Gcx!+JHwTjQvg4Qej9`NHHRFF8yYa;q z)xG~ibx(K2t?cV58UnLfg-Kjqmd(y>yYg) zEw?dyPtlhWmQg)a1T4aU!Tf`#r?LzlfQNuuFf4$l36X-3x3jnvM{JB}Ny%o*QuuIa z(b3}7f7-DQyzWI5uj#UTQQ(%Cg{5rTHUe^LWBG89fw>t4Uw-06ln+nypD?}T z07c8&tpws3%Q?EC1@K|$VH&3J8P$V0Z*d?grz`@_Ro=3I%7zXhKi|LMxC6pt$599R z$s7$`WKg<(W`@{rLFTx)@GA#vWxQ>_gC&V3Jm|pz;zcy$2!o#0Q&*TKHeqDIfVcm~ zjzQb+uz|=jpUnapeA;0{R>|#eWudiGPi?-pP*jZ?llLOAVM97Jty~lp#)voH&SH%K zyL~AOGxa7qYfB;OJ8kUSAW;XQ6Ys4NSBv%xomr3|5__HslhOo@_&B`4nACqRHB986 z*A`;RP1vg`yz$@JlsSSY4R6?%#VUJd&worg;p@0XSGsuo;c#?R>UsaXm$TJsKktN; zBX=$J7Oc{%3{&b_m*~oH@l~#OhVuF42tu+RG3v_hqp)NLxfDrT17U3;$^y z=?QBucsIsuoC^n+%v%p(w%s~9Q%+3v!)bdyTIyY4egrq@$~*h5 zF-`1MV~P%1C^_-Yo@it=KZq}N7!LhxRX=;fY1ff93}F-nNarm4D{HSg)n13IwWPcn zTq%+#AV1^p-iKbn$5GyodpCyR^i7GfvvYakJsjpHKk-3a7O=>@*AR<^NxDU@!X^={7hXdx|x_fPka;lK>11F=Tu&Pw;iYy-Fx`| zbPR}Cp->Pj5M5n1wmYt&hETj4-$N;__hF!Go5+11zx#TBH}lVMl@7;)NL^&TVPnhS zr@4{^Med6X8|(BAvwZ(jn+Ta`W2a-q>94X_I3RFl+TeY#50Ag5~sMAtwY+YzE%^wB|E2tp>=g(lDXFXd5~%@Y8qpQiX&6CzYx2XPcI z%=t%53aeKQZgDohc}o z8A7al4nD+-kDs-(yP$+f(L!<|tYH#OWzH42Uw<;R#1$HruGq3bsZ#e z6$XkoX4~0qK~k1&O#b2>na#3Q0v~FbPpk5b{y+C%3R6Iess0F6uAt=Mo z6V{g%_Pd_y38NbldV?O^cshRM>j^pvX#Uj*nd}9vqJ2qL*3TLOFW)j7L-h*&eag#a zZ+zVURwnTq)uXw%=uy`CI|4IG1-2Jyza1duC1qD>N(l{R*CftKA#p^*(8^_<9&CYTM^7s)WMTc+rLu8df%QGfw z949*@5@NDdY2RRuCfZLV&?SFft;9kZ>Y8Q;pLhhIBi0l#B*w&Q(en+SG*pW%>;@eR z=OdxQM~ZDw=aa(r)LgvlY= zUXEq=jJ#1_l&Z5?gcK&Q&;JjQ0IJb|R*MHy;ROKrK(Yk?Rt)Qgm`G`jRNB8rH$+;m z#xQOG-XW6L(f?!O$&_6`O^ zIUG7c!1snK)rJ1rJjusy5>NjwmYoR`CmxJt2Yq-OXltqrt|jiKTzLEw$3*M)couw| zJJuPH5pB&_i>QCia6HjgVn#yi@h_2J80tDPO%M2Gm=zKHQ z(&8~=ecEQ2p}f9+IvsLCZ8_Zer#QG18-8mBsdqNT;hORaGmfg^n^b(W;Mdfj$zE;- zS+p&r5j?lXU=dqpn?d#Am1cIq_eVUy@nZ%RG-&z9yc~gqG)Y45;U;9T@WFZA{|VQMRh~ncuN|}I$%wcxD~*3 zNoswz0@$Fzocj|PQ^28Ew$WeEaXK6*P8CJ5k;tQxs0$Qs3J{bEv+FITD|x9eFOEjy zEhK;g?w9ar_z&J49Zg-&zxl>RNgH-*^0oVD4)&p|IvOs-c3&G-^xG>a72&m;knX6I zpHGE8^{ENVS~Dh^ay-VT!Y03Fjb<-Arc9rhg=oR)N(^v!Ycy`Uy8w-tl-f+dRkXib z0Vit9i+6-5U2X6oUOb5j?4Exrnu+Zf$^ItxaVW3Nr*84qNPzo@LCHp#M}lB> z9zzFt{1?TK0X@ecX5)9a51%sB$X?;4(B8Z@iy-CW<*kb47W1H>ZUua-El@dre_Tql zb!*&5h05NmE25ig+v50XCH?Hik&2}$ezbBu*FRNhZ;T(KcphFgg1)mV*B)M#B>!rD zt}(uNpYp&0qfzPDWeRBi#dhPtwB}zvZyY(d`Kt)i=9$f3E-gMw^}ww a+0W$O|NN diff --git a/vendor/rector/rector/bin/add-phpstan-self-replace.php b/vendor/rector/rector/bin/add-phpstan-self-replace.php index 0dde35884..94f922876 100644 --- a/vendor/rector/rector/bin/add-phpstan-self-replace.php +++ b/vendor/rector/rector/bin/add-phpstan-self-replace.php @@ -2,14 +2,14 @@ // this is part of downgrade build declare (strict_types=1); -namespace RectorPrefix202403; +namespace RectorPrefix202405; -use RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Json; require __DIR__ . '/../vendor/autoload.php'; $composerJsonFileContents = FileSystem::read(__DIR__ . '/../composer.json'); -$composerJson = Json::decode($composerJsonFileContents, Json::FORCE_ARRAY); +$composerJson = Json::decode($composerJsonFileContents, \true); $composerJson['replace']['phpstan/phpstan'] = $composerJson['require']['phpstan/phpstan']; -$modifiedComposerJsonFileContents = Json::encode($composerJson, Json::PRETTY); +$modifiedComposerJsonFileContents = Json::encode($composerJson, \true); FileSystem::write(__DIR__ . '/../composer.json', $modifiedComposerJsonFileContents, null); echo 'Done!' . \PHP_EOL; diff --git a/vendor/rector/rector/bin/rector b/vendor/rector/rector/bin/rector index 5886e17ec..7c42911bf 100755 --- a/vendor/rector/rector/bin/rector +++ b/vendor/rector/rector/bin/rector @@ -1,5 +1,5 @@ #!/usr/bin/env php provide() as $extensionConfigFile) { $rectorConfig->import($extensionConfigFile); } + // use original php-parser printer to avoid BC break on fluent call + $rectorConfig->newLineOnFluentCall(\false); }; diff --git a/vendor/rector/rector/config/set/code-quality.php b/vendor/rector/rector/config/set/code-quality.php index c3e0188b6..17f81a173 100644 --- a/vendor/rector/rector/config/set/code-quality.php +++ b/vendor/rector/rector/config/set/code-quality.php @@ -1,7 +1,7 @@ '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, StaticToSelfStaticMethodCallOnFinalClassRector::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, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ExplicitReturnNullRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::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 1bacd93e2..8a6fc0c96 100644 --- a/vendor/rector/rector/config/set/coding-style.php +++ b/vendor/rector/rector/config/set/coding-style.php @@ -1,7 +1,7 @@ sets([SetList::PHP_84, LevelSetList::UP_TO_PHP_83]); +}; diff --git a/vendor/rector/rector/config/set/naming.php b/vendor/rector/rector/config/set/naming.php index 83969a034..83cfae011 100644 --- a/vendor/rector/rector/config/set/naming.php +++ b/vendor/rector/rector/config/set/naming.php @@ -1,7 +1,7 @@ rules([ReadOnlyClassRector::class, Utf8DecodeEncodeToMbConvertEncodingRector::class, FilesystemIteratorSkipDotsRector::class]); + $rectorConfig->rules([ReadOnlyClassRector::class, Utf8DecodeEncodeToMbConvertEncodingRector::class, FilesystemIteratorSkipDotsRector::class, VariableInStringInterpolationFixerRector::class]); }; diff --git a/vendor/rector/rector/config/set/php83.php b/vendor/rector/rector/config/set/php83.php index 0e448a96c..b48dd2d4c 100644 --- a/vendor/rector/rector/config/set/php83.php +++ b/vendor/rector/rector/config/set/php83.php @@ -1,7 +1,7 @@ rules([ExplicitNullableParamTypeRector::class]); +}; diff --git a/vendor/rector/rector/config/set/privatization.php b/vendor/rector/rector/config/set/privatization.php index 10141da29..85bcf9e48 100644 --- a/vendor/rector/rector/config/set/privatization.php +++ b/vendor/rector/rector/config/set/privatization.php @@ -1,7 +1,7 @@ silentVoidResolver = $silentVoidResolver; + $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->typeFactory = $typeFactory; + $this->phpDocTypeChanger = $phpDocTypeChanger; + $this->returnTypeInferer = $returnTypeInferer; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add explicit return null to method/function that returns a value, but missed main return', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + /** + * @return string|void + */ + public function run(int $number) + { + if ($number > 50) { + return 'yes'; + } + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + /** + * @return string|null + */ + public function run(int $number) + { + if ($number > 50) { + return 'yes'; + } + + return null; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [ClassMethod::class, Function_::class]; + } + /** + * @param ClassMethod|Function_ $node + */ + public function refactor(Node $node) : ?Node + { + // known return type, nothing to improve + if ($node->returnType instanceof Node) { + return null; + } + if ($node instanceof ClassMethod && $this->isName($node, MethodName::CONSTRUCT)) { + return null; + } + $returnType = $this->returnTypeInferer->inferFunctionLike($node); + if (!$returnType instanceof UnionType) { + return null; + } + $hasChanged = \false; + $this->traverseNodesWithCallable((array) $node->stmts, static function (Node $node) use(&$hasChanged) { + if ($node instanceof Class_ || $node instanceof Function_ || $node instanceof Closure) { + return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; + } + if ($node instanceof Return_ && !$node->expr instanceof Expr) { + $hasChanged = \true; + $node->expr = new ConstFetch(new Name('null')); + return $node; + } + return null; + }); + if (!$this->silentVoidResolver->hasSilentVoid($node)) { + if ($hasChanged) { + $this->transformDocUnionVoidToUnionNull($node); + return $node; + } + return null; + } + $node->stmts[] = new Return_(new ConstFetch(new Name('null'))); + $this->transformDocUnionVoidToUnionNull($node); + return $node; + } + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $node + */ + private function transformDocUnionVoidToUnionNull($node) : void + { + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $returnType = $phpDocInfo->getReturnType(); + if (!$returnType instanceof UnionType) { + return; + } + $newTypes = []; + $hasChanged = \false; + foreach ($returnType->getTypes() as $type) { + if ($type instanceof VoidType) { + $type = new NullType(); + $hasChanged = \true; + } + $newTypes[] = $type; + } + if (!$hasChanged) { + return; + } + $type = $this->typeFactory->createMixedPassedOrUnionTypeAndKeepConstant($newTypes); + if (!$type instanceof UnionType) { + return; + } + $this->phpDocTypeChanger->changeReturnType($node, $phpDocInfo, $type); + } +} diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php index ff231e824..1d0739513 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php @@ -4,12 +4,16 @@ namespace Rector\CodeQuality\Rector\ClassMethod; use PhpParser\Node; +use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use PHPStan\Analyser\Scope; +use PHPStan\Reflection\FunctionReflection; use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\Native\NativeFunctionReflection; use Rector\CodingStyle\Reflection\VendorLocationDetector; use Rector\NodeTypeResolver\PHPStan\ParametersAcceptorSelectorVariantsWrapper; use Rector\Php80\NodeResolver\ArgumentSorter; @@ -81,41 +85,49 @@ public function run($required, $optional = 1) */ public function getNodeTypes() : array { - return [ClassMethod::class, New_::class, MethodCall::class, StaticCall::class]; + return [ClassMethod::class, Function_::class, New_::class, MethodCall::class, StaticCall::class, FuncCall::class]; } /** - * @param ClassMethod|New_|MethodCall|StaticCall $node - * @return \PhpParser\Node\Stmt\ClassMethod|null|\PhpParser\Node\Expr\New_|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall + * @param ClassMethod|Function_|New_|MethodCall|StaticCall|FuncCall $node + * @return \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|null|\PhpParser\Node\Expr\New_|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall */ public function refactorWithScope(Node $node, Scope $scope) { - if ($node instanceof ClassMethod) { - return $this->refactorClassMethod($node, $scope); + if ($node instanceof ClassMethod || $node instanceof Function_) { + return $this->refactorClassMethodOrFunction($node, $scope); } if ($node instanceof New_) { return $this->refactorNew($node, $scope); } - return $this->refactorMethodCall($node, $scope); + return $this->refactorMethodCallOrFuncCall($node, $scope); } - private function refactorClassMethod(ClassMethod $classMethod, Scope $scope) : ?ClassMethod + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $node + * @return \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|null + */ + private function refactorClassMethodOrFunction($node, Scope $scope) { - if ($classMethod->params === []) { + if ($node->params === []) { return null; } - if ($classMethod->getAttribute(self::HAS_SWAPPED_PARAMS, \false) === \true) { + if ($node->getAttribute(self::HAS_SWAPPED_PARAMS, \false) === \true) { return null; } - $classMethodReflection = $this->reflectionResolver->resolveMethodReflectionFromClassMethod($classMethod, $scope); - if (!$classMethodReflection instanceof MethodReflection) { + if ($node instanceof ClassMethod) { + $reflection = $this->reflectionResolver->resolveMethodReflectionFromClassMethod($node, $scope); + } else { + $reflection = $this->reflectionResolver->resolveFunctionReflectionFromFunction($node, $scope); + } + if (!$reflection instanceof MethodReflection && !$reflection instanceof FunctionReflection) { return null; } - $expectedArgOrParamOrder = $this->resolveExpectedArgParamOrderIfDifferent($classMethodReflection, $classMethod, $scope); + $expectedArgOrParamOrder = $this->resolveExpectedArgParamOrderIfDifferent($reflection, $node, $scope); if ($expectedArgOrParamOrder === null) { return null; } - $classMethod->params = $this->argumentSorter->sortArgsByExpectedParamOrder($classMethod->params, $expectedArgOrParamOrder); - $classMethod->setAttribute(self::HAS_SWAPPED_PARAMS, \true); - return $classMethod; + $node->params = $this->argumentSorter->sortArgsByExpectedParamOrder($node->params, $expectedArgOrParamOrder); + $node->setAttribute(self::HAS_SWAPPED_PARAMS, \true); + return $node; } private function refactorNew(New_ $new, Scope $scope) : ?New_ { @@ -137,39 +149,46 @@ private function refactorNew(New_ $new, Scope $scope) : ?New_ return $new; } /** - * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $methodCall - * @return \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|null + * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall $node + * @return \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall|null */ - private function refactorMethodCall($methodCall, Scope $scope) + private function refactorMethodCallOrFuncCall($node, Scope $scope) { - if ($methodCall->isFirstClassCallable()) { + if ($node->isFirstClassCallable()) { return null; } - $methodReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($methodCall); - if (!$methodReflection instanceof MethodReflection) { + $reflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($node); + if (!$reflection instanceof MethodReflection && !$reflection instanceof FunctionReflection) { return null; } - $expectedArgOrParamOrder = $this->resolveExpectedArgParamOrderIfDifferent($methodReflection, $methodCall, $scope); + $expectedArgOrParamOrder = $this->resolveExpectedArgParamOrderIfDifferent($reflection, $node, $scope); if ($expectedArgOrParamOrder === null) { return null; } - $newArgs = $this->argumentSorter->sortArgsByExpectedParamOrder($methodCall->getArgs(), $expectedArgOrParamOrder); - if ($methodCall->args === $newArgs) { + $newArgs = $this->argumentSorter->sortArgsByExpectedParamOrder($node->getArgs(), $expectedArgOrParamOrder); + if ($node->args === $newArgs) { return null; } - $methodCall->args = $newArgs; - return $methodCall; + $node->args = $newArgs; + return $node; } /** * @return int[]|null - * @param \PhpParser\Node\Expr\New_|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Expr\StaticCall $node + * @param \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection $reflection + * @param \PhpParser\Node\Expr\New_|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall $node */ - private function resolveExpectedArgParamOrderIfDifferent(MethodReflection $methodReflection, $node, Scope $scope) : ?array + private function resolveExpectedArgParamOrderIfDifferent($reflection, $node, Scope $scope) : ?array { - if ($this->vendorLocationDetector->detectMethodReflection($methodReflection)) { + if ($reflection instanceof NativeFunctionReflection) { + return null; + } + if ($reflection instanceof MethodReflection && $this->vendorLocationDetector->detectMethodReflection($reflection)) { + return null; + } + if ($reflection instanceof FunctionReflection && $this->vendorLocationDetector->detectFunctionReflection($reflection)) { return null; } - $parametersAcceptor = ParametersAcceptorSelectorVariantsWrapper::select($methodReflection, $node, $scope); + $parametersAcceptor = ParametersAcceptorSelectorVariantsWrapper::select($reflection, $node, $scope); $expectedParameterReflections = $this->requireOptionalParamResolver->resolveFromParametersAcceptor($parametersAcceptor); if ($expectedParameterReflections === $parametersAcceptor->getParameters()) { 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 a21b590cd..a4c8a236a 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/For_/ForRepeatedCountToOwnVariableRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/For_/ForRepeatedCountToOwnVariableRector.php index 7f0bbf998..2502cb38b 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/For_/ForRepeatedCountToOwnVariableRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/For_/ForRepeatedCountToOwnVariableRector.php @@ -13,13 +13,14 @@ use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\For_; -use Rector\Rector\AbstractRector; +use PHPStan\Analyser\Scope; +use Rector\Rector\AbstractScopeAwareRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\CodeQuality\Rector\For_\ForRepeatedCountToOwnVariableRector\ForRepeatedCountToOwnVariableRectorTest */ -final class ForRepeatedCountToOwnVariableRector extends AbstractRector +final class ForRepeatedCountToOwnVariableRector extends AbstractScopeAwareRector { /** * @var string @@ -63,8 +64,11 @@ public function getNodeTypes() : array * @param For_ $node * @return Stmt[]|null */ - public function refactor(Node $node) : ?array + public function refactorWithScope(Node $node, Scope $scope) : ?array { + if ($scope->hasVariableType(self::COUNTER_NAME)->yes()) { + return null; + } $countInCond = null; $counterVariable = new Variable(self::COUNTER_NAME); foreach ($node->cond as $condExpr) { diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php index d2a1952ee..8f26b81e6 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/FuncCall/SimplifyStrposLowerRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyStrposLowerRector.php index f06def299..0885fc73d 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyStrposLowerRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyStrposLowerRector.php @@ -3,9 +3,11 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\FuncCall; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Name; +use PhpParser\Node\Scalar\String_; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -14,6 +16,11 @@ */ final class SimplifyStrposLowerRector extends AbstractRector { + /** + * @var string + * @see https://regex101.com/r/Jokjt8/1 + */ + private const UPPERCASE_REGEX = '#[A-Z]#'; public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Simplify strpos(strtolower(), "...") calls', [new CodeSample('strpos(strtolower($var), "...")', 'stripos($var, "...")')]); @@ -36,10 +43,11 @@ public function refactor(Node $node) : ?Node if ($node->isFirstClassCallable()) { return null; } - if (!isset($node->getArgs()[0])) { + $args = $node->getArgs(); + if (!isset($args[0], $args[1])) { return null; } - $firstArg = $node->getArgs()[0]; + $firstArg = $args[0]; if (!$firstArg->value instanceof FuncCall) { return null; } @@ -48,6 +56,13 @@ public function refactor(Node $node) : ?Node if (!$this->isName($innerFuncCall, 'strtolower')) { return null; } + $secondArg = $args[1]; + if (!$secondArg->value instanceof String_) { + return null; + } + if (Strings::match($secondArg->value->value, self::UPPERCASE_REGEX) !== null) { + return null; + } // pop 1 level up $node->args[0] = $innerFuncCall->getArgs()[0]; $node->name = new Name('stripos'); diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php index dfe7b423a..55c736777 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\Include_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php index 7c480604f..e8c4f150f 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php @@ -53,6 +53,6 @@ public function refactor(Node $node) : ?Node if (!$twoNodeMatch instanceof TwoNodeMatch) { return null; } - return $node->if; + return $node->cond instanceof NotIdentical ? $node->if : $node->else; } } diff --git a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php index 5f41c249a..442978b52 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 9fa3232bc..7cf523212 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php @@ -3,11 +3,10 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use Rector\CodingStyle\ClassNameImport\ShortNameResolver; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; -use Rector\Configuration\RenamedClassesDataCollector; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; use Rector\ValueObject\Application\File; /** @@ -26,15 +25,9 @@ final class FullyQualifiedNameClassNameImportSkipVoter implements ClassNameImpor * @var \Rector\CodingStyle\ClassNameImport\ShortNameResolver */ private $shortNameResolver; - /** - * @readonly - * @var \Rector\Configuration\RenamedClassesDataCollector - */ - private $renamedClassesDataCollector; - public function __construct(ShortNameResolver $shortNameResolver, RenamedClassesDataCollector $renamedClassesDataCollector) + public function __construct(ShortNameResolver $shortNameResolver) { $this->shortNameResolver = $shortNameResolver; - $this->renamedClassesDataCollector = $renamedClassesDataCollector; } public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedObjectType, Node $node) : bool { @@ -43,7 +36,6 @@ public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedO $shortNamesToFullyQualifiedNames = $this->shortNameResolver->resolveFromFile($file); $fullyQualifiedObjectTypeShortName = $fullyQualifiedObjectType->getShortName(); $className = $fullyQualifiedObjectType->getClassName(); - $removedUses = $this->renamedClassesDataCollector->getOldClasses(); foreach ($shortNamesToFullyQualifiedNames as $shortName => $fullyQualifiedName) { if ($fullyQualifiedObjectTypeShortName !== $shortName) { $shortName = $this->cleanShortName($shortName); @@ -52,10 +44,7 @@ public function shouldSkip(File $file, FullyQualifiedObjectType $fullyQualifiedO continue; } $fullyQualifiedName = \ltrim($fullyQualifiedName, '\\'); - if ($className === $fullyQualifiedName) { - return \false; - } - return !\in_array($fullyQualifiedName, $removedUses, \true); + return $className !== $fullyQualifiedName; } return \false; } diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php index 9fc16023c..db6efd460 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport; -use RectorPrefix202403\Nette\Utils\Reflection; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -12,8 +11,6 @@ use PhpParser\Node\Stmt\Namespace_; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; -use PHPStan\Reflection\ClassReflection; -use PHPStan\Reflection\ReflectionProvider; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\CodingStyle\NodeAnalyzer\UseImportNameMatcher; @@ -24,7 +21,6 @@ use Rector\PhpParser\Node\BetterNodeFinder; use Rector\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\ValueObject\Application\File; -use ReflectionClass; /** * @see \Rector\Tests\CodingStyle\ClassNameImport\ShortNameResolver\ShortNameResolverTest */ @@ -40,11 +36,6 @@ final class ShortNameResolver * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; /** * @readonly * @var \Rector\PhpParser\Node\BetterNodeFinder @@ -64,11 +55,10 @@ final class ShortNameResolver * @var array */ private $shortNamesByFilePath = []; - public function __construct(SimpleCallableNodeTraverser $simpleCallableNodeTraverser, NodeNameResolver $nodeNameResolver, ReflectionProvider $reflectionProvider, BetterNodeFinder $betterNodeFinder, UseImportNameMatcher $useImportNameMatcher, PhpDocInfoFactory $phpDocInfoFactory) + public function __construct(SimpleCallableNodeTraverser $simpleCallableNodeTraverser, NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder, UseImportNameMatcher $useImportNameMatcher, PhpDocInfoFactory $phpDocInfoFactory) { $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; $this->nodeNameResolver = $nodeNameResolver; - $this->reflectionProvider = $reflectionProvider; $this->betterNodeFinder = $betterNodeFinder; $this->useImportNameMatcher = $useImportNameMatcher; $this->phpDocInfoFactory = $phpDocInfoFactory; @@ -152,7 +142,6 @@ private function resolveForStmts(array $stmts) : array */ private function resolveFromStmtsDocBlocks(array $stmts) : array { - $classReflection = $this->resolveClassReflection($stmts); $shortNames = []; $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmts, function (Node $node) use(&$shortNames) { // speed up for nodes that are @@ -176,42 +165,22 @@ private function resolveFromStmtsDocBlocks(array $stmts) : array }); return null; }); - return $this->fqnizeShortNames($shortNames, $classReflection, $stmts); - } - /** - * @param Node[] $stmts - */ - private function resolveClassReflection(array $stmts) : ?ClassReflection - { - $firstClassLike = $this->betterNodeFinder->findFirstInstanceOf($stmts, ClassLike::class); - if (!$firstClassLike instanceof ClassLike) { - return null; - } - $className = (string) $this->nodeNameResolver->getName($firstClassLike); - if (!$this->reflectionProvider->hasClass($className)) { - return null; - } - return $this->reflectionProvider->getClass($className); + return $this->fqnizeShortNames($shortNames, $stmts); } /** * @param string[] $shortNames * @param Stmt[] $stmts * @return array */ - private function fqnizeShortNames(array $shortNames, ?ClassReflection $classReflection, array $stmts) : array + private function fqnizeShortNames(array $shortNames, array $stmts) : array { $shortNamesToFullyQualifiedNames = []; - $nativeReflectionClass = $classReflection instanceof ClassReflection && !$classReflection->isAnonymous() ? $classReflection->getNativeReflection() : null; foreach ($shortNames as $shortName) { $stmtsMatchedName = $this->useImportNameMatcher->matchNameWithStmts($shortName, $stmts); - if ($nativeReflectionClass instanceof ReflectionClass) { - $fullyQualifiedName = Reflection::expandClassName($shortName, $nativeReflectionClass); - } elseif (\is_string($stmtsMatchedName)) { - $fullyQualifiedName = $stmtsMatchedName; - } else { - $fullyQualifiedName = $shortName; + if ($stmtsMatchedName == null) { + continue; } - $shortNamesToFullyQualifiedNames[$shortName] = $fullyQualifiedName; + $shortNamesToFullyQualifiedNames[$shortName] = $stmtsMatchedName; } return $shortNamesToFullyQualifiedNames; } diff --git a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php index a1b59bf7d..37d2ca195 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 74bbee363..f1b78c768 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 ea1f564c2..458c68d79 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/Encapsed/EncapsedStringsToSprintfRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php index a52d8729d..b8f8178a3 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 41d1f8a62..a28b9a4ea 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php @@ -123,7 +123,7 @@ private function processAddNewLine($node, bool $hasChanged, int $jumpToKey = 0) } /** * @param int|float $rangeLine - * @return int|float + * @return float|int */ private function resolveRangeLineFromComment($rangeLine, int $line, int $endLine, Stmt $nextStmt) { diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Stmt/RemoveUselessAliasInUseStatementRector.php index ba055d68d..9b6f07dfe 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 760544d08..e2ecef775 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/rules/CodingStyle/Reflection/VendorLocationDetector.php b/vendor/rector/rector/rules/CodingStyle/Reflection/VendorLocationDetector.php index 6a295d336..b8d255613 100644 --- a/vendor/rector/rector/rules/CodingStyle/Reflection/VendorLocationDetector.php +++ b/vendor/rector/rector/rules/CodingStyle/Reflection/VendorLocationDetector.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Reflection; +use PHPStan\Reflection\FunctionReflection; use PHPStan\Reflection\MethodReflection; use Rector\FileSystem\FilePathHelper; final class VendorLocationDetector @@ -20,6 +21,15 @@ public function detectMethodReflection(MethodReflection $methodReflection) : boo { $declaringClassReflection = $methodReflection->getDeclaringClass(); $fileName = $declaringClassReflection->getFileName(); + return $this->detect($fileName); + } + public function detectFunctionReflection(FunctionReflection $functionReflection) : bool + { + $fileName = $functionReflection->getFileName(); + return $this->detect($fileName); + } + private function detect(?string $fileName = null) : bool + { // probably internal if ($fileName === null) { return \false; diff --git a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php index 62f62aaeb..dc4758b48 100644 --- a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/CallCollectionAnalyzer.php @@ -4,6 +4,7 @@ namespace Rector\DeadCode\NodeAnalyzer; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\NullsafeMethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -29,7 +30,7 @@ public function __construct(NodeTypeResolver $nodeTypeResolver, NodeNameResolver $this->nodeNameResolver = $nodeNameResolver; } /** - * @param StaticCall[]|MethodCall[] $calls + * @param StaticCall[]|MethodCall[]|NullsafeMethodCall[] $calls */ public function isExists(array $calls, string $classMethodName, string $className) : bool { @@ -52,14 +53,14 @@ public function isExists(array $calls, string $classMethodName, string $classNam return \false; } /** - * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $call + * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\NullsafeMethodCall $call */ private function isSelfStatic($call) : bool { return $call instanceof StaticCall && $call->class instanceof Name && \in_array($call->class->toString(), [ObjectReference::SELF, ObjectReference::STATIC], \true); } /** - * @param \PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall $call + * @param \PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\NullsafeMethodCall $call */ private function shouldSkip($call, string $classMethodName) : bool { diff --git a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php index 1daef12c5..425ae30f3 100644 --- a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php @@ -9,6 +9,7 @@ use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\NullsafeMethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; @@ -88,11 +89,15 @@ public function isClassMethodUsed(Class_ $class, ClassMethod $classMethod, Scope if ($this->isClassMethodCalledInLocalMethodCall($class, $classMethodName)) { return \true; } - // 2. direct static calls + // 2. direct null-safe calls + if ($this->isClassMethodCalledInLocalNullsafeMethodCall($class, $classMethodName)) { + return \true; + } + // 3. direct static calls if ($this->isClassMethodUsedInLocalStaticCall($class, $classMethodName)) { return \true; } - // 3. magic array calls! + // 4. magic array calls! if ($this->isClassMethodCalledInLocalArrayCall($class, $classMethod, $scope)) { return \true; } @@ -113,6 +118,13 @@ private function isClassMethodCalledInLocalMethodCall(Class_ $class, string $cla $methodCalls = $this->betterNodeFinder->findInstanceOf($class, MethodCall::class); return $this->callCollectionAnalyzer->isExists($methodCalls, $classMethodName, $className); } + private function isClassMethodCalledInLocalNullsafeMethodCall(Class_ $class, string $classMethodName) : bool + { + $className = (string) $this->nodeNameResolver->getName($class); + /** @var Node\Expr\NullsafeMethodCall[] $methodCalls */ + $methodCalls = $this->betterNodeFinder->findInstanceOf($class, NullsafeMethodCall::class); + return $this->callCollectionAnalyzer->isExists($methodCalls, $classMethodName, $className); + } private function isInArrayMap(Class_ $class, Array_ $array) : bool { if (!$array->getAttribute(ArrayMapArgVisitor::ATTRIBUTE_NAME) instanceof Arg) { @@ -134,11 +146,12 @@ private function isClassMethodCalledInLocalArrayCall(Class_ $class, ClassMethod { /** @var Array_[] $arrays */ $arrays = $this->betterNodeFinder->findInstanceOf($class, Array_::class); + $classMethodName = $this->nodeNameResolver->getName($classMethod); foreach ($arrays as $array) { if ($this->isInArrayMap($class, $array)) { return \true; } - $arrayCallable = $this->arrayCallableMethodMatcher->match($array, $scope); + $arrayCallable = $this->arrayCallableMethodMatcher->match($array, $scope, $classMethodName); if ($arrayCallable instanceof ArrayCallableDynamicMethod) { return \true; } diff --git a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php index c0168bec3..76bd3653c 100644 --- a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\NullsafePropertyFetch; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Stmt\Class_; @@ -24,7 +25,7 @@ public function __construct(BetterNodeFinder $betterNodeFinder) public function hasClassDynamicPropertyNames(Class_ $class) : bool { return (bool) $this->betterNodeFinder->findFirst($class, static function (Node $node) : bool { - if (!$node instanceof PropertyFetch) { + if (!$node instanceof PropertyFetch && !$node instanceof NullsafePropertyFetch) { return \false; } // has dynamic name - could be anything @@ -34,7 +35,7 @@ public function hasClassDynamicPropertyNames(Class_ $class) : bool /** * The property fetches are always only assigned to, nothing else * - * @param array $propertyFetches + * @param array $propertyFetches */ public function arePropertyFetchesExclusivelyBeingAssignedTo(array $propertyFetches) : bool { diff --git a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php new file mode 100644 index 000000000..c7551fda8 --- /dev/null +++ b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php @@ -0,0 +1,66 @@ +betterNodeFinder = $betterNodeFinder; + $this->exprAnalyzer = $exprAnalyzer; + $this->reflectionResolver = $reflectionResolver; + } + /** + * @param \PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BinaryOp\BooleanOr $booleanAnd + */ + public function isSafe($booleanAnd) : bool + { + $hasNonTypedFromParam = (bool) $this->betterNodeFinder->findFirst($booleanAnd->left, function (Node $node) : bool { + return $node instanceof Variable && $this->exprAnalyzer->isNonTypedFromParam($node); + }); + if ($hasNonTypedFromParam) { + return \false; + } + $hasPropertyFetchOrArrayDimFetch = (bool) $this->betterNodeFinder->findFirst($booleanAnd->left, static function (Node $node) : bool { + return $node instanceof PropertyFetch || $node instanceof StaticPropertyFetch || $node instanceof ArrayDimFetch; + }); + // get type from Property and ArrayDimFetch is unreliable + if ($hasPropertyFetchOrArrayDimFetch) { + return \false; + } + // skip trait this + $classReflection = $this->reflectionResolver->resolveClassReflection($booleanAnd); + if ($classReflection instanceof ClassReflection && $classReflection->isTrait()) { + return !$booleanAnd->left instanceof Instanceof_; + } + return \true; + } +} diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php index 184425e6c..ef4831f6d 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php @@ -10,6 +10,7 @@ use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\BetterPhpDocParser\ValueObject\Type\BracketsAwareUnionTypeNode; +use Rector\DeadCode\PhpDoc\Guard\StandaloneTypeRemovalGuard; use Rector\DeadCode\TypeNodeAnalyzer\GenericTypeNodeAnalyzer; use Rector\DeadCode\TypeNodeAnalyzer\MixedArrayTypeNodeAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; @@ -47,7 +48,12 @@ final class DeadParamTagValueNodeAnalyzer * @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger */ private $phpDocTypeChanger; - public function __construct(NodeNameResolver $nodeNameResolver, TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, ParamAnalyzer $paramAnalyzer, PhpDocTypeChanger $phpDocTypeChanger) + /** + * @readonly + * @var \Rector\DeadCode\PhpDoc\Guard\StandaloneTypeRemovalGuard + */ + private $standaloneTypeRemovalGuard; + public function __construct(NodeNameResolver $nodeNameResolver, TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, ParamAnalyzer $paramAnalyzer, PhpDocTypeChanger $phpDocTypeChanger, StandaloneTypeRemovalGuard $standaloneTypeRemovalGuard) { $this->nodeNameResolver = $nodeNameResolver; $this->typeComparator = $typeComparator; @@ -55,6 +61,7 @@ public function __construct(NodeNameResolver $nodeNameResolver, TypeComparator $ $this->mixedArrayTypeNodeAnalyzer = $mixedArrayTypeNodeAnalyzer; $this->paramAnalyzer = $paramAnalyzer; $this->phpDocTypeChanger = $phpDocTypeChanger; + $this->standaloneTypeRemovalGuard = $standaloneTypeRemovalGuard; } public function isDead(ParamTagValueNode $paramTagValueNode, FunctionLike $functionLike) : bool { @@ -78,11 +85,15 @@ public function isDead(ParamTagValueNode $paramTagValueNode, FunctionLike $funct return \false; } if (!$paramTagValueNode->type instanceof BracketsAwareUnionTypeNode) { - return \true; + return $this->standaloneTypeRemovalGuard->isLegal($paramTagValueNode->type, $param->type); } - if ($this->mixedArrayTypeNodeAnalyzer->hasMixedArrayType($paramTagValueNode->type)) { + return $this->isAllowedBracketAwareUnion($paramTagValueNode->type); + } + private function isAllowedBracketAwareUnion(BracketsAwareUnionTypeNode $bracketsAwareUnionTypeNode) : bool + { + if ($this->mixedArrayTypeNodeAnalyzer->hasMixedArrayType($bracketsAwareUnionTypeNode)) { return \false; } - return !$this->genericTypeNodeAnalyzer->hasGenericType($paramTagValueNode->type); + return !$this->genericTypeNodeAnalyzer->hasGenericType($bracketsAwareUnionTypeNode); } } diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ParamTagRemover.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ParamTagRemover.php index 1fc7785cf..a2c11f61a 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ParamTagRemover.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ParamTagRemover.php @@ -7,7 +7,6 @@ use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; -use PHPStan\PhpDocParser\Ast\Type\UnionTypeNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\DeadCode\PhpDoc\DeadParamTagValueNodeAnalyzer; @@ -44,10 +43,6 @@ public function removeParamTagsIfUseless(PhpDocInfo $phpDocInfo, FunctionLike $f if ($docNode->name !== '@param') { return null; } - // skip union types - if ($docNode->value->type instanceof UnionTypeNode) { - return null; - } if (!$this->deadParamTagValueNodeAnalyzer->isDead($docNode->value, $functionLike)) { return null; } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Cast/RecastingRemovalRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Cast/RecastingRemovalRector.php index 4a7714645..db50f0413 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Cast/RecastingRemovalRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Cast/RecastingRemovalRector.php @@ -93,7 +93,7 @@ public function refactor(Node $node) : ?Node if (!isset(self::CAST_CLASS_TO_NODE_TYPE[$nodeClass])) { return null; } - $nodeType = $this->getType($node->expr); + $nodeType = $this->nodeTypeResolver->getNativeType($node->expr); if ($nodeType instanceof MixedType) { return null; } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php index a889bbb05..65ded3d9f 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\DeadCode\Rector\ClassLike\RemoveAnnotationRector\RemoveAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php index a399ff6f4..e76b67130 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php @@ -6,8 +6,10 @@ use PhpParser\Node; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PHPStan\Reflection\ClassReflection; use Rector\NodeAnalyzer\ParamAnalyzer; use Rector\Rector\AbstractRector; +use Rector\Reflection\ReflectionResolver; use Rector\Removing\NodeManipulator\ComplexNodeRemover; use Rector\ValueObject\MethodName; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -27,10 +29,16 @@ final class RemoveUnusedConstructorParamRector extends AbstractRector * @var \Rector\Removing\NodeManipulator\ComplexNodeRemover */ private $complexNodeRemover; - public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover) + /** + * @readonly + * @var \Rector\Reflection\ReflectionResolver + */ + private $reflectionResolver; + public function __construct(ParamAnalyzer $paramAnalyzer, ComplexNodeRemover $complexNodeRemover, ReflectionResolver $reflectionResolver) { $this->paramAnalyzer = $paramAnalyzer; $this->complexNodeRemover = $complexNodeRemover; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition() : RuleDefinition { @@ -83,6 +91,16 @@ public function refactor(Node $node) : ?Node if ($constructorClassMethod->isAbstract()) { return null; } + $classReflection = $this->reflectionResolver->resolveClassReflection($node); + if (!$classReflection instanceof ClassReflection) { + return null; + } + $interfaces = $classReflection->getInterfaces(); + foreach ($interfaces as $interface) { + if ($interface->hasNativeMethod(MethodName::CONSTRUCT)) { + return null; + } + } $changedConstructorClassMethod = $this->processRemoveParams($constructorClassMethod); if (!$changedConstructorClassMethod instanceof ClassMethod) { return null; diff --git a/vendor/rector/rector/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php b/vendor/rector/rector/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php new file mode 100644 index 000000000..3c741f250 --- /dev/null +++ b/vendor/rector/rector/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php @@ -0,0 +1,87 @@ +safeLeftTypeBooleanAndOrAnalyzer = $safeLeftTypeBooleanAndOrAnalyzer; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Reduce always false in a if ( || ) condition', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + public function run(int $number) + { + if (! is_int($number) || $number > 50) { + return 'yes'; + } + + return 'no'; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function run(int $number) + { + if ($number > 50) { + return 'yes'; + } + + return 'no'; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [If_::class]; + } + /** + * @param If_ $node + */ + public function refactor(Node $node) : ?Node + { + if (!$node->cond instanceof BooleanOr) { + return null; + } + $booleanOr = $node->cond; + $conditionStaticType = $this->getType($booleanOr->left); + if (!$conditionStaticType instanceof ConstantBooleanType) { + return null; + } + if ($conditionStaticType->getValue()) { + return null; + } + if (!$this->safeLeftTypeBooleanAndOrAnalyzer->isSafe($booleanOr)) { + return null; + } + $node->cond = $booleanOr->right; + return $node; + } +} diff --git a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php index 2413470ee..7bc87eb4f 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php @@ -5,7 +5,9 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\BinaryOp\BooleanAnd; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Expr\Variable; @@ -13,12 +15,11 @@ use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\If_; use PhpParser\NodeTraverser; -use PHPStan\Reflection\ClassReflection; use PHPStan\Type\Constant\ConstantBooleanType; +use Rector\DeadCode\NodeAnalyzer\SafeLeftTypeBooleanAndOrAnalyzer; use Rector\NodeAnalyzer\ExprAnalyzer; use Rector\PhpParser\Node\BetterNodeFinder; use Rector\Rector\AbstractRector; -use Rector\Reflection\ReflectionResolver; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -26,11 +27,6 @@ */ final class RemoveAlwaysTrueIfConditionRector extends AbstractRector { - /** - * @readonly - * @var \Rector\Reflection\ReflectionResolver - */ - private $reflectionResolver; /** * @readonly * @var \Rector\NodeAnalyzer\ExprAnalyzer @@ -41,11 +37,16 @@ final class RemoveAlwaysTrueIfConditionRector extends AbstractRector * @var \Rector\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; - public function __construct(ReflectionResolver $reflectionResolver, ExprAnalyzer $exprAnalyzer, BetterNodeFinder $betterNodeFinder) + /** + * @readonly + * @var \Rector\DeadCode\NodeAnalyzer\SafeLeftTypeBooleanAndOrAnalyzer + */ + private $safeLeftTypeBooleanAndOrAnalyzer; + public function __construct(ExprAnalyzer $exprAnalyzer, BetterNodeFinder $betterNodeFinder, SafeLeftTypeBooleanAndOrAnalyzer $safeLeftTypeBooleanAndOrAnalyzer) { - $this->reflectionResolver = $reflectionResolver; $this->exprAnalyzer = $exprAnalyzer; $this->betterNodeFinder = $betterNodeFinder; + $this->safeLeftTypeBooleanAndOrAnalyzer = $safeLeftTypeBooleanAndOrAnalyzer; } public function getRuleDefinition() : RuleDefinition { @@ -84,10 +85,13 @@ public function getNodeTypes() : array } /** * @param If_ $node - * @return int|null|Stmt[] + * @return int|null|Stmt[]|If_ */ public function refactor(Node $node) { + if ($node->cond instanceof BooleanAnd) { + return $this->refactorIfWithBooleanAnd($node); + } if ($node->else instanceof Else_) { return null; } @@ -102,7 +106,7 @@ public function refactor(Node $node) if (!$conditionStaticType->getValue()) { return null; } - if ($this->shouldSkipPropertyFetch($node->cond)) { + if ($this->shouldSkipExpr($node->cond)) { return null; } if ($this->shouldSkipFromParam($node->cond)) { @@ -128,25 +132,27 @@ private function shouldSkipFromParam(Expr $expr) : bool } return \false; } - private function shouldSkipPropertyFetch(Expr $expr) : bool + private function shouldSkipExpr(Expr $expr) : bool { - /** @var PropertyFetch[]|StaticPropertyFetch[] $propertyFetches */ - $propertyFetches = $this->betterNodeFinder->findInstancesOf($expr, [PropertyFetch::class, StaticPropertyFetch::class]); - foreach ($propertyFetches as $propertyFetch) { - $classReflection = $this->reflectionResolver->resolveClassReflectionSourceObject($propertyFetch); - if (!$classReflection instanceof ClassReflection) { - // cannot get parent Trait_ from Property Fetch - return \true; - } - $propertyName = (string) $this->nodeNameResolver->getName($propertyFetch); - if (!$classReflection->hasNativeProperty($propertyName)) { - continue; - } - $nativeProperty = $classReflection->getNativeProperty($propertyName); - if (!$nativeProperty->hasNativeType()) { - return \true; - } + return (bool) $this->betterNodeFinder->findInstancesOf($expr, [PropertyFetch::class, StaticPropertyFetch::class, ArrayDimFetch::class]); + } + private function refactorIfWithBooleanAnd(If_ $if) : ?If_ + { + if (!$if->cond instanceof BooleanAnd) { + return null; } - return \false; + $booleanAnd = $if->cond; + $leftType = $this->getType($booleanAnd->left); + if (!$leftType instanceof ConstantBooleanType) { + return null; + } + if (!$leftType->getValue()) { + return null; + } + if (!$this->safeLeftTypeBooleanAndOrAnalyzer->isSafe($booleanAnd)) { + return null; + } + $if->cond = $booleanAnd->right; + return $if; } } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php index b4373013a..79bfa6090 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\BinaryOp\BooleanAnd; use PhpParser\Node\Expr\BooleanNot; use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Instanceof_; @@ -16,9 +17,11 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; use PhpParser\NodeTraverser; +use PHPStan\Reflection\ClassReflection; use PHPStan\Type\MixedType; use Rector\NodeManipulator\IfManipulator; use Rector\Rector\AbstractRector; +use Rector\Reflection\ReflectionResolver; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -31,9 +34,15 @@ final class RemoveDeadInstanceOfRector extends AbstractRector * @var \Rector\NodeManipulator\IfManipulator */ private $ifManipulator; - public function __construct(IfManipulator $ifManipulator) + /** + * @readonly + * @var \Rector\Reflection\ReflectionResolver + */ + private $reflectionResolver; + public function __construct(IfManipulator $ifManipulator, ReflectionResolver $reflectionResolver) { $this->ifManipulator = $ifManipulator; + $this->reflectionResolver = $reflectionResolver; } public function getRuleDefinition() : RuleDefinition { @@ -64,7 +73,7 @@ public function getNodeTypes() : array } /** * @param If_ $node - * @return Stmt[]|null|int + * @return Stmt[]|null|int|If_ */ public function refactor(Node $node) { @@ -74,6 +83,9 @@ public function refactor(Node $node) if ($node->cond instanceof BooleanNot && $node->cond->expr instanceof Instanceof_) { return $this->refactorStmtAndInstanceof($node, $node->cond->expr); } + if ($node->cond instanceof BooleanAnd) { + return $this->refactorIfWithBooleanAnd($node); + } if ($node->cond instanceof Instanceof_) { return $this->refactorStmtAndInstanceof($node, $node->cond); } @@ -84,17 +96,7 @@ public function refactor(Node $node) */ private function refactorStmtAndInstanceof(If_ $if, Instanceof_ $instanceof) { - if (!$instanceof->class instanceof Name) { - return null; - } - // handle in another rule - if ($this->isPropertyFetch($instanceof->expr) || $instanceof->expr instanceof CallLike) { - return null; - } - $classType = $this->nodeTypeResolver->getType($instanceof->class); - $exprType = $this->nodeTypeResolver->getType($instanceof->expr); - $isSameStaticTypeOrSubtype = $classType->equals($exprType) || $classType->isSuperTypeOf($exprType)->yes(); - if (!$isSameStaticTypeOrSubtype) { + if ($this->isInstanceofTheSameType($instanceof) !== \true) { return null; } if ($this->shouldSkipFromNotTypedParam($instanceof)) { @@ -125,4 +127,40 @@ private function isPropertyFetch(Expr $expr) : bool } return $expr instanceof StaticPropertyFetch; } + private function isInstanceofTheSameType(Instanceof_ $instanceof) : ?bool + { + if (!$instanceof->class instanceof Name) { + return null; + } + // handled in another rule + if ($this->isPropertyFetch($instanceof->expr) || $instanceof->expr instanceof CallLike) { + return null; + } + $classReflection = $this->reflectionResolver->resolveClassReflection($instanceof); + if ($classReflection instanceof ClassReflection && $classReflection->isTrait()) { + return null; + } + $classType = $this->nodeTypeResolver->getType($instanceof->class); + $exprType = $this->nodeTypeResolver->getNativeType($instanceof->expr); + if ($classType->equals($exprType)) { + return \true; + } + return $classType->isSuperTypeOf($exprType)->yes(); + } + private function refactorIfWithBooleanAnd(If_ $if) : ?\PhpParser\Node\Stmt\If_ + { + if (!$if->cond instanceof BooleanAnd) { + return null; + } + $booleanAnd = $if->cond; + if (!$booleanAnd->left instanceof Instanceof_) { + return null; + } + $instanceof = $booleanAnd->left; + if ($this->isInstanceofTheSameType($instanceof) !== \true) { + return null; + } + $if->cond = $booleanAnd->right; + return $if; + } } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php new file mode 100644 index 000000000..005664bff --- /dev/null +++ b/vendor/rector/rector/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php @@ -0,0 +1,107 @@ +visibilityManipulator = $visibilityManipulator; + $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->docBlockUpdater = $docBlockUpdater; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Remove useless @readonly annotation on native readonly type', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + /** + * @readonly + */ + private readonly string $name; + + public function __construct(string $name) + { + $this->name = $name; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + private readonly string $name; + + public function __construct(string $name) + { + $this->name = $name; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class, Property::class, Param::class]; + } + /** + * @param Class_|Property|Param $node + */ + public function refactor(Node $node) : ?Node + { + // for param, only on property promotion + if ($node instanceof Param && $node->flags === 0) { + return null; + } + if (!$this->visibilityManipulator->isReadonly($node)) { + return null; + } + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $readonlyDoc = $phpDocInfo->getByName('readonly'); + if (!$readonlyDoc instanceof PhpDocTagNode) { + return null; + } + if (!$readonlyDoc->value instanceof GenericTagValueNode) { + return null; + } + if ($readonlyDoc->value->value !== '') { + return null; + } + $phpDocInfo->removeByName('readonly'); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + return $node; + } +} diff --git a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php index eee05a118..69338fa6e 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrayDimFetch; diff --git a/vendor/rector/rector/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php b/vendor/rector/rector/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php index 0304993e8..9007cc4b7 100644 --- a/vendor/rector/rector/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php +++ b/vendor/rector/rector/rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\AssignOp; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; @@ -98,6 +99,9 @@ public function refactor(Node $node) : ?StmtsAwareInterface $initialAssign = null; $initialAssignPosition = null; foreach ($node->stmts as $key => $stmt) { + if ($stmt instanceof Expression && $stmt->expr instanceof AssignOp) { + return null; + } if ($stmt instanceof If_) { $ifs[$key] = $stmt; continue; diff --git a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php index d2942565b..467b3619e 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 RectorPrefix202403\Doctrine\Inflector\Inflector; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Doctrine\Inflector\Inflector; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Util\StringUtils; /** * @see \Rector\Tests\Naming\ExpectedNameResolver\InflectorSingularResolverTest diff --git a/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php b/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php index bdd0076b6..571407e60 100644 --- a/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php +++ b/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Naming; +use DateTimeInterface; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; @@ -93,6 +94,9 @@ public function resolveForAssignNew(Assign $assign) : ?string } $className = $this->nodeNameResolver->getName($new->class); $fullyQualifiedObjectType = new FullyQualifiedObjectType($className); + if ($fullyQualifiedObjectType->isInstanceOf(DateTimeInterface::class)->yes()) { + return null; + } $expectedName = $this->propertyNaming->getExpectedNameFromType($fullyQualifiedObjectType); if (!$expectedName instanceof ExpectedName) { return null; diff --git a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php index 95220f3e3..8d1ffc7de 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 4c85747d6..e7620d7ac 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 de367265c..2c4ac588c 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 RectorPrefix202403\Doctrine\Inflector\Inflector; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Doctrine\Inflector\Inflector; +use RectorPrefix202405\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 b991c2a35..9757837d9 100644 --- a/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php +++ b/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php @@ -7,7 +7,7 @@ use PhpParser\Node\Stmt\Property; use Rector\Naming\ValueObject\PropertyRename; use Rector\NodeNameResolver\NodeNameResolver; -use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202405\Webmozart\Assert\InvalidArgumentException; final class PropertyRenameFactory { /** diff --git a/vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php b/vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php index ed519c5e7..0146b0b80 100644 --- a/vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php +++ b/vendor/rector/rector/rules/Php55/Rector/FuncCall/PregReplaceEModifierRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\Expr; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Name; @@ -89,13 +90,11 @@ public function refactor(Node $node) : ?Node $firstArgument = $node->getArgs()[0]; $firstArgumentValue = $firstArgument->value; $patternWithoutEExpr = $this->regexMatcher->resolvePatternExpressionWithoutEIfFound($firstArgumentValue); - if ($patternWithoutEExpr === null) { + if (!$patternWithoutEExpr instanceof Expr) { return null; } - /** @var Arg $secondArgument */ - $secondArgument = $node->args[1]; - $secondArgumentValue = $secondArgument->value; - $anonymousFunction = $this->anonymousFunctionFactory->createAnonymousFunctionFromExpr($secondArgumentValue); + $secondArgument = $node->getArgs()[1]; + $anonymousFunction = $this->createAnonymousFunction($secondArgument); if (!$anonymousFunction instanceof Closure) { return null; } @@ -104,4 +103,8 @@ public function refactor(Node $node) : ?Node $secondArgument->value = $anonymousFunction; return $node; } + private function createAnonymousFunction(Arg $arg) : ?Closure + { + return $this->anonymousFunctionFactory->createAnonymousFunctionFromExpr($arg->value); + } } diff --git a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index dbab9ff54..6aa704074 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 6613efc5e..65243a39e 100644 --- a/vendor/rector/rector/rules/Php55/RegexMatcher.php +++ b/vendor/rector/rector/rules/Php55/RegexMatcher.php @@ -3,18 +3,12 @@ declare (strict_types=1); namespace Rector\Php55; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; -use Rector\PhpParser\Node\Value\ValueResolver; final class RegexMatcher { - /** - * @readonly - * @var \Rector\PhpParser\Node\Value\ValueResolver - */ - private $valueResolver; /** * @var string * @see https://regex101.com/r/Ok4wuE/1 @@ -30,20 +24,13 @@ final class RegexMatcher * @see https://www.php.net/manual/en/reference.pcre.pattern.modifiers.php */ private const ALL_MODIFIERS_VALUES = ['i', 'm', 's', 'x', 'e', 'A', 'D', 'S', 'U', 'X', 'J', 'u']; - public function __construct(ValueResolver $valueResolver) - { - $this->valueResolver = $valueResolver; - } /** * @return \PhpParser\Node\Expr\BinaryOp\Concat|\PhpParser\Node\Scalar\String_|null */ public function resolvePatternExpressionWithoutEIfFound(Expr $expr) { if ($expr instanceof String_) { - $pattern = $this->valueResolver->getValue($expr); - if (!\is_string($pattern)) { - return null; - } + $pattern = $expr->value; $delimiter = $pattern[0]; switch ($delimiter) { case '(': @@ -67,8 +54,8 @@ public function resolvePatternExpressionWithoutEIfFound(Expr $expr) if (\strpos($modifiers, 'e') === \false) { return null; } - $patternWithoutE = $this->createPatternWithoutE($pattern, $delimiter, $modifiers); - return new String_($patternWithoutE); + $expr->value = $this->createPatternWithoutE($pattern, $delimiter, $modifiers); + return $expr; } if ($expr instanceof Concat) { return $this->matchConcat($expr); diff --git a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php index 414564275..1795c3e16 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Php70\Exception\InvalidEregException; /** * @changelog https://gist.github.com/lifthrasiir/704754/7e486f43e62fd1c9d3669330c251f8ca4a59a3f8 diff --git a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php index 6f3b46e9d..238560eda 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/rules/Php72/Rector/Assign/ListEachRector.php b/vendor/rector/rector/rules/Php72/Rector/Assign/ListEachRector.php index 5b11689bd..4829372f7 100644 --- a/vendor/rector/rector/rules/Php72/Rector/Assign/ListEachRector.php +++ b/vendor/rector/rector/rules/Php72/Rector/Assign/ListEachRector.php @@ -6,12 +6,11 @@ use PhpParser\Node; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Expr\List_; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use Rector\Exception\ShouldNotHappenException; use Rector\NodeManipulator\AssignManipulator; +use Rector\Php72\ValueObject\ListAndEach; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; @@ -65,58 +64,55 @@ public function refactor(Node $node) if (!$node->expr instanceof Assign) { return null; } - $assign = $node->expr; - if ($this->shouldSkipAssign($assign)) { + $listAndEach = $this->assignManipulator->matchListAndEach($node->expr); + if (!$listAndEach instanceof ListAndEach) { return null; } - /** @var List_ $listNode */ - $listNode = $assign->var; - /** @var FuncCall $eachFuncCall */ - $eachFuncCall = $assign->expr; + if ($this->shouldSkipAssign($listAndEach)) { + return null; + } + $list = $listAndEach->getList(); + $eachFuncCall = $listAndEach->getEachFuncCall(); // only key: list($key, ) = each($values); - if ($listNode->items[0] instanceof ArrayItem && !$listNode->items[1] instanceof ArrayItem) { + if ($list->items[0] instanceof ArrayItem && !$list->items[1] instanceof ArrayItem) { $keyFuncCall = $this->nodeFactory->createFuncCall('key', $eachFuncCall->args); - $keyFuncCallAssign = new Assign($listNode->items[0]->value, $keyFuncCall); + $keyFuncCallAssign = new Assign($list->items[0]->value, $keyFuncCall); return new Expression($keyFuncCallAssign); } // only value: list(, $value) = each($values); - if ($listNode->items[1] instanceof ArrayItem && !$listNode->items[0] instanceof ArrayItem) { + if ($list->items[1] instanceof ArrayItem && !$list->items[0] instanceof ArrayItem) { $nextFuncCall = $this->nodeFactory->createFuncCall('next', $eachFuncCall->args); $currentFuncCall = $this->nodeFactory->createFuncCall('current', $eachFuncCall->args); - $secondArrayItem = $listNode->items[1]; + $secondArrayItem = $list->items[1]; $currentAssign = new Assign($secondArrayItem->value, $currentFuncCall); return [new Expression($currentAssign), new Expression($nextFuncCall)]; } // both: list($key, $value) = each($values); $currentFuncCall = $this->nodeFactory->createFuncCall('current', $eachFuncCall->args); - $secondArrayItem = $listNode->items[1]; + $secondArrayItem = $list->items[1]; if (!$secondArrayItem instanceof ArrayItem) { throw new ShouldNotHappenException(); } $currentAssign = new Assign($secondArrayItem->value, $currentFuncCall); $nextFuncCall = $this->nodeFactory->createFuncCall('next', $eachFuncCall->args); $keyFuncCall = $this->nodeFactory->createFuncCall('key', $eachFuncCall->args); - $firstArrayItem = $listNode->items[0]; + $firstArrayItem = $list->items[0]; if (!$firstArrayItem instanceof ArrayItem) { throw new ShouldNotHappenException(); } $keyAssign = new Assign($firstArrayItem->value, $keyFuncCall); return [new Expression($keyAssign), new Expression($currentAssign), new Expression($nextFuncCall)]; } - private function shouldSkipAssign(Assign $assign) : bool + private function shouldSkipAssign(ListAndEach $listAndEach) : bool { - if (!$this->assignManipulator->isListToEachAssign($assign)) { - return \true; - } - /** @var List_ $listNode */ - $listNode = $assign->var; - if (\count($listNode->items) !== 2) { + $list = $listAndEach->getList(); + if (\count($list->items) !== 2) { return \true; } // empty list → cannot handle - if ($listNode->items[0] instanceof ArrayItem) { + if ($list->items[0] instanceof ArrayItem) { return \false; } - return !$listNode->items[1] instanceof ArrayItem; + return !$list->items[1] instanceof ArrayItem; } } diff --git a/vendor/rector/rector/rules/Php72/Rector/While_/WhileEachToForeachRector.php b/vendor/rector/rector/rules/Php72/Rector/While_/WhileEachToForeachRector.php index 78bb42ddb..749e9dbaf 100644 --- a/vendor/rector/rector/rules/Php72/Rector/While_/WhileEachToForeachRector.php +++ b/vendor/rector/rector/rules/Php72/Rector/While_/WhileEachToForeachRector.php @@ -6,11 +6,10 @@ use PhpParser\Node; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Expr\List_; use PhpParser\Node\Stmt\Foreach_; use PhpParser\Node\Stmt\While_; use Rector\NodeManipulator\AssignManipulator; +use Rector\Php72\ValueObject\ListAndEach; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; @@ -75,37 +74,31 @@ public function refactor(Node $node) : ?Node if (!$node->cond instanceof Assign) { return null; } - /** @var Assign $assignNode */ - $assignNode = $node->cond; - if (!$this->assignManipulator->isListToEachAssign($assignNode)) { + $listAndEach = $this->assignManipulator->matchListAndEach($node->cond); + if (!$listAndEach instanceof ListAndEach) { return null; } - /** @var FuncCall $eachFuncCall */ - $eachFuncCall = $assignNode->expr; - if ($eachFuncCall->isFirstClassCallable()) { - return null; - } - /** @var List_ $listNode */ - $listNode = $assignNode->var; + $eachFuncCall = $listAndEach->getEachFuncCall(); + $list = $listAndEach->getList(); if (!isset($eachFuncCall->getArgs()[0])) { return null; } $firstArg = $eachFuncCall->getArgs()[0]; - $foreachedExpr = \count($listNode->items) === 1 ? $this->nodeFactory->createFuncCall('array_keys', [$firstArg]) : $firstArg->value; - $arrayItem = \array_pop($listNode->items); + $foreachedExpr = \count($list->items) === 1 ? $this->nodeFactory->createFuncCall('array_keys', [$firstArg]) : $firstArg->value; + $arrayItem = \array_pop($list->items); $isTrailingCommaLast = \false; if (!$arrayItem instanceof ArrayItem) { $foreachedExpr = $this->nodeFactory->createFuncCall('array_keys', [$eachFuncCall->args[0]]); /** @var ArrayItem $arrayItem */ - $arrayItem = \current($listNode->items); + $arrayItem = \current($list->items); $isTrailingCommaLast = \true; } $foreach = new Foreach_($foreachedExpr, $arrayItem, ['stmts' => $node->stmts]); $this->mirrorComments($foreach, $node); // is key included? add it to foreach - if ($listNode->items !== []) { + if ($list->items !== []) { /** @var ArrayItem|null $keyItem */ - $keyItem = \array_pop($listNode->items); + $keyItem = \array_pop($list->items); if ($keyItem instanceof ArrayItem && !$isTrailingCommaLast) { $foreach->keyVar = $keyItem->value; } diff --git a/vendor/rector/rector/rules/Php72/ValueObject/ListAndEach.php b/vendor/rector/rector/rules/Php72/ValueObject/ListAndEach.php new file mode 100644 index 000000000..a60db26b3 --- /dev/null +++ b/vendor/rector/rector/rules/Php72/ValueObject/ListAndEach.php @@ -0,0 +1,33 @@ +list = $list; + $this->eachFuncCall = $eachFuncCall; + } + public function getList() : List_ + { + return $this->list; + } + public function getEachFuncCall() : FuncCall + { + return $this->eachFuncCall; + } +} diff --git a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php index d917bc4e1..985fe559a 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 8f9ba639c..084104eb3 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php b/vendor/rector/rector/rules/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php index 909fe12e7..686591359 100644 --- a/vendor/rector/rector/rules/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php +++ b/vendor/rector/rector/rules/Php74/Rector/Property/RestoreDefaultNullToNullableTypePropertyRector.php @@ -62,7 +62,7 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - if ($node->isReadonly()) { + if ($this->isReadonlyClass($node)) { return null; } $hasChanged = \false; @@ -95,7 +95,7 @@ private function shouldSkip(Property $property, Class_ $class) : bool if ($onlyProperty->default instanceof Expr) { return \true; } - if ($this->isReadonly($property)) { + if ($this->isReadonlyProperty($property)) { return \true; } if (!$this->nodeTypeResolver->isNullableType($property)) { @@ -105,7 +105,7 @@ private function shouldSkip(Property $property, Class_ $class) : bool $propertyName = $this->getName($property); return $this->constructorAssignDetector->isPropertyAssigned($class, $propertyName); } - private function isReadonly(Property $property) : bool + private function isReadonlyProperty(Property $property) : bool { // native readonly if ($property->isReadonly()) { @@ -113,7 +113,16 @@ private function isReadonly(Property $property) : bool } // @readonly annotation $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); - $tags = $phpDocInfo->getTagsByName('@readonly'); - return $tags !== []; + return $phpDocInfo->hasByName('@readonly'); + } + private function isReadonlyClass(Class_ $class) : bool + { + // native readonly + if ($class->isReadonly()) { + return \true; + } + // @immutable annotation + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($class); + return $phpDocInfo->hasByName('@immutable'); } } diff --git a/vendor/rector/rector/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php b/vendor/rector/rector/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php index 514cf69b5..1f292c13d 100644 --- a/vendor/rector/rector/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php +++ b/vendor/rector/rector/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php @@ -67,6 +67,9 @@ public function resolveFromClass(Class_ $class, ClassMethod $constructClassMetho } private function matchPropertyPromotionCandidate(Property $property, ClassMethod $constructClassMethod) : ?PropertyPromotionCandidate { + if ($property->flags === 0) { + return null; + } $onlyProperty = $property->props[0]; $propertyName = $this->nodeNameResolver->getName($onlyProperty); $firstParamAsVariable = $this->resolveFirstParamUses($constructClassMethod); diff --git a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php index aa3e6b481..1f4bad5be 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/attributes_v2 * @changelog https://wiki.php.net/rfc/new_in_initializers diff --git a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php index d43de8d5f..7aceb7aa9 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php80\Rector\Property\NestedAnnotationToAttributeRector\NestedAnnotationToAttributeRectorTest * diff --git a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationPropertyToAttributeClass.php b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationPropertyToAttributeClass.php index 047521c10..856ac834c 100644 --- a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationPropertyToAttributeClass.php +++ b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationPropertyToAttributeClass.php @@ -13,7 +13,7 @@ final class AnnotationPropertyToAttributeClass private $attributeClass; /** * @readonly - * @var string|int|null + * @var int|string|null */ private $annotationProperty = null; /** @@ -32,7 +32,7 @@ public function __construct(string $attributeClass, $annotationProperty = null, RectorAssert::className($attributeClass); } /** - * @return string|int|null + * @return int|string|null */ public function getAnnotationProperty() { diff --git a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php index b7eb8a000..95156b5b1 100644 --- a/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php +++ b/vendor/rector/rector/rules/Php80/ValueObject/AnnotationToAttribute.php @@ -5,7 +5,7 @@ use Rector\Php80\Contract\ValueObject\AnnotationToAttributeInterface; use Rector\Validation\RectorAssert; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class AnnotationToAttribute implements AnnotationToAttributeInterface { /** diff --git a/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php b/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php index 371420855..7e9888e0c 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/Array_/FirstClassCallableRector.php b/vendor/rector/rector/rules/Php81/Rector/Array_/FirstClassCallableRector.php index a89e8bea4..3e4de9a81 100644 --- a/vendor/rector/rector/rules/Php81/Rector/Array_/FirstClassCallableRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/Array_/FirstClassCallableRector.php @@ -10,7 +10,10 @@ use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; +use PhpParser\Node\Stmt\ClassConst; +use PhpParser\Node\Stmt\Property; use PhpParser\Node\VariadicPlaceholder; +use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ReflectionProvider; @@ -79,14 +82,17 @@ public function name() */ public function getNodeTypes() : array { - return [Array_::class]; + return [Property::class, ClassConst::class, Array_::class]; } /** - * @param Array_ $node - * @return null|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall + * @param Property|ClassConst|Array_ $node + * @return int|null|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall */ public function refactorWithScope(Node $node, Scope $scope) { + if ($node instanceof Property || $node instanceof ClassConst) { + return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; + } $arrayCallable = $this->arrayCallableMethodMatcher->match($node, $scope); if (!$arrayCallable instanceof ArrayCallable) { return null; @@ -112,10 +118,7 @@ public function provideMinPhpVersion() : int private function isNonStaticOtherObject(FullyQualifiedObjectType $fullyQualifiedObjectType, ArrayCallable $arrayCallable, Scope $scope) : bool { $classReflection = $scope->getClassReflection(); - if (!$classReflection instanceof ClassReflection) { - return \false; - } - if ($classReflection->getName() === $fullyQualifiedObjectType->getClassName()) { + if ($classReflection instanceof ClassReflection && $classReflection->getName() === $fullyQualifiedObjectType->getClassName()) { return \false; } $arrayClassReflection = $this->reflectionProvider->getClass($arrayCallable->getClass()); diff --git a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php index 3d0ab397c..93ef873e6 100644 --- a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php @@ -15,7 +15,10 @@ use PhpParser\Node\Scalar\String_; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; +use PHPStan\Reflection\FunctionReflection; use PHPStan\Reflection\Native\NativeFunctionReflection; +use PHPStan\Reflection\Native\NativeParameterWithPhpDocsReflection; +use PHPStan\Reflection\ParametersAcceptor; use PHPStan\Type\ErrorType; use PHPStan\Type\MixedType; use PHPStan\Type\NullType; @@ -113,9 +116,14 @@ public function refactor(Node $node) : ?Node } $classReflection = $scope->getClassReflection(); $isTrait = $classReflection instanceof ClassReflection && $classReflection->isTrait(); + $functionReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($node); + if (!$functionReflection instanceof FunctionReflection) { + return null; + } + $parametersAcceptor = ParametersAcceptorSelectorVariantsWrapper::select($functionReflection, $node, $scope); $isChanged = \false; foreach ($positions as $position) { - $result = $this->processNullToStrictStringOnNodePosition($node, $args, $position, $isTrait, $scope); + $result = $this->processNullToStrictStringOnNodePosition($node, $args, $position, $isTrait, $scope, $parametersAcceptor); if ($result instanceof Node) { $node = $result; $isChanged = \true; @@ -154,7 +162,7 @@ private function resolveNamedPositions(FuncCall $funcCall, array $args) : array * @param Arg[] $args * @param int|string $position */ - private function processNullToStrictStringOnNodePosition(FuncCall $funcCall, array $args, $position, bool $isTrait, Scope $scope) : ?FuncCall + private function processNullToStrictStringOnNodePosition(FuncCall $funcCall, array $args, $position, bool $isTrait, Scope $scope, ParametersAcceptor $parametersAcceptor) : ?FuncCall { if (!isset($args[$position])) { return null; @@ -179,12 +187,19 @@ private function processNullToStrictStringOnNodePosition(FuncCall $funcCall, arr if ($argValue instanceof Encapsed) { return null; } - if ($this->isAnErrorTypeFromParentScope($argValue, $scope)) { + if ($this->isAnErrorType($argValue, $nativeType, $scope)) { return null; } if ($this->shouldSkipTrait($argValue, $type, $isTrait)) { return null; } + $parameter = $parametersAcceptor->getParameters()[$position] ?? null; + if ($parameter instanceof NativeParameterWithPhpDocsReflection && $parameter->getType() instanceof UnionType) { + $parameterType = $parameter->getType(); + if (!$this->isValidUnionType($parameterType)) { + return null; + } + } $args[$position]->value = new CastString_($argValue); $funcCall->args = $args; return $funcCall; @@ -225,8 +240,11 @@ private function shouldSkipTrait(Expr $expr, Type $type, bool $isTrait) : bool } return \true; } - private function isAnErrorTypeFromParentScope(Expr $expr, Scope $scope) : bool + private function isAnErrorType(Expr $expr, Type $type, Scope $scope) : bool { + if ($type instanceof ErrorType) { + return \true; + } $parentScope = $scope->getParentScope(); if ($parentScope instanceof Scope) { return $parentScope->getType($expr) instanceof ErrorType; diff --git a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php index cf5feedc1..9280c415a 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 RectorPrefix202403\Spatie\Enum\Enum; +use RectorPrefix202405\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 c8a53f7ec..51c175fae 100644 --- a/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php @@ -15,6 +15,10 @@ use PhpParser\Node\Stmt\Property; use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; +use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; +use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\NodeAnalyzer\ParamAnalyzer; use Rector\NodeManipulator\PropertyFetchAssignManipulator; use Rector\NodeManipulator\PropertyManipulator; @@ -60,13 +64,25 @@ final class ReadOnlyPropertyRector extends AbstractScopeAwareRector implements M * @var \Rector\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; - public function __construct(PropertyManipulator $propertyManipulator, PropertyFetchAssignManipulator $propertyFetchAssignManipulator, ParamAnalyzer $paramAnalyzer, VisibilityManipulator $visibilityManipulator, BetterNodeFinder $betterNodeFinder) + /** + * @readonly + * @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory + */ + private $phpDocInfoFactory; + /** + * @readonly + * @var \Rector\Comments\NodeDocBlock\DocBlockUpdater + */ + private $docBlockUpdater; + public function __construct(PropertyManipulator $propertyManipulator, PropertyFetchAssignManipulator $propertyFetchAssignManipulator, ParamAnalyzer $paramAnalyzer, VisibilityManipulator $visibilityManipulator, BetterNodeFinder $betterNodeFinder, PhpDocInfoFactory $phpDocInfoFactory, DocBlockUpdater $docBlockUpdater) { $this->propertyManipulator = $propertyManipulator; $this->propertyFetchAssignManipulator = $propertyFetchAssignManipulator; $this->paramAnalyzer = $paramAnalyzer; $this->visibilityManipulator = $visibilityManipulator; $this->betterNodeFinder = $betterNodeFinder; + $this->phpDocInfoFactory = $phpDocInfoFactory; + $this->docBlockUpdater = $docBlockUpdater; } public function getRuleDefinition() : RuleDefinition { @@ -170,8 +186,28 @@ private function refactorProperty(Class_ $class, Property $property, Scope $scop if ($attributeGroups !== []) { $property->setAttribute(AttributeKey::ORIGINAL_NODE, null); } + $this->removeReadOnlyDoc($property); return $property; } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $node + */ + private function removeReadOnlyDoc($node) : void + { + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $readonlyDoc = $phpDocInfo->getByName('readonly'); + if (!$readonlyDoc instanceof PhpDocTagNode) { + return; + } + if (!$readonlyDoc->value instanceof GenericTagValueNode) { + return; + } + if ($readonlyDoc->value->value !== '') { + return; + } + $phpDocInfo->removeByName('readonly'); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + } private function refactorParam(Class_ $class, ClassMethod $classMethod, Param $param, Scope $scope) : ?\PhpParser\Node\Param { if (!$this->visibilityManipulator->hasVisibility($param, Visibility::PRIVATE)) { @@ -180,11 +216,11 @@ private function refactorParam(Class_ $class, ClassMethod $classMethod, Param $p if ($param->type === null) { return null; } - // promoted property? - if ($this->propertyManipulator->isPropertyChangeableExceptConstructor($class, $param, $scope)) { + // early check not property promotion and already readonly + if ($param->flags === 0 || $this->visibilityManipulator->isReadonly($param)) { return null; } - if ($this->visibilityManipulator->isReadonly($param)) { + if ($this->propertyManipulator->isPropertyChangeableExceptConstructor($class, $param, $scope)) { return null; } if ($this->paramAnalyzer->isParamReassign($classMethod, $param)) { @@ -197,6 +233,7 @@ private function refactorParam(Class_ $class, ClassMethod $classMethod, Param $p $param->setAttribute(AttributeKey::ORIGINAL_NODE, null); } $this->visibilityManipulator->makeReadonly($param); + $this->removeReadOnlyDoc($param); return $param; } private function isPromotedPropertyAssigned(Class_ $class, Param $param) : bool diff --git a/vendor/rector/rector/rules/Php82/Rector/Class_/ReadOnlyClassRector.php b/vendor/rector/rector/rules/Php82/Rector/Class_/ReadOnlyClassRector.php index 22002d50e..397401a26 100644 --- a/vendor/rector/rector/rules/Php82/Rector/Class_/ReadOnlyClassRector.php +++ b/vendor/rector/rector/rules/Php82/Rector/Class_/ReadOnlyClassRector.php @@ -101,10 +101,18 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if ($constructClassMethod instanceof ClassMethod) { foreach ($constructClassMethod->getParams() as $param) { $this->visibilityManipulator->removeReadonly($param); + if ($param->attrGroups !== []) { + // invoke reprint with correct newline + $param->setAttribute(AttributeKey::ORIGINAL_NODE, null); + } } } foreach ($node->getProperties() as $property) { $this->visibilityManipulator->removeReadonly($property); + if ($property->attrGroups !== []) { + // invoke reprint with correct newline + $property->setAttribute(AttributeKey::ORIGINAL_NODE, null); + } } if ($node->attrGroups !== []) { // invoke reprint with correct readonly newline diff --git a/vendor/rector/rector/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php b/vendor/rector/rector/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php new file mode 100644 index 000000000..f8b66aace --- /dev/null +++ b/vendor/rector/rector/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php @@ -0,0 +1,74 @@ +> + */ + public function getNodeTypes() : array + { + return [Encapsed::class]; + } + /** + * @param Encapsed $node + */ + public function refactor(Node $node) : ?Node + { + $oldTokens = $this->file->getOldTokens(); + $hasChanged = \false; + foreach ($node->parts as $part) { + if (!$part instanceof Variable) { + continue; + } + $startTokenPos = $part->getStartTokenPos(); + if (!isset($oldTokens[$startTokenPos])) { + continue; + } + if (!\is_array($oldTokens[$startTokenPos])) { + continue; + } + if ($oldTokens[$startTokenPos][1] !== '${') { + continue; + } + $part->setAttribute(AttributeKey::ORIGINAL_NODE, null); + $hasChanged = \true; + } + if (!$hasChanged) { + return null; + } + return $node; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::DEPRECATE_VARIABLE_IN_STRING_INTERPOLATION; + } +} diff --git a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php index 0242aebf7..503b6a901 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 815af454f..1546eea81 100644 --- a/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php +++ b/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php @@ -19,7 +19,9 @@ use PhpParser\Node\Stmt\ClassConst; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ReflectionProvider; +use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Rector\AbstractRector; +use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -34,13 +36,19 @@ final class AddTypeToConstRector extends AbstractRector implements MinPhpVersion * @var \PHPStan\Reflection\ReflectionProvider */ private $reflectionProvider; - public function __construct(ReflectionProvider $reflectionProvider) + /** + * @readonly + * @var \Rector\StaticTypeMapper\StaticTypeMapper + */ + private $staticTypeMapper; + public function __construct(ReflectionProvider $reflectionProvider, StaticTypeMapper $staticTypeMapper) { $this->reflectionProvider = $reflectionProvider; + $this->staticTypeMapper = $staticTypeMapper; } public function getRuleDefinition() : RuleDefinition { - return new RuleDefinition('Add const to type', [new CodeSample(<<<'CODE_SAMPLE' + return new RuleDefinition('Add type to constants', [new CodeSample(<<<'CODE_SAMPLE' final class SomeClass { public const TYPE = 'some_type'; @@ -133,11 +141,16 @@ private function findValueType(Expr $expr) : ?Identifier if ($expr instanceof DNumber) { return new Identifier('float'); } - if ($expr instanceof ConstFetch && $expr->name->toLowerString() !== 'null') { - return new Identifier('bool'); - } - if ($expr instanceof ConstFetch && $expr->name->toLowerString() === 'null') { - return new Identifier('null'); + if ($expr instanceof ConstFetch) { + if ($expr->name->toLowerString() === 'null') { + return new Identifier('null'); + } + $type = $this->nodeTypeResolver->getNativeType($expr); + $nodeType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($type, TypeKind::PROPERTY); + if (!$nodeType instanceof Identifier) { + return null; + } + return $nodeType; } if ($expr instanceof Array_) { return new Identifier('array'); diff --git a/vendor/rector/rector/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php b/vendor/rector/rector/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php new file mode 100644 index 000000000..2e9a37cd4 --- /dev/null +++ b/vendor/rector/rector/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php @@ -0,0 +1,75 @@ +valueResolver = $valueResolver; + $this->staticTypeMapper = $staticTypeMapper; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Make implicit nullable param to explicit', [new CodeSample(<<<'CODE_SAMPLE' +function foo(string $param = null) {} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +function foo(?string $param = null) {} +CODE_SAMPLE +)]); + } + public function getNodeTypes() : array + { + return [Param::class]; + } + /** + * @param Param $node + */ + public function refactor(Node $node) : ?Param + { + if (!$node->type instanceof Node) { + return null; + } + if (!$node->default instanceof ConstFetch || !$this->valueResolver->isNull($node->default)) { + return null; + } + $nodeType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($node->type); + if (TypeCombinator::containsNull($nodeType)) { + return null; + } + $newNodeType = TypeCombinator::addNull($nodeType); + $node->type = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($newNodeType, TypeKind::PARAM); + return $node; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::DEPRECATE_IMPLICIT_NULLABLE_PARAM_TYPE; + } +} diff --git a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php index 43ab57a87..a1400cd7d 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 8947b4622..4b50a4af5 100644 --- a/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php +++ b/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeTestCaseClassRector.php @@ -41,9 +41,9 @@ class SomeClass extends TestCase } CODE_SAMPLE , <<<'CODE_SAMPLE' -final use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestCase; -class SomeClass extends TestCase +final class SomeClass extends TestCase { } CODE_SAMPLE diff --git a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php index a6472a783..58d2e5560 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 fe4b01e2e..e0d59add3 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 ef89917ae..6c98be0e7 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 7c1fcd4de..e87a0840a 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 df588c721..6d002b25b 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallRector\RemoveFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php b/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php index bf6274cb5..37588202a 100644 --- a/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php +++ b/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php @@ -128,6 +128,9 @@ private function shouldSkip(string $newName, FullyQualified $fullyQualified) : b */ private function refactorName(FullyQualified $fullyQualified, array $oldToNewClasses) : ?FullyQualified { + if ($fullyQualified->getAttribute(AttributeKey::IS_FUNCCALL_NAME) === \true) { + return null; + } $stringName = $fullyQualified->toString(); $newName = $oldToNewClasses[$stringName] ?? null; if ($newName === null) { diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php index 3fe5a48be..cf5697698 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 ca5b38556..0d971a7fc 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 4b2b53ac9..940222c5b 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 0a2a36125..a44f269b5 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 index ebbabc0f6..a6f465fe1 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/FunctionLike/RenameFunctionLikeParamWithinCallLikeArgRector.php @@ -23,7 +23,7 @@ use Rector\Renaming\ValueObject\RenameFunctionLikeParamWithinCallLikeArg; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\FunctionLike\RenameFunctionLikeParamWithinCallLikeArgRector\RenameFunctionLikeParamWithinCallLikeArgRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php index 37fdb8eeb..474572ef0 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 3ebdf53f2..e9c235c7b 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 6a2fefe20..f10d31816 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 997418334..105cf9c59 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 42cb4d5b9..d6769cf1f 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35858 * diff --git a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php index 0a387a8a0..e2b6970f1 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Strict\Rector\BooleanNot\BooleanInBooleanNotRuleFixerRector\BooleanInBooleanNotRuleFixerRectorTest * diff --git a/vendor/rector/rector/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php new file mode 100644 index 000000000..3d534ceb6 --- /dev/null +++ b/vendor/rector/rector/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php @@ -0,0 +1,65 @@ +make('someService'); +CODE_SAMPLE +, [new ArrayDimFetchToMethodCall(new ObjectType('SomeClass'), 'make')])]); + } + public function getNodeTypes() : array + { + return [ArrayDimFetch::class]; + } + /** + * @param ArrayDimFetch $node + */ + public function refactor(Node $node) : ?MethodCall + { + if (!$node->var instanceof Variable) { + return null; + } + if (!$node->dim instanceof Node) { + return null; + } + foreach ($this->arrayDimFetchToMethodCalls as $arrayDimFetchToMethodCall) { + if (!$this->isObjectType($node->var, $arrayDimFetchToMethodCall->getObjectType())) { + continue; + } + return new MethodCall($node->var, $arrayDimFetchToMethodCall->getMethod(), [new Arg($node->dim)]); + } + return null; + } + public function configure(array $configuration) : void + { + Assert::allIsInstanceOf($configuration, ArrayDimFetchToMethodCall::class); + $this->arrayDimFetchToMethodCalls = $configuration; + } +} diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php index d76f3c004..03f387e32 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 0e743284d..c57f95cfd 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 30ae016ec..dce5a9b62 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 e90ff9178..84788f766 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 b8c2b9d23..7247cf0b8 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 1800b166e..c0bbbe3ae 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 9679dd0a1..1b50439a9 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 47d062231..4f8d60930 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 8a662bb65..cd71cd77f 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 index e272ebaaf..218ee5c7c 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php @@ -11,7 +11,7 @@ use Rector\Transform\ValueObject\ConstFetchToClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see Rector\Tests\Transform\Rector\ConstFetch\ConstFetchToClassConstFetchRector\ConstFetchToClassConstFetchTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php b/vendor/rector/rector/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php index 12b70173b..015f34e1d 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FileWithoutNamespace\RectorConfigBuilderRector\RectorConfigBuilderRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php index acb6fa092..8ecd9c5b6 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 ad6345219..2ae8ec851 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 4fb520c6d..c8bf10be5 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 891302550..cfac9e46a 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 24b13f52c..dd054e38e 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 569c662d7..5db38dd53 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 b1087b979..88c52b202 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 180fe6680..f876d9a51 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 3498cbeb5..ca2d69c63 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 5d782efd4..fcb25c54a 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 f00a69f76..46fd5c86a 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 e73a358bc..c3430a0b9 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 31ee673d2..df2344463 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\String_\StringToClassConstantRector\StringToClassConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php b/vendor/rector/rector/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php new file mode 100644 index 000000000..c0850b344 --- /dev/null +++ b/vendor/rector/rector/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php @@ -0,0 +1,32 @@ +objectType = $objectType; + $this->method = $method; + } + public function getObjectType() : ObjectType + { + return $this->objectType; + } + public function getMethod() : string + { + return $this->method; + } +} diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php index f613ee615..bf41074b9 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 e8e5bc3c3..29e8cd199 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php @@ -8,7 +8,6 @@ use PhpParser\Node\Stmt\Property; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; -use RectorPrefix202403\Symfony\Contracts\Service\Attribute\Required; final class AutowiredClassMethodOrPropertyAnalyzer { /** @@ -35,6 +34,6 @@ public function detect($node) : bool if ($nodePhpDocInfo->hasByNames(['required', 'inject'])) { return \true; } - return $this->phpAttributeAnalyzer->hasPhpAttributes($node, [Required::class, 'Nette\\DI\\Attributes\\Inject']); + return $this->phpAttributeAnalyzer->hasPhpAttributes($node, ['Symfony\\Contracts\\Service\\Attribute\\Required', 'Nette\\DI\\Attributes\\Inject']); } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php index dcbe34c81..cf41d797c 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php @@ -17,6 +17,7 @@ use Rector\NodeCollector\ValueObject\ArrayCallable; use Rector\NodeTypeResolver\NodeTypeResolver; use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; +use Rector\NodeTypeResolver\TypeComparator\TypeComparator; final class CallTypesResolver { /** @@ -34,11 +35,17 @@ final class CallTypesResolver * @var \PHPStan\Reflection\ReflectionProvider */ private $reflectionProvider; - public function __construct(NodeTypeResolver $nodeTypeResolver, TypeFactory $typeFactory, ReflectionProvider $reflectionProvider) + /** + * @readonly + * @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator + */ + private $typeComparator; + public function __construct(NodeTypeResolver $nodeTypeResolver, TypeFactory $typeFactory, ReflectionProvider $reflectionProvider, TypeComparator $typeComparator) { $this->nodeTypeResolver = $nodeTypeResolver; $this->typeFactory = $typeFactory; $this->reflectionProvider = $reflectionProvider; + $this->typeComparator = $typeComparator; } /** * @param MethodCall[]|StaticCall[]|ArrayCallable[] $calls @@ -76,6 +83,10 @@ private function resolveStrictArgValueType(Arg $arg) : Type if (!$this->reflectionProvider->hasClass($argValueType->getClassName())) { return new MixedType(); } + $type = $this->nodeTypeResolver->getType($arg->value); + if (!$type->equals($argValueType) && $this->typeComparator->isSubtype($type, $argValueType)) { + return $type; + } return $argValueType; } private function correctSelfType(Type $argValueType) : Type diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php new file mode 100644 index 000000000..05dab7e4b --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php @@ -0,0 +1,24 @@ +declares as $declare) { + if ($declare->key->toString() === 'strict_types') { + return \true; + } + } + return \false; + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php index b34d28d0a..59aadaf90 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php @@ -26,19 +26,22 @@ public function __construct(NodeTypeResolver $nodeTypeResolver) */ public function hasNeverFuncCall($functionLike) : bool { - $hasNeverType = \false; foreach ((array) $functionLike->stmts as $stmt) { - if ($stmt instanceof Expression) { - $stmt = $stmt->expr; - } - if ($stmt instanceof Stmt) { - continue; - } - $stmtType = $this->nodeTypeResolver->getNativeType($stmt); - if ($stmtType instanceof NeverType) { - $hasNeverType = \true; + if ($this->isWithNeverTypeExpr($stmt)) { + return \true; } } - return $hasNeverType; + return \false; + } + public function isWithNeverTypeExpr(Stmt $stmt) : bool + { + if ($stmt instanceof Expression) { + $stmt = $stmt->expr; + } + if ($stmt instanceof Stmt) { + return \false; + } + $stmtType = $this->nodeTypeResolver->getNativeType($stmt); + return $stmtType instanceof NeverType; } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php index 7db55e0be..3fde6dab5 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 53fb7bf4b..ee49f2048 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; @@ -166,12 +166,12 @@ private function inferParam(Class_ $class, int $parameterPosition, $dataProvider return new MixedType(); } /** @var Return_[] $returns */ - $returns = $this->betterNodeFinder->findInstanceOf((array) $dataProviderClassMethod->stmts, Return_::class); + $returns = $this->betterNodeFinder->findInstancesOfInFunctionLikeScoped($dataProviderClassMethod, Return_::class); if ($returns !== []) { return $this->resolveReturnStaticArrayTypeByParameterPosition($returns, $parameterPosition); } /** @var Yield_[] $yields */ - $yields = $this->betterNodeFinder->findInstanceOf((array) $dataProviderClassMethod->stmts, Yield_::class); + $yields = $this->betterNodeFinder->findInstancesOfInFunctionLikeScoped($dataProviderClassMethod, Yield_::class); return $this->resolveYieldStaticArrayTypeByParameterPosition($yields, $parameterPosition); } /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php index 3ccaa28a8..6f534ed10 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 992faf05d..bacc58a52 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 f97dbee44..bff79430c 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictScalarReturnExprRector\ReturnTypeFromStrictScalarReturnExprRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php index 341c3e1b3..cd8f41d84 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php @@ -149,7 +149,7 @@ private function resolveReturnPropertyType(ClassMethod $classMethod) : array if ($phpPropertyReflection->getNativeType() instanceof MixedType) { return []; } - $propertyTypes[] = $phpPropertyReflection->getNativeType(); + $propertyTypes[] = $this->nodeTypeResolver->getNativeType($return->expr); } return $propertyTypes; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php index 65305fc81..f765b42f9 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ChildDoctrineRepositoryClassTypeRector.php @@ -51,7 +51,7 @@ public function __construct(PhpDocInfoFactory $phpDocInfoFactory, NodeFinder $no } public function getRuleDefinition() : RuleDefinition { - return new RuleDefinition('Add return type to classes that extend Doctrine\\ORM\\EntityRepository', [new CodeSample(<<<'CODE_SAMPLE' + return new RuleDefinition('Add return type to classes that extend Doctrine\\ORM\\EntityRepository based on return Doctrine method names', [new CodeSample(<<<'CODE_SAMPLE' use Doctrine\ORM\EntityRepository; /** @@ -109,7 +109,9 @@ public function refactor(Node $node) : ?Node if ($this->shouldSkipClassMethod($classMethod)) { continue; } - if ($this->containsMethodCallNamed($classMethod, 'findOneBy')) { + if ($this->containsMethodCallNamed($classMethod, 'getOneOrNullResult')) { + $classMethod->returnType = $this->createNullableType($entityClassName); + } elseif ($this->containsMethodCallNamed($classMethod, 'findOneBy')) { $classMethod->returnType = $this->createNullableType($entityClassName); } if ($this->containsMethodCallNamed($classMethod, 'findBy')) { @@ -155,6 +157,10 @@ private function resolveEntityClassnameFromPhpDoc(Class_ $class) : ?string if (!$entityGenericType instanceof IdentifierTypeNode) { return null; } + // skip if value is used in generics + if (\in_array($entityGenericType->name, $classPhpDocInfo->getTemplateNames(), \true)) { + return null; + } return $entityGenericType->name; } private function containsMethodCallNamed(ClassMethod $classMethod, string $desiredMethodName) : bool diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php index a6eb0aa82..d6920820a 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php @@ -96,7 +96,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if ($node->stmts === null) { return null; } - $returns = $this->betterNodeFinder->findInstanceOf($node->stmts, Return_::class); + $returns = $this->betterNodeFinder->findInstancesOfInFunctionLikeScoped($node, Return_::class); if (\count($returns) !== 1) { return null; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php index 60b68968d..eecc30961 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector.php @@ -23,7 +23,7 @@ use Rector\ValueObject\PhpVersionFeature; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\FunctionLike\AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector\AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php index e1d57b66e..01c2b5e31 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\Property\AddPropertyTypeDeclarationRector\AddPropertyTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php index 9b9ea1938..2977e55f5 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php @@ -5,8 +5,10 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\NullableType; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Property; +use PhpParser\Node\UnionType as NodeUnionType; use PHPStan\Reflection\ClassReflection; use PHPStan\Type\MixedType; use PHPStan\Type\Type; @@ -174,7 +176,7 @@ public function refactor(Node $node) : ?Node } $hasChanged = \true; $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); - if ($inferredType instanceof UnionType) { + if ($inferredType instanceof UnionType && ($typeNode instanceof NodeUnionType || $typeNode instanceof NullableType)) { $this->propertyTypeDecorator->decoratePropertyUnionType($inferredType, $typeNode, $property, $phpDocInfo, \false); } else { $property->type = $typeNode; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php index 094f5df5d..1a84df46c 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php @@ -14,6 +14,7 @@ use Rector\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\Rector\AbstractRector; +use Rector\TypeDeclaration\NodeAnalyzer\DeclareStrictTypeFinder; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -21,6 +22,15 @@ */ final class DeclareStrictTypesRector extends AbstractRector { + /** + * @readonly + * @var \Rector\TypeDeclaration\NodeAnalyzer\DeclareStrictTypeFinder + */ + private $declareStrictTypeFinder; + public function __construct(DeclareStrictTypeFinder $declareStrictTypeFinder) + { + $this->declareStrictTypeFinder = $declareStrictTypeFinder; + } public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Add declare(strict_types=1) if missing', [new CodeSample(<<<'CODE_SAMPLE' @@ -62,10 +72,9 @@ public function beforeTraverse(array $nodes) : ?array $nodes = $rootStmt->stmts; $stmt = $currentStmt; } - if (!$stmt instanceof Stmt) { - return null; - } - if ($this->shouldSkip($stmt)) { + // when first stmt is Declare_, verify if there is strict_types definition already, + // as multiple declare is allowed, with declare(strict_types=1) only allowed on very first stmt + if ($this->declareStrictTypeFinder->hasDeclareStrictTypes($stmt)) { return null; } $declareDeclare = new DeclareDeclare(new Identifier('strict_types'), new LNumber(1)); @@ -94,17 +103,4 @@ public function refactor(Node $node) : ?Node // workaroudn, as Rector now only hooks to specific nodes, not arrays return null; } - private function shouldSkip(Stmt $stmt) : bool - { - // when first stmt is Declare_, verify if there is strict_types definition already, - // as multiple declare is allowed, with declare(strict_types=1) only allowed on very first stmt - if ($stmt instanceof Declare_) { - foreach ($stmt->declares as $declare) { - if ($declare->key->toString() === 'strict_types') { - return \true; - } - } - } - return \false; - } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php new file mode 100644 index 000000000..cd7b8712f --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php @@ -0,0 +1,115 @@ +declareStrictTypeFinder = $declareStrictTypeFinder; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add declare strict types to a limited amount of classes at a time, to try out in the wild and increase level gradually', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' +function someFunction() +{ +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +declare(strict_types=1); + +function someFunction() +{ +} +CODE_SAMPLE +, [self::LIMIT => 10])]); + } + /** + * @param Node[] $nodes + * @return Node[]|null + */ + public function beforeTraverse(array $nodes) : ?array + { + parent::beforeTraverse($nodes); + $newStmts = $this->file->getNewStmts(); + if ($newStmts === []) { + return null; + } + $rootStmt = \current($newStmts); + $stmt = $rootStmt; + // skip classes without namespace for safety reasons + if ($rootStmt instanceof FileWithoutNamespace) { + return null; + } + if ($this->declareStrictTypeFinder->hasDeclareStrictTypes($stmt)) { + return null; + } + // keep change withing a limit + if ($this->changedItemCount >= $this->limit) { + return null; + } + ++$this->changedItemCount; + $strictTypesDeclare = $this->creteStrictTypesDeclare(); + $rectorWithLineChange = new RectorWithLineChange(self::class, $stmt->getLine()); + $this->file->addRectorClassWithLine($rectorWithLineChange); + return \array_merge([$strictTypesDeclare, new Nop()], $nodes); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [StmtsAwareInterface::class]; + } + /** + * @param StmtsAwareInterface $node + */ + public function refactor(Node $node) : ?Node + { + // workaround, as Rector now only hooks to specific nodes, not arrays + return null; + } + public function configure(array $configuration) : void + { + Assert::keyExists($configuration, self::LIMIT); + $this->limit = (int) $configuration[self::LIMIT]; + } + private function creteStrictTypesDeclare() : Declare_ + { + $declareDeclare = new DeclareDeclare(new Identifier('strict_types'), new LNumber(1)); + return new Declare_([$declareDeclare]); + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/SilentVoidResolver.php b/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/SilentVoidResolver.php index 5a47e66ad..db367d0aa 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/SilentVoidResolver.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/SilentVoidResolver.php @@ -7,20 +7,35 @@ use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrowFunction; use PhpParser\Node\Expr\Closure; +use PhpParser\Node\Expr\Exit_; use PhpParser\Node\Expr\Yield_; use PhpParser\Node\Expr\YieldFrom; use PhpParser\Node\FunctionLike; use PhpParser\Node\Stmt; +use PhpParser\Node\Stmt\Break_; +use PhpParser\Node\Stmt\Case_; +use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Continue_; +use PhpParser\Node\Stmt\Do_; +use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; +use PhpParser\Node\Stmt\Finally_; use PhpParser\Node\Stmt\Function_; +use PhpParser\Node\Stmt\Goto_; +use PhpParser\Node\Stmt\If_; use PhpParser\Node\Stmt\Return_; use PhpParser\Node\Stmt\Switch_; use PhpParser\Node\Stmt\Throw_; use PhpParser\Node\Stmt\TryCatch; +use PhpParser\Node\Stmt\While_; +use PhpParser\NodeTraverser; use PHPStan\Reflection\ClassReflection; +use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Node\BetterNodeFinder; +use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Reflection\ReflectionResolver; +use Rector\TypeDeclaration\NodeAnalyzer\NeverFuncCallAnalyzer; final class SilentVoidResolver { /** @@ -33,10 +48,28 @@ final class SilentVoidResolver * @var \Rector\Reflection\ReflectionResolver */ private $reflectionResolver; - public function __construct(BetterNodeFinder $betterNodeFinder, ReflectionResolver $reflectionResolver) + /** + * @readonly + * @var \Rector\TypeDeclaration\NodeAnalyzer\NeverFuncCallAnalyzer + */ + private $neverFuncCallAnalyzer; + /** + * @readonly + * @var \Rector\PhpParser\Node\Value\ValueResolver + */ + private $valueResolver; + /** + * @readonly + * @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser + */ + private $simpleCallableNodeTraverser; + public function __construct(BetterNodeFinder $betterNodeFinder, ReflectionResolver $reflectionResolver, NeverFuncCallAnalyzer $neverFuncCallAnalyzer, ValueResolver $valueResolver, SimpleCallableNodeTraverser $simpleCallableNodeTraverser) { $this->betterNodeFinder = $betterNodeFinder; $this->reflectionResolver = $reflectionResolver; + $this->neverFuncCallAnalyzer = $neverFuncCallAnalyzer; + $this->valueResolver = $valueResolver; + $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; } /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Stmt\Function_ $functionLike @@ -60,76 +93,138 @@ public function hasSilentVoid(FunctionLike $functionLike) : bool if ($functionLike instanceof ArrowFunction) { return \false; } - if ($this->hasStmtsAlwaysReturn((array) $functionLike->getStmts())) { - return \false; - } - foreach ((array) $functionLike->getStmts() as $stmt) { + $stmts = (array) $functionLike->getStmts(); + return !$this->hasStmtsAlwaysReturnOrExit($stmts); + } + /** + * @param Stmt[]|Expression[] $stmts + */ + private function hasStmtsAlwaysReturnOrExit(array $stmts) : bool + { + foreach ($stmts as $stmt) { + if ($this->neverFuncCallAnalyzer->isWithNeverTypeExpr($stmt)) { + return \true; + } + if ($this->isStopped($stmt)) { + return \true; + } // has switch with always return - if ($stmt instanceof Switch_ && $this->isSwitchWithAlwaysReturn($stmt)) { - return \false; + if ($stmt instanceof Switch_ && $this->isSwitchWithAlwaysReturnOrExit($stmt)) { + return \true; } - // is part of try/catch - if ($stmt instanceof TryCatch && $this->isTryCatchAlwaysReturn($stmt)) { - return \false; + if ($stmt instanceof TryCatch && $this->isTryCatchAlwaysReturnOrExit($stmt)) { + return \true; } - if ($stmt instanceof Throw_) { - return \false; + if ($this->isIfReturn($stmt)) { + return \true; + } + if (!$this->isDoOrWhileWithAlwaysReturnOrExit($stmt)) { + continue; } + return \true; } - return \true; + return \false; } /** - * @param Stmt[]|Expression[] $stmts + * @param \PhpParser\Node\Stmt\Do_|\PhpParser\Node\Stmt\While_ $node */ - private function hasStmtsAlwaysReturn(array $stmts) : bool + private function isFoundLoopControl($node) : bool { - foreach ($stmts as $stmt) { - if ($stmt instanceof Expression) { - $stmt = $stmt->expr; + $isFoundLoopControl = \false; + $this->simpleCallableNodeTraverser->traverseNodesWithCallable($node->stmts, static function (Node $subNode) use(&$isFoundLoopControl) { + if ($subNode instanceof Class_ || $subNode instanceof Function_ || $subNode instanceof Closure) { + return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; } - // is 1st level return - if ($stmt instanceof Return_) { - return \true; + if ($subNode instanceof Break_ || $subNode instanceof Continue_ || $subNode instanceof Goto_) { + $isFoundLoopControl = \true; + return NodeTraverser::STOP_TRAVERSAL; } + }); + return $isFoundLoopControl; + } + private function isDoOrWhileWithAlwaysReturnOrExit(Stmt $stmt) : bool + { + if (!$stmt instanceof Do_ && !$stmt instanceof While_) { + return \false; } - return \false; + if ($this->valueResolver->isTrue($stmt->cond)) { + return !$this->isFoundLoopControl($stmt); + } + if (!$this->hasStmtsAlwaysReturnOrExit($stmt->stmts)) { + return \false; + } + return $stmt instanceof Do_ && !$this->isFoundLoopControl($stmt); } - private function isSwitchWithAlwaysReturn(Switch_ $switch) : bool + /** + * @param \PhpParser\Node\Stmt|\PhpParser\Node\Expr $stmt + */ + private function isIfReturn($stmt) : bool + { + if (!$stmt instanceof If_) { + return \false; + } + foreach ($stmt->elseifs as $elseIf) { + if (!$this->hasStmtsAlwaysReturnOrExit($elseIf->stmts)) { + return \false; + } + } + if (!$stmt->else instanceof Else_) { + return \false; + } + if (!$this->hasStmtsAlwaysReturnOrExit($stmt->stmts)) { + return \false; + } + return $this->hasStmtsAlwaysReturnOrExit($stmt->else->stmts); + } + private function isStopped(Stmt $stmt) : bool + { + if ($stmt instanceof Expression) { + $stmt = $stmt->expr; + } + return $stmt instanceof Throw_ || $stmt instanceof Exit_ || $stmt instanceof Return_ && $stmt->expr instanceof Expr || $stmt instanceof Yield_ || $stmt instanceof YieldFrom; + } + private function isSwitchWithAlwaysReturnOrExit(Switch_ $switch) : bool { $hasDefault = \false; foreach ($switch->cases as $case) { if (!$case->cond instanceof Expr) { - $hasDefault = \true; + $hasDefault = $case->stmts !== []; break; } } if (!$hasDefault) { return \false; } - $casesWithReturnCount = $this->resolveReturnCount($switch); - // has same amount of returns as switches - return \count($switch->cases) === $casesWithReturnCount; + $casesWithReturnOrExitCount = $this->resolveReturnOrExitCount($switch); + $cases = \array_filter($switch->cases, static function (Case_ $case) : bool { + return $case->stmts !== []; + }); + // has same amount of first return or exit nodes as switches + return \count($cases) === $casesWithReturnOrExitCount; } - private function isTryCatchAlwaysReturn(TryCatch $tryCatch) : bool + private function isTryCatchAlwaysReturnOrExit(TryCatch $tryCatch) : bool { - if (!$this->hasStmtsAlwaysReturn($tryCatch->stmts)) { - return \false; + $hasReturnOrExitInFinally = $tryCatch->finally instanceof Finally_ && $this->hasStmtsAlwaysReturnOrExit($tryCatch->finally->stmts); + if (!$this->hasStmtsAlwaysReturnOrExit($tryCatch->stmts)) { + return $hasReturnOrExitInFinally; } foreach ($tryCatch->catches as $catch) { - return $this->hasStmtsAlwaysReturn($catch->stmts); + if ($this->hasStmtsAlwaysReturnOrExit($catch->stmts)) { + continue; + } + if ($hasReturnOrExitInFinally) { + continue; + } + return \false; } return \true; } - private function resolveReturnCount(Switch_ $switch) : int + private function resolveReturnOrExitCount(Switch_ $switch) : int { $casesWithReturnCount = 0; foreach ($switch->cases as $case) { - foreach ($case->stmts as $caseStmt) { - if (!$caseStmt instanceof Return_) { - continue; - } + if ($this->hasStmtsAlwaysReturnOrExit($case->stmts)) { ++$casesWithReturnCount; - break; } } return $casesWithReturnCount; diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php index 217d8bfa4..6259969b7 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 57870206e..44b2d350e 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 d207a6a3c..80f94dcc0 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 RectorPrefix202403\Nette\Utils\FileSystem as UtilsFileSystem; +use RectorPrefix202405\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 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 RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symplify\EasyParallel\CpuCoreCountProvider; +use RectorPrefix202405\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202405\Symplify\EasyParallel\ScheduleFactory; use Throwable; final class ApplicationFileProcessor { diff --git a/vendor/rector/rector/src/Application/FileProcessor.php b/vendor/rector/rector/src/Application/FileProcessor.php index f9be15f01..37bb3186d 100644 --- a/vendor/rector/rector/src/Application/FileProcessor.php +++ b/vendor/rector/rector/src/Application/FileProcessor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Application; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PHPStan\AnalysedCodeException; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\ChangesReporting\ValueObjectFactory\ErrorFactory; @@ -11,7 +11,6 @@ use Rector\Exception\ShouldNotHappenException; use Rector\FileSystem\FilePathHelper; use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; -use Rector\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\PhpParser\NodeTraverser\RectorNodeTraverser; use Rector\PhpParser\Parser\RectorParser; use Rector\PhpParser\Printer\FormatPerservingPrinter; @@ -22,7 +21,7 @@ use Rector\ValueObject\Error\SystemError; use Rector\ValueObject\FileProcessResult; use Rector\ValueObject\Reporting\FileDiff; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; final class FileProcessor { @@ -163,7 +162,7 @@ private function printFile(File $file, Configuration $configuration, string $fil * On printing, the space may be wiped, these below check compare with original file content used to verify * that no change actually needed */ - if (!$file->getFileDiff() instanceof FileDiff && \current($file->getNewStmts()) instanceof FileWithoutNamespace) { + if (!$file->getFileDiff() instanceof FileDiff) { /** * Handle new line or space before traverseWithCallable($this->phpDocNode, '', static function (Node $node) use($tagName, &$hasChanged) : ?int { + if ($node instanceof PhpDocTagNode && $node->name === $tagName) { + $hasChanged = \true; + return PhpDocNodeTraverser::NODE_REMOVE; + } + return null; + }); + return $hasChanged; + } public function addTagValueNode(PhpDocTagValueNode $phpDocTagValueNode) : void { if ($phpDocTagValueNode instanceof DoctrineAnnotationTagValueNode) { @@ -329,6 +343,17 @@ public function getParamTagValueByName(string $name) : ?ParamTagValueNode } return null; } + /** + * @return string[] + */ + public function getTemplateNames() : array + { + $templateNames = []; + foreach ($this->phpDocNode->getTemplateTagValues() as $templateTagValueNode) { + $templateNames[] = $templateTagValueNode->name; + } + return $templateNames; + } /** * @return TemplateTagValueNode[] */ diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php index 62faddbc9..477ecf93e 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 6e992d75a..8291feb66 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\BetterPhpDocParser\PhpDocNodeMapperTest */ diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index 8e62e1267..2cd8c309b 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; diff --git a/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php b/vendor/rector/rector/src/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php index c74a6af25..00e04c197 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface { /** diff --git a/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php b/vendor/rector/rector/src/BetterPhpDocParser/Printer/DocBlockInliner.php index 5779274ab..4e92f1a22 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 2eb1f6fc0..089a86b2b 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/CurlyListNode.php b/vendor/rector/rector/src/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php index 514868462..cc41d1ff1 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class CurlyListNode extends \Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\AbstractValuesAwareNode { /** diff --git a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php index f92a0539f..cb844b6c0 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 RectorPrefix202403\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202405\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 c51421906..713e165c9 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 RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202405\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 a8345813e..7ced392bf 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Random; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\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, \RectorPrefix202403\Symfony\Component\Filesystem\Filesystem $filesystem) + public function __construct(string $directory, \RectorPrefix202405\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 77751d606..cfcd28505 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 2312e58ae..6aee11132 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\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 ec4d940a2..869eae4ad 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 RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\Nette\Utils\Json; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Parallel\ValueObject\Bridge; @@ -47,7 +47,7 @@ public function report(ProcessResult $processResult, Configuration $configuratio if ($errorsData !== []) { $errorsJson['errors'] = $errorsData; } - $json = Json::encode($errorsJson, Json::PRETTY); + $json = Json::encode($errorsJson, \true); echo $json . \PHP_EOL; } /** diff --git a/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php b/vendor/rector/rector/src/ChangesReporting/ValueObject/RectorWithLineChange.php index abf203070..ac45ba83b 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 RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202405\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) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202405\Symplify\EasyParallel\Contract\SerializableInterface { $rectorClass = $json[self::KEY_RECTOR_CLASS]; Assert::string($rectorClass); diff --git a/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php b/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php index 79e2921ef..d9bf0c0ca 100644 --- a/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php +++ b/vendor/rector/rector/src/Config/Level/DeadCodeLevel.php @@ -28,6 +28,7 @@ use Rector\DeadCode\Rector\For_\RemoveDeadLoopRector; use Rector\DeadCode\Rector\Foreach_\RemoveUnusedForeachKeyRector; use Rector\DeadCode\Rector\FunctionLike\RemoveDeadReturnRector; +use Rector\DeadCode\Rector\If_\ReduceAlwaysFalseIfOrRector; use Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector; use Rector\DeadCode\Rector\If_\RemoveDeadInstanceOfRector; use Rector\DeadCode\Rector\If_\RemoveTypedPropertyDeadInstanceOfRector; @@ -37,6 +38,7 @@ use Rector\DeadCode\Rector\Node\RemoveNonExistingVarAnnotationRector; use Rector\DeadCode\Rector\Plus\RemoveDeadZeroAndOneOperationRector; use Rector\DeadCode\Rector\Property\RemoveUnusedPrivatePropertyRector; +use Rector\DeadCode\Rector\Property\RemoveUselessReadOnlyTagRector; use Rector\DeadCode\Rector\Property\RemoveUselessVarTagRector; use Rector\DeadCode\Rector\PropertyProperty\RemoveNullPropertyInitializationRector; use Rector\DeadCode\Rector\Return_\RemoveDeadConditionAboveReturnRector; @@ -85,10 +87,12 @@ final class DeadCodeLevel // docblock RemoveUselessParamTagRector::class, RemoveUselessReturnTagRector::class, + RemoveUselessReadOnlyTagRector::class, RemoveNonExistingVarAnnotationRector::class, RemoveUselessVarTagRector::class, RemovePhpVersionIdCheckRector::class, RemoveAlwaysTrueIfConditionRector::class, + ReduceAlwaysFalseIfOrRector::class, RemoveUnusedPrivateClassConstantRector::class, RemoveUnusedPrivatePropertyRector::class, RemoveDuplicatedCaseInSwitchRector::class, diff --git a/vendor/rector/rector/src/Config/RectorConfig.php b/vendor/rector/rector/src/Config/RectorConfig.php index 092538d7c..3a9102dd8 100644 --- a/vendor/rector/rector/src/Config/RectorConfig.php +++ b/vendor/rector/rector/src/Config/RectorConfig.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Config; -use RectorPrefix202403\Illuminate\Container\Container; +use RectorPrefix202405\Illuminate\Container\Container; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; @@ -17,11 +17,11 @@ use Rector\Validation\RectorConfigValidator; use Rector\ValueObject\PhpVersion; use Rector\ValueObject\PolyfillPackage; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @api */ @@ -247,6 +247,10 @@ public function symfonyContainerPhp(string $filePath) : void { SimpleParameterProvider::setParameter(Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER, $filePath); } + public function newLineOnFluentCall(bool $enabled = \true) : void + { + SimpleParameterProvider::setParameter(Option::NEW_LINE_ON_FLUENT_CALL, $enabled); + } /** * @param string[] $extensions */ diff --git a/vendor/rector/rector/src/Configuration/ConfigInitializer.php b/vendor/rector/rector/src/Configuration/ConfigInitializer.php index ebf157bbf..8278827c1 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Contract\Rector\RectorInterface; use Rector\FileSystem\InitFilePathsResolver; use Rector\Php\PhpVersionProvider; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigInitializer { /** diff --git a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php index 49736c371..9aa1727ce 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 RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\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 d1e424fff..12ae083a8 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class LevelRulesResolver { /** diff --git a/vendor/rector/rector/src/Configuration/Option.php b/vendor/rector/rector/src/Configuration/Option.php index dc537fb3b..cd7197cbf 100644 --- a/vendor/rector/rector/src/Configuration/Option.php +++ b/vendor/rector/rector/src/Configuration/Option.php @@ -71,6 +71,11 @@ final class Option * @var string */ public const SYMFONY_CONTAINER_PHP_PATH_PARAMETER = 'symfony_container_php_path'; + /** + * @internal Use @see \Rector\Config\RectorConfig::newLineOnFluentCall() + * @var string + */ + public const NEW_LINE_ON_FLUENT_CALL = 'new_line_on_fluent_call'; /** * @var string */ diff --git a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php index 25fcde393..a207cf2e1 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @api */ diff --git a/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php b/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php index 6767850ce..a2ca1f3de 100644 --- a/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php +++ b/vendor/rector/rector/src/Configuration/RectorConfigBuilder.php @@ -22,8 +22,8 @@ use Rector\Symfony\Set\SensiolabsSetList; use Rector\Symfony\Set\SymfonySetList; use Rector\ValueObject\PhpVersion; -use RectorPrefix202403\Symfony\Component\Finder\Finder; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\Finder\Finder; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @api */ @@ -140,13 +140,17 @@ final class RectorConfigBuilder /** * To make sure type declarations set and level are not duplicated, * as both contain same rules - * @var bool + * @var bool|null */ - private $isTypeCoverageLevelUsed = \false; + private $isTypeCoverageLevelUsed; /** - * @var bool + * @var bool|null + */ + private $isDeadCodeLevelUsed; + /** + * @var bool|null */ - private $isDeadCodeLevelUsed = \false; + private $isFluentNewLine; /** * @var RegisteredService[] */ @@ -154,13 +158,15 @@ final class RectorConfigBuilder public function __invoke(RectorConfig $rectorConfig) : void { $uniqueSets = \array_unique($this->sets); - if (\in_array(SetList::TYPE_DECLARATION, $uniqueSets, \true) && $this->isTypeCoverageLevelUsed) { + if (\in_array(SetList::TYPE_DECLARATION, $uniqueSets, \true) && $this->isTypeCoverageLevelUsed === \true) { 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) { + if (\in_array(SetList::DEAD_CODE, $uniqueSets, \true) && $this->isDeadCodeLevelUsed === \true) { 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 ($uniqueSets !== []) { + $rectorConfig->sets($uniqueSets); + } if ($this->paths !== []) { $rectorConfig->paths($this->paths); } @@ -174,8 +180,12 @@ public function __invoke(RectorConfig $rectorConfig) : void $rectorConfig->tag($registerService->getClassName(), $registerService->getTag()); } } - $rectorConfig->skip($this->skip); - $rectorConfig->rules($this->rules); + if ($this->skip !== []) { + $rectorConfig->skip($this->skip); + } + if ($this->rules !== []) { + $rectorConfig->rules($this->rules); + } foreach ($this->rulesWithConfigurations as $rectorClass => $configurations) { foreach ($configurations as $configuration) { $rectorConfig->ruleWithConfiguration($rectorClass, $configuration); @@ -234,6 +244,9 @@ public function __invoke(RectorConfig $rectorConfig) : void if ($this->symfonyContainerPhpFile !== null) { $rectorConfig->symfonyContainerPhp($this->symfonyContainerPhpFile); } + if ($this->isFluentNewLine !== null) { + $rectorConfig->newLineOnFluentCall($this->isFluentNewLine); + } } /** * @param string[] $paths @@ -313,7 +326,7 @@ public function withAttributesSets(bool $symfony = \false, bool $doctrine = \fal * What PHP sets should be applied? By default the same version * as composer.json has is used */ - public function withPhpSets(bool $php83 = \false, bool $php82 = \false, bool $php81 = \false, bool $php80 = \false, bool $php74 = \false, bool $php73 = \false, bool $php72 = \false, bool $php71 = \false, bool $php70 = \false, bool $php56 = \false, bool $php55 = \false, bool $php54 = \false, bool $php53 = \false) : self + public function withPhpSets(bool $php83 = \false, bool $php82 = \false, bool $php81 = \false, bool $php80 = \false, bool $php74 = \false, bool $php73 = \false, bool $php72 = \false, bool $php71 = \false, bool $php70 = \false, bool $php56 = \false, bool $php55 = \false, bool $php54 = \false, bool $php53 = \false, bool $php84 = \false) : self { $pickedArguments = \array_filter(\func_get_args()); if (\count($pickedArguments) > 1) { @@ -357,6 +370,8 @@ public function withPhpSets(bool $php83 = \false, bool $php82 = \false, bool $ph $this->sets[] = LevelSetList::UP_TO_PHP_82; } elseif ($php83) { $this->sets[] = LevelSetList::UP_TO_PHP_83; + } elseif ($php84) { + $this->sets[] = LevelSetList::UP_TO_PHP_84; } return $this; } @@ -533,6 +548,11 @@ public function withTypeCoverageLevel(int $level) : self $this->rules = \array_merge($this->rules, $levelRules); return $this; } + public function withFluentCallNewLine(bool $isFluentNewLine = \true) : self + { + $this->isFluentNewLine = $isFluentNewLine; + return $this; + } public function registerService(string $className, ?string $alias = null, ?string $tag = null) : self { $this->registerServices[] = new RegisteredService($className, $alias, $tag); diff --git a/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php b/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php index 32f19c965..abe99ca62 100644 --- a/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php +++ b/vendor/rector/rector/src/Console/Command/CustomRuleCommand.php @@ -3,16 +3,20 @@ declare (strict_types=1); namespace Rector\Console\Command; -use RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Strings; +use DOMDocument; +use DOMElement; +use DOMXPath; +use Generator; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Exception\ShouldNotHappenException; use Rector\FileSystem\JsonFileSystem; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Finder\Finder; +use RectorPrefix202405\Symfony\Component\Finder\SplFileInfo; final class CustomRuleCommand extends Command { /** @@ -60,20 +64,21 @@ protected function execute(InputInterface $input, OutputInterface $output) : int // use @annotations for PHPUnit 9 and bellow $finder->append([new SplFileInfo(__DIR__ . '/../../../templates/custom-rules-annotations/utils/rector/tests/Rector/__Name__/__Name__Test.php', 'utils/rector/tests/Rector/__Name__', 'utils/rector/tests/Rector/__Name__/__Name__Test.php')]); } + $currentDirectory = \getcwd(); $generatedFilePaths = []; $fileInfos = \iterator_to_array($finder->getIterator()); foreach ($fileInfos as $fileInfo) { // replace __Name__ with $rectorName $newContent = $this->replaceNameVariable($rectorName, $fileInfo->getContents()); $newFilePath = $this->replaceNameVariable($rectorName, $fileInfo->getRelativePathname()); - FileSystem::write(\getcwd() . '/' . $newFilePath, $newContent, null); + FileSystem::write($currentDirectory . '/' . $newFilePath, $newContent, null); $generatedFilePaths[] = $newFilePath; } $this->symfonyStyle->title('Generated files'); $this->symfonyStyle->listing($generatedFilePaths); $this->symfonyStyle->success(\sprintf('Base for the "%s" rule was created. Now you can fill the missing parts', $rectorName)); // 2. update autoload-dev in composer.json - $composerJsonFilePath = \getcwd() . '/composer.json'; + $composerJsonFilePath = $currentDirectory . '/composer.json'; if (\file_exists($composerJsonFilePath)) { $hasChanged = \false; $composerJson = JsonFileSystem::readFilePath($composerJsonFilePath); @@ -87,8 +92,103 @@ protected function execute(InputInterface $input, OutputInterface $output) : int JsonFileSystem::writeFile($composerJsonFilePath, $composerJson); } } + // 3. update phpunit.xml(.dist) to include rector test suite + $this->setupRectorTestSuite($currentDirectory); return Command::SUCCESS; } + private function setupRectorTestSuite(string $currentDirectory) : void + { + if (!\extension_loaded('dom')) { + $this->symfonyStyle->warning('The "dom" extension is not loaded. Rector could not add the rector test suite to phpunit.xml'); + return; + } + $phpunitXmlExists = \file_exists($currentDirectory . '/phpunit.xml'); + $phpunitXmlDistExists = \file_exists($currentDirectory . '/phpunit.xml.dist'); + if (!$phpunitXmlExists && !$phpunitXmlDistExists) { + $this->symfonyStyle->warning('No phpunit.xml or phpunit.xml.dist found. Rector could not add the rector test suite to it'); + return; + } + $phpunitFile = $phpunitXmlExists ? 'phpunit.xml' : 'phpunit.xml.dist'; + $phpunitFilePath = $currentDirectory . '/' . $phpunitFile; + $domDocument = new DOMDocument('1.0'); + $domDocument->preserveWhiteSpace = \false; + $domDocument->formatOutput = \true; + $domDocument->loadXML(FileSystem::read($phpunitFilePath)); + if ($this->hasRectorTestSuite($domDocument)) { + $this->symfonyStyle->success('The rector test suite already exists in ' . $phpunitFilePath . ". No changes were made.\n You can run the rector tests by running: phpunit --testsuite rector"); + return; + } + $testsuitesElement = $domDocument->getElementsByTagName('testsuites')->item(0); + if (!$testsuitesElement instanceof DOMElement) { + $this->symfonyStyle->warning('No element found in ' . $phpunitFilePath . '. Rector could not add the rector test suite to it'); + return; + } + $phpunitXML = $this->updatePHPUnitXMLFile($domDocument, $testsuitesElement); + FileSystem::write($phpunitFilePath, $phpunitXML, null); + $this->symfonyStyle->success('We also update ' . $phpunitFilePath . ", to add a rector test suite.\n You can run the rector tests by running: phpunit --testsuite rector"); + } + private function hasRectorTestSuite(DOMDocument $domDocument) : bool + { + foreach ($this->getTestSuiteElements($domDocument) as $testSuiteElement) { + foreach ($testSuiteElement->getElementsByTagName('directory') as $directoryNode) { + if (!$directoryNode instanceof DOMElement) { + continue; + } + $name = $testSuiteElement->getAttribute('name'); + if ($name !== 'rector') { + continue; + } + $directory = $directoryNode->textContent; + if ($directory === 'utils/rector/tests') { + return \true; + } + } + } + return \false; + } + private function updatePHPUnitXMLFile(DOMDocument $domDocument, DOMElement $testsuitesElement) : string + { + $domElement = $domDocument->createElement('testsuite'); + $domElement->setAttribute('name', 'rector'); + $rectorTestSuiteDirectory = $domDocument->createElement('directory', 'utils/rector/tests'); + $domElement->appendChild($rectorTestSuiteDirectory); + $testsuitesElement->appendChild($domElement); + $phpunitXML = $domDocument->saveXML(); + if ($phpunitXML === \false) { + throw new ShouldNotHappenException('Could not save XML'); + } + return $phpunitXML; + } + /** + * @return Generator + */ + private function getTestSuiteElements(DOMDocument $domDocument) : Generator + { + $domxPath = new DOMXPath($domDocument); + $testSuiteNodes = $domxPath->query('testsuites/testsuite'); + if ($testSuiteNodes === \false) { + return; + } + if ($testSuiteNodes->length === 0) { + $testSuiteNodes = $domxPath->query('testsuite'); + if ($testSuiteNodes === \false) { + return; + } + } + if ($testSuiteNodes->length === 1) { + $element = $testSuiteNodes->item(0); + if ($element instanceof DOMElement) { + (yield $element); + } + return; + } + foreach ($testSuiteNodes as $testSuiteNode) { + if (!$testSuiteNode instanceof DOMElement) { + continue; + } + (yield $testSuiteNode); + } + } private function replaceNameVariable(string $rectorName, string $contents) : string { return \str_replace('__Name__', $rectorName, $contents); diff --git a/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php b/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php index 323c3bb16..a599357d7 100644 --- a/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php +++ b/vendor/rector/rector/src/Console/Command/DetectNodeCommand.php @@ -5,12 +5,12 @@ use Rector\PhpParser\Parser\SimplePhpParser; use Rector\Util\NodePrinter; -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\Question\Question; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Question\Question; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; final class DetectNodeCommand extends Command { diff --git a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php index bddb016d7..829de5b11 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 RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\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 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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** @@ -55,7 +55,7 @@ protected function execute(InputInterface $input, OutputInterface $output) : int $outputFormat = $input->getOption(Option::OUTPUT_FORMAT); if ($outputFormat === 'json') { $data = ['rectors' => $rectorClasses, 'skipped-rectors' => $skippedClasses]; - echo Json::encode($data, Json::PRETTY) . \PHP_EOL; + echo Json::encode($data, \true) . \PHP_EOL; return Command::SUCCESS; } $this->symfonyStyle->title('Loaded Rector rules'); diff --git a/vendor/rector/rector/src/Console/Command/ProcessCommand.php b/vendor/rector/rector/src/Console/Command/ProcessCommand.php index ffa9ca147..a1a01cc72 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 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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 3bce90802..5fedcc7b9 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\OndraM\CiDetector\CiDetector; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\OndraM\CiDetector\CiDetector; use Rector\Git\RepositoryHelper; -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 RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 37667657d..4de75e4f0 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 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 RectorPrefix202405\Clue\React\NDJson\Decoder; +use RectorPrefix202405\Clue\React\NDJson\Encoder; +use RectorPrefix202405\React\EventLoop\StreamSelectLoop; +use RectorPrefix202405\React\Socket\ConnectionInterface; +use RectorPrefix202405\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 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 RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202405\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202405\Symplify\EasyParallel\Enum\ReactEvent; use Throwable; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 6fd3be7b4..febbdd1d3 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 RectorPrefix202403\Composer\XdebugHandler\XdebugHandler; +use RectorPrefix202405\Composer\XdebugHandler\XdebugHandler; use Rector\Application\VersionResolver; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 8b3231a2b..0c44f661d 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 RectorPrefix202403\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\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 8a2db5256..52c1648b8 100644 --- a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php +++ b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Console\Formatter; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Util\NewLineSplitter; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\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 diff --git a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php index 04bb206f7..0dbfc405f 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 RectorPrefix202403\SebastianBergmann\Diff\Differ; -use RectorPrefix202403\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202405\SebastianBergmann\Diff\Differ; +use RectorPrefix202405\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 407f5d36e..475486441 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 RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\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 a86b00b71..cf47bedde 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 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; +use RectorPrefix202405\OndraM\CiDetector\CiDetector; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 573368afb..7c4044fe7 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 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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; final class SymfonyStyleFactory { /** diff --git a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php index be55161e5..db0455d91 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 RectorPrefix202403\Illuminate\Container\Container; +use RectorPrefix202405\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 a7b6e1c99..0887fedb1 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 RectorPrefix202403\Doctrine\Inflector\Inflector; -use RectorPrefix202403\Doctrine\Inflector\Rules\English\InflectorFactory; -use RectorPrefix202403\Illuminate\Container\Container; +use RectorPrefix202405\Doctrine\Inflector\Inflector; +use RectorPrefix202405\Doctrine\Inflector\Rules\English\InflectorFactory; +use RectorPrefix202405\Illuminate\Container\Container; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; @@ -181,10 +181,10 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\Utils\Command\MissingInSetCommand; use Rector\Utils\Command\OutsideAnySetCommand; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Webmozart\Assert\Assert; final class LazyContainerFactory { /** @@ -234,7 +234,7 @@ final class LazyContainerFactory /** * @var array> */ - private const PHP_PARSER_NODE_MAPPER_CLASSES = [ExprNodeMapper::class, FullyQualifiedNodeMapper::class, IdentifierNodeMapper::class, IntersectionTypeNodeMapper::class, NameNodeMapper::class, NullableTypeNodeMapper::class, StringNodeMapper::class, UnionTypeNodeMapper::class]; + private const PHP_PARSER_NODE_MAPPER_CLASSES = [FullyQualifiedNodeMapper::class, IdentifierNodeMapper::class, IntersectionTypeNodeMapper::class, NameNodeMapper::class, NullableTypeNodeMapper::class, StringNodeMapper::class, UnionTypeNodeMapper::class, ExprNodeMapper::class]; /** * @var array> */ @@ -289,6 +289,9 @@ public function create() : RectorConfig $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->createDynamicSourceLocatorProvider(); }); + $rectorConfig->afterResolving(DynamicSourceLocatorProvider::class, static function (DynamicSourceLocatorProvider $dynamicSourceLocatorProvider, Container $container) : void { + $dynamicSourceLocatorProvider->autowire($container->make(ReflectionProvider::class)); + }); // resetables $rectorConfig->tag(DynamicSourceLocatorProvider::class, ResetableInterface::class); $rectorConfig->tag(RenamedClassesDataCollector::class, ResetableInterface::class); @@ -300,10 +303,21 @@ public function create() : RectorConfig }); // tagged services $rectorConfig->when(BetterPhpDocParser::class)->needs('$phpDocNodeDecorators')->giveTagged(PhpDocNodeDecoratorInterface::class); + $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { + $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); + }); $rectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper, Container $container) : void { $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); $conditionalTypeForParameterMapper->autowire($phpStanStaticTypeMapper); }); + $rectorConfig->afterResolving(ConditionalTypeMapper::class, static function (ConditionalTypeMapper $conditionalTypeMapper, Container $container) : void { + $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $conditionalTypeMapper->autowire($phpStanStaticTypeMapper); + }); + $rectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { + $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); + $unionTypeMapper->autowire($phpStanStaticTypeMapper); + }); $rectorConfig->when(PHPStanStaticTypeMapper::class)->needs('$typeMappers')->giveTagged(TypeMapperInterface::class); $rectorConfig->when(PhpDocTypeMapper::class)->needs('$phpDocTypeMappers')->giveTagged(PhpDocTypeMapperInterface::class); $rectorConfig->when(PhpParserNodeMapper::class)->needs('$phpParserNodeMappers')->giveTagged(PhpParserNodeMapperInterface::class); @@ -348,16 +362,9 @@ public function create() : RectorConfig $rectorConfig->afterResolving(NameScopeFactory::class, static function (NameScopeFactory $nameScopeFactory, Container $container) : void { $nameScopeFactory->autowire($container->make(PhpDocInfoFactory::class), $container->make(StaticTypeMapper::class)); }); - $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { - $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); - }); $rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container) : void { $plainValueParser->autowire($container->make(StaticDoctrineAnnotationParser::class), $container->make(ArrayParser::class)); }); - $rectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { - $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); - $unionTypeMapper->autowire($phpStanStaticTypeMapper); - }); $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 7c45d37dd..e337da8c7 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 RectorPrefix202403\Illuminate\Container\Container; +use RectorPrefix202405\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 aca497dcd..b63909dc8 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 RectorPrefix202403\SebastianBergmann\Diff\Differ; -use RectorPrefix202403\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; +use RectorPrefix202405\SebastianBergmann\Diff\Differ; +use RectorPrefix202405\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final class DefaultDiffer { /** diff --git a/vendor/rector/rector/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php b/vendor/rector/rector/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php index 9915012f6..ca433d087 100644 --- a/vendor/rector/rector/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php +++ b/vendor/rector/rector/src/FamilyTree/Reflection/FamilyRelationsAnalyzer.php @@ -9,6 +9,7 @@ use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\ReflectionProvider; use Rector\NodeNameResolver\NodeNameResolver; +use Rector\Util\Reflection\PrivatesAccessor; final class FamilyRelationsAnalyzer { /** @@ -21,10 +22,35 @@ final class FamilyRelationsAnalyzer * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - public function __construct(ReflectionProvider $reflectionProvider, NodeNameResolver $nodeNameResolver) + /** + * @readonly + * @var \Rector\Util\Reflection\PrivatesAccessor + */ + private $privatesAccessor; + public function __construct(ReflectionProvider $reflectionProvider, NodeNameResolver $nodeNameResolver, PrivatesAccessor $privatesAccessor) { $this->reflectionProvider = $reflectionProvider; $this->nodeNameResolver = $nodeNameResolver; + $this->privatesAccessor = $privatesAccessor; + } + /** + * @return ClassReflection[] + */ + public function getChildrenOfClassReflection(ClassReflection $desiredClassReflection) : array + { + if ($desiredClassReflection->isFinalByKeyword()) { + return []; + } + /** @var ClassReflection[] $classReflections */ + $classReflections = $this->privatesAccessor->getPrivateProperty($this->reflectionProvider, 'classes'); + $childrenClassReflections = []; + foreach ($classReflections as $classReflection) { + if (!$classReflection->isSubclassOf($desiredClassReflection->getName())) { + continue; + } + $childrenClassReflections[] = $classReflection; + } + return $childrenClassReflections; } /** * @api diff --git a/vendor/rector/rector/src/FileSystem/FilePathHelper.php b/vendor/rector/rector/src/FileSystem/FilePathHelper.php index 4f4fddaef..1f3c628c6 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\Skipper\FileSystem\PathNormalizer; -use RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202405\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 430f27066..03c88f5bb 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 RectorPrefix202403\Symfony\Component\Finder\Finder; +use RectorPrefix202405\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 8719ad8c4..3b913f7cc 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 RectorPrefix202403\Symfony\Component\Finder\Finder; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\Symfony\Component\Finder\Finder; +use RectorPrefix202405\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 949bd8484..cee87745b 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Json; final class JsonFileSystem { /** @@ -13,14 +13,14 @@ final class JsonFileSystem public static function readFilePath(string $filePath) : array { $fileContents = FileSystem::read($filePath); - return Json::decode($fileContents, Json::FORCE_ARRAY); + return Json::decode($fileContents, \true); } /** * @param array $data */ public static function writeFile(string $filePath, array $data) : void { - $json = Json::encode($data, Json::PRETTY); + $json = Json::encode($data, \true); FileSystem::write($filePath, $json, null); } } diff --git a/vendor/rector/rector/src/Git/RepositoryHelper.php b/vendor/rector/rector/src/Git/RepositoryHelper.php index 8a9a4a40c..1c5476cc2 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 RectorPrefix202403\Nette\Utils\Strings; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\Nette\Utils\Strings; +use RectorPrefix202405\Symfony\Component\Process\Process; final class RepositoryHelper { /** diff --git a/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php b/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php index 33c2d3e0c..8678cf322 100644 --- a/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php +++ b/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\NullsafePropertyFetch; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\StaticPropertyFetch; @@ -67,10 +68,10 @@ public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder } public function isLocalPropertyFetch(Node $node) : bool { - if (!$node instanceof PropertyFetch && !$node instanceof StaticPropertyFetch) { + if (!$node instanceof PropertyFetch && !$node instanceof StaticPropertyFetch && !$node instanceof NullsafePropertyFetch) { return \false; } - $variableType = $node instanceof PropertyFetch ? $this->nodeTypeResolver->getType($node->var) : $this->nodeTypeResolver->getType($node->class); + $variableType = $node instanceof StaticPropertyFetch ? $this->nodeTypeResolver->getType($node->class) : $this->nodeTypeResolver->getType($node->var); if ($variableType instanceof ObjectType) { $classReflection = $this->reflectionResolver->resolveClassReflection($node); if ($classReflection instanceof ClassReflection) { @@ -85,7 +86,7 @@ public function isLocalPropertyFetch(Node $node) : bool } public function isLocalPropertyFetchName(Node $node, string $desiredPropertyName) : bool { - if (!$node instanceof PropertyFetch && !$node instanceof StaticPropertyFetch) { + if (!$node instanceof PropertyFetch && !$node instanceof StaticPropertyFetch && !$node instanceof NullsafePropertyFetch) { return \false; } if (!$this->nodeNameResolver->isName($node->name, $desiredPropertyName)) { diff --git a/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php b/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php index 0e5f99426..96e0af13b 100644 --- a/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php +++ b/vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php @@ -7,6 +7,7 @@ use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\ClassConstFetch; +use PhpParser\Node\Scalar\MagicConst\Class_; use PhpParser\Node\Scalar\String_; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; @@ -61,7 +62,7 @@ public function __construct(NodeTypeResolver $nodeTypeResolver, ValueResolver $v * @see https://github.com/rectorphp/rector-src/pull/909 * @return null|\Rector\NodeCollector\ValueObject\ArrayCallableDynamicMethod|\Rector\NodeCollector\ValueObject\ArrayCallable */ - public function match(Array_ $array, Scope $scope) + public function match(Array_ $array, Scope $scope, ?string $classMethodName = null) { if (\count($array->items) !== 2) { return null; @@ -73,7 +74,7 @@ public function match(Array_ $array, Scope $scope) $items = $array->items; // $this, self, static, FQN $firstItemValue = $items[0]->value; - $callerType = $this->resolveCallerType($firstItemValue, $scope); + $callerType = $this->resolveCallerType($firstItemValue, $scope, $classMethodName); if (!$callerType instanceof TypeWithClassName) { return null; } @@ -135,22 +136,23 @@ private function isCallbackAtFunctionNames(Array_ $array, array $functionNames) return \in_array($fromFuncCallName, $functionNames, \true); } /** + * @param \PhpParser\Node\Expr\ClassConstFetch|\PhpParser\Node\Scalar\MagicConst\Class_ $classContext * @return \PHPStan\Type\MixedType|\PHPStan\Type\ObjectType */ - private function resolveClassConstFetchType(ClassConstFetch $classConstFetch, Scope $scope) + private function resolveClassContextType($classContext, Scope $scope, ?string $classMethodName) { - $classConstantReference = $this->valueResolver->getValue($classConstFetch); - if ($classConstantReference === ObjectReference::STATIC) { - $classReflection = $this->reflectionResolver->resolveClassReflection($classConstFetch); + $classConstantReference = $this->valueResolver->getValue($classContext); + // non-class value + if (!\is_string($classConstantReference)) { + return new MixedType(); + } + if ($this->isRequiredClassReflectionResolution($classConstantReference)) { + $classReflection = $this->reflectionResolver->resolveClassReflection($classContext); if (!$classReflection instanceof ClassReflection || !$classReflection->isClass()) { return new MixedType(); } $classConstantReference = $classReflection->getName(); } - // non-class value - if (!\is_string($classConstantReference)) { - return new MixedType(); - } if (!$this->reflectionProvider->hasClass($classConstantReference)) { return new MixedType(); } @@ -159,6 +161,9 @@ private function resolveClassConstFetchType(ClassConstFetch $classConstFetch, Sc if (!$hasConstruct) { return new ObjectType($classConstantReference, null, $classReflection); } + if (\is_string($classMethodName) && $classReflection->hasNativeMethod($classMethodName)) { + return new ObjectType($classConstantReference, null, $classReflection); + } $extendedMethodReflection = $classReflection->getMethod(MethodName::CONSTRUCT, $scope); $parametersAcceptorWithPhpDocs = ParametersAcceptorSelector::selectSingle($extendedMethodReflection->getVariants()); foreach ($parametersAcceptorWithPhpDocs->getParameters() as $parameterReflectionWithPhpDoc) { @@ -168,11 +173,11 @@ private function resolveClassConstFetchType(ClassConstFetch $classConstFetch, Sc } return new ObjectType($classConstantReference, null, $classReflection); } - private function resolveCallerType(Expr $expr, Scope $scope) : Type + private function resolveCallerType(Expr $expr, Scope $scope, ?string $classMethodName) : Type { - if ($expr instanceof ClassConstFetch) { - // static ::class reference? - $callerType = $this->resolveClassConstFetchType($expr, $scope); + if ($expr instanceof ClassConstFetch || $expr instanceof Class_) { + // class context means self|static ::class or __CLASS__ + $callerType = $this->resolveClassContextType($expr, $scope, $classMethodName); } else { $callerType = $this->nodeTypeResolver->getType($expr); } @@ -181,4 +186,11 @@ private function resolveCallerType(Expr $expr, Scope $scope) : Type } return $callerType; } + private function isRequiredClassReflectionResolution(string $classConstantReference) : bool + { + if ($classConstantReference === ObjectReference::STATIC) { + return \true; + } + return $classConstantReference === '__CLASS__'; + } } diff --git a/vendor/rector/rector/src/NodeManipulator/AssignManipulator.php b/vendor/rector/rector/src/NodeManipulator/AssignManipulator.php index dd31b6aba..36959236a 100644 --- a/vendor/rector/rector/src/NodeManipulator/AssignManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/AssignManipulator.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\ErrorSuppress; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\List_; use PhpParser\Node\Expr\PropertyFetch; @@ -13,6 +14,7 @@ use Rector\NodeAnalyzer\PropertyFetchAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\Php72\ValueObject\ListAndEach; use Rector\PhpParser\Node\BetterNodeFinder; final class AssignManipulator { @@ -39,17 +41,31 @@ public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder } /** * Matches: - * each() = [1, 2]; + * list([1, 2]) = each($items) */ - public function isListToEachAssign(Assign $assign) : bool + public function matchListAndEach(Assign $assign) : ?ListAndEach { - if (!$assign->expr instanceof FuncCall) { - return \false; + // could be behind error suppress + if ($assign->expr instanceof ErrorSuppress) { + $errorSuppress = $assign->expr; + $bareExpr = $errorSuppress->expr; + } else { + $bareExpr = $assign->expr; + } + if (!$bareExpr instanceof FuncCall) { + return null; } if (!$assign->var instanceof List_) { - return \false; + return null; + } + if (!$this->nodeNameResolver->isName($bareExpr, 'each')) { + return null; + } + // no placeholders + if ($bareExpr->isFirstClassCallable()) { + return null; } - return $this->nodeNameResolver->isName($assign->expr, 'each'); + return new ListAndEach($assign->var, $bareExpr); } public function isLeftPartOfAssign(Node $node) : bool { diff --git a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php index 2d3cfcc1f..f765e5b34 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 RectorPrefix202403\Doctrine\ORM\Mapping\Table; +use RectorPrefix202405\Doctrine\ORM\Mapping\Table; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; diff --git a/vendor/rector/rector/src/NodeNameResolver/NodeNameResolver.php b/vendor/rector/rector/src/NodeNameResolver/NodeNameResolver.php index 98e521183..03896b366 100644 --- a/vendor/rector/rector/src/NodeNameResolver/NodeNameResolver.php +++ b/vendor/rector/rector/src/NodeNameResolver/NodeNameResolver.php @@ -5,7 +5,10 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\CallLike; +use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\NullsafeMethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -78,12 +81,6 @@ public function isNames(Node $node, array $names) : bool */ public function isName($node, string $name) : bool { - if ($node instanceof MethodCall) { - return \false; - } - if ($node instanceof StaticCall) { - return \false; - } $nodes = \is_array($node) ? $node : [$node]; foreach ($nodes as $node) { if ($this->isSingleName($node, $name)) { @@ -101,10 +98,7 @@ public function isCaseSensitiveName(Node $node, string $name) : bool if ($name === '') { return \false; } - if ($node instanceof MethodCall) { - return \false; - } - if ($node instanceof StaticCall) { + if ($node instanceof CallLike && !$node instanceof FuncCall) { return \false; } $resolvedName = $this->getName($node); @@ -139,7 +133,7 @@ public function getName($node) : ?string if (\is_string($namespacedName)) { return $namespacedName; } - if (($node instanceof MethodCall || $node instanceof StaticCall) && $this->isCallOrIdentifier($node->name)) { + if (($node instanceof MethodCall || $node instanceof StaticCall || $node instanceof NullsafeMethodCall) && $this->isCallOrIdentifier($node->name)) { return null; } $scope = $node->getAttribute(AttributeKey::SCOPE); @@ -224,7 +218,7 @@ private function isCallOrIdentifier($node) : bool } private function isSingleName(Node $node, string $desiredName) : bool { - if ($node instanceof MethodCall) { + if ($node instanceof CallLike && !$node instanceof FuncCall) { // method call cannot have a name, only the variable or method name return \false; } diff --git a/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php b/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php index efc3d01cb..3b3d0ca93 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php +++ b/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php @@ -15,11 +15,11 @@ use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use RectorPrefix202403\Symfony\Component\Console\Input\ArrayInput; -use RectorPrefix202403\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * Factory so Symfony app can use services from PHPStan container * diff --git a/vendor/rector/rector/src/NodeTypeResolver/NodeTypeResolver.php b/vendor/rector/rector/src/NodeTypeResolver/NodeTypeResolver.php index 289ba4436..1779f7875 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/NodeTypeResolver.php +++ b/vendor/rector/rector/src/NodeTypeResolver/NodeTypeResolver.php @@ -332,11 +332,11 @@ private function resolveArrayDimFetchType(ArrayDimFetch $arrayDimFetch, Scope $s return $type; } $optionalKeys = $variableType->getOptionalKeys(); - foreach ($variableType->getKeyTypes() as $key => $type) { - if (!$type instanceof ConstantStringType) { + foreach ($variableType->getKeyTypes() as $key => $keyType) { + if (!$keyType instanceof ConstantStringType) { continue; } - if ($type->getValue() !== $arrayDimFetch->dim->value) { + if ($keyType->getValue() !== $arrayDimFetch->dim->value) { continue; } if (!\in_array($key, $optionalKeys, \true)) { diff --git a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index a8104f3a2..7c4978bb3 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -61,7 +61,7 @@ use Rector\PHPStan\NodeVisitor\WrappedNodeRestoringNodeVisitor; use Rector\Util\Reflection\PrivatesAccessor; use Throwable; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 @@ -264,7 +264,7 @@ private function processArray(Array_ $array, MutatingScope $mutatingScope) : voi { foreach ($array->items as $arrayItem) { if ($arrayItem instanceof ArrayItem) { - $arrayItem->setAttribute(AttributeKey::SCOPE, $mutatingScope); + $this->processArrayItem($arrayItem, $mutatingScope); } } } diff --git a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/TypeHasher.php b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/TypeHasher.php index 1861386a8..112aeec99 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/PHPStan/TypeHasher.php +++ b/vendor/rector/rector/src/NodeTypeResolver/PHPStan/TypeHasher.php @@ -4,7 +4,6 @@ namespace Rector\NodeTypeResolver\PHPStan; use PHPStan\Type\ArrayType; -use PHPStan\Type\BooleanType; use PHPStan\Type\ConstantType; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\IterableType; @@ -13,7 +12,6 @@ use PHPStan\Type\Type; use PHPStan\Type\TypeTraverser; use PHPStan\Type\TypeWithClassName; -use PHPStan\Type\UnionType; use PHPStan\Type\VerbosityLevel; use Rector\StaticTypeMapper\ValueObject\Type\AliasedObjectType; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; @@ -41,9 +39,6 @@ public function createTypeHash(Type $type) : string if ($type instanceof ConstantType) { return \get_class($type); } - if ($type instanceof UnionType) { - return $this->createUnionTypeHash($type); - } $type = $this->normalizeObjectType($type); // normalize iterable $type = TypeTraverser::map($type, static function (Type $currentType, callable $traverseCallback) : Type { @@ -67,22 +62,6 @@ private function resolveUniqueTypeWithClassNameHash(TypeWithClassName $typeWithC } return $typeWithClassName->getClassName(); } - private function createUnionTypeHash(UnionType $unionType) : string - { - $booleanType = new BooleanType(); - if ($booleanType->isSuperTypeOf($unionType)->yes()) { - return $booleanType->describe(VerbosityLevel::precise()); - } - $normalizedUnionType = clone $unionType; - // change alias to non-alias - $normalizedUnionType = TypeTraverser::map($normalizedUnionType, static function (Type $type, callable $callable) : Type { - if (!$type instanceof AliasedObjectType && !$type instanceof ShortenedObjectType) { - return $callable($type); - } - return new FullyQualifiedObjectType($type->getFullyQualifiedName()); - }); - return $normalizedUnionType->describe(VerbosityLevel::precise()); - } private function normalizeObjectType(Type $type) : Type { return TypeTraverser::map($type, static function (Type $currentType, callable $traverseCallback) : Type { diff --git a/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php b/vendor/rector/rector/src/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php index cbfc1f712..651f73d47 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php b/vendor/rector/rector/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php index 69e29e977..4c82a57cd 100644 --- a/vendor/rector/rector/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php +++ b/vendor/rector/rector/src/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php @@ -3,11 +3,16 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider; +use PHPStan\BetterReflection\Reflector\DefaultReflector; use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator; use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator; +use PHPStan\Broker\ClassNotFoundException; +use PHPStan\File\CouldNotReadFileException; use PHPStan\Reflection\BetterReflection\SourceLocator\FileNodesFetcher; +use PHPStan\Reflection\BetterReflection\SourceLocator\NewOptimizedDirectorySourceLocator; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocatorFactory; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocator; +use PHPStan\Reflection\ReflectionProvider; use Rector\Contract\DependencyInjection\ResetableInterface; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; /** @@ -37,11 +42,19 @@ final class DynamicSourceLocatorProvider implements ResetableInterface * @var \PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator|null */ private $aggregateSourceLocator; + /** + * @var \PHPStan\Reflection\ReflectionProvider + */ + private $reflectionProvider; public function __construct(FileNodesFetcher $fileNodesFetcher, OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory) { $this->fileNodesFetcher = $fileNodesFetcher; $this->optimizedDirectorySourceLocatorFactory = $optimizedDirectorySourceLocatorFactory; } + public function autowire(ReflectionProvider $reflectionProvider) : void + { + $this->reflectionProvider = $reflectionProvider; + } public function setFilePath(string $filePath) : void { $this->filePaths = [$filePath]; @@ -74,8 +87,9 @@ public function provide() : SourceLocator foreach ($this->directories as $directory) { $sourceLocators[] = $this->optimizedDirectorySourceLocatorFactory->createByDirectory($directory); } - $this->aggregateSourceLocator = new AggregateSourceLocator($sourceLocators); - return $this->aggregateSourceLocator; + $aggregateSourceLocator = $this->aggregateSourceLocator = new AggregateSourceLocator($sourceLocators); + $this->collectClasses($aggregateSourceLocator, $sourceLocators); + return $aggregateSourceLocator; } public function isPathsEmpty() : bool { @@ -90,4 +104,30 @@ public function reset() : void $this->directories = []; $this->aggregateSourceLocator = null; } + /** + * @param OptimizedSingleFileSourceLocator[]|NewOptimizedDirectorySourceLocator[] $sourceLocators + */ + private function collectClasses(AggregateSourceLocator $aggregateSourceLocator, array $sourceLocators) : void + { + if ($sourceLocators === []) { + return; + } + // no need to collect classes on single file, will auto collected + if (\count($sourceLocators) === 1 && $sourceLocators[0] instanceof OptimizedSingleFileSourceLocator) { + return; + } + $reflector = new DefaultReflector($aggregateSourceLocator); + // trigger collect "classes" on get class on locate identifier + try { + $reflections = $reflector->reflectAllClasses(); + foreach ($reflections as $reflection) { + // make 'classes' collection + try { + $this->reflectionProvider->getClass($reflection->getName()); + } catch (ClassNotFoundException $exception) { + } + } + } catch (CouldNotReadFileException $exception) { + } + } } diff --git a/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php index 3df42a876..673aa8ac0 100644 --- a/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php +++ b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\ClassLike; @@ -59,7 +60,7 @@ public function enterNode(Node $node) : ?Node if (!$node instanceof Expr) { return null; } - if ($node->getAttribute(AttributeKey::EXPRESSION_DEPTH) < 2 && $node->getAttribute(AttributeKey::IS_ARG_VALUE) !== \true) { + if ($this->shouldSkipExpr($node)) { return null; } $scope = $node->getAttribute(AttributeKey::SCOPE); @@ -75,4 +76,8 @@ public function enterNode(Node $node) : ?Node } return null; } + private function shouldSkipExpr(Expr $expr) : bool + { + return $expr->getAttribute(AttributeKey::EXPRESSION_DEPTH) < 2 && !$expr instanceof CallLike; + } } diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index aecb7332a..1742d88d2 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class PHPStanStaticTypeMapper { /** diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index 12f734e92..ef373875b 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Reflection\ClassReflection; @@ -24,9 +24,6 @@ final class ConditionalTypeMapper implements TypeMapperInterface * @var \Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper */ private $phpStanStaticTypeMapper; - /** - * @api used in autowire, @todo add to lazy container or remove - */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper; diff --git a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php index a41da86f2..967457aba 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 a9ea65a00..19cce2e5f 100644 --- a/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php +++ b/vendor/rector/rector/src/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php @@ -14,7 +14,6 @@ use PhpParser\NodeAbstract; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\Constant\ConstantBooleanType; -use PHPStan\Type\IntersectionType; use PHPStan\Type\IterableType; use PHPStan\Type\MixedType; use PHPStan\Type\NullType; @@ -25,7 +24,6 @@ use PHPStan\Type\VoidType; use Rector\BetterPhpDocParser\ValueObject\Type\BracketsAwareUnionTypeNode; use Rector\NodeNameResolver\NodeNameResolver; -use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; use Rector\Php\PhpVersionProvider; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; @@ -34,8 +32,8 @@ use Rector\PHPStanStaticTypeMapper\ValueObject\UnionTypeAnalysis; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; -use RectorPrefix202403\Webmozart\Assert\Assert; -use RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202405\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\InvalidArgumentException; /** * @implements TypeMapperInterface */ @@ -56,21 +54,15 @@ final class UnionTypeMapper implements TypeMapperInterface * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - /** - * @readonly - * @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory - */ - private $typeFactory; /** * @var \Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper */ private $phpStanStaticTypeMapper; - public function __construct(PhpVersionProvider $phpVersionProvider, UnionTypeAnalyzer $unionTypeAnalyzer, NodeNameResolver $nodeNameResolver, TypeFactory $typeFactory) + public function __construct(PhpVersionProvider $phpVersionProvider, UnionTypeAnalyzer $unionTypeAnalyzer, NodeNameResolver $nodeNameResolver) { $this->phpVersionProvider = $phpVersionProvider; $this->unionTypeAnalyzer = $unionTypeAnalyzer; $this->nodeNameResolver = $nodeNameResolver; - $this->typeFactory = $typeFactory; } public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { @@ -246,13 +238,9 @@ private function matchTypeForUnionedTypes(UnionType $unionType, string $typeKind return $phpParserUnionType; } if ($phpParserUnionType instanceof PhpParserUnionType) { - return $this->resolveUnionTypeNode($unionType, $phpParserUnionType, $typeKind); - } - $type = $this->typeFactory->createMixedPassedOrUnionType($unionType->getTypes()); - if (!$type instanceof UnionType) { - return $this->phpStanStaticTypeMapper->mapToPhpParserNode($type, $typeKind); + return $this->resolveUnionTypeNode($phpParserUnionType); } - return null; + return $phpParserUnionType; } private function processResolveCompatibleObjectCandidates(UnionType $unionType) : ?Node { @@ -271,9 +259,9 @@ private function processResolveCompatibleObjectCandidates(UnionType $unionType) } /** * @param TypeKind::* $typeKind - * @return PhpParserUnionType|\PhpParser\Node\NullableType|null + * @return Name|FullyQualified|ComplexType|Identifier|null */ - private function matchPhpParserUnionType(UnionType $unionType, string $typeKind) + private function matchPhpParserUnionType(UnionType $unionType, string $typeKind) : ?Node { $phpParserUnionedTypes = []; foreach ($unionType->getTypes() as $unionedType) { @@ -288,15 +276,15 @@ private function matchPhpParserUnionType(UnionType $unionType, string $typeKind) if ($phpParserNode === null) { return null; } - if ($phpParserNode instanceof PHPParserNodeIntersectionType && $unionedType instanceof IntersectionType) { - return null; - } $phpParserUnionedTypes[] = $phpParserNode; } /** @var Identifier[]|Name[] $phpParserUnionedTypes */ $phpParserUnionedTypes = \array_unique($phpParserUnionedTypes); $countPhpParserUnionedTypes = \count($phpParserUnionedTypes); - if ($countPhpParserUnionedTypes < 2) { + if ($countPhpParserUnionedTypes === 1) { + return $phpParserUnionedTypes[0]; + } + if ($countPhpParserUnionedTypes === 0) { return null; } return $this->resolveTypeWithNullablePHPParserUnionType(new PhpParserUnionType($phpParserUnionedTypes)); @@ -359,11 +347,7 @@ private function correctObjectType(TypeWithClassName $typeWithClassName) : TypeW } return $typeWithClassName; } - /** - * @param TypeKind::* $typeKind - * @return PhpParserUnionType|null|\PhpParser\Node\Identifier|\PhpParser\Node\Name|\PhpParser\Node\ComplexType - */ - private function resolveUnionTypeNode(UnionType $unionType, PhpParserUnionType $phpParserUnionType, string $typeKind) + private function resolveUnionTypeNode(PhpParserUnionType $phpParserUnionType) : ?PhpParserUnionType { if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::UNION_TYPES)) { return null; @@ -371,10 +355,6 @@ private function resolveUnionTypeNode(UnionType $unionType, PhpParserUnionType $ if ($this->hasObjectAndStaticType($phpParserUnionType)) { return null; } - $unionType = $this->typeFactory->createMixedPassedOrUnionType($unionType->getTypes()); - if (!$unionType instanceof UnionType) { - return $this->phpStanStaticTypeMapper->mapToPhpParserNode($unionType, $typeKind); - } return $phpParserUnionType; } } diff --git a/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php b/vendor/rector/rector/src/Parallel/Application/ParallelFileProcessor.php index c16297bb1..0c29a0225 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 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 RectorPrefix202405\Clue\React\NDJson\Decoder; +use RectorPrefix202405\Clue\React\NDJson\Encoder; +use RectorPrefix202405\Nette\Utils\Random; +use RectorPrefix202405\React\EventLoop\StreamSelectLoop; +use RectorPrefix202405\React\Socket\ConnectionInterface; +use RectorPrefix202405\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 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 RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202405\Symplify\EasyParallel\Enum\Content; +use RectorPrefix202405\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202405\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202405\Symplify\EasyParallel\ValueObject\ParallelProcess; +use RectorPrefix202405\Symplify\EasyParallel\ValueObject\ProcessPool; +use RectorPrefix202405\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 e35ca260c..ed4c68ccd 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 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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202405\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 83bbea9b4..bfaf0931e 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 RectorPrefix202403\Composer\Semver\VersionParser; -use RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\Composer\Semver\VersionParser; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Json; use Rector\Util\PhpVersionFactory; /** * @see \Rector\Tests\Php\PhpVersionResolver\ProjectComposerJsonPhpVersionResolver\ProjectComposerJsonPhpVersionResolverTest @@ -22,7 +22,7 @@ public static function resolve(string $composerJson) : ?int return self::$cachedPhpVersions[$composerJson]; } $composerJsonContents = FileSystem::read($composerJson); - $projectComposerJson = Json::decode($composerJsonContents, Json::FORCE_ARRAY); + $projectComposerJson = Json::decode($composerJsonContents, \true); // give this one a priority, as more generic one $requirePhpVersion = $projectComposerJson['require']['php'] ?? null; if ($requirePhpVersion !== null) { diff --git a/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php b/vendor/rector/rector/src/Php/PolyfillPackagesProvider.php index 9127293a6..f9220a7bf 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Json; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Json; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\ValueObject\PolyfillPackage; @@ -33,7 +33,7 @@ public function provide() : array return $this->cachedPolyfillPackages; } $composerContents = FileSystem::read($projectComposerJson); - $composerJson = Json::decode($composerContents, Json::FORCE_ARRAY); + $composerJson = Json::decode($composerContents, \true); $this->cachedPolyfillPackages = $this->filterPolyfillPackages($composerJson['require'] ?? []); return $this->cachedPolyfillPackages; } diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper.php index 2761f56c9..81a3e59f6 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpAttribute\AnnotationToAttributeMapper\AnnotationToAttributeMapperTest */ diff --git a/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php b/vendor/rector/rector/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php index 787d8f3e9..c2d90a518 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 3ed70c940..439ce5041 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 RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202405\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 597eae754..4a377996f 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php b/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php index c0d480dac..3a7e533a2 100644 --- a/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php +++ b/vendor/rector/rector/src/PhpAttribute/AttributeArrayNameInliner.php @@ -11,7 +11,7 @@ use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; use Rector\Exception\NotImplementedYetException; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class AttributeArrayNameInliner { /** diff --git a/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php b/vendor/rector/rector/src/PhpAttribute/NodeFactory/NamedArgsFactory.php index 11a802b4f..c8f763623 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\BuilderHelpers; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 963f20e93..374204aa3 100644 --- a/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/vendor/rector/rector/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; @@ -26,7 +26,7 @@ use Rector\Php80\ValueObject\NestedAnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class PhpNestedAttributeGroupFactory { /** diff --git a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php index b17458e05..003437e09 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest */ diff --git a/vendor/rector/rector/src/PhpParser/NodeFinder/PropertyFetchFinder.php b/vendor/rector/rector/src/PhpParser/NodeFinder/PropertyFetchFinder.php index 146013ef4..3edd83191 100644 --- a/vendor/rector/rector/src/PhpParser/NodeFinder/PropertyFetchFinder.php +++ b/vendor/rector/rector/src/PhpParser/NodeFinder/PropertyFetchFinder.php @@ -9,6 +9,7 @@ use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\NullsafePropertyFetch; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\StaticPropertyFetch; @@ -96,15 +97,18 @@ public function findPrivatePropertyFetches(Class_ $class, $propertyOrPromotedPar return $this->findPropertyFetchesInClassLike($class, $nodes, $propertyName, $hasTrait, $scope); } /** - * @return PropertyFetch[]|StaticPropertyFetch[] + * @return PropertyFetch[]|StaticPropertyFetch[]|NullsafePropertyFetch[] */ public function findLocalPropertyFetchesByName(Class_ $class, string $paramName) : array { - /** @var PropertyFetch[]|StaticPropertyFetch[] $foundPropertyFetches */ + /** @var PropertyFetch[]|StaticPropertyFetch[]|NullsafePropertyFetch[] $foundPropertyFetches */ $foundPropertyFetches = $this->betterNodeFinder->find($class->getMethods(), function (Node $subNode) use($paramName) : bool { if ($subNode instanceof PropertyFetch) { return $this->propertyFetchAnalyzer->isLocalPropertyFetchName($subNode, $paramName); } + if ($subNode instanceof NullsafePropertyFetch) { + return $this->propertyFetchAnalyzer->isLocalPropertyFetchName($subNode, $paramName); + } if ($subNode instanceof StaticPropertyFetch) { return $this->propertyFetchAnalyzer->isLocalPropertyFetchName($subNode, $paramName); } diff --git a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php index 9e462a7db..e127a3a4f 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\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 f617c2122..057933a39 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpParser\Parser; -use RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\FileSystem; use PhpParser\Node; use PhpParser\Node\Stmt\Expression; use PhpParser\NodeTraverser; diff --git a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php index 5a3811f3d..29d7a945b 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php @@ -3,14 +3,17 @@ declare (strict_types=1); namespace Rector\PhpParser\Printer; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node; +use PhpParser\Node\Arg; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrowFunction; +use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Closure; +use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Expr\Yield_; use PhpParser\Node\Param; @@ -134,8 +137,7 @@ protected function pExpr_ArrowFunction(ArrowFunction $arrowFunction) : string if ($comments === []) { return parent::pExpr_ArrowFunction($arrowFunction); } - $indentSize = SimpleParameterProvider::provideIntParameter(Option::INDENT_SIZE); - $indent = \str_repeat($this->getIndentCharacter(), $this->indentLevel) . \str_repeat($this->getIndentCharacter(), $indentSize); + $indent = $this->resolveIndentSpaces(); $text = "\n" . $indent; foreach ($comments as $key => $comment) { $commentText = $key > 0 ? $indent . $comment->getText() : $comment->getText(); @@ -346,7 +348,7 @@ protected function pModifiers(int $modifiers) : string /** * Invoke re-print even if only raw value was changed. * That allows PHPStan to use int strict types, while changing the value with literal "_" - * @return string|int + * @return int|string */ protected function pScalar_LNumber(LNumber $lNumber) { @@ -355,6 +357,22 @@ protected function pScalar_LNumber(LNumber $lNumber) } return parent::pScalar_LNumber($lNumber); } + protected function pExpr_MethodCall(MethodCall $methodCall) : string + { + if (SimpleParameterProvider::provideBoolParameter(Option::NEW_LINE_ON_FLUENT_CALL) === \false) { + return parent::pExpr_MethodCall($methodCall); + } + if ($methodCall->var instanceof CallLike) { + foreach ($methodCall->args as $arg) { + if (!$arg instanceof Arg) { + continue; + } + $arg->value->setAttribute(AttributeKey::ORIGINAL_NODE, null); + } + return $this->pDereferenceLhs($methodCall->var) . "\n" . $this->resolveIndentSpaces() . '->' . $this->pObjectProperty($methodCall->name) . '(' . $this->pMaybeMultiline($methodCall->args) . ')'; + } + return parent::pExpr_MethodCall($methodCall); + } /** * Keep attributes on newlines */ @@ -362,6 +380,11 @@ protected function pParam(Param $param) : string { return $this->pAttrGroups($param->attrGroups) . $this->pModifiers($param->flags) . ($param->type instanceof Node ? $this->p($param->type) . ' ' : '') . ($param->byRef ? '&' : '') . ($param->variadic ? '...' : '') . $this->p($param->var) . ($param->default instanceof Expr ? ' = ' . $this->p($param->default) : ''); } + private function resolveIndentSpaces() : string + { + $indentSize = SimpleParameterProvider::provideIntParameter(Option::INDENT_SIZE); + return \str_repeat($this->getIndentCharacter(), $this->indentLevel) . \str_repeat($this->getIndentCharacter(), $indentSize); + } /** * Must be a method to be able to react to changed parameter in tests */ diff --git a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php index 976d6c1da..e161385cc 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 RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\FileSystem; use PhpParser\Node; use Rector\ValueObject\Application\File; /** diff --git a/vendor/rector/rector/src/PostRector/Rector/ClassRenamingPostRector.php b/vendor/rector/rector/src/PostRector/Rector/ClassRenamingPostRector.php index d14ef9e2f..07ad855c7 100644 --- a/vendor/rector/rector/src/PostRector/Rector/ClassRenamingPostRector.php +++ b/vendor/rector/rector/src/PostRector/Rector/ClassRenamingPostRector.php @@ -82,10 +82,7 @@ public function enterNode(Node $node) : ?Node if ($node instanceof FullyQualified) { $result = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope); } else { - $phpAttributeName = $node->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); - if (\is_string($phpAttributeName)) { - $result = $this->classRenamer->renameNode(new FullyQualified($phpAttributeName, $node->getAttributes()), $oldToNewClasses, $scope); - } + $result = $this->resolveResultWithPhpAttributeName($node, $oldToNewClasses, $scope); } if (!SimpleParameterProvider::provideBoolParameter(Option::AUTO_IMPORT_NAMES)) { return $result; @@ -106,4 +103,15 @@ public function afterTraverse(array $nodes) : array $this->renamedNameCollector->reset(); return $nodes; } + /** + * @param array $oldToNewClasses + */ + private function resolveResultWithPhpAttributeName(Name $name, array $oldToNewClasses, ?Scope $scope) : ?FullyQualified + { + $phpAttributeName = $name->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); + if (\is_string($phpAttributeName)) { + return $this->classRenamer->renameNode(new FullyQualified($phpAttributeName, $name->getAttributes()), $oldToNewClasses, $scope); + } + return null; + } } diff --git a/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php b/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php index b4f7d55b2..a22186419 100644 --- a/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php +++ b/vendor/rector/rector/src/PostRector/Rector/UnusedImportRemovingPostRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Comment\Doc; use PhpParser\Node; diff --git a/vendor/rector/rector/src/Reflection/ReflectionResolver.php b/vendor/rector/rector/src/Reflection/ReflectionResolver.php index da71c143a..0273d196b 100644 --- a/vendor/rector/rector/src/Reflection/ReflectionResolver.php +++ b/vendor/rector/rector/src/Reflection/ReflectionResolver.php @@ -15,6 +15,7 @@ use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\FunctionReflection; @@ -183,6 +184,18 @@ public function resolveMethodReflectionFromClassMethod(ClassMethod $classMethod, $methodName = $this->nodeNameResolver->getName($classMethod); return $this->resolveMethodReflection($className, $methodName, $scope); } + public function resolveFunctionReflectionFromFunction(Function_ $function, Scope $scope) : ?FunctionReflection + { + $name = $this->nodeNameResolver->getName($function); + if ($name === null) { + return null; + } + $functionName = new Name($name); + if ($this->reflectionProvider->hasFunction($functionName, $scope)) { + return $this->reflectionProvider->getFunction($functionName, $scope); + } + return null; + } public function resolveMethodReflectionFromNew(New_ $new) : ?MethodReflection { $newClassType = $this->nodeTypeResolver->getType($new->class); diff --git a/vendor/rector/rector/src/Set/ValueObject/LevelSetList.php b/vendor/rector/rector/src/Set/ValueObject/LevelSetList.php index 06b7ebae3..c8b784be8 100644 --- a/vendor/rector/rector/src/Set/ValueObject/LevelSetList.php +++ b/vendor/rector/rector/src/Set/ValueObject/LevelSetList.php @@ -9,6 +9,10 @@ */ final class LevelSetList implements SetListInterface { + /** + * @var string + */ + public const UP_TO_PHP_84 = __DIR__ . '/../../../config/set/level/up-to-php84.php'; /** * @var string */ diff --git a/vendor/rector/rector/src/Set/ValueObject/SetList.php b/vendor/rector/rector/src/Set/ValueObject/SetList.php index cae758922..aa42e85c4 100644 --- a/vendor/rector/rector/src/Set/ValueObject/SetList.php +++ b/vendor/rector/rector/src/Set/ValueObject/SetList.php @@ -89,6 +89,10 @@ final class SetList implements SetListInterface * @var string */ public const PHP_83 = __DIR__ . '/../../../config/set/php83.php'; + /** + * @var string + */ + public const PHP_84 = __DIR__ . '/../../../config/set/php84.php'; /** * @var string */ diff --git a/vendor/rector/rector/src/Skipper/Skipper/Skipper.php b/vendor/rector/rector/src/Skipper/Skipper/Skipper.php index 1c06d08e9..3046e8d30 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; /** * @api * @see \Rector\Tests\Skipper\Skipper\SkipperTest diff --git a/vendor/rector/rector/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php index 93db7be01..d0f27004d 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php +++ b/vendor/rector/rector/src/StaticTypeMapper/Mapper/PhpParserNodeMapper.php @@ -4,10 +4,8 @@ namespace Rector\StaticTypeMapper\Mapper; use PhpParser\Node; -use PhpParser\Node\Expr; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; -use PhpParser\Node\Scalar\String_; use PHPStan\Type\Type; use Rector\Exception\NotImplementedYetException; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -33,14 +31,7 @@ public function mapToPHPStanType(Node $node) : Type if (!\is_a($nameOrExpr, $phpParserNodeMapper->getNodeType())) { continue; } - // do not let Expr collect all the types - // note: can be solve later with priorities on mapper interface, making this last - if ($phpParserNodeMapper->getNodeType() !== Expr::class) { - return $phpParserNodeMapper->mapToPHPStan($nameOrExpr); - } - if (!$nameOrExpr instanceof String_) { - return $phpParserNodeMapper->mapToPHPStan($nameOrExpr); - } + return $phpParserNodeMapper->mapToPHPStan($nameOrExpr); } throw new NotImplementedYetException(\get_class($nameOrExpr)); } diff --git a/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php index d80e2215c..c9e628094 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 c2959860f..218d09194 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 5c54cd1e9..6ebb489c4 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\NameScope; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; diff --git a/vendor/rector/rector/src/StaticTypeMapper/PhpParser/NameNodeMapper.php b/vendor/rector/rector/src/StaticTypeMapper/PhpParser/NameNodeMapper.php index 00e2abeda..1f1eaf4a6 100644 --- a/vendor/rector/rector/src/StaticTypeMapper/PhpParser/NameNodeMapper.php +++ b/vendor/rector/rector/src/StaticTypeMapper/PhpParser/NameNodeMapper.php @@ -6,23 +6,13 @@ use PhpParser\Node; use PhpParser\Node\Name; use PHPStan\Reflection\ClassReflection; -use PHPStan\Reflection\ReflectionProvider; -use PHPStan\Type\ArrayType; -use PHPStan\Type\BooleanType; -use PHPStan\Type\Constant\ConstantBooleanType; -use PHPStan\Type\FloatType; -use PHPStan\Type\IntegerType; use PHPStan\Type\MixedType; use PHPStan\Type\ObjectWithoutClassType; use PHPStan\Type\StaticType; -use PHPStan\Type\StringType; -use PHPStan\Type\ThisType; use PHPStan\Type\Type; -use Rector\Configuration\RenamedClassesDataCollector; use Rector\Enum\ObjectReference; use Rector\Reflection\ReflectionResolver; use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface; -use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; use Rector\StaticTypeMapper\ValueObject\Type\ParentObjectWithoutClassType; use Rector\StaticTypeMapper\ValueObject\Type\ParentStaticType; use Rector\StaticTypeMapper\ValueObject\Type\SelfStaticType; @@ -31,25 +21,13 @@ */ final class NameNodeMapper implements PhpParserNodeMapperInterface { - /** - * @readonly - * @var \Rector\Configuration\RenamedClassesDataCollector - */ - private $renamedClassesDataCollector; - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; /** * @readonly * @var \Rector\Reflection\ReflectionResolver */ private $reflectionResolver; - public function __construct(RenamedClassesDataCollector $renamedClassesDataCollector, ReflectionProvider $reflectionProvider, ReflectionResolver $reflectionResolver) + public function __construct(ReflectionResolver $reflectionResolver) { - $this->renamedClassesDataCollector = $renamedClassesDataCollector; - $this->reflectionProvider = $reflectionProvider; $this->reflectionResolver = $reflectionResolver; } public function getNodeType() : string @@ -62,22 +40,10 @@ public function getNodeType() : string public function mapToPHPStan(Node $node) : Type { $name = $node->toString(); - if ($this->isExistingClass($name)) { - return new FullyQualifiedObjectType($name); - } - if (\in_array($name, [ObjectReference::STATIC, ObjectReference::SELF, ObjectReference::PARENT], \true)) { + if ($node->isSpecialClassName()) { return $this->createClassReferenceType($node, $name); } - return $this->createScalarType($name); - } - private function isExistingClass(string $name) : bool - { - if ($this->reflectionProvider->hasClass($name)) { - return \true; - } - // to be existing class names - $oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses(); - return \in_array($name, $oldToNewClasses, \true); + return new MixedType(); } /** * @return \PHPStan\Type\MixedType|\PHPStan\Type\StaticType|\Rector\StaticTypeMapper\ValueObject\Type\SelfStaticType|\PHPStan\Type\ObjectWithoutClassType @@ -94,38 +60,10 @@ private function createClassReferenceType(Name $name, string $reference) if ($reference === ObjectReference::SELF) { return new SelfStaticType($classReflection); } - if ($reference === ObjectReference::PARENT) { - $parentClassReflection = $classReflection->getParentClass(); - if ($parentClassReflection instanceof ClassReflection) { - return new ParentStaticType($parentClassReflection); - } - return new ParentObjectWithoutClassType(); + $parentClassReflection = $classReflection->getParentClass(); + if ($parentClassReflection instanceof ClassReflection) { + return new ParentStaticType($parentClassReflection); } - return new ThisType($classReflection); - } - /** - * @return \PHPStan\Type\ArrayType|\PHPStan\Type\IntegerType|\PHPStan\Type\FloatType|\PHPStan\Type\StringType|\PHPStan\Type\Constant\ConstantBooleanType|\PHPStan\Type\BooleanType|\PHPStan\Type\MixedType - */ - private function createScalarType(string $name) - { - if ($name === 'array') { - return new ArrayType(new MixedType(), new MixedType()); - } - if ($name === 'int') { - return new IntegerType(); - } - if ($name === 'float') { - return new FloatType(); - } - if ($name === 'string') { - return new StringType(); - } - if ($name === 'false') { - return new ConstantBooleanType(\false); - } - if ($name === 'bool') { - return new BooleanType(); - } - return new MixedType(); + return new ParentObjectWithoutClassType(); } } diff --git a/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/vendor/rector/rector/src/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index 7707239e6..855a1b429 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 7411e6533..1955b68a0 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 RectorPrefix202403\Symfony\Component\Finder\Finder; +use RectorPrefix202405\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 c9ae2905a..5a78f6d8f 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 RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\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 99f57e061..905f6daa7 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 RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\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 b0200a025..e83bb65ef 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 RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\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 0551b8633..9daa2404f 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 RectorPrefix202403\Illuminate\Container\RewindableGenerator; +use RectorPrefix202405\Illuminate\Container\RewindableGenerator; use Iterator; -use RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Strings; use PHPUnit\Framework\ExpectationFailedException; use Rector\Application\ApplicationFileProcessor; use Rector\Autoloading\AdditionalAutoloader; @@ -60,6 +60,7 @@ public static function tearDownAfterClass() : void SimpleParameterProvider::setParameter(Option::INDENT_CHAR, ' '); SimpleParameterProvider::setParameter(Option::INDENT_SIZE, 4); SimpleParameterProvider::setParameter(Option::POLYFILL_PACKAGES, []); + SimpleParameterProvider::setParameter(Option::NEW_LINE_ON_FLUENT_CALL, \false); } protected function setUp() : void { diff --git a/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php b/vendor/rector/rector/src/Testing/TestingParser/TestingParser.php index ce6124545..265081a2c 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 RectorPrefix202403\Nette\Utils\FileSystem; +use RectorPrefix202405\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 37c369637..5bd38723c 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 index 8f0ddf030..5229a35c0 100644 --- a/vendor/rector/rector/src/Util/NewLineSplitter.php +++ b/vendor/rector/rector/src/Util/NewLineSplitter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; final class NewLineSplitter { /** diff --git a/vendor/rector/rector/src/Util/NodePrinter.php b/vendor/rector/rector/src/Util/NodePrinter.php index 3055bd991..5f6e4fa21 100644 --- a/vendor/rector/rector/src/Util/NodePrinter.php +++ b/vendor/rector/rector/src/Util/NodePrinter.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Util; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use Rector\CustomRules\SimpleNodeDumper; -use RectorPrefix202403\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; final class NodePrinter { /** diff --git a/vendor/rector/rector/src/Util/StringUtils.php b/vendor/rector/rector/src/Util/StringUtils.php index 6fb40e27c..0937075ef 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 094cd0322..7004b9d1b 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 RectorPrefix202403\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202405\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 75142e93e..d6f6fa155 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 1f0e1ec7f..6337e9255 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 RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202405\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) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202405\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 55737a4b0..6c3881024 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Webmozart\Assert\Assert; final class FileProcessResult { /** diff --git a/vendor/rector/rector/src/ValueObject/PhpVersion.php b/vendor/rector/rector/src/ValueObject/PhpVersion.php index d7ff7ef84..cf6fdc70a 100644 --- a/vendor/rector/rector/src/ValueObject/PhpVersion.php +++ b/vendor/rector/rector/src/ValueObject/PhpVersion.php @@ -64,6 +64,10 @@ final class PhpVersion * @var int */ public const PHP_83 = 80300; + /** + * @var int + */ + public const PHP_84 = 80400; /** * @var int */ diff --git a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php index 59f52db7c..b36db8ae3 100644 --- a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php +++ b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php @@ -522,6 +522,11 @@ final class PhpVersionFeature * @var int */ public const SENSITIVE_PARAMETER_ATTRIBUTE = \Rector\ValueObject\PhpVersion::PHP_82; + /** + * @see https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation + * @var int + */ + public const DEPRECATE_VARIABLE_IN_STRING_INTERPOLATION = \Rector\ValueObject\PhpVersion::PHP_82; /** * @see https://wiki.php.net/rfc/marking_overriden_methods * @var int @@ -532,6 +537,11 @@ final class PhpVersionFeature * @var int */ public const TYPED_CLASS_CONSTANTS = \Rector\ValueObject\PhpVersion::PHP_83; + /** + * @see https://wiki.php.net/rfc/deprecate-implicitly-nullable-types + * @var int + */ + public const DEPRECATE_IMPLICIT_NULLABLE_PARAM_TYPE = \Rector\ValueObject\PhpVersion::PHP_84; /** * @see https://www.php.net/manual/en/migration83.deprecated.php#migration83.deprecated.ldap * @var int diff --git a/vendor/rector/rector/src/ValueObject/ProcessResult.php b/vendor/rector/rector/src/ValueObject/ProcessResult.php index 53c298200..0e1da84d2 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 38e2a31bf..8a67ba2d4 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Contract\Rector\RectorInterface; use Rector\Parallel\ValueObject\BridgeItem; -use RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202405\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) : \RectorPrefix202403\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202405\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 6dd02d806..8467117c9 100644 --- a/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php +++ b/vendor/rector/rector/src/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php @@ -3,24 +3,40 @@ declare (strict_types=1); namespace Rector\VendorLocker\NodeVendorLocker; +use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\FunctionVariantWithPhpDocs; use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\ParametersAcceptorSelector; +use PHPStan\Reflection\Php\PhpMethodReflection; use PHPStan\Type\MixedType; +use PHPStan\Type\Type; +use Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer; use Rector\FileSystem\FilePathHelper; use Rector\NodeAnalyzer\MagicClassMethodAnalyzer; use Rector\NodeTypeResolver\PHPStan\ParametersAcceptorSelectorVariantsWrapper; use Rector\Reflection\ReflectionResolver; +use Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer; use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; final class ClassMethodReturnTypeOverrideGuard { + /** + * @readonly + * @var \Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer + */ + private $familyRelationsAnalyzer; /** * @readonly * @var \Rector\Reflection\ReflectionResolver */ private $reflectionResolver; + /** + * @readonly + * @var \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer + */ + private $returnTypeInferer; /** * @readonly * @var \Rector\VendorLocker\ParentClassMethodTypeOverrideGuard @@ -36,9 +52,11 @@ final class ClassMethodReturnTypeOverrideGuard * @var \Rector\NodeAnalyzer\MagicClassMethodAnalyzer */ private $magicClassMethodAnalyzer; - public function __construct(ReflectionResolver $reflectionResolver, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, FilePathHelper $filePathHelper, MagicClassMethodAnalyzer $magicClassMethodAnalyzer) + public function __construct(FamilyRelationsAnalyzer $familyRelationsAnalyzer, ReflectionResolver $reflectionResolver, ReturnTypeInferer $returnTypeInferer, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, FilePathHelper $filePathHelper, MagicClassMethodAnalyzer $magicClassMethodAnalyzer) { + $this->familyRelationsAnalyzer = $familyRelationsAnalyzer; $this->reflectionResolver = $reflectionResolver; + $this->returnTypeInferer = $returnTypeInferer; $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; $this->filePathHelper = $filePathHelper; $this->magicClassMethodAnalyzer = $magicClassMethodAnalyzer; @@ -65,7 +83,37 @@ public function shouldSkipClassMethod(ClassMethod $classMethod, Scope $scope) : if (!$this->isReturnTypeChangeAllowed($classMethod, $scope)) { return \true; } - return $classMethod->isFinal(); + if ($classMethod->isFinal()) { + return \false; + } + $childrenClassReflections = $this->familyRelationsAnalyzer->getChildrenOfClassReflection($classReflection); + if ($childrenClassReflections === []) { + return \false; + } + if ($classMethod->returnType instanceof Node) { + return \true; + } + $returnType = $this->returnTypeInferer->inferFunctionLike($classMethod); + return $this->hasChildrenDifferentTypeClassMethod($classMethod, $childrenClassReflections, $returnType); + } + /** + * @param ClassReflection[] $childrenClassReflections + */ + private function hasChildrenDifferentTypeClassMethod(ClassMethod $classMethod, array $childrenClassReflections, Type $returnType) : bool + { + $methodName = $classMethod->name->toString(); + foreach ($childrenClassReflections as $childClassReflection) { + $methodReflection = $childClassReflection->getNativeMethod($methodName); + if (!$methodReflection instanceof PhpMethodReflection) { + continue; + } + $parametersAcceptor = ParametersAcceptorSelector::combineAcceptors($methodReflection->getVariants()); + $childReturnType = $parametersAcceptor->getNativeReturnType(); + if (!$returnType->isSuperTypeOf($childReturnType)->yes()) { + return \true; + } + } + return \false; } private function isReturnTypeChangeAllowed(ClassMethod $classMethod, Scope $scope) : bool { diff --git a/vendor/rector/rector/src/functions/node_helper.php b/vendor/rector/rector/src/functions/node_helper.php index 931d2008b..64f38b5c5 100644 --- a/vendor/rector/rector/src/functions/node_helper.php +++ b/vendor/rector/rector/src/functions/node_helper.php @@ -1,14 +1,14 @@ $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\MethodTagValueParameterNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\MixinTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamClosureThisTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamImmediatelyInvokedCallableTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamLaterInvokedCallableTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamOutTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\PhpDocChildNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php', @@ -340,625 +343,632 @@ 'PhpParser\\Parser\\Tokens' => $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', - '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', + 'RectorPrefix202405\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202405\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202405\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', + 'RectorPrefix202405\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', + 'RectorPrefix202405\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202405\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'RectorPrefix202405\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'RectorPrefix202405\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'RectorPrefix202405\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'RectorPrefix202405\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202405\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202405\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202405\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202405\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202405\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', + 'RectorPrefix202405\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202405\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202405\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202405\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202405\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202405\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202405\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202405\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', + 'RectorPrefix202405\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202405\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202405\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202405\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202405\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202405\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202405\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202405\\Nette\\Utils\\FileInfo' => $vendorDir . '/nette/utils/src/Utils/FileInfo.php', + 'RectorPrefix202405\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202405\\Nette\\Utils\\Finder' => $vendorDir . '/nette/utils/src/Utils/Finder.php', + 'RectorPrefix202405\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202405\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202405\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202405\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202405\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageColor' => $vendorDir . '/nette/utils/src/Utils/ImageColor.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageType' => $vendorDir . '/nette/utils/src/Utils/ImageType.php', + 'RectorPrefix202405\\Nette\\Utils\\Iterables' => $vendorDir . '/nette/utils/src/Utils/Iterables.php', + 'RectorPrefix202405\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202405\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202405\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202405\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202405\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202405\\Nette\\Utils\\ReflectionMethod' => $vendorDir . '/nette/utils/src/Utils/ReflectionMethod.php', + 'RectorPrefix202405\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202405\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202405\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202405\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202405\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202405\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202405\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202405\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202405\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202405\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202405\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202405\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202405\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', + 'RectorPrefix202405\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', + 'RectorPrefix202405\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', + 'RectorPrefix202405\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202405\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', + 'RectorPrefix202405\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', + 'RectorPrefix202405\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202405\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202405\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', + 'RectorPrefix202405\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', + 'RectorPrefix202405\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', + 'RectorPrefix202405\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202405\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202405\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202405\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202405\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202405\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', + 'RectorPrefix202405\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202405\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202405\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202405\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', + 'RectorPrefix202405\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202405\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202405\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202405\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', + 'RectorPrefix202405\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202405\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', + 'RectorPrefix202405\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202405\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202405\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', + 'RectorPrefix202405\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202405\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202405\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202405\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202405\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202405\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', + 'RectorPrefix202405\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', + 'RectorPrefix202405\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202405\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', + 'RectorPrefix202405\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202405\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202405\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', + 'RectorPrefix202405\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202405\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202405\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', + 'RectorPrefix202405\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202405\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202405\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202405\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202405\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', + 'RectorPrefix202405\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => $vendorDir . '/symfony/service-contracts/ServiceCollectionInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202405\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202405\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202405\\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', @@ -1067,6 +1077,7 @@ 'Rector\\CodeQuality\\Rector\\BooleanNot\\SimplifyDeMorganBinaryRector' => $baseDir . '/rules/CodeQuality/Rector/BooleanNot/SimplifyDeMorganBinaryRector.php', 'Rector\\CodeQuality\\Rector\\Catch_\\ThrowWithPreviousExceptionRector' => $baseDir . '/rules/CodeQuality/Rector/Catch_/ThrowWithPreviousExceptionRector.php', 'Rector\\CodeQuality\\Rector\\ClassConstFetch\\ConvertStaticPrivateConstantToSelfRector' => $baseDir . '/rules/CodeQuality/Rector/ClassConstFetch/ConvertStaticPrivateConstantToSelfRector.php', + 'Rector\\CodeQuality\\Rector\\ClassMethod\\ExplicitReturnNullRector' => $baseDir . '/rules/CodeQuality/Rector/ClassMethod/ExplicitReturnNullRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\InlineArrayReturnAssignRector' => $baseDir . '/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\LocallyCalledStaticMethodToNonStaticRector' => $baseDir . '/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\OptionalParametersAfterRequiredRector' => $baseDir . '/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php', @@ -1229,6 +1240,7 @@ 'Rector\\DeadCode\\NodeAnalyzer\\ExprUsedInNodeAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/ExprUsedInNodeAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\IsClassMethodUsedAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\PropertyWriteonlyAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php', + 'Rector\\DeadCode\\NodeAnalyzer\\SafeLeftTypeBooleanAndOrAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\UsedVariableNameAnalyzer' => $baseDir . '/rules/DeadCode/NodeAnalyzer/UsedVariableNameAnalyzer.php', 'Rector\\DeadCode\\NodeCollector\\UnusedParameterResolver' => $baseDir . '/rules/DeadCode/NodeCollector/UnusedParameterResolver.php', 'Rector\\DeadCode\\NodeManipulator\\ControllerClassMethodManipulator' => $baseDir . '/rules/DeadCode/NodeManipulator/ControllerClassMethodManipulator.php', @@ -1267,6 +1279,7 @@ 'Rector\\DeadCode\\Rector\\For_\\RemoveDeadLoopRector' => $baseDir . '/rules/DeadCode/Rector/For_/RemoveDeadLoopRector.php', 'Rector\\DeadCode\\Rector\\Foreach_\\RemoveUnusedForeachKeyRector' => $baseDir . '/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php', 'Rector\\DeadCode\\Rector\\FunctionLike\\RemoveDeadReturnRector' => $baseDir . '/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php', + 'Rector\\DeadCode\\Rector\\If_\\ReduceAlwaysFalseIfOrRector' => $baseDir . '/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveAlwaysTrueIfConditionRector' => $baseDir . '/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveDeadInstanceOfRector' => $baseDir . '/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveTypedPropertyDeadInstanceOfRector' => $baseDir . '/rules/DeadCode/Rector/If_/RemoveTypedPropertyDeadInstanceOfRector.php', @@ -1277,6 +1290,7 @@ 'Rector\\DeadCode\\Rector\\Plus\\RemoveDeadZeroAndOneOperationRector' => $baseDir . '/rules/DeadCode/Rector/Plus/RemoveDeadZeroAndOneOperationRector.php', 'Rector\\DeadCode\\Rector\\PropertyProperty\\RemoveNullPropertyInitializationRector' => $baseDir . '/rules/DeadCode/Rector/PropertyProperty/RemoveNullPropertyInitializationRector.php', 'Rector\\DeadCode\\Rector\\Property\\RemoveUnusedPrivatePropertyRector' => $baseDir . '/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php', + 'Rector\\DeadCode\\Rector\\Property\\RemoveUselessReadOnlyTagRector' => $baseDir . '/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php', 'Rector\\DeadCode\\Rector\\Property\\RemoveUselessVarTagRector' => $baseDir . '/rules/DeadCode/Rector/Property/RemoveUselessVarTagRector.php', 'Rector\\DeadCode\\Rector\\Return_\\RemoveDeadConditionAboveReturnRector' => $baseDir . '/rules/DeadCode/Rector/Return_/RemoveDeadConditionAboveReturnRector.php', 'Rector\\DeadCode\\Rector\\StaticCall\\RemoveParentCallWithoutParentRector' => $baseDir . '/rules/DeadCode/Rector/StaticCall/RemoveParentCallWithoutParentRector.php', @@ -1307,7 +1321,10 @@ '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\\InverseJoinColumnAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php', 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinColumnAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinTableAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ManyToManyAttributeTransformer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.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', @@ -1319,6 +1336,7 @@ 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.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_\\ExplicitRelationCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.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', @@ -1699,6 +1717,7 @@ 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\DataProviderArrayItemsNewLinedRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/DataProviderArrayItemsNewLinedRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\RemoveEmptyTestMethodRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/RemoveEmptyTestMethodRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\ReplaceTestAnnotationWithPrefixedFunctionRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php', + 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\AddCoversClassAttributeRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\AddSeeTestAnnotationRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\ConstructClassMethodToSetUpTestCaseRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/ConstructClassMethodToSetUpTestCaseRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\PreferPHPUnitThisCallRector' => $vendorDir . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/PreferPHPUnitThisCallRector.php', @@ -1824,6 +1843,7 @@ 'Rector\\Php72\\Rector\\FuncCall\\StringsAssertNakedRector' => $baseDir . '/rules/Php72/Rector/FuncCall/StringsAssertNakedRector.php', 'Rector\\Php72\\Rector\\Unset_\\UnsetCastRector' => $baseDir . '/rules/Php72/Rector/Unset_/UnsetCastRector.php', 'Rector\\Php72\\Rector\\While_\\WhileEachToForeachRector' => $baseDir . '/rules/Php72/Rector/While_/WhileEachToForeachRector.php', + 'Rector\\Php72\\ValueObject\\ListAndEach' => $baseDir . '/rules/Php72/ValueObject/ListAndEach.php', 'Rector\\Php73\\Rector\\BooleanOr\\IsCountableRector' => $baseDir . '/rules/Php73/Rector/BooleanOr/IsCountableRector.php', 'Rector\\Php73\\Rector\\ConstFetch\\SensitiveConstantNameRector' => $baseDir . '/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php', 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeyFirstLastRector' => $baseDir . '/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php', @@ -1915,12 +1935,14 @@ 'Rector\\Php81\\Rector\\MethodCall\\SpatieEnumMethodCallToEnumConstRector' => $baseDir . '/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\Property\\ReadOnlyPropertyRector' => $baseDir . '/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php', 'Rector\\Php82\\Rector\\Class_\\ReadOnlyClassRector' => $baseDir . '/rules/Php82/Rector/Class_/ReadOnlyClassRector.php', + 'Rector\\Php82\\Rector\\Encapsed\\VariableInStringInterpolationFixerRector' => $baseDir . '/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php', 'Rector\\Php82\\Rector\\FuncCall\\Utf8DecodeEncodeToMbConvertEncodingRector' => $baseDir . '/rules/Php82/Rector/FuncCall/Utf8DecodeEncodeToMbConvertEncodingRector.php', 'Rector\\Php82\\Rector\\New_\\FilesystemIteratorSkipDotsRector' => $baseDir . '/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php', 'Rector\\Php82\\Rector\\Param\\AddSensitiveParameterAttributeRector' => $baseDir . '/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php', 'Rector\\Php83\\Rector\\ClassConst\\AddTypeToConstRector' => $baseDir . '/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php', 'Rector\\Php83\\Rector\\ClassMethod\\AddOverrideAttributeToOverriddenMethodsRector' => $baseDir . '/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php', 'Rector\\Php83\\Rector\\FuncCall\\CombineHostPortLdapUriRector' => $baseDir . '/rules/Php83/Rector/FuncCall/CombineHostPortLdapUriRector.php', + 'Rector\\Php84\\Rector\\Param\\ExplicitNullableParamTypeRector' => $baseDir . '/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper' => $baseDir . '/src/PhpAttribute/AnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayAnnotationToAttributeMapper' => $baseDir . '/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayItemNodeAnnotationToAttributeMapper' => $baseDir . '/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php', @@ -2285,6 +2307,7 @@ 'Rector\\Transform\\NodeAnalyzer\\FuncCallStaticCallToMethodCallAnalyzer' => $baseDir . '/rules/Transform/NodeAnalyzer/FuncCallStaticCallToMethodCallAnalyzer.php', 'Rector\\Transform\\NodeFactory\\PropertyFetchFactory' => $baseDir . '/rules/Transform/NodeFactory/PropertyFetchFactory.php', 'Rector\\Transform\\NodeTypeAnalyzer\\TypeProvidingExprFromClassResolver' => $baseDir . '/rules/Transform/NodeTypeAnalyzer/TypeProvidingExprFromClassResolver.php', + 'Rector\\Transform\\Rector\\ArrayDimFetch\\ArrayDimFetchToMethodCallRector' => $baseDir . '/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php', 'Rector\\Transform\\Rector\\Assign\\PropertyAssignToMethodCallRector' => $baseDir . '/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php', 'Rector\\Transform\\Rector\\Assign\\PropertyFetchToMethodCallRector' => $baseDir . '/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php', 'Rector\\Transform\\Rector\\Attribute\\AttributeKeyToClassConstFetchRector' => $baseDir . '/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php', @@ -2309,6 +2332,7 @@ 'Rector\\Transform\\Rector\\StaticCall\\StaticCallToMethodCallRector' => $baseDir . '/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php', 'Rector\\Transform\\Rector\\StaticCall\\StaticCallToNewRector' => $baseDir . '/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php', 'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => $baseDir . '/rules/Transform/Rector/String_/StringToClassConstantRector.php', + 'Rector\\Transform\\ValueObject\\ArrayDimFetchToMethodCall' => $baseDir . '/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.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', @@ -2340,6 +2364,7 @@ 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallerParamMatcher' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodAndPropertyAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodParamTypeCompleter' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\DeclareStrictTypeFinder' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\NeverFuncCallAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ParamAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ParamAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnAnalyzer.php', @@ -2400,6 +2425,7 @@ 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictSetUpRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php', 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\DeclareStrictTypesRector' => $baseDir . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php', + 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\IncreaseDeclareStrictTypesRector' => $baseDir . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php', 'Rector\\TypeDeclaration\\Rector\\While_\\WhileNullableToInstanceofRector' => $baseDir . '/rules/TypeDeclaration/Rector/While_/WhileNullableToInstanceofRector.php', 'Rector\\TypeDeclaration\\TypeAnalyzer\\AlwaysStrictBoolExprAnalyzer' => $baseDir . '/rules/TypeDeclaration/TypeAnalyzer/AlwaysStrictBoolExprAnalyzer.php', 'Rector\\TypeDeclaration\\TypeAnalyzer\\AlwaysStrictScalarExprAnalyzer' => $baseDir . '/rules/TypeDeclaration/TypeAnalyzer/AlwaysStrictScalarExprAnalyzer.php', diff --git a/vendor/rector/rector/vendor/composer/autoload_psr4.php b/vendor/rector/rector/vendor/composer/autoload_psr4.php index bbf61c9bb..533aa09ae 100644 --- a/vendor/rector/rector/vendor/composer/autoload_psr4.php +++ b/vendor/rector/rector/vendor/composer/autoload_psr4.php @@ -14,34 +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'), - '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'), + 'RectorPrefix202405\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202405\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), + 'RectorPrefix202405\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), + 'RectorPrefix202405\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), + 'RectorPrefix202405\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'RectorPrefix202405\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), + 'RectorPrefix202405\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), + 'RectorPrefix202405\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), + 'RectorPrefix202405\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), + 'RectorPrefix202405\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), + 'RectorPrefix202405\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), + 'RectorPrefix202405\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), + 'RectorPrefix202405\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'RectorPrefix202405\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'RectorPrefix202405\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'RectorPrefix202405\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), + 'RectorPrefix202405\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), + 'RectorPrefix202405\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), + 'RectorPrefix202405\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), + 'RectorPrefix202405\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), + 'RectorPrefix202405\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), + 'RectorPrefix202405\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'RectorPrefix202405\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'RectorPrefix202405\\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 0697dccb9..54e8ee141 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 ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54 +class ComposerAutoloaderInit70e3025dac7e7555f69a9b4ca9e3dfde { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit70e3025dac7e7555f69a9b4ca9e3dfde', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit70e3025dac7e7555f69a9b4ca9e3dfde', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde::$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 8c2a12d2a..c09f620ef 100644 --- a/vendor/rector/rector/vendor/composer/autoload_static.php +++ b/vendor/rector/rector/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 +class ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -27,34 +27,34 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\PHPUnit\\' => 15, 'Rector\\Doctrine\\' => 16, 'Rector\\' => 7, - '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, + 'RectorPrefix202405\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202405\\Symplify\\EasyParallel\\' => 41, + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\' => 45, + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\' => 42, + 'RectorPrefix202405\\Symfony\\Component\\Process\\' => 45, + 'RectorPrefix202405\\Symfony\\Component\\Finder\\' => 44, + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\' => 48, + 'RectorPrefix202405\\Symfony\\Component\\Console\\' => 45, + 'RectorPrefix202405\\React\\Stream\\' => 32, + 'RectorPrefix202405\\React\\Socket\\' => 32, + 'RectorPrefix202405\\React\\Promise\\' => 33, + 'RectorPrefix202405\\React\\EventLoop\\' => 35, + 'RectorPrefix202405\\React\\Dns\\' => 29, + 'RectorPrefix202405\\React\\ChildProcess\\' => 38, + 'RectorPrefix202405\\React\\Cache\\' => 31, + 'RectorPrefix202405\\Psr\\SimpleCache\\' => 35, + 'RectorPrefix202405\\Psr\\Log\\' => 27, + 'RectorPrefix202405\\Psr\\Container\\' => 33, + 'RectorPrefix202405\\OndraM\\CiDetector\\' => 37, + 'RectorPrefix202405\\Illuminate\\Contracts\\' => 40, + 'RectorPrefix202405\\Illuminate\\Container\\' => 40, + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\' => 40, + 'RectorPrefix202405\\Evenement\\' => 29, + 'RectorPrefix202405\\Doctrine\\Inflector\\' => 38, + 'RectorPrefix202405\\Composer\\XdebugHandler\\' => 42, + 'RectorPrefix202405\\Composer\\Semver\\' => 35, + 'RectorPrefix202405\\Composer\\Pcre\\' => 33, + 'RectorPrefix202405\\Clue\\React\\NDJson\\' => 37, ), 'P' => array ( @@ -102,115 +102,115 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 2 => __DIR__ . '/..' . '/rector/rector-downgrade-php/src', 3 => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules', ), - 'RectorPrefix202403\\Webmozart\\Assert\\' => + 'RectorPrefix202405\\Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202403\\Symplify\\EasyParallel\\' => + 'RectorPrefix202405\\Symplify\\EasyParallel\\' => array ( 0 => __DIR__ . '/..' . '/symplify/easy-parallel/src', ), - 'RectorPrefix202403\\Symfony\\Contracts\\Service\\' => + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\' => array ( 0 => __DIR__ . '/..' . '/symfony/service-contracts', ), - 'RectorPrefix202403\\Symfony\\Component\\Yaml\\' => + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\' => array ( 0 => __DIR__ . '/..' . '/symfony/yaml', ), - 'RectorPrefix202403\\Symfony\\Component\\Process\\' => + 'RectorPrefix202405\\Symfony\\Component\\Process\\' => array ( 0 => __DIR__ . '/..' . '/symfony/process', ), - 'RectorPrefix202403\\Symfony\\Component\\Finder\\' => + 'RectorPrefix202405\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), - 'RectorPrefix202403\\Symfony\\Component\\Filesystem\\' => + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\' => array ( 0 => __DIR__ . '/..' . '/symfony/filesystem', ), - 'RectorPrefix202403\\Symfony\\Component\\Console\\' => + 'RectorPrefix202405\\Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), - 'RectorPrefix202403\\React\\Stream\\' => + 'RectorPrefix202405\\React\\Stream\\' => array ( 0 => __DIR__ . '/..' . '/react/stream/src', ), - 'RectorPrefix202403\\React\\Socket\\' => + 'RectorPrefix202405\\React\\Socket\\' => array ( 0 => __DIR__ . '/..' . '/react/socket/src', ), - 'RectorPrefix202403\\React\\Promise\\' => + 'RectorPrefix202405\\React\\Promise\\' => array ( 0 => __DIR__ . '/..' . '/react/promise/src', ), - 'RectorPrefix202403\\React\\EventLoop\\' => + 'RectorPrefix202405\\React\\EventLoop\\' => array ( 0 => __DIR__ . '/..' . '/react/event-loop/src', ), - 'RectorPrefix202403\\React\\Dns\\' => + 'RectorPrefix202405\\React\\Dns\\' => array ( 0 => __DIR__ . '/..' . '/react/dns/src', ), - 'RectorPrefix202403\\React\\ChildProcess\\' => + 'RectorPrefix202405\\React\\ChildProcess\\' => array ( 0 => __DIR__ . '/..' . '/react/child-process/src', ), - 'RectorPrefix202403\\React\\Cache\\' => + 'RectorPrefix202405\\React\\Cache\\' => array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202403\\Psr\\SimpleCache\\' => + 'RectorPrefix202405\\Psr\\SimpleCache\\' => array ( 0 => __DIR__ . '/..' . '/psr/simple-cache/src', ), - 'RectorPrefix202403\\Psr\\Log\\' => + 'RectorPrefix202405\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', ), - 'RectorPrefix202403\\Psr\\Container\\' => + 'RectorPrefix202405\\Psr\\Container\\' => array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), - 'RectorPrefix202403\\OndraM\\CiDetector\\' => + 'RectorPrefix202405\\OndraM\\CiDetector\\' => array ( 0 => __DIR__ . '/..' . '/ondram/ci-detector/src', ), - 'RectorPrefix202403\\Illuminate\\Contracts\\' => + 'RectorPrefix202405\\Illuminate\\Contracts\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/contracts', ), - 'RectorPrefix202403\\Illuminate\\Container\\' => + 'RectorPrefix202405\\Illuminate\\Container\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/container', ), - 'RectorPrefix202403\\Fidry\\CpuCoreCounter\\' => + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', ), - 'RectorPrefix202403\\Evenement\\' => + 'RectorPrefix202405\\Evenement\\' => array ( 0 => __DIR__ . '/..' . '/evenement/evenement/src', ), - 'RectorPrefix202403\\Doctrine\\Inflector\\' => + 'RectorPrefix202405\\Doctrine\\Inflector\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', ), - 'RectorPrefix202403\\Composer\\XdebugHandler\\' => + 'RectorPrefix202405\\Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', ), - 'RectorPrefix202403\\Composer\\Semver\\' => + 'RectorPrefix202405\\Composer\\Semver\\' => array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), - 'RectorPrefix202403\\Composer\\Pcre\\' => + 'RectorPrefix202405\\Composer\\Pcre\\' => array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), - 'RectorPrefix202403\\Clue\\React\\NDJson\\' => + 'RectorPrefix202405\\Clue\\React\\NDJson\\' => array ( 0 => __DIR__ . '/..' . '/clue/ndjson-react/src', ), @@ -261,6 +261,9 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\MethodTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\MethodTagValueParameterNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\MixinTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamClosureThisTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamImmediatelyInvokedCallableTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php', + 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamLaterInvokedCallableTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamOutTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ParamTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php', 'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\PhpDocChildNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php', @@ -559,625 +562,632 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 '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', - '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', + 'RectorPrefix202405\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202405\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202405\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', + 'RectorPrefix202405\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', + 'RectorPrefix202405\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202405\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202405\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'RectorPrefix202405\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202405\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'RectorPrefix202405\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'RectorPrefix202405\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'RectorPrefix202405\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202405\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202405\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202405\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202405\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202405\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CmiCmdletPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CmiCmdletPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\OnlyInPowerShellFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyInPowerShellFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WindowsRegistryLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WindowsRegistryLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202405\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202405\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202405\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', + 'RectorPrefix202405\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202405\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202405\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', + 'RectorPrefix202405\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202405\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202405\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202405\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202405\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202405\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', + 'RectorPrefix202405\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202405\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202405\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202405\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202405\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202405\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202405\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202405\\Nette\\Utils\\FileInfo' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileInfo.php', + 'RectorPrefix202405\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202405\\Nette\\Utils\\Finder' => __DIR__ . '/..' . '/nette/utils/src/Utils/Finder.php', + 'RectorPrefix202405\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202405\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202405\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202405\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202405\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageColor' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageColor.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ImageType' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageType.php', + 'RectorPrefix202405\\Nette\\Utils\\Iterables' => __DIR__ . '/..' . '/nette/utils/src/Utils/Iterables.php', + 'RectorPrefix202405\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202405\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202405\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202405\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202405\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202405\\Nette\\Utils\\ReflectionMethod' => __DIR__ . '/..' . '/nette/utils/src/Utils/ReflectionMethod.php', + 'RectorPrefix202405\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202405\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202405\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202405\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202405\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202405\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202405\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202405\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202405\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202405\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202405\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202405\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202405\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202405\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202405\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202405\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202405\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', + 'RectorPrefix202405\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', + 'RectorPrefix202405\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', + 'RectorPrefix202405\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202405\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', + 'RectorPrefix202405\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', + 'RectorPrefix202405\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202405\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202405\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202405\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', + 'RectorPrefix202405\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202405\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202405\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202405\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202405\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', + 'RectorPrefix202405\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', + 'RectorPrefix202405\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202405\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202405\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202405\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202405\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202405\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202405\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202405\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', + 'RectorPrefix202405\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202405\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202405\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202405\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', + 'RectorPrefix202405\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202405\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202405\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202405\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202405\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', + 'RectorPrefix202405\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202405\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', + 'RectorPrefix202405\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202405\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202405\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', + 'RectorPrefix202405\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202405\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202405\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202405\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202405\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202405\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', + 'RectorPrefix202405\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', + 'RectorPrefix202405\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202405\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', + 'RectorPrefix202405\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202405\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202405\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', + 'RectorPrefix202405\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202405\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202405\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', + 'RectorPrefix202405\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202405\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202405\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202405\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202405\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', + 'RectorPrefix202405\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202405\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202405\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202405\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202405\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202405\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', + 'RectorPrefix202405\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php', + 'RectorPrefix202405\\Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceCollectionInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceCollectionInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202405\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202405\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202405\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202405\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202405\\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', @@ -1286,6 +1296,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\CodeQuality\\Rector\\BooleanNot\\SimplifyDeMorganBinaryRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/BooleanNot/SimplifyDeMorganBinaryRector.php', 'Rector\\CodeQuality\\Rector\\Catch_\\ThrowWithPreviousExceptionRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Catch_/ThrowWithPreviousExceptionRector.php', 'Rector\\CodeQuality\\Rector\\ClassConstFetch\\ConvertStaticPrivateConstantToSelfRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassConstFetch/ConvertStaticPrivateConstantToSelfRector.php', + 'Rector\\CodeQuality\\Rector\\ClassMethod\\ExplicitReturnNullRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassMethod/ExplicitReturnNullRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\InlineArrayReturnAssignRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\LocallyCalledStaticMethodToNonStaticRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassMethod/LocallyCalledStaticMethodToNonStaticRector.php', 'Rector\\CodeQuality\\Rector\\ClassMethod\\OptionalParametersAfterRequiredRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector.php', @@ -1448,6 +1459,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\DeadCode\\NodeAnalyzer\\ExprUsedInNodeAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/ExprUsedInNodeAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\IsClassMethodUsedAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\PropertyWriteonlyAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/PropertyWriteonlyAnalyzer.php', + 'Rector\\DeadCode\\NodeAnalyzer\\SafeLeftTypeBooleanAndOrAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/SafeLeftTypeBooleanAndOrAnalyzer.php', 'Rector\\DeadCode\\NodeAnalyzer\\UsedVariableNameAnalyzer' => __DIR__ . '/../..' . '/rules/DeadCode/NodeAnalyzer/UsedVariableNameAnalyzer.php', 'Rector\\DeadCode\\NodeCollector\\UnusedParameterResolver' => __DIR__ . '/../..' . '/rules/DeadCode/NodeCollector/UnusedParameterResolver.php', 'Rector\\DeadCode\\NodeManipulator\\ControllerClassMethodManipulator' => __DIR__ . '/../..' . '/rules/DeadCode/NodeManipulator/ControllerClassMethodManipulator.php', @@ -1486,6 +1498,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\DeadCode\\Rector\\For_\\RemoveDeadLoopRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/For_/RemoveDeadLoopRector.php', 'Rector\\DeadCode\\Rector\\Foreach_\\RemoveUnusedForeachKeyRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Foreach_/RemoveUnusedForeachKeyRector.php', 'Rector\\DeadCode\\Rector\\FunctionLike\\RemoveDeadReturnRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/FunctionLike/RemoveDeadReturnRector.php', + 'Rector\\DeadCode\\Rector\\If_\\ReduceAlwaysFalseIfOrRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/If_/ReduceAlwaysFalseIfOrRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveAlwaysTrueIfConditionRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/If_/RemoveAlwaysTrueIfConditionRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveDeadInstanceOfRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php', 'Rector\\DeadCode\\Rector\\If_\\RemoveTypedPropertyDeadInstanceOfRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/If_/RemoveTypedPropertyDeadInstanceOfRector.php', @@ -1496,6 +1509,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\DeadCode\\Rector\\Plus\\RemoveDeadZeroAndOneOperationRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Plus/RemoveDeadZeroAndOneOperationRector.php', 'Rector\\DeadCode\\Rector\\PropertyProperty\\RemoveNullPropertyInitializationRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/PropertyProperty/RemoveNullPropertyInitializationRector.php', 'Rector\\DeadCode\\Rector\\Property\\RemoveUnusedPrivatePropertyRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Property/RemoveUnusedPrivatePropertyRector.php', + 'Rector\\DeadCode\\Rector\\Property\\RemoveUselessReadOnlyTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Property/RemoveUselessReadOnlyTagRector.php', 'Rector\\DeadCode\\Rector\\Property\\RemoveUselessVarTagRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Property/RemoveUselessVarTagRector.php', 'Rector\\DeadCode\\Rector\\Return_\\RemoveDeadConditionAboveReturnRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/Return_/RemoveDeadConditionAboveReturnRector.php', 'Rector\\DeadCode\\Rector\\StaticCall\\RemoveParentCallWithoutParentRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/StaticCall/RemoveParentCallWithoutParentRector.php', @@ -1526,7 +1540,10 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 '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\\InverseJoinColumnAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php', 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinColumnAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\JoinTableAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php', + 'Rector\\Doctrine\\CodeQuality\\AttributeTransformer\\PropertyAttributeTransformer\\ManyToManyAttributeTransformer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.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', @@ -1538,6 +1555,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.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_\\ExplicitRelationCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.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', @@ -1918,6 +1936,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\DataProviderArrayItemsNewLinedRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/DataProviderArrayItemsNewLinedRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\RemoveEmptyTestMethodRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/RemoveEmptyTestMethodRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\ClassMethod\\ReplaceTestAnnotationWithPrefixedFunctionRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/ClassMethod/ReplaceTestAnnotationWithPrefixedFunctionRector.php', + 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\AddCoversClassAttributeRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\AddSeeTestAnnotationRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddSeeTestAnnotationRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\ConstructClassMethodToSetUpTestCaseRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/ConstructClassMethodToSetUpTestCaseRector.php', 'Rector\\PHPUnit\\CodeQuality\\Rector\\Class_\\PreferPHPUnitThisCallRector' => __DIR__ . '/..' . '/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/PreferPHPUnitThisCallRector.php', @@ -2043,6 +2062,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Php72\\Rector\\FuncCall\\StringsAssertNakedRector' => __DIR__ . '/../..' . '/rules/Php72/Rector/FuncCall/StringsAssertNakedRector.php', 'Rector\\Php72\\Rector\\Unset_\\UnsetCastRector' => __DIR__ . '/../..' . '/rules/Php72/Rector/Unset_/UnsetCastRector.php', 'Rector\\Php72\\Rector\\While_\\WhileEachToForeachRector' => __DIR__ . '/../..' . '/rules/Php72/Rector/While_/WhileEachToForeachRector.php', + 'Rector\\Php72\\ValueObject\\ListAndEach' => __DIR__ . '/../..' . '/rules/Php72/ValueObject/ListAndEach.php', 'Rector\\Php73\\Rector\\BooleanOr\\IsCountableRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/BooleanOr/IsCountableRector.php', 'Rector\\Php73\\Rector\\ConstFetch\\SensitiveConstantNameRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php', 'Rector\\Php73\\Rector\\FuncCall\\ArrayKeyFirstLastRector' => __DIR__ . '/../..' . '/rules/Php73/Rector/FuncCall/ArrayKeyFirstLastRector.php', @@ -2134,12 +2154,14 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Php81\\Rector\\MethodCall\\SpatieEnumMethodCallToEnumConstRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\Property\\ReadOnlyPropertyRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php', 'Rector\\Php82\\Rector\\Class_\\ReadOnlyClassRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/Class_/ReadOnlyClassRector.php', + 'Rector\\Php82\\Rector\\Encapsed\\VariableInStringInterpolationFixerRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/Encapsed/VariableInStringInterpolationFixerRector.php', 'Rector\\Php82\\Rector\\FuncCall\\Utf8DecodeEncodeToMbConvertEncodingRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/FuncCall/Utf8DecodeEncodeToMbConvertEncodingRector.php', 'Rector\\Php82\\Rector\\New_\\FilesystemIteratorSkipDotsRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php', 'Rector\\Php82\\Rector\\Param\\AddSensitiveParameterAttributeRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php', 'Rector\\Php83\\Rector\\ClassConst\\AddTypeToConstRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php', 'Rector\\Php83\\Rector\\ClassMethod\\AddOverrideAttributeToOverriddenMethodsRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php', 'Rector\\Php83\\Rector\\FuncCall\\CombineHostPortLdapUriRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/FuncCall/CombineHostPortLdapUriRector.php', + 'Rector\\Php84\\Rector\\Param\\ExplicitNullableParamTypeRector' => __DIR__ . '/../..' . '/rules/Php84/Rector/Param/ExplicitNullableParamTypeRector.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper' => __DIR__ . '/../..' . '/src/PhpAttribute/AnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayAnnotationToAttributeMapper' => __DIR__ . '/../..' . '/src/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayItemNodeAnnotationToAttributeMapper' => __DIR__ . '/../..' . '/src/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php', @@ -2504,6 +2526,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Transform\\NodeAnalyzer\\FuncCallStaticCallToMethodCallAnalyzer' => __DIR__ . '/../..' . '/rules/Transform/NodeAnalyzer/FuncCallStaticCallToMethodCallAnalyzer.php', 'Rector\\Transform\\NodeFactory\\PropertyFetchFactory' => __DIR__ . '/../..' . '/rules/Transform/NodeFactory/PropertyFetchFactory.php', 'Rector\\Transform\\NodeTypeAnalyzer\\TypeProvidingExprFromClassResolver' => __DIR__ . '/../..' . '/rules/Transform/NodeTypeAnalyzer/TypeProvidingExprFromClassResolver.php', + 'Rector\\Transform\\Rector\\ArrayDimFetch\\ArrayDimFetchToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php', 'Rector\\Transform\\Rector\\Assign\\PropertyAssignToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php', 'Rector\\Transform\\Rector\\Assign\\PropertyFetchToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php', 'Rector\\Transform\\Rector\\Attribute\\AttributeKeyToClassConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php', @@ -2528,6 +2551,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Transform\\Rector\\StaticCall\\StaticCallToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php', 'Rector\\Transform\\Rector\\StaticCall\\StaticCallToNewRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php', 'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/String_/StringToClassConstantRector.php', + 'Rector\\Transform\\ValueObject\\ArrayDimFetchToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.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', @@ -2559,6 +2583,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\TypeDeclaration\\NodeAnalyzer\\CallerParamMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/CallerParamMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodAndPropertyAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodParamTypeCompleter' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php', + 'Rector\\TypeDeclaration\\NodeAnalyzer\\DeclareStrictTypeFinder' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/DeclareStrictTypeFinder.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\NeverFuncCallAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/NeverFuncCallAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ParamAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ParamAnalyzer.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnAnalyzer.php', @@ -2619,6 +2644,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictSetUpRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php', 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\DeclareStrictTypesRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php', + 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\IncreaseDeclareStrictTypesRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/IncreaseDeclareStrictTypesRector.php', 'Rector\\TypeDeclaration\\Rector\\While_\\WhileNullableToInstanceofRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/While_/WhileNullableToInstanceofRector.php', 'Rector\\TypeDeclaration\\TypeAnalyzer\\AlwaysStrictBoolExprAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/TypeAnalyzer/AlwaysStrictBoolExprAnalyzer.php', 'Rector\\TypeDeclaration\\TypeAnalyzer\\AlwaysStrictScalarExprAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/TypeAnalyzer/AlwaysStrictScalarExprAnalyzer.php', @@ -2703,9 +2729,9 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit2d887a2f87c676eb32b3e04612865e54::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit70e3025dac7e7555f69a9b4ca9e3dfde::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/rector/rector/vendor/composer/installed.json b/vendor/rector/rector/vendor/composer/installed.json index e9d27ab4c..69c383478 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": { - "RectorPrefix202403\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202405\\Clue\\React\\NDJson\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -69,17 +69,17 @@ }, { "name": "composer\/pcre", - "version": "3.1.2", - "version_normalized": "3.1.2.0", + "version": "3.1.3", + "version_normalized": "3.1.3.0", "source": { "type": "git", "url": "https:\/\/github.com\/composer\/pcre.git", - "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/composer\/pcre\/zipball\/4775f35b2d70865807c89d32c8e7385b86eb0ace", - "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace", + "url": "https:\/\/api.github.com\/repos\/composer\/pcre\/zipball\/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -90,7 +90,7 @@ "phpstan\/phpstan-strict-rules": "^1.1", "symfony\/phpunit-bridge": "^5" }, - "time": "2024-03-07T15:38:35+00:00", + "time": "2024-03-19T10:26:25+00:00", "type": "library", "extra": { "branch-alias": { @@ -100,7 +100,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Composer\\Pcre\\": "src" + "RectorPrefix202405\\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.2" + "source": "https:\/\/github.com\/composer\/pcre\/tree\/3.1.3" }, "funding": [ { @@ -173,7 +173,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Composer\\Semver\\": "src" + "RectorPrefix202405\\Composer\\Semver\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -227,17 +227,17 @@ }, { "name": "composer\/xdebug-handler", - "version": "3.0.3", - "version_normalized": "3.0.3.0", + "version": "3.0.5", + "version_normalized": "3.0.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/composer\/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/composer\/xdebug-handler\/zipball\/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https:\/\/api.github.com\/repos\/composer\/xdebug-handler\/zipball\/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -248,14 +248,14 @@ "require-dev": { "phpstan\/phpstan": "^1.0", "phpstan\/phpstan-strict-rules": "^1.1", - "symfony\/phpunit-bridge": "^6.0" + "phpunit\/phpunit": "^8.5 || ^9.6 || ^10.5" }, - "time": "2022-02-25T21:32:43+00:00", + "time": "2024-05-06T16:37:16+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202405\\Composer\\XdebugHandler\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -274,9 +274,9 @@ "performance" ], "support": { - "irc": "irc:\/\/irc.freenode.org\/composer", + "irc": "ircs:\/\/irc.libera.chat:6697\/composer", "issues": "https:\/\/github.com\/composer\/xdebug-handler\/issues", - "source": "https:\/\/github.com\/composer\/xdebug-handler\/tree\/3.0.3" + "source": "https:\/\/github.com\/composer\/xdebug-handler\/tree\/3.0.5" }, "funding": [ { @@ -325,7 +325,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202405\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -414,7 +414,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Evenement\\": "src\/" + "RectorPrefix202405\\Evenement\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -472,7 +472,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Fidry\\CpuCoreCounter\\": "src\/" + "RectorPrefix202405\\Fidry\\CpuCoreCounter\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -504,8 +504,8 @@ }, { "name": "illuminate\/container", - "version": "v10.48.2", - "version_normalized": "10.48.2.0", + "version": "v10.48.10", + "version_normalized": "10.48.10.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/container.git", @@ -532,13 +532,13 @@ "dev-master": "10.x-dev" }, "patches_applied": [ - "https:\/\/raw.githubusercontent.com\/rectorphp\/vendor-patches\/main\/patches\/\/illuminate-container-container-php.patch" + "https:\/\/raw.githubusercontent.com\/rectorphp\/vendor-patches\/main\/patches\/illuminate-container-container-php.patch" ] }, "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Illuminate\\Container\\": "" + "RectorPrefix202405\\Illuminate\\Container\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -561,8 +561,8 @@ }, { "name": "illuminate\/contracts", - "version": "v10.48.2", - "version_normalized": "10.48.2.0", + "version": "v10.48.10", + "version_normalized": "10.48.10.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/contracts.git", @@ -589,7 +589,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Illuminate\\Contracts\\": "" + "RectorPrefix202405\\Illuminate\\Contracts\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -612,30 +612,31 @@ }, { "name": "nette\/utils", - "version": "v3.2.10", - "version_normalized": "3.2.10.0", + "version": "v4.0.4", + "version_normalized": "4.0.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/nette\/utils.git", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nette\/utils\/zipball\/a4175c62652f2300c8017fb7e640f9ccb11648d2", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2", + "url": "https:\/\/api.github.com\/repos\/nette\/utils\/zipball\/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { - "php": ">=7.2 <8.4" + "php": ">=8.0 <8.4" }, "conflict": { - "nette\/di": "<3.0.6" + "nette\/finder": "<3", + "nette\/schema": "<1.2.2" }, "require-dev": { "jetbrains\/phpstorm-attributes": "dev-master", - "nette\/tester": "~2.0", + "nette\/tester": "^2.5", "phpstan\/phpstan": "^1.0", - "tracy\/tracy": "^2.3" + "tracy\/tracy": "^2.9" }, "suggest": { "ext-gd": "to use Image", @@ -643,14 +644,13 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, - "time": "2023-07-30T15:38:18+00:00", + "time": "2024-01-17T16:50:36+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "4.0-dev" } }, "installation-source": "dist", @@ -695,34 +695,34 @@ ], "support": { "issues": "https:\/\/github.com\/nette\/utils\/issues", - "source": "https:\/\/github.com\/nette\/utils\/tree\/v3.2.10" + "source": "https:\/\/github.com\/nette\/utils\/tree\/v4.0.4" }, "install-path": "..\/nette\/utils" }, { "name": "nikic\/php-parser", - "version": "v4.18.0", - "version_normalized": "4.18.0.0", + "version": "v4.19.1", + "version_normalized": "4.19.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/nikic\/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell\/php-yacc": "^0.0.7", "phpunit\/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "time": "2023-12-10T21:03:43+00:00", + "time": "2024-03-17T08:10:35+00:00", "bin": [ "bin\/php-parse" ], @@ -771,7 +771,7 @@ ], "support": { "issues": "https:\/\/github.com\/nikic\/PHP-Parser\/issues", - "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.18.0" + "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.19.1" }, "install-path": "..\/nikic\/php-parser" }, @@ -807,7 +807,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202405\\OndraM\\CiDetector\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -858,17 +858,17 @@ }, { "name": "phpstan\/phpdoc-parser", - "version": "1.26.0", - "version_normalized": "1.26.0.0", + "version": "1.29.0", + "version_normalized": "1.29.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227" + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/231e3186624c03d7e7c890ec662b81e6b0405227", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/536889f2b340489d328f5ffb7b02bb6b183ddedc", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", "shasum": "" }, "require": { @@ -885,7 +885,7 @@ "phpunit\/phpunit": "^9.5", "symfony\/process": "^5.2" }, - "time": "2024-02-23T16:05:55+00:00", + "time": "2024-05-06T12:04:23+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.26.0" + "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.29.0" }, "install-path": "..\/phpstan\/phpdoc-parser" }, @@ -934,7 +934,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Psr\\Container\\": "src\/" + "RectorPrefix202405\\Psr\\Container\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -990,7 +990,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Psr\\Log\\": "src" + "RectorPrefix202405\\Psr\\Log\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1043,7 +1043,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Psr\\SimpleCache\\": "src\/" + "RectorPrefix202405\\Psr\\SimpleCache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1096,7 +1096,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\Cache\\": "src\/" + "RectorPrefix202405\\React\\Cache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1175,7 +1175,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\ChildProcess\\": "src" + "RectorPrefix202405\\React\\ChildProcess\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1257,7 +1257,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\Dns\\": "src\/" + "RectorPrefix202405\\React\\Dns\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1334,7 +1334,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\EventLoop\\": "src\/" + "RectorPrefix202405\\React\\EventLoop\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1409,7 +1409,7 @@ "src\/functions_include.php" ], "psr-4": { - "RectorPrefix202403\\React\\Promise\\": "src\/" + "RectorPrefix202405\\React\\Promise\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1489,7 +1489,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\Socket\\": "src\/" + "RectorPrefix202405\\React\\Socket\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1567,7 +1567,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\React\\Stream\\": "src\/" + "RectorPrefix202405\\React\\Stream\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1679,12 +1679,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "a1d50bb1b3d158961293ef0828fffb1058cdb32f" + "reference": "364e273976d869506f40126ea6b69330df69a45e" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/a1d50bb1b3d158961293ef0828fffb1058cdb32f", - "reference": "a1d50bb1b3d158961293ef0828fffb1058cdb32f", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/364e273976d869506f40126ea6b69330df69a45e", + "reference": "364e273976d869506f40126ea6b69330df69a45e", "shasum": "" }, "require": { @@ -1705,11 +1705,11 @@ "symplify\/phpstan-rules": "^11.4", "symplify\/rule-doc-generator": "^12.1", "symplify\/vendor-patches": "^11.3", - "tomasvotruba\/class-leak": "^0.2.8", + "tomasvotruba\/class-leak": "^0.2.13", "tomasvotruba\/unused-public": "^0.3", "tracy\/tracy": "^2.10" }, - "time": "2024-03-07T14:21:07+00:00", + "time": "2024-04-29T12:43:39+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": "9a6a85b2b37c51a5c83414269dc2aab09650967f" + "reference": "4228a7305efbd92687cf7f6cbf7b683a28412eb1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/9a6a85b2b37c51a5c83414269dc2aab09650967f", - "reference": "9a6a85b2b37c51a5c83414269dc2aab09650967f", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/4228a7305efbd92687cf7f6cbf7b683a28412eb1", + "reference": "4228a7305efbd92687cf7f6cbf7b683a28412eb1", "shasum": "" }, "require": { @@ -1766,10 +1766,10 @@ "symplify\/phpstan-rules": "^12.4", "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2", + "tomasvotruba\/class-leak": "^0.2.13", "tracy\/tracy": "^2.10" }, - "time": "2024-03-08T06:34:42+00:00", + "time": "2024-04-29T12:46:18+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": "6845db43ccd69ef990d399ff845a53ad66fa8085" + "reference": "d075c4f212255cbdeeb8ff837dd41762fbfce931" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/6845db43ccd69ef990d399ff845a53ad66fa8085", - "reference": "6845db43ccd69ef990d399ff845a53ad66fa8085", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/d075c4f212255cbdeeb8ff837dd41762fbfce931", + "reference": "d075c4f212255cbdeeb8ff837dd41762fbfce931", "shasum": "" }, "require": { @@ -1827,10 +1827,10 @@ "symplify\/phpstan-rules": "^12.0", "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2", + "tomasvotruba\/class-leak": "^0.2.13", "tracy\/tracy": "^2.10" }, - "time": "2024-03-08T15:37:45+00:00", + "time": "2024-05-02T19:17:47+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1866,12 +1866,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "c8b64135bdaaec629f2abd81387485cf3a627a3f" + "reference": "040014c3af8a300dadfc1d9a0f09043572dfd79b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/c8b64135bdaaec629f2abd81387485cf3a627a3f", - "reference": "c8b64135bdaaec629f2abd81387485cf3a627a3f", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/040014c3af8a300dadfc1d9a0f09043572dfd79b", + "reference": "040014c3af8a300dadfc1d9a0f09043572dfd79b", "shasum": "" }, "require": { @@ -1897,10 +1897,10 @@ "symplify\/phpstan-rules": "^12.0", "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2.6", + "tomasvotruba\/class-leak": "^0.2.13", "tracy\/tracy": "^2.10" }, - "time": "2024-03-12T11:45:55+00:00", + "time": "2024-04-29T12:43:48+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1998,17 +1998,17 @@ }, { "name": "symfony\/console", - "version": "v6.4.4", - "version_normalized": "6.4.4.0", + "version": "v6.4.7", + "version_normalized": "6.4.7.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/0d9e4eb5ad413075624378f474c4167ea202de78", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", "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-02-22T20:27:10+00:00", + "time": "2024-04-18T09:22:46+00:00", "type": "library", "extra": { "patches_applied": [ @@ -2051,7 +2051,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Console\\": "" + "RectorPrefix202405\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2080,7 +2080,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.4" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.7" }, "funding": [ { @@ -2100,27 +2100,27 @@ }, { "name": "symfony\/deprecation-contracts", - "version": "v3.4.0", - "version_normalized": "3.4.0.0", + "version": "v3.5.0", + "version_normalized": "3.5.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/deprecation-contracts\/zipball\/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https:\/\/api.github.com\/repos\/symfony\/deprecation-contracts\/zipball\/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2023-05-23T14:45:45+00:00", + "time": "2024-04-18T09:32:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony\/contracts", @@ -2150,7 +2150,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/deprecation-contracts\/tree\/v3.4.0" + "source": "https:\/\/github.com\/symfony\/deprecation-contracts\/tree\/v3.5.0" }, "funding": [ { @@ -2170,30 +2170,31 @@ }, { "name": "symfony\/filesystem", - "version": "v6.4.3", - "version_normalized": "6.4.3.0", + "version": "v6.4.7", + "version_normalized": "6.4.7.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/filesystem.git", - "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb" + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb", - "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb", + "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/78dde75f8f6dbbca4ec436a4b0087f7af02076d4", + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4", "shasum": "" }, "require": { "php": ">=8.1", "symfony\/polyfill-ctype": "~1.8", - "symfony\/polyfill-mbstring": "~1.8" + "symfony\/polyfill-mbstring": "~1.8", + "symfony\/process": "^5.4|^6.4" }, - "time": "2024-01-23T14:51:35+00:00", + "time": "2024-04-18T09:22:46+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202405\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2216,7 +2217,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v6.4.3" + "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v6.4.7" }, "funding": [ { @@ -2236,17 +2237,17 @@ }, { "name": "symfony\/finder", - "version": "v6.4.0", - "version_normalized": "6.4.0.0", + "version": "v6.4.7", + "version_normalized": "6.4.7.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/finder.git", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/11d736e97f116ac375a81f96e662911a34cd50ce", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", + "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/511c48990be17358c23bf45c5d71ab85d40fb764", + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764", "shasum": "" }, "require": { @@ -2255,12 +2256,12 @@ "require-dev": { "symfony\/filesystem": "^6.0|^7.0" }, - "time": "2023-10-31T17:30:12+00:00", + "time": "2024-04-23T10:36:43+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202405\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2283,7 +2284,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/finder\/tree\/v6.4.0" + "source": "https:\/\/github.com\/symfony\/finder\/tree\/v6.4.7" }, "funding": [ { @@ -2386,28 +2387,28 @@ }, { "name": "symfony\/process", - "version": "v6.4.4", - "version_normalized": "6.4.4.0", + "version": "v6.4.7", + "version_normalized": "6.4.7.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "710e27879e9be3395de2b98da3f52a946039f297" + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/710e27879e9be3395de2b98da3f52a946039f297", - "reference": "710e27879e9be3395de2b98da3f52a946039f297", + "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/cdb1c81c145fd5aa9b0038bab694035020943381", + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2024-02-20T12:31:00+00:00", + "time": "2024-04-18T09:22:46+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Process\\": "" + "RectorPrefix202405\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2430,7 +2431,7 @@ "description": "Executes commands in sub-processes", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.4.4" + "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.4.7" }, "funding": [ { @@ -2450,31 +2451,32 @@ }, { "name": "symfony\/service-contracts", - "version": "v3.4.1", - "version_normalized": "3.4.1.0", + "version": "v3.5.0", + "version_normalized": "3.5.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr\/container": "^1.1|^2.0" + "psr\/container": "^1.1|^2.0", + "symfony\/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "time": "2023-12-26T14:02:43+00:00", + "time": "2024-04-18T09:32:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony\/contracts", @@ -2484,7 +2486,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202405\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" @@ -2515,7 +2517,7 @@ "standards" ], "support": { - "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.4.1" + "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.5.0" }, "funding": [ { @@ -2535,17 +2537,17 @@ }, { "name": "symfony\/yaml", - "version": "v6.4.3", - "version_normalized": "6.4.3.0", + "version": "v6.4.7", + "version_normalized": "6.4.7.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/yaml.git", - "reference": "d75715985f0f94f978e3a8fa42533e10db921b90" + "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/yaml\/zipball\/d75715985f0f94f978e3a8fa42533e10db921b90", - "reference": "d75715985f0f94f978e3a8fa42533e10db921b90", + "url": "https:\/\/api.github.com\/repos\/symfony\/yaml\/zipball\/53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", + "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", "shasum": "" }, "require": { @@ -2559,7 +2561,7 @@ "require-dev": { "symfony\/console": "^5.4|^6.0|^7.0" }, - "time": "2024-01-23T14:51:35+00:00", + "time": "2024-04-28T10:28:08+00:00", "bin": [ "Resources\/bin\/yaml-lint" ], @@ -2567,7 +2569,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Yaml\\": "" + "RectorPrefix202405\\Symfony\\Component\\Yaml\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2590,7 +2592,7 @@ "description": "Loads and dumps YAML files", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/yaml\/tree\/v6.4.3" + "source": "https:\/\/github.com\/symfony\/yaml\/tree\/v6.4.7" }, "funding": [ { @@ -2644,7 +2646,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202405\\Symplify\\EasyParallel\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -2670,21 +2672,20 @@ }, { "name": "symplify\/rule-doc-generator-contracts", - "version": "11.1.26", - "version_normalized": "11.1.26.0", + "version": "11.2.0", + "version_normalized": "11.2.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symplify\/rule-doc-generator-contracts.git", - "reference": "3e66b3fec678b74a076395ec629d535fb95293b5" + "reference": "479cfcfd46047f80624aba931d9789e50475b5c6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symplify\/rule-doc-generator-contracts\/zipball\/3e66b3fec678b74a076395ec629d535fb95293b5", - "reference": "3e66b3fec678b74a076395ec629d535fb95293b5", + "url": "https:\/\/api.github.com\/repos\/symplify\/rule-doc-generator-contracts\/zipball\/479cfcfd46047f80624aba931d9789e50475b5c6", + "reference": "479cfcfd46047f80624aba931d9789e50475b5c6", "shasum": "" }, "require": { - "nette\/utils": "^3.2", "php": ">=8.1" }, "require-dev": { @@ -2698,7 +2699,7 @@ "symplify\/phpstan-rules": "11.2.3.72", "tomasvotruba\/unused-public": "^0.0.34" }, - "time": "2023-02-07T07:16:13+00:00", + "time": "2024-03-18T22:02:54+00:00", "type": "library", "extra": { "branch-alias": { @@ -2717,7 +2718,7 @@ ], "description": "Contracts for production code of RuleDocGenerator", "support": { - "source": "https:\/\/github.com\/symplify\/rule-doc-generator-contracts\/tree\/11.1.26" + "source": "https:\/\/github.com\/symplify\/rule-doc-generator-contracts\/tree\/11.2.0" }, "funding": [ { @@ -2767,7 +2768,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202403\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202405\\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 098235f43..6e1a45a09 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.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))); +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.3', 'version' => '3.1.3.0', 'reference' => '5b16e25a5355f1f3afdfc2f954a0a80aec4826a8', '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.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', '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.10', 'version' => '10.48.10.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.48.10', 'version' => '10.48.10.0', 'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.4', 'version' => '4.0.4.0', 'reference' => 'd3ad0aa3b9f934602cb3e3902ebccf10be34d218', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.19.1', 'version' => '4.19.1.0', 'reference' => '4e1b88d21c69391150ace211e9eaf05810858d0b', '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.29.0', 'version' => '1.29.0.0', 'reference' => '536889f2b340489d328f5ffb7b02bb6b183ddedc', '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' => '364e273976d869506f40126ea6b69330df69a45e', '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' => '4228a7305efbd92687cf7f6cbf7b683a28412eb1', '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' => 'd075c4f212255cbdeeb8ff837dd41762fbfce931', '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' => '040014c3af8a300dadfc1d9a0f09043572dfd79b', '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.7', 'version' => '6.4.7.0', 'reference' => 'a170e64ae10d00ba89e2acbb590dc2e54da8ad8f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.7', 'version' => '6.4.7.0', 'reference' => '78dde75f8f6dbbca4ec436a4b0087f7af02076d4', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.7', 'version' => '6.4.7.0', 'reference' => '511c48990be17358c23bf45c5d71ab85d40fb764', '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.7', 'version' => '6.4.7.0', 'reference' => 'cdb1c81c145fd5aa9b0038bab694035020943381', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f', '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.7', 'version' => '6.4.7.0', 'reference' => '53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0', '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.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', '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 b4633ae8f..ddda47e0e 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": { - "RectorPrefix202403\\Composer\\Pcre\\": "src" + "RectorPrefix202405\\Composer\\Pcre\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Composer\\Pcre\\": "tests" + "RectorPrefix202405\\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 22a3c9ce4..998c9339f 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\Composer\Pcre; final class MatchAllResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index f3413dc13..ba10da5b4 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\Composer\Pcre; final class MatchAllStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php index b53591355..6b57bb51e 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 24b5974db..2b5bef515 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 c0013649f..adacd26c9 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 0698717b0..be73e44dc 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 c7c529288..1e0889945 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 bf33fd261..b5e30cb43 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\Composer\Pcre; class Preg { @@ -132,7 +132,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)) { @@ -155,7 +155,7 @@ public static function replace($pattern, $replacement, $subject, int $limit = -1 * * @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)) { @@ -194,7 +194,7 @@ public static function replaceCallbackStrictGroups(string $pattern, callable $re * * @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)) { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php index 2d1a801ce..ce14908e7 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\Composer\Pcre; class Regex { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php index 7fe064111..ed12f9e2e 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 89fec68fa..00b58a210 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 RectorPrefix202403\Composer\Pcre; +namespace RectorPrefix202405\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 305ff703c..8adef73de 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": { - "RectorPrefix202403\\Composer\\Semver\\": "src" + "RectorPrefix202405\\Composer\\Semver\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Composer\\Semver\\": "tests" + "RectorPrefix202405\\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 11379eb66..275307097 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\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 618a8c4fb..799c2c163 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -use RectorPrefix202403\Composer\Semver\Constraint\Constraint; -use RectorPrefix202403\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202405\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\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 c0d6b6e76..cd4d0d74b 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 22cd40488..40e35a342 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 53c004a7e..2fbac32dc 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 8a1cc035c..c247829eb 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 7b8fa67f9..819ad64d6 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 c0bff7fda..aeb0e8f54 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 RectorPrefix202403\Composer\Semver\Constraint; +namespace RectorPrefix202405\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 ec6506da8..f67d79424 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\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 240426964..672bdf0df 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -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; +use RectorPrefix202405\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202405\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202405\Composer\Semver\Constraint\MatchNoneConstraint; +use RectorPrefix202405\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 a8f8330fa..cdbdcfddd 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\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 6c3c97dc6..6aa06ae5e 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 RectorPrefix202403\Composer\Semver; +namespace RectorPrefix202405\Composer\Semver; -use RectorPrefix202403\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202403\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202403\Composer\Semver\Constraint\MultiConstraint; -use RectorPrefix202403\Composer\Semver\Constraint\Constraint; +use RectorPrefix202405\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202405\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202405\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202405\Composer\Semver\Constraint\Constraint; /** * Version parser. * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/README.md b/vendor/rector/rector/vendor/composer/xdebug-handler/README.md index 56618fc14..f7f581ac2 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/README.md +++ b/vendor/rector/rector/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/rector/rector/vendor/composer/xdebug-handler/composer.json b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json index 222236788..15ef001d7 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json +++ b/vendor/rector/rector/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,22 +23,22 @@ "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": { - "RectorPrefix202403\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202405\\Composer\\XdebugHandler\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Composer\\XdebugHandler\\Tests\\": "tests" + "RectorPrefix202405\\Composer\\XdebugHandler\\Tests\\": "tests" } }, "scripts": { - "test": "@php vendor\/bin\/simple-phpunit", + "test": "@php vendor\/bin\/phpunit", "phpstan": "@php vendor\/bin\/phpstan analyse" } } \ No newline at end of file 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 f00ea71e1..4c58e9aee 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 RectorPrefix202403\Composer\XdebugHandler; +namespace RectorPrefix202405\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 5a663fd9b..645c436e6 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 RectorPrefix202403\Composer\XdebugHandler; +namespace RectorPrefix202405\Composer\XdebugHandler; -use RectorPrefix202403\Composer\Pcre\Preg; +use RectorPrefix202405\Composer\Pcre\Preg; /** * Process utility functions * @@ -36,6 +36,7 @@ public static function escape(string $arg, bool $meta = \true, bool $module = \f } $quote = \strpbrk($arg, " \t") !== \false || $arg === ''; $arg = Preg::replace('/(\\\\*)"/', '$1$1\\"', $arg, -1, $dquotes); + $dquotes = (bool) $dquotes; if ($meta) { $meta = $dquotes || Preg::isMatch('/%[^%]+%/', $arg); if (!$meta) { 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 9ba9c3e40..7e5358e02 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 RectorPrefix202403\Composer\XdebugHandler; +namespace RectorPrefix202405\Composer\XdebugHandler; -use RectorPrefix202403\Psr\Log\LoggerInterface; -use RectorPrefix202403\Psr\Log\LogLevel; +use RectorPrefix202405\Psr\Log\LoggerInterface; +use RectorPrefix202405\Psr\Log\LogLevel; /** * @author John Stevenson * @internal @@ -69,12 +69,32 @@ 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); } } /** @@ -154,7 +174,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/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php index 599113d20..af9a07697 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 RectorPrefix202403\Composer\XdebugHandler; +namespace RectorPrefix202405\Composer\XdebugHandler; -use RectorPrefix202403\Composer\Pcre\Preg; -use RectorPrefix202403\Psr\Log\LoggerInterface; +use RectorPrefix202405\Composer\Pcre\Preg; +use RectorPrefix202405\Psr\Log\LoggerInterface; /** * @author John Stevenson * @@ -116,8 +116,8 @@ public function check() : void if (!(bool) $envArgs[0] && $this->requiresRestart(self::$xdebugActive)) { // Restart required $this->notify(Status::RESTART); - if ($this->prepareRestart()) { - $command = $this->getCommand(); + $command = $this->prepareRestart(); + if ($command !== null) { $this->restart($command); } return; @@ -147,9 +147,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 { @@ -212,7 +212,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 { @@ -221,22 +221,24 @@ 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(\is_array($cmd) ? \implode(' ', \array_map('escapeshellarg', $cmd)) : $cmd, [], $pipes); if (\is_resource($process)) { $exitCode = \proc_close($process); @@ -256,46 +258,63 @@ private function doRestart(array $command) : void exit($exitCode); } /** - * 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 ($error !== null) { - $this->notify(Status::ERROR, $error); - } - return $error === null; + if (!$this->writeTmpIni($tmpfile, $iniFiles, $error)) { + $this->notify(Status::ERROR, $error ?? $iniError); + @\unlink($tmpfile); + return null; + } + if (!$this->setEnvironment($scannedInis, $iniFiles, $tmpfile)) { + $this->notify(Status::ERROR, 'Unable to set environment variables'); + @\unlink($tmpfile); + return 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); @@ -310,7 +329,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; @@ -325,31 +344,32 @@ private function writeTmpIni(array $iniFiles, string $tmpDir, ?string &$error) : $content .= $this->mergeLoadedConfig($loaded, $config); // 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); } /** * Returns true if the restart environment variables were set * * 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'); @@ -359,7 +379,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; } } @@ -398,28 +418,30 @@ private function mergeLoadedConfig(array $loadedConfig, array $iniConfig) : stri } /** * 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; } // Use a backtrace to resolve Phar and chdir issues. $trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS); $main = \end($trace); if ($main !== \false && isset($main['file'])) { - return \file_exists($this->script = $main['file']); + return \file_exists($mainScript = $main['file']); } return \false; } /** * Adds restart settings to the environment * - * @param string[] $envArgs + * @param non-empty-list $envArgs */ private function setEnvRestartSettings(array $envArgs) : void { @@ -449,6 +471,10 @@ private function checkConfiguration(?string &$info) : bool $info = 'proc_open function is disabled'; return \false; } + if (!\file_exists(\PHP_BINARY)) { + $info = 'PHP_BINARY is not available'; + return \false; + } if (\extension_loaded('uopz') && !(bool) \ini_get('uopz.disable')) { // uopz works at opcode level and disables exit calls if (\function_exists('uopz_allow_exit')) { @@ -498,6 +524,24 @@ 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/rector/rector/vendor/doctrine/inflector/composer.json b/vendor/rector/rector/vendor/doctrine/inflector/composer.json index 5893cfc46..0f31ef5b8 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": { - "RectorPrefix202403\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202405\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" + "RectorPrefix202405\\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 8b085a512..bbd7d7970 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])/' => 'RectorPrefix202403\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202403\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; + $replacements = ['/\\W/' => ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202405\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202405\\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 4fe6644eb..fc2388b13 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 @@ =7.2 <8.4" + "php": ">=8.0 <8.4" }, "require-dev": { - "nette\/tester": "~2.0", - "tracy\/tracy": "^2.3", + "nette\/tester": "^2.5", + "tracy\/tracy": "^2.9", "phpstan\/phpstan": "^1.0", "jetbrains\/phpstorm-attributes": "dev-master" }, "conflict": { - "nette\/di": "<3.0.6" + "nette\/finder": "<3", + "nette\/schema": "<1.2.2" }, "suggest": { "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", "ext-json": "to use Nette\\Utils\\Json", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-mbstring": "to use Strings::lower() etc...", - "ext-xml": "to use Strings::length() etc. when mbstring is not available", "ext-gd": "to use Image", "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, @@ -66,7 +66,7 @@ }, "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "4.0-dev" } } } \ No newline at end of file diff --git a/vendor/rector/rector/vendor/nette/utils/readme.md b/vendor/rector/rector/vendor/nette/utils/readme.md index 5317b8e65..530915f8f 100644 --- a/vendor/rector/rector/vendor/nette/utils/readme.md +++ b/vendor/rector/rector/vendor/nette/utils/readme.md @@ -17,6 +17,7 @@ In package nette/utils you will find a set of [useful classes](https://doc.nette - [Callback](https://doc.nette.org/utils/callback) - PHP callbacks - [Date and Time](https://doc.nette.org/utils/datetime) - modify times and dates - [Filesystem](https://doc.nette.org/utils/filesystem) - copying, renaming, … +- [Finder](https://doc.nette.org/utils/finder) - finds files and directories - [Helper Functions](https://doc.nette.org/utils/helpers) - [HTML elements](https://doc.nette.org/utils/html-elements) - generate HTML - [Images](https://doc.nette.org/utils/images) - crop, resize, rotate images @@ -39,6 +40,7 @@ The recommended way to install is via Composer: composer require nette/utils ``` +- Nette Utils 4.0 is compatible with PHP 8.0 to 8.3 - Nette Utils 3.2 is compatible with PHP 7.2 to 8.3 - Nette Utils 3.1 is compatible with PHP 7.1 to 8.0 - Nette Utils 3.0 is compatible with PHP 7.1 to 8.0 diff --git a/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php b/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php index 795ddb2d0..a0b7cdafe 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php +++ b/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette; +namespace RectorPrefix202405\Nette; interface HtmlStringable { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php b/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php index c53da5b86..a8365747a 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Iterators; +namespace RectorPrefix202405\Nette\Iterators; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Smarter caching iterator. * @@ -23,7 +23,9 @@ class CachingIterator extends \CachingIterator implements \Countable { use Nette\SmartObject; - /** @var int */ + /** + * @var int + */ private $counter = 0; public function __construct($iterator) { @@ -38,7 +40,7 @@ public function __construct($iterator) } elseif ($iterator instanceof \Traversable) { $iterator = new \IteratorIterator($iterator); } else { - throw new Nette\InvalidArgumentException(\sprintf('Invalid argument passed to %s; array or Traversable expected, %s given.', self::class, \is_object($iterator) ? \get_class($iterator) : \gettype($iterator))); + throw new Nette\InvalidArgumentException(\sprintf('Invalid argument passed to %s; array or Traversable expected, %s given.', self::class, \get_debug_type($iterator))); } parent::__construct($iterator, 0); } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php b/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php index 72dec2c3b..c7b52c028 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Iterators; +namespace RectorPrefix202405\Nette\Iterators; /** * Applies the callback to the elements of the inner iterator. @@ -19,7 +19,9 @@ public function __construct(\Traversable $iterator, callable $callback) parent::__construct($iterator); $this->callback = $callback; } - #[\ReturnTypeWillChange] + /** + * @return mixed + */ public function current() { return ($this->callback)(parent::current(), parent::key()); diff --git a/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php b/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php index 1f7b89ef2..5692e15c5 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php +++ b/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette; +namespace RectorPrefix202405\Nette; -use RectorPrefix202403\Nette\Utils\ObjectHelpers; +use RectorPrefix202405\Nette\Utils\ObjectHelpers; /** * Strict class for better experience. * - 'did you mean' hints @@ -18,6 +18,7 @@ trait SmartObject { /** + * @return mixed * @throws MemberAccessException */ public function __call(string $name, array $args) @@ -31,11 +32,11 @@ public function __call(string $name, array $args) $handler(...$args); } } elseif ($handlers !== null) { - throw new UnexpectedValueException("Property {$class}::\${$name} must be iterable or null, " . \gettype($handlers) . ' given.'); + throw new UnexpectedValueException("Property {$class}::\${$name} must be iterable or null, " . \get_debug_type($handlers) . ' given.'); } - } else { - ObjectHelpers::strictCall($class, $name); + return null; } + ObjectHelpers::strictCall($class, $name); } /** * @throws MemberAccessException @@ -75,11 +76,10 @@ public function &__get(string $name) } } /** - * @param mixed $value - * @return void * @throws MemberAccessException if the property is not defined or is read-only + * @param mixed $value */ - public function __set(string $name, $value) + public function __set(string $name, $value) : void { $class = static::class; if (ObjectHelpers::hasProperty($class, $name)) { @@ -103,10 +103,9 @@ public function __set(string $name, $value) } } /** - * @return void * @throws MemberAccessException */ - public function __unset(string $name) + public function __unset(string $name) : void { $class = static::class; if (!ObjectHelpers::hasProperty($class, $name)) { diff --git a/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php b/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php index 3bd0bfa54..01cb33c2d 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php +++ b/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette; +namespace RectorPrefix202405\Nette; /** * Static class. @@ -13,17 +13,15 @@ trait StaticClass { /** - * @return never - * @throws \Error + * Class is static and cannot be instantiated. */ - public final function __construct() + private function __construct() { - throw new \Error('Class ' . static::class . ' is static and cannot be instantiated.'); } /** * Call to undefined static method. - * @return void * @throws MemberAccessException + * @return mixed */ public static function __callStatic(string $name, array $args) { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Translator.php b/vendor/rector/rector/vendor/nette/utils/src/Translator.php index 171cc2f17..4f6b3037b 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Translator.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Translator.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Localization; +namespace RectorPrefix202405\Nette\Localization; /** * Translator adapter. @@ -14,9 +14,10 @@ interface Translator { /** * Translates the given string. - * @param mixed $message - * @param mixed ...$parameters + * @param string|\Stringable $message + * @return string|\Stringable + * @param mixed ...$parameters */ - function translate($message, ...$parameters) : string; + function translate($message, ...$parameters); } \interface_exists(ITranslator::class); diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php index 394fe42ea..b36a85153 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php @@ -5,13 +5,13 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Provides objects to work as array. * @template T - * @implements \RecursiveArrayIterator + * @implements \IteratorAggregate * @implements \ArrayAccess */ class ArrayHash extends \stdClass implements \ArrayAccess, \Countable, \IteratorAggregate @@ -25,17 +25,19 @@ public static function from(array $array, bool $recursive = \true) { $obj = new static(); foreach ($array as $key => $value) { - $obj->{$key} = $recursive && \is_array($value) ? static::from($value, \true) : $value; + $obj->{$key} = $recursive && \is_array($value) ? static::from($value) : $value; } return $obj; } /** * Returns an iterator over all items. - * @return \RecursiveArrayIterator + * @return \Iterator */ - public function getIterator() : \RecursiveArrayIterator + public function &getIterator() : \Iterator { - return new \RecursiveArrayIterator((array) $this); + foreach ((array) $this as $key => $foo) { + (yield $key => $this->{$key}); + } } /** * Returns items count. @@ -53,7 +55,7 @@ public function offsetSet($key, $value) : void { if (!\is_scalar($key)) { // prevents null - throw new Nette\InvalidArgumentException(\sprintf('Key must be either a string or an integer, %s given.', \gettype($key))); + throw new Nette\InvalidArgumentException(\sprintf('Key must be either a string or an integer, %s given.', \get_debug_type($key))); } $this->{$key} = $value; } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php index 2ab098e0b..3ec63e7f3 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Provides the base class for a generic list (items can be accessed by index). * @template T @@ -17,7 +17,9 @@ class ArrayList implements \ArrayAccess, \Countable, \IteratorAggregate { use Nette\SmartObject; - /** @var mixed[] */ + /** + * @var mixed[] + */ private $list = []; /** * Transforms array to ArrayList. @@ -35,11 +37,13 @@ public static function from(array $array) } /** * Returns an iterator over all items. - * @return \ArrayIterator + * @return \Iterator */ - public function getIterator() : \ArrayIterator + public function &getIterator() : \Iterator { - return new \ArrayIterator($this->list); + foreach ($this->list as &$item) { + (yield $item); + } } /** * Returns items count. @@ -100,7 +104,7 @@ public function offsetUnset($index) : void } /** * Prepends a item. - * @param T $value + * @param mixed $value */ public function prepend($value) : void { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php index b67a88e01..ac88431c1 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\JetBrains\PhpStorm\Language; -use RectorPrefix202403\Nette; +use RectorPrefix202405\JetBrains\PhpStorm\Language; +use RectorPrefix202405\Nette; use function is_array, is_int, is_object, count; /** * Array tools library. @@ -21,7 +21,7 @@ class Arrays * @template T * @param array $array * @param array-key|array-key[] $key - * @param ?T $default + * @param mixed $default * @return ?T * @throws Nette\InvalidArgumentException if item does not exist and default value is not provided */ @@ -80,8 +80,7 @@ public static function mergeTree(array $array1, array $array2) : array } /** * Returns zero-indexed position of given array key. Returns null if key is not found. - * @param array-key $key - * @return int|null offset if it is found, null otherwise + * @param string|int $key */ public static function getKeyOffset(array $array, $key) : ?int { @@ -96,36 +95,68 @@ public static function searchKey(array $array, $key) : ?int } /** * Tests an array for the presence of value. - * @param mixed $value + * @param mixed $value */ public static function contains(array $array, $value) : bool { return \in_array($value, $array, \true); } /** - * Returns the first item from the array or null if array is empty. + * Returns the first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null. + * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`. * @template T * @param array $array * @return ?T */ - public static function first(array $array) + public static function first(array $array, ?callable $predicate = null, ?callable $else = null) { - return count($array) ? \reset($array) : null; + $key = self::firstKey($array, $predicate); + return $key === null ? $else ? $else() : null : $array[$key]; } /** - * Returns the last item from the array or null if array is empty. + * Returns the last item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null. + * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`. * @template T * @param array $array * @return ?T */ - public static function last(array $array) + public static function last(array $array, ?callable $predicate = null, ?callable $else = null) { - return count($array) ? \end($array) : null; + $key = self::lastKey($array, $predicate); + return $key === null ? $else ? $else() : null : $array[$key]; + } + /** + * Returns the key of first item (matching the specified predicate if given) or null if there is no such item. + * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`. + * @return int|string|null + */ + public static function firstKey(array $array, ?callable $predicate = null) + { + if (!$predicate) { + \reset($array); + return \key($array); + } + foreach ($array as $k => $v) { + if ($predicate($v, $k, $array)) { + return $k; + } + } + return null; + } + /** + * Returns the key of last item (matching the specified predicate if given) or null if there is no such item. + * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`. + * @return int|string|null + */ + public static function lastKey(array $array, ?callable $predicate = null) + { + \end($array); + return $predicate ? self::firstKey(\array_reverse($array, \true), $predicate) : \key($array); } /** * Inserts the contents of the $inserted array into the $array immediately after the $key. * If $key is null (or does not exist), it is inserted at the beginning. - * @param array-key|null $key + * @param string|int|null $key */ public static function insertBefore(array &$array, $key, array $inserted) : void { @@ -135,7 +166,7 @@ public static function insertBefore(array &$array, $key, array $inserted) : void /** * Inserts the contents of the $inserted array into the $array before the $key. * If $key is null (or does not exist), it is inserted at the end. - * @param array-key|null $key + * @param string|int|null $key */ public static function insertAfter(array &$array, $key, array $inserted) : void { @@ -146,8 +177,8 @@ public static function insertAfter(array &$array, $key, array $inserted) : void } /** * Renames key in array. - * @param array-key $oldKey - * @param array-key $newKey + * @param string|int $oldKey + * @param string|int $newKey */ public static function renameKey(array &$array, $oldKey, $newKey) : bool { @@ -166,6 +197,7 @@ public static function renameKey(array &$array, $oldKey, $newKey) : bool * Returns only those array items, which matches a regular expression $pattern. * @param string[] $array * @return string[] + * @param bool|int $invert */ public static function grep( array $array, @@ -173,9 +205,10 @@ public static function grep( * @language */ string $pattern, - int $flags = 0 + $invert = \false ) : array { + $flags = $invert ? \PREG_GREP_INVERT : 0; return Strings::pcre('preg_grep', [$pattern, $array, $flags]); } /** @@ -194,7 +227,8 @@ public static function flatten(array $array, bool $preserveKeys = \false) : arra } /** * Checks if the array is indexed in ascending order of numeric keys from zero, a.k.a list. - * @param mixed $value + * @return ($value is list ? true : false) + * @param mixed $value */ public static function isList($value) : bool { @@ -219,7 +253,7 @@ public static function isList($value) : bool /** * Reformats table to associative tree. Path looks like 'field|field[]field->field=field'. * @param string|string[] $path - * @return array|\stdClass + * @return mixed[]|\stdClass */ public static function associate(array $array, $path) { @@ -261,7 +295,7 @@ public static function associate(array $array, $path) } /** * Normalizes array to associative array. Replace numeric keys with their values, the new value will be $filling. - * @param mixed $filling + * @param mixed $filling */ public static function normalize(array $array, $filling = null) : array { @@ -276,10 +310,10 @@ public static function normalize(array $array, $filling = null) : array * or returns $default, if provided. * @template T * @param array $array - * @param array-key $key - * @param ?T $default + * @param mixed $default * @return ?T * @throws Nette\InvalidArgumentException if item does not exist and default value is not provided + * @param string|int $key */ public static function pick(array &$array, $key, $default = null) { @@ -294,13 +328,17 @@ public static function pick(array &$array, $key, $default = null) } } /** - * Tests whether at least one element in the array passes the test implemented by the - * provided callback with signature `function ($value, $key, array $array): bool`. + * Tests whether at least one element in the array passes the test implemented by the provided function, + * which has the signature `function ($value, $key, array $array): bool`. + * @template K + * @template V + * @param iterable $array + * @param callable(V, K, ($array is array ? array : iterable)): bool $predicate */ - public static function some(iterable $array, callable $callback) : bool + public static function some(iterable $array, callable $predicate) : bool { foreach ($array as $k => $v) { - if ($callback($v, $k, $array)) { + if ($predicate($v, $k, $array)) { return \true; } } @@ -309,25 +347,54 @@ public static function some(iterable $array, callable $callback) : bool /** * Tests whether all elements in the array pass the test implemented by the provided function, * which has the signature `function ($value, $key, array $array): bool`. + * @template K + * @template V + * @param iterable $array + * @param callable(V, K, ($array is array ? array : iterable)): bool $predicate */ - public static function every(iterable $array, callable $callback) : bool + public static function every(iterable $array, callable $predicate) : bool { foreach ($array as $k => $v) { - if (!$callback($v, $k, $array)) { + if (!$predicate($v, $k, $array)) { return \false; } } return \true; } /** - * Calls $callback on all elements in the array and returns the array of return values. - * The callback has the signature `function ($value, $key, array $array): bool`. + * Returns a new array containing all key-value pairs matching the given $predicate. + * The callback has the signature `function (mixed $value, int|string $key, array $array): bool`. + * @template K of array-key + * @template V + * @param array $array + * @param callable(V, K, array): bool $predicate + * @return array + */ + public static function filter(array $array, callable $predicate) : array + { + $res = []; + foreach ($array as $k => $v) { + if ($predicate($v, $k, $array)) { + $res[$k] = $v; + } + } + return $res; + } + /** + * Returns an array containing the original keys and results of applying the given transform function to each element. + * The function has signature `function ($value, $key, array $array): mixed`. + * @template K of array-key + * @template V + * @template R + * @param iterable $array + * @param callable(V, K, ($array is array ? array : iterable)): R $transformer + * @return array */ - public static function map(iterable $array, callable $callback) : array + public static function map(iterable $array, callable $transformer) : array { $res = []; foreach ($array as $k => $v) { - $res[$k] = $callback($v, $k, $array); + $res[$k] = $transformer($v, $k, $array); } return $res; } @@ -361,7 +428,7 @@ public static function invokeMethod(iterable $objects, string $method, ...$args) * @param T $object * @return T */ - public static function toObject(iterable $array, $object) + public static function toObject(iterable $array, object $object) : object { foreach ($array as $k => $v) { $object->{$k} = $v; @@ -370,8 +437,8 @@ public static function toObject(iterable $array, $object) } /** * Converts value to array key. - * @param mixed $value - * @return array-key + * @return int|string + * @param mixed $value */ public static function toKey($value) { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php index a7774ccce..237e7c45a 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; use function is_array, is_object, is_string; /** * PHP callable tools. @@ -15,41 +15,6 @@ final class Callback { use Nette\StaticClass; - /** - * @param string|object|callable $callable class, object, callable - * @deprecated use Closure::fromCallable() - */ - public static function closure($callable, ?string $method = null) : \Closure - { - \trigger_error(__METHOD__ . '() is deprecated, use Closure::fromCallable().', \E_USER_DEPRECATED); - try { - return \Closure::fromCallable($method === null ? $callable : [$callable, $method]); - } catch (\TypeError $e) { - throw new Nette\InvalidArgumentException($e->getMessage()); - } - } - /** - * Invokes callback. - * @return mixed - * @deprecated - */ - public static function invoke($callable, ...$args) - { - \trigger_error(__METHOD__ . '() is deprecated, use native invoking.', \E_USER_DEPRECATED); - self::check($callable); - return $callable(...$args); - } - /** - * Invokes callback with an array of parameters. - * @return mixed - * @deprecated - */ - public static function invokeArgs($callable, array $args = []) - { - \trigger_error(__METHOD__ . '() is deprecated, use native invoking.', \E_USER_DEPRECATED); - self::check($callable); - return $callable(...$args); - } /** * Invokes internal PHP function with own error handler. * @return mixed @@ -75,9 +40,9 @@ public static function invokeSafe(string $function, array $args, callable $onErr /** * Checks that $callable is valid PHP callback. Otherwise throws exception. If the $syntax is set to true, only verifies * that $callable has a valid structure to be used as a callback, but does not verify if the class or method actually exists. - * @param mixed $callable * @return callable * @throws Nette\InvalidArgumentException + * @param mixed $callable */ public static function check($callable, bool $syntax = \false) { @@ -88,15 +53,13 @@ public static function check($callable, bool $syntax = \false) } /** * Converts PHP callback to textual form. Class or method may not exists. - * @param mixed $callable + * @param mixed $callable */ public static function toString($callable) : string { if ($callable instanceof \Closure) { $inner = self::unwrap($callable); return '{closure' . ($inner instanceof \Closure ? '}' : ' ' . self::toString($inner) . '}'); - } elseif (is_string($callable) && $callable[0] === "\x00") { - return '{lambda}'; } else { \is_callable(is_object($callable) ? [$callable, '__invoke'] : $callable, \true, $textual); return $textual; @@ -105,20 +68,20 @@ public static function toString($callable) : string /** * Returns reflection for method or function used in PHP callback. * @param callable $callable type check is escalated to ReflectionException - * @return \ReflectionMethod|\ReflectionFunction * @throws \ReflectionException if callback is not valid + * @return \ReflectionMethod|\ReflectionFunction */ - public static function toReflection($callable) : \ReflectionFunctionAbstract + public static function toReflection($callable) { if ($callable instanceof \Closure) { $callable = self::unwrap($callable); } - if (is_string($callable) && \strpos($callable, '::')) { - return new \ReflectionMethod($callable); + if (is_string($callable) && \strpos($callable, '::') !== \false) { + return new ReflectionMethod($callable); } elseif (is_array($callable)) { - return new \ReflectionMethod($callable[0], $callable[1]); + return new ReflectionMethod($callable[0], $callable[1]); } elseif (is_object($callable) && !$callable instanceof \Closure) { - return new \ReflectionMethod($callable, '__invoke'); + return new ReflectionMethod($callable, '__invoke'); } else { return new \ReflectionFunction($callable); } @@ -132,18 +95,18 @@ public static function isStatic(callable $callable) : bool } /** * Unwraps closure created by Closure::fromCallable(). - * @return callable|array + * @return mixed[]|callable */ public static function unwrap(\Closure $closure) { $r = new \ReflectionFunction($closure); - $class = $r->getClosureScopeClass(); - if (\substr($r->name, -1) === '}') { + $class = ($nullsafeVariable1 = $r->getClosureScopeClass()) ? $nullsafeVariable1->name : null; + if (\substr_compare($r->name, '}', -\strlen('}')) === 0) { return $closure; - } elseif (($obj = $r->getClosureThis()) && $class && \get_class($obj) === $class->name) { + } elseif (($obj = $r->getClosureThis()) && \get_class($obj) === $class) { return [$obj, $r->name]; } elseif ($class) { - return [$class->name, $r->name]; + return [$class, $r->name]; } else { return $r->name; } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php index 21a1c62e6..10e8c0952 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * DateTime. */ @@ -28,9 +28,9 @@ class DateTime extends \DateTime implements \JsonSerializable public const YEAR = 31557600; /** * Creates a DateTime object from a string, UNIX timestamp, or other DateTimeInterface object. - * @param string|int|\DateTimeInterface $time - * @return static * @throws \Exception if the date and time are not valid. + * @param string|int|\DateTimeInterface|null $time + * @return static */ public static function from($time) { @@ -40,7 +40,7 @@ public static function from($time) if ($time <= self::YEAR) { $time += \time(); } - return (new static('@' . $time))->setTimezone(new \DateTimeZone(\date_default_timezone_get())); + return (new static())->setTimestamp((int) $time); } else { // textual or null return new static((string) $time); @@ -48,8 +48,8 @@ public static function from($time) } /** * Creates DateTime object. - * @return static * @throws Nette\InvalidArgumentException if the date and time are not valid. + * @return static */ public static function fromParts(int $year, int $month, int $day, int $hour = 0, int $minute = 0, float $second = 0.0) { @@ -61,20 +61,15 @@ public static function fromParts(int $year, int $month, int $day, int $hour = 0, } /** * Returns new DateTime object formatted according to the specified format. - * @param string $format The format the $time parameter should be in - * @param string $time - * @param string|\DateTimeZone $timezone (default timezone is used if null is passed) + * @param string|\DateTimeZone|null $timezone * @return static|false */ - #[\ReturnTypeWillChange] - public static function createFromFormat($format, $time, $timezone = null) + public static function createFromFormat(string $format, string $time, $timezone = null) { if ($timezone === null) { $timezone = new \DateTimeZone(\date_default_timezone_get()); } elseif (\is_string($timezone)) { $timezone = new \DateTimeZone($timezone); - } elseif (!$timezone instanceof \DateTimeZone) { - throw new Nette\InvalidArgumentException('Invalid timezone given'); } $date = parent::createFromFormat($format, $time, $timezone); return $date ? static::from($date) : \false; @@ -94,7 +89,7 @@ public function __toString() : string return $this->format('Y-m-d H:i:s'); } /** - * Creates a copy with a modified time. + * You'd better use: (clone $dt)->modify(...) * @return static */ public function modifyClone(string $modify = '') diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/FileInfo.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileInfo.php new file mode 100644 index 000000000..d76a2bb39 --- /dev/null +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileInfo.php @@ -0,0 +1,57 @@ +setInfoClass(static::class); + $this->relativePath = $relativePath; + } + /** + * Returns the relative directory path. + */ + public function getRelativePath() : string + { + return $this->relativePath; + } + /** + * Returns the relative path including file name. + */ + public function getRelativePathname() : string + { + return ($this->relativePath === '' ? '' : $this->relativePath . \DIRECTORY_SEPARATOR) . $this->getBasename(); + } + /** + * Returns the contents of the file. + * @throws Nette\IOException + */ + public function read() : string + { + return FileSystem::read($this->getPathname()); + } + /** + * Writes the contents to the file. + * @throws Nette\IOException + */ + public function write(string $content) : void + { + FileSystem::write($this->getPathname(), $content); + } +} diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php index 86b83662b..e4f178d6d 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php @@ -5,15 +5,14 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * File system tool. */ final class FileSystem { - use Nette\StaticClass; /** * Creates a directory if it does not exist, including parent directories. * @throws Nette\IOException on error occurred @@ -50,12 +49,26 @@ public static function copy(string $origin, string $target, bool $overwrite = \t } } else { static::createDir(\dirname($target)); - if (($s = @\fopen($origin, 'rb')) && ($d = @\fopen($target, 'wb')) && @\stream_copy_to_stream($s, $d) === \false) { + if (@\stream_copy_to_stream(static::open($origin, 'rb'), static::open($target, 'wb')) === \false) { // @ is escalated to exception throw new Nette\IOException(\sprintf("Unable to copy file '%s' to '%s'. %s", self::normalizePath($origin), self::normalizePath($target), Helpers::getLastError())); } } } + /** + * Opens file and returns resource. + * @return resource + * @throws Nette\IOException on error occurred + */ + public static function open(string $path, string $mode) + { + $f = @\fopen($path, $mode); + // @ is escalated to exception + if (!$f) { + throw new Nette\IOException(\sprintf("Unable to open file '%s'. %s", self::normalizePath($path), Helpers::getLastError())); + } + return $f; + } /** * Deletes a file or an entire directory if exists. If the directory is not empty, it deletes its contents first. * @throws Nette\IOException on error occurred @@ -113,6 +126,31 @@ public static function read(string $file) : string } return $content; } + /** + * Reads the file content line by line. Because it reads continuously as we iterate over the lines, + * it is possible to read files larger than the available memory. + * @return \Generator + * @throws Nette\IOException on error occurred + */ + public static function readLines(string $file, bool $stripNewLines = \true) : \Generator + { + return (function ($f) use($file, $stripNewLines) { + $counter = 0; + do { + $line = Callback::invokeSafe('fgets', [$f], function ($error) use($file) { + throw new Nette\IOException(\sprintf("Unable to read file '%s'. %s", self::normalizePath($file), $error)); + }); + if ($line === \false) { + \fclose($f); + break; + } + if ($stripNewLines) { + $line = \rtrim($line, "\r\n"); + } + (yield $counter++ => $line); + } while (\true); + })(static::open($file, 'r')); + } /** * Writes the string to a file. * @throws Nette\IOException on error occurred @@ -183,4 +221,19 @@ public static function joinPaths(string ...$paths) : string { return self::normalizePath(\implode('/', $paths)); } + /** + * Converts backslashes to slashes. + */ + public static function unixSlashes(string $path) : string + { + return \strtr($path, '\\', '/'); + } + /** + * Converts slashes to platform-specific directory separators. + */ + public static function platformSlashes(string $path) : string + { + return \DIRECTORY_SEPARATOR === '/' ? \strtr($path, '\\', '/') : \str_replace(':\\\\', '://', \strtr($path, '/', '\\')); + // protocol:// + } } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Finder.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Finder.php new file mode 100644 index 000000000..a99f6a690 --- /dev/null +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Finder.php @@ -0,0 +1,456 @@ +size('> 10kB') + * ->from('.') + * ->exclude('temp'); + * + * @implements \IteratorAggregate + */ +class Finder implements \IteratorAggregate +{ + use Nette\SmartObject; + /** @var array */ + private $find = []; + /** @var string[] */ + private $in = []; + /** @var \Closure[] */ + private $filters = []; + /** @var \Closure[] */ + private $descentFilters = []; + /** @var array */ + private $appends = []; + /** + * @var bool + */ + private $childFirst = \false; + /** @var ?callable */ + private $sort; + /** + * @var int + */ + private $maxDepth = -1; + /** + * @var bool + */ + private $ignoreUnreadableDirs = \true; + /** + * Begins search for files and directories matching mask. + * @param string|mixed[] $masks + * @return static + */ + public static function find($masks = ['*']) + { + $masks = \is_array($masks) ? $masks : \func_get_args(); + // compatibility with variadic + return (new static())->addMask($masks, 'dir')->addMask($masks, 'file'); + } + /** + * Begins search for files matching mask. + * @param string|mixed[] $masks + * @return static + */ + public static function findFiles($masks = ['*']) + { + $masks = \is_array($masks) ? $masks : \func_get_args(); + // compatibility with variadic + return (new static())->addMask($masks, 'file'); + } + /** + * Begins search for directories matching mask. + * @param string|mixed[] $masks + * @return static + */ + public static function findDirectories($masks = ['*']) + { + $masks = \is_array($masks) ? $masks : \func_get_args(); + // compatibility with variadic + return (new static())->addMask($masks, 'dir'); + } + /** + * Finds files matching the specified masks. + * @param string|mixed[] $masks + * @return static + */ + public function files($masks = ['*']) + { + return $this->addMask((array) $masks, 'file'); + } + /** + * Finds directories matching the specified masks. + * @param string|mixed[] $masks + * @return static + */ + public function directories($masks = ['*']) + { + return $this->addMask((array) $masks, 'dir'); + } + /** + * @return static + */ + private function addMask(array $masks, string $mode) + { + foreach ($masks as $mask) { + $mask = FileSystem::unixSlashes($mask); + if ($mode === 'dir') { + $mask = \rtrim($mask, '/'); + } + if ($mask === '' || $mode === 'file' && \substr_compare($mask, '/', -\strlen('/')) === 0) { + throw new Nette\InvalidArgumentException("Invalid mask '{$mask}'"); + } + if (\strncmp($mask, '**/', \strlen('**/')) === 0) { + $mask = \substr($mask, 3); + } + $this->find[] = [$mask, $mode]; + } + return $this; + } + /** + * Searches in the given directories. Wildcards are allowed. + * @param string|mixed[] $paths + * @return static + */ + public function in($paths) + { + $paths = \is_array($paths) ? $paths : \func_get_args(); + // compatibility with variadic + $this->addLocation($paths, ''); + return $this; + } + /** + * Searches recursively from the given directories. Wildcards are allowed. + * @param string|mixed[] $paths + * @return static + */ + public function from($paths) + { + $paths = \is_array($paths) ? $paths : \func_get_args(); + // compatibility with variadic + $this->addLocation($paths, '/**'); + return $this; + } + private function addLocation(array $paths, string $ext) : void + { + foreach ($paths as $path) { + if ($path === '') { + throw new Nette\InvalidArgumentException("Invalid directory '{$path}'"); + } + $path = \rtrim(FileSystem::unixSlashes($path), '/'); + $this->in[] = $path . $ext; + } + } + /** + * Lists directory's contents before the directory itself. By default, this is disabled. + * @return static + */ + public function childFirst(bool $state = \true) + { + $this->childFirst = $state; + return $this; + } + /** + * Ignores unreadable directories. By default, this is enabled. + * @return static + */ + public function ignoreUnreadableDirs(bool $state = \true) + { + $this->ignoreUnreadableDirs = $state; + return $this; + } + /** + * Set a compare function for sorting directory entries. The function will be called to sort entries from the same directory. + * @param callable(FileInfo, FileInfo): int $callback + * @return static + */ + public function sortBy(callable $callback) + { + $this->sort = $callback; + return $this; + } + /** + * Sorts files in each directory naturally by name. + * @return static + */ + public function sortByName() + { + $this->sort = function (FileInfo $a, FileInfo $b) : int { + return \strnatcmp($a->getBasename(), $b->getBasename()); + }; + return $this; + } + /** + * Adds the specified paths or appends a new finder that returns. + * @param string|mixed[]|null $paths + * @return static + */ + public function append($paths = null) + { + if ($paths === null) { + return $this->appends[] = new static(); + } + $this->appends = \array_merge($this->appends, (array) $paths); + return $this; + } + /********************* filtering ****************d*g**/ + /** + * Skips entries that matches the given masks relative to the ones defined with the in() or from() methods. + * @param string|mixed[] $masks + * @return static + */ + public function exclude($masks) + { + $masks = \is_array($masks) ? $masks : \func_get_args(); + // compatibility with variadic + foreach ($masks as $mask) { + $mask = FileSystem::unixSlashes($mask); + if (!\preg_match('~^/?(\\*\\*/)?(.+)(/\\*\\*|/\\*|/|)$~D', $mask, $m)) { + throw new Nette\InvalidArgumentException("Invalid mask '{$mask}'"); + } + $end = $m[3]; + $re = $this->buildPattern($m[2]); + $filter = function (FileInfo $file) use($end, $re) : bool { + return $end && !$file->isDir() || !\preg_match($re, FileSystem::unixSlashes($file->getRelativePathname())); + }; + $this->descentFilter($filter); + if ($end !== '/*') { + $this->filter($filter); + } + } + return $this; + } + /** + * Yields only entries which satisfy the given filter. + * @param callable(FileInfo): bool $callback + * @return static + */ + public function filter(callable $callback) + { + $this->filters[] = \Closure::fromCallable($callback); + return $this; + } + /** + * It descends only to directories that match the specified filter. + * @param callable(FileInfo): bool $callback + * @return static + */ + public function descentFilter(callable $callback) + { + $this->descentFilters[] = \Closure::fromCallable($callback); + return $this; + } + /** + * Sets the maximum depth of entries. + * @return static + */ + public function limitDepth(?int $depth) + { + $this->maxDepth = $depth ?? -1; + return $this; + } + /** + * Restricts the search by size. $operator accepts "[operator] [size] [unit]" example: >=10kB + * @return static + */ + public function size(string $operator, ?int $size = null) + { + if (\func_num_args() === 1) { + // in $operator is predicate + if (!\preg_match('#^(?:([=<>!]=?|<>)\\s*)?((?:\\d*\\.)?\\d+)\\s*(K|M|G|)B?$#Di', $operator, $matches)) { + throw new Nette\InvalidArgumentException('Invalid size predicate format.'); + } + [, $operator, $size, $unit] = $matches; + $units = ['' => 1, 'k' => 1000.0, 'm' => 1000000.0, 'g' => 1000000000.0]; + $size *= $units[\strtolower($unit)]; + $operator = $operator ?: '='; + } + return $this->filter(function (FileInfo $file) use($operator, $size) : bool { + return !$file->isFile() || Helpers::compare($file->getSize(), $operator, $size); + }); + } + /** + * Restricts the search by modified time. $operator accepts "[operator] [date]" example: >1978-01-23 + * @param string|int|\DateTimeInterface|null $date + * @return static + */ + public function date(string $operator, $date = null) + { + if (\func_num_args() === 1) { + // in $operator is predicate + if (!\preg_match('#^(?:([=<>!]=?|<>)\\s*)?(.+)$#Di', $operator, $matches)) { + throw new Nette\InvalidArgumentException('Invalid date predicate format.'); + } + [, $operator, $date] = $matches; + $operator = $operator ?: '='; + } + $date = DateTime::from($date)->format('U'); + return $this->filter(function (FileInfo $file) use($operator, $date) : bool { + return !$file->isFile() || Helpers::compare($file->getMTime(), $operator, $date); + }); + } + /********************* iterator generator ****************d*g**/ + /** + * Returns an array with all found files and directories. + * @return list + */ + public function collect() : array + { + return \iterator_to_array($this->getIterator(), \false); + } + /** @return \Generator */ + public function getIterator() : \Generator + { + $plan = $this->buildPlan(); + foreach ($plan as $dir => $searches) { + yield from $this->traverseDir($dir, $searches); + } + foreach ($this->appends as $item) { + if ($item instanceof self) { + yield from $item->getIterator(); + } else { + $item = FileSystem::platformSlashes($item); + (yield $item => new FileInfo($item)); + } + } + } + /** + * @param array $searches + * @param string[] $subdirs + * @return \Generator + */ + private function traverseDir(string $dir, array $searches, array $subdirs = []) : \Generator + { + if ($this->maxDepth >= 0 && \count($subdirs) > $this->maxDepth) { + return; + } elseif (!\is_dir($dir)) { + throw new Nette\InvalidStateException(\sprintf("Directory '%s' does not exist.", \rtrim($dir, '/\\'))); + } + try { + $pathNames = new \FilesystemIterator($dir, \FilesystemIterator::FOLLOW_SYMLINKS | \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::UNIX_PATHS); + } catch (\UnexpectedValueException $e) { + if ($this->ignoreUnreadableDirs) { + return; + } else { + throw new Nette\InvalidStateException($e->getMessage()); + } + } + $files = $this->convertToFiles($pathNames, \implode('/', $subdirs), FileSystem::isAbsolute($dir)); + if ($this->sort) { + $files = \iterator_to_array($files); + \usort($files, $this->sort); + } + foreach ($files as $file) { + $pathName = $file->getPathname(); + $cache = $subSearch = []; + if ($file->isDir()) { + foreach ($searches as $search) { + if ($search->recursive && $this->proveFilters($this->descentFilters, $file, $cache)) { + $subSearch[] = $search; + } + } + } + if ($this->childFirst && $subSearch) { + yield from $this->traverseDir($pathName, $subSearch, \array_merge($subdirs, [$file->getBasename()])); + } + $relativePathname = FileSystem::unixSlashes($file->getRelativePathname()); + foreach ($searches as $search) { + if ($file->{'is' . $search->mode}() && \preg_match($search->pattern, $relativePathname) && $this->proveFilters($this->filters, $file, $cache)) { + (yield $pathName => $file); + break; + } + } + if (!$this->childFirst && $subSearch) { + yield from $this->traverseDir($pathName, $subSearch, \array_merge($subdirs, [$file->getBasename()])); + } + } + } + private function convertToFiles(iterable $pathNames, string $relativePath, bool $absolute) : \Generator + { + foreach ($pathNames as $pathName) { + if (!$absolute) { + $pathName = \preg_replace('~\\.?/~A', '', $pathName); + } + $pathName = FileSystem::platformSlashes($pathName); + (yield new FileInfo($pathName, $relativePath)); + } + } + private function proveFilters(array $filters, FileInfo $file, array &$cache) : bool + { + foreach ($filters as $filter) { + $res =& $cache[\spl_object_id($filter)]; + $res = $res ?? $filter($file); + if (!$res) { + return \false; + } + } + return \true; + } + /** @return array> */ + private function buildPlan() : array + { + $plan = $dirCache = []; + foreach ($this->find as [$mask, $mode]) { + $splits = []; + if (FileSystem::isAbsolute($mask)) { + if ($this->in) { + throw new Nette\InvalidStateException("You cannot combine the absolute path in the mask '{$mask}' and the directory to search '{$this->in[0]}'."); + } + $splits[] = self::splitRecursivePart($mask); + } else { + foreach ($this->in ?: ['.'] as $in) { + $in = \strtr($in, ['[' => '[[]', ']' => '[]]']); + // in path, do not treat [ and ] as a pattern by glob() + $splits[] = self::splitRecursivePart($in . '/' . $mask); + } + } + foreach ($splits as [$base, $rest, $recursive]) { + $base = $base === '' ? '.' : $base; + $dirs = $dirCache[$base] = $dirCache[$base] ?? (\strpbrk($base, '*?[') ? \glob($base, \GLOB_NOSORT | \GLOB_ONLYDIR | \GLOB_NOESCAPE) : [\strtr($base, ['[[]' => '[', '[]]' => ']'])]); + // unescape [ and ] + if (!$dirs) { + throw new Nette\InvalidStateException(\sprintf("Directory '%s' does not exist.", \rtrim($base, '/\\'))); + } + $search = (object) ['pattern' => $this->buildPattern($rest), 'mode' => $mode, 'recursive' => $recursive]; + foreach ($dirs as $dir) { + $plan[$dir][] = $search; + } + } + } + return $plan; + } + /** + * Since glob() does not know ** wildcard, we divide the path into a part for glob and a part for manual traversal. + */ + private static function splitRecursivePart(string $path) : array + { + $a = \strrpos($path, '/'); + $parts = \preg_split('~(?<=^|/)\\*\\*($|/)~', \substr($path, 0, $a + 1), 2); + return isset($parts[1]) ? [$parts[0], $parts[1] . \substr($path, $a + 1), \true] : [$parts[0], \substr($path, $a + 1), \false]; + } + /** + * Converts wildcards to regular expression. + */ + private function buildPattern(string $mask) : string + { + if ($mask === '*') { + return '##'; + } elseif (\strncmp($mask, './', \strlen('./')) === 0) { + $anchor = '^'; + $mask = \substr($mask, 2); + } else { + $anchor = '(?:^|/)'; + } + $pattern = \strtr(\preg_quote($mask, '#'), ['\\*\\*/' => '(.+/)?', '\\*' => '[^/]*', '\\?' => '[^/]', '\\[\\!' => '[^', '\\[' => '[', '\\]' => ']', '\\-' => '-']); + return '#' . $anchor . $pattern . '$#D' . (\defined('PHP_WINDOWS_VERSION_BUILD') ? 'i' : ''); + } +} diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php index 0090f31c3..fc0c0ac85 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Floating-point numbers comparison. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php index 9f4d9ee26..aad77787a 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; class Helpers { /** @@ -38,7 +38,7 @@ public static function getLastError() : string } /** * Converts false to null, does not change other values. - * @param mixed $value + * @param mixed $value * @return mixed */ public static function falseToNull($value) @@ -47,10 +47,10 @@ public static function falseToNull($value) } /** * Returns value clamped to the inclusive range of min and max. - * @param int|float $value - * @param int|float $min - * @param int|float $max - * @return int|float + * @param int|float $value + * @param int|float $min + * @param int|float $max + * @return float|int */ public static function clamp($value, $min, $max) { @@ -75,4 +75,34 @@ public static function getSuggestion(array $possibilities, string $value) : ?str } return $best; } + /** + * Compares two values in the same way that PHP does. Recognizes operators: >, >=, <, <=, =, ==, ===, !=, !==, <> + * @param mixed $left + * @param mixed $right + */ + public static function compare($left, string $operator, $right) : bool + { + switch ($operator) { + case '>': + return $left > $right; + case '>=': + return $left >= $right; + case '<': + return $left < $right; + case '<=': + return $left <= $right; + case '=': + case '==': + return $left == $right; + case '===': + return $left === $right; + case '!=': + case '<>': + return $left != $right; + case '!==': + return $left !== $right; + default: + throw new Nette\InvalidArgumentException("Unknown operator '{$operator}'"); + } + } } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php index cfe45ad0d..418cdf9fe 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; -use RectorPrefix202403\Nette\HtmlStringable; +use RectorPrefix202405\Nette; +use RectorPrefix202405\Nette\HtmlStringable; use function is_array, is_float, is_object, is_string; /** * HTML helper. @@ -232,16 +232,17 @@ class Html implements \ArrayAccess, \Countable, \IteratorAggregate, HtmlStringab use Nette\SmartObject; /** @var array element's attributes */ public $attrs = []; - /** @var bool use XHTML syntax? */ - public static $xhtml = \false; - /** @var array void elements */ + /** void elements */ public static $emptyElements = ['img' => 1, 'hr' => 1, 'br' => 1, 'input' => 1, 'meta' => 1, 'area' => 1, 'embed' => 1, 'keygen' => 1, 'source' => 1, 'base' => 1, 'col' => 1, 'link' => 1, 'param' => 1, 'basefont' => 1, 'frame' => 1, 'isindex' => 1, 'wbr' => 1, 'command' => 1, 'track' => 1]; /** @var array nodes */ protected $children = []; - /** @var string element's name */ - private $name; - /** @var bool is element empty? */ - private $isEmpty; + /** element's name + * @var string */ + private $name = ''; + /** + * @var bool + */ + private $isEmpty = \false; /** * Constructs new HTML element. * @param array|string $attrs element's attributes or plain text content @@ -266,15 +267,17 @@ public static function el(?string $name = null, $attrs = null) } /** * Returns an object representing HTML text. + * @return static */ - public static function fromHtml(string $html) : self + public static function fromHtml(string $html) { return (new static())->setHtml($html); } /** * Returns an object representing plain text. + * @return static */ - public static function fromText(string $text) : self + public static function fromText(string $text) { return (new static())->setText($text); } @@ -334,8 +337,8 @@ public function addAttributes(array $attrs) } /** * Appends value to element's attribute. - * @param mixed $value - * @param mixed $option + * @param mixed $value + * @param mixed $option * @return static */ public function appendAttribute(string $name, $value, $option = \true) @@ -356,7 +359,7 @@ public function appendAttribute(string $name, $value, $option = \true) } /** * Sets element's attribute. - * @param mixed $value + * @param mixed $value * @return static */ public function setAttribute(string $name, $value) @@ -394,7 +397,7 @@ public function removeAttributes(array $attributes) } /** * Overloaded setter for element's attribute. - * @param mixed $value + * @param mixed $value */ public final function __set(string $name, $value) : void { @@ -453,7 +456,7 @@ public final function __call(string $m, array $args) * Special setter for element's attribute. * @return static */ - public final function href(string $path, ?array $query = null) + public final function href(string $path, array $query = []) { if ($query) { $query = \http_build_query($query, '', '&'); @@ -466,7 +469,7 @@ public final function href(string $path, ?array $query = null) } /** * Setter for data-* attributes. Booleans are converted to 'true' resp. 'false'. - * @param mixed $value + * @param mixed $value * @return static */ public function data(string $name, $value = null) @@ -480,7 +483,7 @@ public function data(string $name, $value = null) } /** * Sets element's HTML content. - * @param HtmlStringable|string $html + * @param mixed $html * @return static */ public final function setHtml($html) @@ -497,7 +500,7 @@ public final function getHtml() : string } /** * Sets element's textual content. - * @param HtmlStringable|string|int|float $text + * @param mixed $text * @return static */ public final function setText($text) @@ -517,7 +520,7 @@ public final function getText() : string } /** * Adds new element's child. - * @param HtmlStringable|string $child Html node or raw HTML string + * @param mixed $child * @return static */ public final function addHtml($child) @@ -526,7 +529,7 @@ public final function addHtml($child) } /** * Appends plain-text string to element content. - * @param HtmlStringable|string|int|float $text + * @param mixed $text * @return static */ public function addText($text) @@ -538,8 +541,8 @@ public function addText($text) } /** * Creates and adds a new Html child. - * @param array|string $attrs element's attributes or raw HTML string - * @return static created element + * @param mixed[]|string|null $attrs + * @return static */ public final function create(string $name, $attrs = null) { @@ -548,7 +551,7 @@ public final function create(string $name, $attrs = null) } /** * Inserts child node. - * @param HtmlStringable|string $child Html node or raw HTML string + * @param \Nette\HtmlStringable|string $child * @return static */ public function insert(?int $index, $child, bool $replace = \false) @@ -575,7 +578,7 @@ public final function offsetSet($index, $child) : void /** * Returns child node (\ArrayAccess implementation). * @param int $index - * @return HtmlStringable|string + * @return \Nette\HtmlStringable|string */ #[\ReturnTypeWillChange] public final function offsetGet($index) @@ -657,22 +660,14 @@ public final function render(?int $indent = null) : string } public final function __toString() : string { - try { - return $this->render(); - } catch (\Throwable $e) { - if (\PHP_VERSION_ID >= 70400) { - throw $e; - } - \trigger_error('Exception in ' . __METHOD__ . "(): {$e->getMessage()} in {$e->getFile()}:{$e->getLine()}", \E_USER_ERROR); - return ''; - } + return $this->render(); } /** * Returns element's start tag. */ public final function startTag() : string { - return $this->name ? '<' . $this->name . $this->attributes() . (static::$xhtml && $this->isEmpty ? ' />' : '>') : ''; + return $this->name ? '<' . $this->name . $this->attributes() . '>' : ''; } /** * Returns element's end tag. @@ -696,11 +691,7 @@ public final function attributes() : string if ($value === null || $value === \false) { continue; } elseif ($value === \true) { - if (static::$xhtml) { - $s .= ' ' . $key . '="' . $key . '"'; - } else { - $s .= ' ' . $key; - } + $s .= ' ' . $key; continue; } elseif (is_array($value)) { if (\strncmp($key, 'data-', 5) === 0) { @@ -724,8 +715,8 @@ public final function attributes() : string } else { $value = (string) $value; } - $q = \strpos($value, '"') === \false ? '"' : "'"; - $s .= ' ' . $key . '=' . $q . \str_replace(['&', $q, '<'], ['&', $q === '"' ? '"' : ''', self::$xhtml ? '<' : '<'], $value) . (\strpos($value, '`') !== \false && \strpbrk($value, ' <>"\'') === \false ? ' ' : '') . $q; + $q = \strpos($value, '"') !== \false ? "'" : '"'; + $s .= ' ' . $key . '=' . $q . \str_replace(['&', $q, '<'], ['&', $q === '"' ? '"' : ''', '<'], $value) . (\strpos($value, '`') !== \false && \strpbrk($value, ' <>"\'') === \false ? ' ' : '') . $q; } $s = \str_replace('@', '@', $s); return $s; diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php index cc36d3cb3..57605da14 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Basic manipulation with images. Supported types are JPEG, PNG, GIF, WEBP, AVIF and BMP. * @@ -18,99 +18,108 @@ * $image->send(); * * - * @method Image affine(array $affine, array $clip = null) - * @method array affineMatrixConcat(array $m1, array $m2) - * @method array affineMatrixGet(int $type, mixed $options = null) - * @method void alphaBlending(bool $on) - * @method void antialias(bool $on) - * @method void arc($x, $y, $w, $h, $start, $end, $color) - * @method void char(int $font, $x, $y, string $char, $color) - * @method void charUp(int $font, $x, $y, string $char, $color) - * @method int colorAllocate($red, $green, $blue) - * @method int colorAllocateAlpha($red, $green, $blue, $alpha) - * @method int colorAt($x, $y) - * @method int colorClosest($red, $green, $blue) - * @method int colorClosestAlpha($red, $green, $blue, $alpha) - * @method int colorClosestHWB($red, $green, $blue) - * @method void colorDeallocate($color) - * @method int colorExact($red, $green, $blue) - * @method int colorExactAlpha($red, $green, $blue, $alpha) + * @method Image affine(array $affine, ?array $clip = null) + * @method void alphaBlending(bool $enable) + * @method void antialias(bool $enable) + * @method void arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color) + * @method int colorAllocate(int $red, int $green, int $blue) + * @method int colorAllocateAlpha(int $red, int $green, int $blue, int $alpha) + * @method int colorAt(int $x, int $y) + * @method int colorClosest(int $red, int $green, int $blue) + * @method int colorClosestAlpha(int $red, int $green, int $blue, int $alpha) + * @method int colorClosestHWB(int $red, int $green, int $blue) + * @method void colorDeallocate(int $color) + * @method int colorExact(int $red, int $green, int $blue) + * @method int colorExactAlpha(int $red, int $green, int $blue, int $alpha) * @method void colorMatch(Image $image2) - * @method int colorResolve($red, $green, $blue) - * @method int colorResolveAlpha($red, $green, $blue, $alpha) - * @method void colorSet($index, $red, $green, $blue) - * @method array colorsForIndex($index) + * @method int colorResolve(int $red, int $green, int $blue) + * @method int colorResolveAlpha(int $red, int $green, int $blue, int $alpha) + * @method void colorSet(int $index, int $red, int $green, int $blue, int $alpha = 0) + * @method array colorsForIndex(int $color) * @method int colorsTotal() - * @method int colorTransparent($color = null) + * @method int colorTransparent(?int $color = null) * @method void convolution(array $matrix, float $div, float $offset) - * @method void copy(Image $src, $dstX, $dstY, $srcX, $srcY, $srcW, $srcH) - * @method void copyMerge(Image $src, $dstX, $dstY, $srcX, $srcY, $srcW, $srcH, $opacity) - * @method void copyMergeGray(Image $src, $dstX, $dstY, $srcX, $srcY, $srcW, $srcH, $opacity) - * @method void copyResampled(Image $src, $dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH) - * @method void copyResized(Image $src, $dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH) - * @method Image cropAuto(int $mode = -1, float $threshold = .5, int $color = -1) - * @method void ellipse($cx, $cy, $w, $h, $color) - * @method void fill($x, $y, $color) - * @method void filledArc($cx, $cy, $w, $h, $s, $e, $color, $style) - * @method void filledEllipse($cx, $cy, $w, $h, $color) - * @method void filledPolygon(array $points, $numPoints, $color) - * @method void filledRectangle($x1, $y1, $x2, $y2, $color) - * @method void fillToBorder($x, $y, $border, $color) - * @method void filter($filtertype) + * @method void copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH) + * @method void copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $pct) + * @method void copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $pct) + * @method void copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH) + * @method void copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH) + * @method Image cropAuto(int $mode = IMG_CROP_DEFAULT, float $threshold = .5, ?ImageColor $color = null) + * @method void ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color) + * @method void fill(int $x, int $y, ImageColor $color) + * @method void filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style) + * @method void filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color) + * @method void filledPolygon(array $points, ImageColor $color) + * @method void filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color) + * @method void fillToBorder(int $x, int $y, ImageColor $borderColor, ImageColor $color) + * @method void filter(int $filter, ...$args) * @method void flip(int $mode) - * @method array ftText($size, $angle, $x, $y, $col, string $fontFile, string $text, array $extrainfo = null) + * @method array ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options = []) * @method void gammaCorrect(float $inputgamma, float $outputgamma) * @method array getClip() - * @method int interlace($interlace = null) + * @method int getInterpolation() + * @method int interlace(?bool $enable = null) * @method bool isTrueColor() - * @method void layerEffect($effect) - * @method void line($x1, $y1, $x2, $y2, $color) - * @method void openPolygon(array $points, int $num_points, int $color) + * @method void layerEffect(int $effect) + * @method void line(int $x1, int $y1, int $x2, int $y2, ImageColor $color) + * @method void openPolygon(array $points, ImageColor $color) * @method void paletteCopy(Image $source) * @method void paletteToTrueColor() - * @method void polygon(array $points, $numPoints, $color) - * @method array psText(string $text, $font, $size, $color, $backgroundColor, $x, $y, $space = null, $tightness = null, float $angle = null, $antialiasSteps = null) - * @method void rectangle($x1, $y1, $x2, $y2, $col) - * @method mixed resolution(int $res_x = null, int $res_y = null) - * @method Image rotate(float $angle, $backgroundColor) - * @method void saveAlpha(bool $saveflag) + * @method void polygon(array $points, ImageColor $color) + * @method void rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color) + * @method mixed resolution(?int $resolutionX = null, ?int $resolutionY = null) + * @method Image rotate(float $angle, ImageColor $backgroundColor) + * @method void saveAlpha(bool $enable) * @method Image scale(int $newWidth, int $newHeight = -1, int $mode = IMG_BILINEAR_FIXED) * @method void setBrush(Image $brush) * @method void setClip(int $x1, int $y1, int $x2, int $y2) * @method void setInterpolation(int $method = IMG_BILINEAR_FIXED) - * @method void setPixel($x, $y, $color) + * @method void setPixel(int $x, int $y, ImageColor $color) * @method void setStyle(array $style) - * @method void setThickness($thickness) + * @method void setThickness(int $thickness) * @method void setTile(Image $tile) - * @method void string($font, $x, $y, string $s, $col) - * @method void stringUp($font, $x, $y, string $s, $col) - * @method void trueColorToPalette(bool $dither, $ncolors) - * @method array ttfText($size, $angle, $x, $y, $color, string $fontfile, string $text) + * @method void trueColorToPalette(bool $dither, int $ncolors) + * @method array ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontfile, string $text, array $options = []) * @property-read positive-int $width * @property-read positive-int $height - * @property-read resource|\GdImage $imageResource + * @property-read \GdImage $imageResource */ class Image { use Nette\SmartObject; /** Prevent from getting resized to a bigger size than the original */ - public const SHRINK_ONLY = 0b1; + public const ShrinkOnly = 0b1; /** Resizes to a specified width and height without keeping aspect ratio */ - public const STRETCH = 0b10; + public const Stretch = 0b10; /** Resizes to fit into a specified width and height and preserves aspect ratio */ - public const FIT = 0b0; + public const OrSmaller = 0b0; /** Resizes while bounding the smaller dimension to the specified width or height and preserves aspect ratio */ - public const FILL = 0b100; + public const OrBigger = 0b100; /** Resizes to the smallest possible size to completely cover specified width and height and reserves aspect ratio */ - public const EXACT = 0b1000; + public const Cover = 0b1000; + /** @deprecated use Image::ShrinkOnly */ + public const SHRINK_ONLY = self::ShrinkOnly; + /** @deprecated use Image::Stretch */ + public const STRETCH = self::Stretch; + /** @deprecated use Image::OrSmaller */ + public const FIT = self::OrSmaller; + /** @deprecated use Image::OrBigger */ + public const FILL = self::OrBigger; + /** @deprecated use Image::Cover */ + public const EXACT = self::Cover; + /** @deprecated use Image::EmptyGIF */ + public const EMPTY_GIF = self::EmptyGIF; /** image types */ - public const JPEG = \IMAGETYPE_JPEG, PNG = \IMAGETYPE_PNG, GIF = \IMAGETYPE_GIF, WEBP = \IMAGETYPE_WEBP, AVIF = 19, BMP = \IMAGETYPE_BMP; - public const EMPTY_GIF = "GIF89a\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00!\xf9\x04\x01\x00\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"; - private const Formats = [self::JPEG => 'jpeg', self::PNG => 'png', self::GIF => 'gif', self::WEBP => 'webp', self::AVIF => 'avif', self::BMP => 'bmp']; - /** @var resource|\GdImage */ + public const JPEG = ImageType::JPEG, PNG = ImageType::PNG, GIF = ImageType::GIF, WEBP = ImageType::WEBP, AVIF = ImageType::AVIF, BMP = ImageType::BMP; + public const EmptyGIF = "GIF89a\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00!\xf9\x04\x01\x00\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"; + private const Formats = [ImageType::JPEG => 'jpeg', ImageType::PNG => 'png', ImageType::GIF => 'gif', ImageType::WEBP => 'webp', ImageType::AVIF => 'avif', ImageType::BMP => 'bmp']; + /** + * @var \GdImage + */ private $image; /** * Returns RGB color (0..255) and transparency (0..127). + * @deprecated use ImageColor::rgb() */ public static function rgb(int $red, int $green, int $blue, int $transparency = 0) : array { @@ -135,9 +144,9 @@ public static function fromFile(string $file, ?int &$type = null) } /** * Reads an image from a string and returns its type in $type. - * @return static * @throws Nette\NotSupportedException if gd extension is not loaded * @throws ImageException + * @return static */ public static function fromString(string $s, ?int &$type = null) { @@ -150,7 +159,10 @@ public static function fromString(string $s, ?int &$type = null) } return self::invokeSafe('imagecreatefromstring', $s, 'Unable to open image from string.', __METHOD__); } - private static function invokeSafe(string $func, string $arg, string $message, string $callee) : self + /** + * @return static + */ + private static function invokeSafe(string $func, string $arg, string $message, string $callee) { $errors = []; $res = Callback::invokeSafe($func, [$arg], function (string $message) use(&$errors) : void { @@ -167,10 +179,11 @@ private static function invokeSafe(string $func, string $arg, string $message, s * Creates a new true color image of the given dimensions. The default color is black. * @param positive-int $width * @param positive-int $height - * @return static * @throws Nette\NotSupportedException if gd extension is not loaded + * @param \Nette\Utils\ImageColor|mixed[]|null $color + * @return static */ - public static function fromBlank(int $width, int $height, ?array $color = null) + public static function fromBlank(int $width, int $height, $color = null) { if (!\extension_loaded('gd')) { throw new Nette\NotSupportedException('PHP extension GD is not loaded.'); @@ -178,18 +191,17 @@ public static function fromBlank(int $width, int $height, ?array $color = null) if ($width < 1 || $height < 1) { throw new Nette\InvalidArgumentException('Image width and height must be greater than zero.'); } - $image = \imagecreatetruecolor($width, $height); + $image = new static(\imagecreatetruecolor($width, $height)); if ($color) { - $color += ['alpha' => 0]; - $color = \imagecolorresolvealpha($image, $color['red'], $color['green'], $color['blue'], $color['alpha']); - \imagealphablending($image, \false); - \imagefilledrectangle($image, 0, 0, $width - 1, $height - 1, $color); - \imagealphablending($image, \true); + $image->alphablending(\false); + $image->filledrectangle(0, 0, $width - 1, $height - 1, $color); + $image->alphablending(\true); } - return new static($image); + return $image; } /** * Returns the type of image from file. + * @return ImageType::*|null */ public static function detectTypeFromFile(string $file, &$width = null, &$height = null) : ?int { @@ -199,6 +211,7 @@ public static function detectTypeFromFile(string $file, &$width = null, &$height } /** * Returns the type of image from string. + * @return ImageType::*|null */ public static function detectTypeFromString(string $s, &$width = null, &$height = null) : ?int { @@ -207,7 +220,9 @@ public static function detectTypeFromString(string $s, &$width = null, &$height return isset(self::Formats[$type]) ? $type : null; } /** - * Returns the file extension for the given `Image::XXX` constant. + * Returns the file extension for the given image type. + * @param ImageType::* $type + * @return value-of */ public static function typeToExtension(int $type) : string { @@ -217,11 +232,12 @@ public static function typeToExtension(int $type) : string return self::Formats[$type]; } /** - * Returns the `Image::XXX` constant for given file extension. + * Returns the image type for given file extension. + * @return ImageType::* */ public static function extensionToType(string $extension) : int { - $extensions = \array_flip(self::Formats) + ['jpg' => self::JPEG]; + $extensions = \array_flip(self::Formats) + ['jpg' => ImageType::JPEG]; $extension = \strtolower($extension); if (!isset($extensions[$extension])) { throw new Nette\InvalidArgumentException("Unsupported file extension '{$extension}'."); @@ -229,17 +245,53 @@ public static function extensionToType(string $extension) : int return $extensions[$extension]; } /** - * Returns the mime type for the given `Image::XXX` constant. + * Returns the mime type for the given image type. + * @param ImageType::* $type */ public static function typeToMimeType(int $type) : string { return 'image/' . self::typeToExtension($type); } + /** + * @param ImageType::* $type + */ + public static function isTypeSupported(int $type) : bool + { + switch ($type) { + case ImageType::JPEG: + return \IMG_JPG; + case ImageType::PNG: + return \IMG_PNG; + case ImageType::GIF: + return \IMG_GIF; + case ImageType::WEBP: + return \IMG_WEBP; + case ImageType::AVIF: + return 256; + case ImageType::BMP: + return \IMG_BMP; + default: + return 0; + } + } + /** @return ImageType[] */ + public static function getSupportedTypes() : array + { + $flag = \imagetypes(); + return \array_filter([ + $flag & \IMG_GIF ? ImageType::GIF : null, + $flag & \IMG_JPG ? ImageType::JPEG : null, + $flag & \IMG_PNG ? ImageType::PNG : null, + $flag & \IMG_WEBP ? ImageType::WEBP : null, + $flag & 256 ? ImageType::AVIF : null, + // IMG_AVIF + $flag & \IMG_BMP ? ImageType::BMP : null, + ]); + } /** * Wraps GD image. - * @param resource|\GdImage $image */ - public function __construct($image) + public function __construct(\GdImage $image) { $this->setImageResource($image); \imagesavealpha($image, \true); @@ -262,40 +314,36 @@ public function getHeight() : int } /** * Sets image resource. - * @param resource|\GdImage $image * @return static */ - protected function setImageResource($image) + protected function setImageResource(\GdImage $image) { - if (!$image instanceof \GdImage && !(\is_resource($image) && \get_resource_type($image) === 'gd')) { - throw new Nette\InvalidArgumentException('Image is not valid.'); - } $this->image = $image; return $this; } /** * Returns image GD resource. - * @return resource|\GdImage */ - public function getImageResource() + public function getImageResource() : \GdImage { return $this->image; } /** - * Scales an image. - * @param int|string|null $width in pixels or percent - * @param int|string|null $height in pixels or percent + * Scales an image. Width and height accept pixels or percent. + * @param int-mask-of $mode + * @param int|string|null $width + * @param int|string|null $height * @return static */ - public function resize($width, $height, int $flags = self::FIT) + public function resize($width, $height, int $mode = self::OrSmaller) { - if ($flags & self::EXACT) { - return $this->resize($width, $height, self::FILL)->crop('50%', '50%', $width, $height); + if ($mode & self::Cover) { + return $this->resize($width, $height, self::OrBigger)->crop('50%', '50%', $width, $height); } - [$newWidth, $newHeight] = static::calculateSize($this->getWidth(), $this->getHeight(), $width, $height, $flags); + [$newWidth, $newHeight] = static::calculateSize($this->getWidth(), $this->getHeight(), $width, $height, $mode); if ($newWidth !== $this->getWidth() || $newHeight !== $this->getHeight()) { // resize - $newImage = static::fromBlank($newWidth, $newHeight, self::rgb(0, 0, 0, 127))->getImageResource(); + $newImage = static::fromBlank($newWidth, $newHeight, ImageColor::rgb(0, 0, 0, 0))->getImageResource(); \imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->getWidth(), $this->getHeight()); $this->image = $newImage; } @@ -305,11 +353,10 @@ public function resize($width, $height, int $flags = self::FIT) return $this; } /** - * Calculates dimensions of resized image. - * @param int|string|null $newWidth in pixels or percent - * @param int|string|null $newHeight in pixels or percent + * Calculates dimensions of resized image. Width and height accept pixels or percent. + * @param int-mask-of $mode */ - public static function calculateSize(int $srcWidth, int $srcHeight, $newWidth, $newHeight, int $flags = self::FIT) : array + public static function calculateSize(int $srcWidth, int $srcHeight, $newWidth, $newHeight, int $mode = self::OrSmaller) : array { if ($newWidth === null) { } elseif (self::isPercent($newWidth)) { @@ -321,18 +368,18 @@ public static function calculateSize(int $srcWidth, int $srcHeight, $newWidth, $ if ($newHeight === null) { } elseif (self::isPercent($newHeight)) { $newHeight = (int) \round($srcHeight / 100 * \abs($newHeight)); - $flags |= empty($percents) ? 0 : self::STRETCH; + $mode |= empty($percents) ? 0 : self::Stretch; } else { $newHeight = \abs($newHeight); } - if ($flags & self::STRETCH) { + if ($mode & self::Stretch) { // non-proportional if (!$newWidth || !$newHeight) { throw new Nette\InvalidArgumentException('For stretching must be both width and height specified.'); } - if ($flags & self::SHRINK_ONLY) { - $newWidth = (int) \round($srcWidth * \min(1, $newWidth / $srcWidth)); - $newHeight = (int) \round($srcHeight * \min(1, $newHeight / $srcHeight)); + if ($mode & self::ShrinkOnly) { + $newWidth = \min($srcWidth, $newWidth); + $newHeight = \min($srcHeight, $newHeight); } } else { // proportional @@ -348,10 +395,10 @@ public static function calculateSize(int $srcWidth, int $srcHeight, $newWidth, $ // fit height $scale[] = $newHeight / $srcHeight; } - if ($flags & self::FILL) { + if ($mode & self::OrBigger) { $scale = [\max($scale)]; } - if ($flags & self::SHRINK_ONLY) { + if ($mode & self::ShrinkOnly) { $scale[] = 1; } $scale = \min($scale); @@ -361,11 +408,11 @@ public static function calculateSize(int $srcWidth, int $srcHeight, $newWidth, $ return [\max($newWidth, 1), \max($newHeight, 1)]; } /** - * Crops image. - * @param int|string $left in pixels or percent - * @param int|string $top in pixels or percent - * @param int|string $width in pixels or percent - * @param int|string $height in pixels or percent + * Crops image. Arguments accepts pixels or percent. + * @param int|string $left + * @param int|string $top + * @param int|string $width + * @param int|string $height * @return static */ public function crop($left, $top, $width, $height) @@ -375,18 +422,18 @@ public function crop($left, $top, $width, $height) $this->image = \imagecrop($this->image, $r); \imagesavealpha($this->image, \true); } else { - $newImage = static::fromBlank($r['width'], $r['height'], self::RGB(0, 0, 0, 127))->getImageResource(); + $newImage = static::fromBlank($r['width'], $r['height'], ImageColor::rgb(0, 0, 0, 0))->getImageResource(); \imagecopy($newImage, $this->image, 0, 0, $r['x'], $r['y'], $r['width'], $r['height']); $this->image = $newImage; } return $this; } /** - * Calculates dimensions of cutout in image. - * @param int|string $left in pixels or percent - * @param int|string $top in pixels or percent - * @param int|string $newWidth in pixels or percent - * @param int|string $newHeight in pixels or percent + * Calculates dimensions of cutout in image. Arguments accepts pixels or percent. + * @param int|string $left + * @param int|string $top + * @param int|string $newWidth + * @param int|string $newHeight */ public static function calculateCutout(int $srcWidth, int $srcHeight, $left, $top, $newWidth, $newHeight) : array { @@ -429,10 +476,10 @@ public function sharpen() return $this; } /** - * Puts another image into this image. - * @param int|string $left in pixels or percent - * @param int|string $top in pixels or percent + * Puts another image into this image. Left and top accepts pixels or percent. * @param int<0, 100> $opacity 0..100 + * @param int|string $left + * @param int|string $top * @return static */ public function place(self $image, $left = 0, $top = 0, int $opacity = 100) @@ -474,8 +521,35 @@ public function place(self $image, $left = 0, $top = 0, int $opacity = 100) \imagecopy($this->image, $output, $left, $top, 0, 0, $width, $height); return $this; } + /** + * Calculates the bounding box for a TrueType text. Returns keys left, top, width and height. + */ + public static function calculateTextBox(string $text, string $fontFile, float $size, float $angle = 0, array $options = []) : array + { + $box = \imagettfbbox($size, $angle, $fontFile, $text, $options); + return ['left' => $minX = \min([$box[0], $box[2], $box[4], $box[6]]), 'top' => $minY = \min([$box[1], $box[3], $box[5], $box[7]]), 'width' => \max([$box[0], $box[2], $box[4], $box[6]]) - $minX + 1, 'height' => \max([$box[1], $box[3], $box[5], $box[7]]) - $minY + 1]; + } + /** + * Draw a rectangle. + */ + public function rectangleWH(int $x, int $y, int $width, int $height, ImageColor $color) : void + { + if ($width !== 0 && $height !== 0) { + $this->rectangle($x, $y, $x + $width + ($width > 0 ? -1 : 1), $y + $height + ($height > 0 ? -1 : 1), $color); + } + } + /** + * Draw a filled rectangle. + */ + public function filledRectangleWH(int $x, int $y, int $width, int $height, ImageColor $color) : void + { + if ($width !== 0 && $height !== 0) { + $this->filledRectangle($x, $y, $x + $width + ($width > 0 ? -1 : 1), $y + $height + ($height > 0 ? -1 : 1), $color); + } + } /** * Saves image to the file. Quality is in the range 0..100 for JPEG (default 85), WEBP (default 80) and AVIF (default 30) and 0..9 for PNG (default 9). + * @param ImageType::*|null $type * @throws ImageException */ public function save(string $file, ?int $quality = null, ?int $type = null) : void @@ -485,10 +559,11 @@ public function save(string $file, ?int $quality = null, ?int $type = null) : vo } /** * Outputs image to string. Quality is in the range 0..100 for JPEG (default 85), WEBP (default 80) and AVIF (default 30) and 0..9 for PNG (default 9). + * @param ImageType::* $type */ - public function toString(int $type = self::JPEG, ?int $quality = null) : string + public function toString(int $type = ImageType::JPEG, ?int $quality = null) : string { - return Helpers::capture(function () use($type, $quality) { + return Helpers::capture(function () use($type, $quality) : void { $this->output($type, $quality); }); } @@ -497,57 +572,51 @@ public function toString(int $type = self::JPEG, ?int $quality = null) : string */ public function __toString() : string { - try { - return $this->toString(); - } catch (\Throwable $e) { - if (\func_num_args() || \PHP_VERSION_ID >= 70400) { - throw $e; - } - \trigger_error('Exception in ' . __METHOD__ . "(): {$e->getMessage()} in {$e->getFile()}:{$e->getLine()}", \E_USER_ERROR); - return ''; - } + return $this->toString(); } /** * Outputs image to browser. Quality is in the range 0..100 for JPEG (default 85), WEBP (default 80) and AVIF (default 30) and 0..9 for PNG (default 9). + * @param ImageType::* $type * @throws ImageException */ - public function send(int $type = self::JPEG, ?int $quality = null) : void + public function send(int $type = ImageType::JPEG, ?int $quality = null) : void { \header('Content-Type: ' . self::typeToMimeType($type)); $this->output($type, $quality); } /** * Outputs image to browser or file. + * @param ImageType::* $type * @throws ImageException */ private function output(int $type, ?int $quality, ?string $file = null) : void { switch ($type) { - case self::JPEG: + case ImageType::JPEG: $quality = $quality === null ? 85 : \max(0, \min(100, $quality)); $success = @\imagejpeg($this->image, $file, $quality); // @ is escalated to exception break; - case self::PNG: + case ImageType::PNG: $quality = $quality === null ? 9 : \max(0, \min(9, $quality)); $success = @\imagepng($this->image, $file, $quality); // @ is escalated to exception break; - case self::GIF: + case ImageType::GIF: $success = @\imagegif($this->image, $file); // @ is escalated to exception break; - case self::WEBP: + case ImageType::WEBP: $quality = $quality === null ? 80 : \max(0, \min(100, $quality)); $success = @\imagewebp($this->image, $file, $quality); // @ is escalated to exception break; - case self::AVIF: + case ImageType::AVIF: $quality = $quality === null ? 30 : \max(0, \min(100, $quality)); $success = @\imageavif($this->image, $file, $quality); // @ is escalated to exception break; - case self::BMP: + case ImageType::BMP: $success = @\imagebmp($this->image, $file); // @ is escalated to exception break; @@ -560,8 +629,8 @@ private function output(int $type, ?int $quality, ?string $file = null) : void } /** * Call to undefined method. - * @return mixed * @throws Nette\MemberAccessException + * @return mixed */ public function __call(string $name, array $args) { @@ -572,13 +641,12 @@ public function __call(string $name, array $args) foreach ($args as $key => $value) { if ($value instanceof self) { $args[$key] = $value->getImageResource(); - } elseif (\is_array($value) && isset($value['red'])) { - // rgb - $args[$key] = \imagecolorallocatealpha($this->image, $value['red'], $value['green'], $value['blue'], $value['alpha']) ?: \imagecolorresolvealpha($this->image, $value['red'], $value['green'], $value['blue'], $value['alpha']); + } elseif ($value instanceof ImageColor || \is_array($value) && isset($value['red'])) { + $args[$key] = $this->resolveColor($value); } } $res = $function($this->image, ...$args); - return $res instanceof \GdImage || \is_resource($res) && \get_resource_type($res) === 'gd' ? $this->setImageResource($res) : $res; + return \is_resource($res) || $res instanceof \GdImage ? $this->setImageResource($res) : $res; } public function __clone() { @@ -588,11 +656,11 @@ public function __clone() $this->setImageResource(\imagecreatefromstring(\ob_get_clean())); } /** - * @param int|string $num in pixels or percent + * @param int|string $num */ private static function isPercent(&$num) : bool { - if (\is_string($num) && \substr($num, -1) === '%') { + if (\is_string($num) && \substr_compare($num, '%', -\strlen('%')) === 0) { $num = (float) \substr($num, 0, -1); return \true; } elseif (\is_int($num) || $num === (string) (int) $num) { @@ -608,4 +676,12 @@ public function __sleep() : array { throw new Nette\NotSupportedException('You cannot serialize or unserialize ' . self::class . ' instances.'); } + /** + * @param \Nette\Utils\ImageColor|mixed[] $color + */ + public function resolveColor($color) : int + { + $color = $color instanceof ImageColor ? $color->toRGBA() : \array_values($color); + return \imagecolorallocatealpha($this->image, ...$color) ?: \imagecolorresolvealpha($this->image, ...$color); + } } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageColor.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageColor.php new file mode 100644 index 000000000..9194b7803 --- /dev/null +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageColor.php @@ -0,0 +1,66 @@ +red = $red; + $this->green = $green; + $this->blue = $blue; + $this->opacity = $opacity; + $this->red = \max(0, \min(255, $red)); + $this->green = \max(0, \min(255, $green)); + $this->blue = \max(0, \min(255, $blue)); + $this->opacity = \max(0, \min(1, $opacity)); + } + public function toRGBA() : array + { + return [\max(0, \min(255, $this->red)), \max(0, \min(255, $this->green)), \max(0, \min(255, $this->blue)), \max(0, \min(127, (int) \round(127 - $this->opacity * 127)))]; + } +} diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageType.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageType.php new file mode 100644 index 000000000..7654a0169 --- /dev/null +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ImageType.php @@ -0,0 +1,17 @@ + $v) { + if ($k === $key) { + return \true; + } + } + return \false; + } + /** + * Returns the first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null. + * The $predicate has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template T + * @param iterable $iterable + * @return ?T + */ + public static function first(iterable $iterable, ?callable $predicate = null, ?callable $else = null) + { + foreach ($iterable as $k => $v) { + if (!$predicate || $predicate($v, $k, $iterable)) { + return $v; + } + } + return $else ? $else() : null; + } + /** + * Returns the key of first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null. + * The $predicate has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template T + * @param iterable $iterable + * @return ?T + */ + public static function firstKey(iterable $iterable, ?callable $predicate = null, ?callable $else = null) + { + foreach ($iterable as $k => $v) { + if (!$predicate || $predicate($v, $k, $iterable)) { + return $k; + } + } + return $else ? $else() : null; + } + /** + * Tests whether at least one element in the iterator passes the test implemented by the + * provided callback with signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template K + * @template V + * @param iterable $iterable + * @param callable(V, K, iterable): bool $predicate + */ + public static function some(iterable $iterable, callable $predicate) : bool + { + foreach ($iterable as $k => $v) { + if ($predicate($v, $k, $iterable)) { + return \true; + } + } + return \false; + } + /** + * Tests whether all elements in the iterator pass the test implemented by the provided function, + * which has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template K + * @template V + * @param iterable $iterable + * @param callable(V, K, iterable): bool $predicate + */ + public static function every(iterable $iterable, callable $predicate) : bool + { + foreach ($iterable as $k => $v) { + if (!$predicate($v, $k, $iterable)) { + return \false; + } + } + return \true; + } + /** + * Iterator that filters elements according to a given $predicate. Maintains original keys. + * The callback has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template K + * @template V + * @param iterable $iterable + * @param callable(V, K, iterable): bool $predicate + * @return \Generator + */ + public static function filter(iterable $iterable, callable $predicate) : \Generator + { + foreach ($iterable as $k => $v) { + if ($predicate($v, $k, $iterable)) { + (yield $k => $v); + } + } + } + /** + * Iterator that transforms values by calling $transformer. Maintains original keys. + * The callback has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`. + * @template K + * @template V + * @template R + * @param iterable $iterable + * @param callable(V, K, iterable): R $transformer + * @return \Generator + */ + public static function map(iterable $iterable, callable $transformer) : \Generator + { + foreach ($iterable as $k => $v) { + (yield $k => $transformer($v, $k, $iterable)); + } + } +} diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php index 85a348b0b..a1f58bde9 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php @@ -5,27 +5,37 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * JSON encoder and decoder. */ final class Json { use Nette\StaticClass; + /** @deprecated use Json::decode(..., forceArrays: true) */ public const FORCE_ARRAY = \JSON_OBJECT_AS_ARRAY; + /** @deprecated use Json::encode(..., pretty: true) */ public const PRETTY = \JSON_PRETTY_PRINT; + /** @deprecated use Json::encode(..., asciiSafe: true) */ public const ESCAPE_UNICODE = 1 << 19; /** - * Converts value to JSON format. The flag can be Json::PRETTY, which formats JSON for easier reading and clarity, - * and Json::ESCAPE_UNICODE for ASCII output. - * @param mixed $value + * Converts value to JSON format. Use $pretty for easier reading and clarity, $asciiSafe for ASCII output + * and $htmlSafe for HTML escaping, $forceObjects enforces the encoding of non-associateve arrays as objects. * @throws JsonException + * @param bool|int $pretty + * @param mixed $value */ - public static function encode($value, int $flags = 0) : string + public static function encode($value, $pretty = \false, bool $asciiSafe = \false, bool $htmlSafe = \false, bool $forceObjects = \false) : string { - $flags = ($flags & self::ESCAPE_UNICODE ? 0 : \JSON_UNESCAPED_UNICODE) | \JSON_UNESCAPED_SLASHES | $flags & ~self::ESCAPE_UNICODE | (\defined('JSON_PRESERVE_ZERO_FRACTION') ? \JSON_PRESERVE_ZERO_FRACTION : 0); + if (\is_int($pretty)) { + // back compatibility + $flags = ($pretty & self::ESCAPE_UNICODE ? 0 : \JSON_UNESCAPED_UNICODE) | $pretty & ~self::ESCAPE_UNICODE; + } else { + $flags = ($asciiSafe ? 0 : \JSON_UNESCAPED_UNICODE) | ($pretty ? \JSON_PRETTY_PRINT : 0) | ($forceObjects ? \JSON_FORCE_OBJECT : 0) | ($htmlSafe ? \JSON_HEX_AMP | \JSON_HEX_APOS | \JSON_HEX_QUOT | \JSON_HEX_TAG : 0); + } + $flags |= \JSON_UNESCAPED_SLASHES | (\defined('JSON_PRESERVE_ZERO_FRACTION') ? \JSON_PRESERVE_ZERO_FRACTION : 0); // since PHP 5.6.6 & PECL JSON-C 1.3.7 $json = \json_encode($value, $flags); if ($error = \json_last_error()) { @@ -34,13 +44,16 @@ public static function encode($value, int $flags = 0) : string return $json; } /** - * Parses JSON to PHP value. The flag can be Json::FORCE_ARRAY, which forces an array instead of an object as the return value. - * @return mixed + * Parses JSON to PHP value. The $forceArrays enforces the decoding of objects as arrays. * @throws JsonException + * @param bool|int $forceArrays + * @return mixed */ - public static function decode(string $json, int $flags = 0) + public static function decode(string $json, $forceArrays = \false) { - $value = \json_decode($json, null, 512, $flags | \JSON_BIGINT_AS_STRING); + $flags = \is_int($forceArrays) ? $forceArrays : ($forceArrays ? \JSON_OBJECT_AS_ARRAY : 0); + $flags |= \JSON_BIGINT_AS_STRING; + $value = \json_decode($json, null, 512, $flags); if ($error = \json_last_error()) { throw new JsonException(\json_last_error_msg(), $error); } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php index 40e0d24c4..122f93e7d 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; -use RectorPrefix202403\Nette\MemberAccessException; +use RectorPrefix202405\Nette; +use RectorPrefix202405\Nette\MemberAccessException; /** * Nette\SmartObject helpers. * @internal @@ -148,12 +148,13 @@ private static function parseFullDoc(\ReflectionClass $rc, string $pattern) : ar $traits += $trait->getTraits(); } } while ($rc = $rc->getParentClass()); - return \preg_match_all($pattern, \implode($doc), $m) ? $m[1] : []; + return \preg_match_all($pattern, \implode('', $doc), $m) ? $m[1] : []; } /** * Checks if the public non-static property exists. - * @return bool|string returns 'event' if the property exists and has event like name + * Returns 'event' if the property exists and has event like name * @internal + * @return bool|string */ public static function hasProperty(string $class, string $name) { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php deleted file mode 100644 index 232a11718..000000000 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php +++ /dev/null @@ -1,32 +0,0 @@ -|null */ private $itemCount; /** * Sets current page number. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php index 628a49c60..2cd0d8a8d 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php @@ -5,9 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; +use Random\Randomizer; /** * Secure random string generator. */ @@ -20,14 +21,17 @@ final class Random */ public static function generate(int $length = 10, string $charlist = '0-9a-z') : string { - $charlist = \count_chars(\preg_replace_callback('#.-.#', function (array $m) : string { + $charlist = \preg_replace_callback('#.-.#', function (array $m) : string { return \implode('', \range($m[0][0], $m[0][2])); - }, $charlist), 3); + }, $charlist); + $charlist = \count_chars($charlist, 3); $chLen = \strlen($charlist); if ($length < 1) { throw new Nette\InvalidArgumentException('Length must be greater than zero.'); } elseif ($chLen < 2) { throw new Nette\InvalidArgumentException('Character list must contain at least two chars.'); + } elseif (\PHP_VERSION_ID >= 80300) { + return (new Randomizer())->getBytesFromString($charlist, $length); } $res = ''; for ($i = 0; $i < $length; $i++) { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php index 3e7cc3f76..21fbb73b3 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php @@ -5,104 +5,27 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * PHP reflection helpers. */ final class Reflection { use Nette\StaticClass; - /** - * Determines if type is PHP built-in type. Otherwise, it is the class name. - */ + /** @deprecated use Nette\Utils\Validator::isBuiltinType() */ public static function isBuiltinType(string $type) : bool { return Validators::isBuiltinType($type); } - /** - * Determines if type is special class name self/parent/static. - */ + /** @deprecated use Nette\Utils\Validator::isClassKeyword() */ public static function isClassKeyword(string $name) : bool { return Validators::isClassKeyword($name); } - /** - * Returns the type of return value of given function or method and normalizes `self`, `static`, and `parent` to actual class names. - * If the function does not have a return type, it returns null. - * If the function has union or intersection type, it throws Nette\InvalidStateException. - * @deprecated use Nette\Utils\Type::fromReflection() - */ - public static function getReturnType(\ReflectionFunctionAbstract $func) : ?string - { - $type = $func->getReturnType() ?? (\PHP_VERSION_ID >= 80100 && $func instanceof \ReflectionMethod ? $func->getTentativeReturnType() : null); - return self::getType($func, $type); - } - /** - * @deprecated - */ - public static function getReturnTypes(\ReflectionFunctionAbstract $func) : array - { - $type = Type::fromReflection($func); - return $type ? $type->getNames() : []; - } - /** - * Returns the type of given parameter and normalizes `self` and `parent` to the actual class names. - * If the parameter does not have a type, it returns null. - * If the parameter has union or intersection type, it throws Nette\InvalidStateException. - * @deprecated use Nette\Utils\Type::fromReflection() - */ - public static function getParameterType(\ReflectionParameter $param) : ?string - { - return self::getType($param, $param->getType()); - } - /** - * @deprecated - */ - public static function getParameterTypes(\ReflectionParameter $param) : array - { - $type = Type::fromReflection($param); - return $type ? $type->getNames() : []; - } - /** - * Returns the type of given property and normalizes `self` and `parent` to the actual class names. - * If the property does not have a type, it returns null. - * If the property has union or intersection type, it throws Nette\InvalidStateException. - * @deprecated use Nette\Utils\Type::fromReflection() - */ - public static function getPropertyType(\ReflectionProperty $prop) : ?string - { - return self::getType($prop, \PHP_VERSION_ID >= 70400 ? \method_exists($prop, 'getType') ? $prop->getType() : null : null); - } - /** - * @deprecated - */ - public static function getPropertyTypes(\ReflectionProperty $prop) : array - { - $type = Type::fromReflection($prop); - return $type ? $type->getNames() : []; - } - /** - * @param \ReflectionFunction|\ReflectionMethod|\ReflectionParameter|\ReflectionProperty $reflection - */ - private static function getType($reflection, ?\ReflectionType $type) : ?string - { - if ($type === null) { - return null; - } elseif ($type instanceof \ReflectionNamedType) { - return Type::resolve($type->getName(), $reflection); - } elseif ($type instanceof \ReflectionUnionType || $type instanceof \ReflectionIntersectionType) { - throw new Nette\InvalidStateException('The ' . self::toString($reflection) . ' is not expected to have a union or intersection type.'); - } else { - throw new Nette\InvalidStateException('Unexpected type of ' . self::toString($reflection)); - } - } - /** - * Returns the default value of parameter. If it is a constant, it returns its value. - * @return mixed - * @throws \ReflectionException If the parameter does not have a default value or the constant cannot be resolved - */ + /** @deprecated use native ReflectionParameter::getDefaultValue() + * @return mixed */ public static function getParameterDefaultValue(\ReflectionParameter $param) { if ($param->isDefaultValueConstant()) { @@ -248,10 +171,10 @@ private static function parseUseStatements(string $code, ?string $forClass = nul $namespace = $class = null; $classLevel = $level = 0; $res = $uses = []; - $nameTokens = \PHP_VERSION_ID < 80000 ? [\T_STRING, \T_NS_SEPARATOR] : [\T_STRING, \T_NS_SEPARATOR, \T_NAME_QUALIFIED, \T_NAME_FULLY_QUALIFIED]; + $nameTokens = [\T_STRING, \T_NS_SEPARATOR, \T_NAME_QUALIFIED, \T_NAME_FULLY_QUALIFIED]; while ($token = \current($tokens)) { \next($tokens); - switch (\is_array($token) ? $token[0] : $token) { + switch ($token->id) { case \T_NAMESPACE: $namespace = \ltrim(self::fetch($tokens, $nameTokens) . '\\', '\\'); $uses = []; @@ -297,10 +220,10 @@ private static function parseUseStatements(string $code, ?string $forClass = nul break; case \T_CURLY_OPEN: case \T_DOLLAR_OPEN_CURLY_BRACES: - case '{': + case \ord('{'): $level++; break; - case '}': + case \ord('}'): if ($level === $classLevel) { $class = $classLevel = 0; } @@ -309,14 +232,16 @@ private static function parseUseStatements(string $code, ?string $forClass = nul } return $res; } + /** + * @param string|int|mixed[] $take + */ private static function fetch(array &$tokens, $take) : ?string { $res = null; while ($token = \current($tokens)) { - [$token, $s] = \is_array($token) ? $token : [$token, $token]; - if (\in_array($token, (array) $take, \true)) { - $res .= $s; - } elseif (!\in_array($token, [\T_DOC_COMMENT, \T_WHITESPACE, \T_COMMENT], \true)) { + if ($token->is($take)) { + $res .= $token->text; + } elseif (!$token->is([\T_DOC_COMMENT, \T_WHITESPACE, \T_COMMENT])) { break; } \next($tokens); diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ReflectionMethod.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ReflectionMethod.php new file mode 100644 index 000000000..6025eb55b --- /dev/null +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ReflectionMethod.php @@ -0,0 +1,35 @@ +originalClass = new \ReflectionClass($objectOrMethod); + } + public function getOriginalClass() : \ReflectionClass + { + return $this->originalClass; + } +} diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php index 5fa726f87..09807fdf3 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\JetBrains\PhpStorm\Language; -use RectorPrefix202403\Nette; +use RectorPrefix202405\JetBrains\PhpStorm\Language; +use RectorPrefix202405\Nette; use function is_array, is_object, strlen; /** * String tools library. @@ -16,9 +16,11 @@ class Strings { use Nette\StaticClass; - public const TRIM_CHARACTERS = " \t\n\r\x00\v "; + public const TrimCharacters = " \t\n\r\x00\v            ​"; + /** @deprecated use Strings::TrimCharacters */ + public const TRIM_CHARACTERS = self::TrimCharacters; /** - * Checks if the string is valid in UTF-8 encoding. + * @deprecated use Nette\Utils\Validator::isUnicode() */ public static function checkEncoding(string $s) : bool { @@ -46,21 +48,35 @@ public static function chr(int $code) : string return \iconv('UTF-32BE', 'UTF-8//IGNORE', \pack('N', $code)); } /** - * Starts the $haystack string with the prefix $needle? + * Returns a code point of specific character in UTF-8 (number in range 0x0000..D7FF or 0xE000..10FFFF). + */ + public static function ord(string $c) : int + { + if (!\extension_loaded('iconv')) { + throw new Nette\NotSupportedException(__METHOD__ . '() requires ICONV extension that is not loaded.'); + } + $tmp = \iconv('UTF-8', 'UTF-32BE//IGNORE', $c); + if (!$tmp) { + throw new Nette\InvalidArgumentException('Invalid UTF-8 character "' . ($c === '' ? '' : '\\x' . \strtoupper(\bin2hex($c))) . '".'); + } + return \unpack('N', $tmp)[1]; + } + /** + * @deprecated use str_starts_with() */ public static function startsWith(string $haystack, string $needle) : bool { return \strncmp($haystack, $needle, strlen($needle)) === 0; } /** - * Ends the $haystack string with the suffix $needle? + * @deprecated use str_ends_with() */ public static function endsWith(string $haystack, string $needle) : bool { - return $needle === '' || \substr($haystack, -strlen($needle)) === $needle; + return \substr_compare($haystack, $needle, -strlen($needle)) === 0; } /** - * Does $haystack contain $needle? + * @deprecated use str_contains() */ public static function contains(string $haystack, string $needle) : bool { @@ -95,7 +111,7 @@ public static function normalize(string $s) : string if (\class_exists('Normalizer', \false) && ($n = \Normalizer::normalize($s, \Normalizer::FORM_C)) !== \false) { $s = $n; } - $s = self::normalizeNewLines($s); + $s = self::unixNewLines($s); // remove control characters; leave \t + \n $s = self::pcre('preg_replace', ['#[\\x00-\\x08\\x0B-\\x1F\\x7F-\\x9F]+#u', '', $s]); // right trim @@ -104,12 +120,26 @@ public static function normalize(string $s) : string $s = \trim($s, "\n"); return $s; } + /** @deprecated use Strings::unixNewLines() */ + public static function normalizeNewLines(string $s) : string + { + return self::unixNewLines($s); + } /** - * Standardize line endings to unix-like. + * Converts line endings to \n used on Unix-like systems. + * Line endings are: \n, \r, \r\n, U+2028 line separator, U+2029 paragraph separator. */ - public static function normalizeNewLines(string $s) : string + public static function unixNewLines(string $s) : string + { + return \preg_replace("~\r\n?|
|
~", "\n", $s); + } + /** + * Converts line endings to platform-specific, i.e. \r\n on Windows and \n elsewhere. + * Line endings are: \n, \r, \r\n, U+2028 line separator, U+2029 paragraph separator. + */ + public static function platformNewLines(string $s) : string { - return \str_replace(["\r\n", "\r"], "\n", $s); + return \preg_replace("~\r\n?|\n|
|
~", \PHP_EOL, $s); } /** * Converts UTF-8 string to ASCII, ie removes diacritics etc. @@ -297,12 +327,19 @@ public static function findPrefix(array $strings) : string */ public static function length(string $s) : int { - return \function_exists('mb_strlen') ? \mb_strlen($s, 'UTF-8') : strlen(\utf8_decode($s)); + switch (\true) { + case \extension_loaded('mbstring'): + return \mb_strlen($s, 'UTF-8'); + case \extension_loaded('iconv'): + return \iconv_strlen($s, 'UTF-8'); + default: + return strlen(@\utf8_decode($s)); + } } /** * Removes all left and right side spaces (or the characters passed as second argument) from a UTF-8 encoded string. */ - public static function trim(string $s, string $charlist = self::TRIM_CHARACTERS) : string + public static function trim(string $s, string $charlist = self::TrimCharacters) : string { $charlist = \preg_quote($charlist, '#'); return self::replace($s, '#^[' . $charlist . ']+|[' . $charlist . ']+$#Du', ''); @@ -394,8 +431,8 @@ private static function pos(string $haystack, string $needle, int $nth = 1) : ?i return Helpers::falseToNull($pos); } /** - * Splits a string into array by the regular expression. Parenthesized expression in the delimiter are captured. - * Parameter $flags can be any combination of PREG_SPLIT_NO_EMPTY and PREG_OFFSET_CAPTURE flags. + * Divides the string into arrays according to the regular expression. Expressions in parentheses will be captured and returned as well. + * @param bool|int $captureOffset */ public static function split( string $subject, @@ -403,14 +440,21 @@ public static function split( * @language */ string $pattern, - int $flags = 0 + $captureOffset = \false, + bool $skipEmpty = \false, + int $limit = -1, + bool $utf8 = \false ) : array { - return self::pcre('preg_split', [$pattern, $subject, -1, $flags | \PREG_SPLIT_DELIM_CAPTURE]); + $flags = \is_int($captureOffset) ? $captureOffset : ($captureOffset ? \PREG_SPLIT_OFFSET_CAPTURE : 0) | ($skipEmpty ? \PREG_SPLIT_NO_EMPTY : 0); + $pattern .= $utf8 ? 'u' : ''; + $m = self::pcre('preg_split', [$pattern, $subject, $limit, $flags | \PREG_SPLIT_DELIM_CAPTURE]); + return $utf8 && $captureOffset ? self::bytesToChars($subject, [$m])[0] : $m; } /** - * Checks if given string matches a regular expression pattern and returns an array with first found match and each subpattern. - * Parameter $flags can be any combination of PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags. + * Searches the string for the part matching the regular expression and returns + * an array with the found expression and individual subexpressions, or `null`. + * @param bool|int $captureOffset */ public static function match( string $subject, @@ -418,18 +462,31 @@ public static function match( * @language */ string $pattern, - int $flags = 0, - int $offset = 0 + $captureOffset = \false, + int $offset = 0, + bool $unmatchedAsNull = \false, + bool $utf8 = \false ) : ?array { + $flags = \is_int($captureOffset) ? $captureOffset : ($captureOffset ? \PREG_OFFSET_CAPTURE : 0) | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0); + if ($utf8) { + $offset = strlen(self::substring($subject, 0, $offset)); + $pattern .= 'u'; + } if ($offset > strlen($subject)) { return null; + } elseif (!self::pcre('preg_match', [$pattern, $subject, &$m, $flags, $offset])) { + return null; + } elseif ($utf8 && $captureOffset) { + return self::bytesToChars($subject, [$m])[0]; + } else { + return $m; } - return self::pcre('preg_match', [$pattern, $subject, &$m, $flags, $offset]) ? $m : null; } /** - * Finds all occurrences matching regular expression pattern and returns a two-dimensional array. Result is array of matches (ie uses by default PREG_SET_ORDER). - * Parameter $flags can be any combination of PREG_OFFSET_CAPTURE, PREG_UNMATCHED_AS_NULL and PREG_PATTERN_ORDER flags. + * Searches the string for all occurrences matching the regular expression and + * returns an array of arrays containing the found expression and each subexpression. + * @param bool|int $captureOffset */ public static function matchAll( string $subject, @@ -437,20 +494,28 @@ public static function matchAll( * @language */ string $pattern, - int $flags = 0, - int $offset = 0 + $captureOffset = \false, + int $offset = 0, + bool $unmatchedAsNull = \false, + bool $patternOrder = \false, + bool $utf8 = \false ) : array { + $flags = \is_int($captureOffset) ? $captureOffset : ($captureOffset ? \PREG_OFFSET_CAPTURE : 0) | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0) | ($patternOrder ? \PREG_PATTERN_ORDER : 0); + if ($utf8) { + $offset = strlen(self::substring($subject, 0, $offset)); + $pattern .= 'u'; + } if ($offset > strlen($subject)) { return []; } self::pcre('preg_match_all', [$pattern, $subject, &$m, $flags & \PREG_PATTERN_ORDER ? $flags : $flags | \PREG_SET_ORDER, $offset]); - return $m; + return $utf8 && $captureOffset ? self::bytesToChars($subject, $m) : $m; } /** * Replaces all occurrences matching regular expression $pattern which can be string or array in the form `pattern => replacement`. - * @param string|array $pattern - * @param string|callable $replacement + * @param string|mixed[] $pattern + * @param string|callable $replacement */ public static function replace( string $subject, @@ -459,20 +524,57 @@ public static function replace( */ $pattern, $replacement = '', - int $limit = -1 + int $limit = -1, + bool $captureOffset = \false, + bool $unmatchedAsNull = \false, + bool $utf8 = \false ) : string { if (is_object($replacement) || is_array($replacement)) { if (!\is_callable($replacement, \false, $textual)) { throw new Nette\InvalidStateException("Callback '{$textual}' is not callable."); } - return self::pcre('preg_replace_callback', [$pattern, $replacement, $subject, $limit]); + $flags = ($captureOffset ? \PREG_OFFSET_CAPTURE : 0) | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0); + if ($utf8) { + $pattern .= 'u'; + if ($captureOffset) { + $replacement = function ($m) use($replacement, $subject) { + return $replacement(self::bytesToChars($subject, [$m])[0]); + }; + } + } + if (PHP_VERSION_ID < 70400) { + return self::pcre('preg_replace_callback', [$pattern, $replacement, $subject, $limit]); +} + +return self::pcre('preg_replace_callback', [$pattern, $replacement, $subject, $limit, 0, $flags]); } elseif (is_array($pattern) && \is_string(\key($pattern))) { $replacement = \array_values($pattern); $pattern = \array_keys($pattern); } + if ($utf8) { + $pattern = \array_map(function ($item) { + return $item . 'u'; + }, (array) $pattern); + } return self::pcre('preg_replace', [$pattern, $replacement, $subject, $limit]); } + private static function bytesToChars(string $s, array $groups) : array + { + $lastBytes = $lastChars = 0; + foreach ($groups as &$matches) { + foreach ($matches as &$match) { + if ($match[1] > $lastBytes) { + $lastChars += self::length(\substr($s, $lastBytes, $match[1] - $lastBytes)); + } elseif ($match[1] < $lastBytes) { + $lastChars -= self::length(\substr($s, $match[1], $lastBytes - $match[1])); + } + $lastBytes = $match[1]; + $match[1] = $lastChars; + } + } + return $groups; + } /** @internal */ public static function pcre(string $func, array $args) { @@ -481,7 +583,7 @@ public static function pcre(string $func, array $args) throw new RegexpException($message . ' in pattern: ' . \implode(' or ', (array) $args[0])); }); if (($code = \preg_last_error()) && ($res === null || !\in_array($func, ['preg_filter', 'preg_replace_callback', 'preg_replace'], \true))) { - throw new RegexpException((RegexpException::MESSAGES[$code] ?? 'Unknown error') . ' (pattern: ' . \implode(' or ', (array) $args[0]) . ')', $code); + throw new RegexpException(\preg_last_error_msg() . ' (pattern: ' . \implode(' or ', (array) $args[0]) . ')', $code); } return $res; } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php index 9c160a50c..4565d38e1 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * PHP type reflection. */ @@ -15,26 +15,28 @@ final class Type { /** @var array */ private $types; - /** @var bool */ + /** + * @var bool + */ private $simple; - /** @var string |, & */ + /** + * @var string + */ private $kind; + // | & /** * Creates a Type object based on reflection. Resolves self, static and parent to the actual class name. * If the subject has no type, it returns null. - * @param \ReflectionFunctionAbstract|\ReflectionParameter|\ReflectionProperty $reflection + * @param \ReflectionFunctionAbstract|\ReflectionParameter|\ReflectionProperty $reflection */ public static function fromReflection($reflection) : ?self { - if ($reflection instanceof \ReflectionProperty && \PHP_VERSION_ID < 70400) { - return null; - } elseif ($reflection instanceof \ReflectionMethod) { - $type = $reflection->getReturnType() ?? (\PHP_VERSION_ID >= 80100 ? $reflection->getTentativeReturnType() : null); - } else { - $type = $reflection instanceof \ReflectionFunctionAbstract ? $reflection->getReturnType() : $reflection->getType(); - } + $type = $reflection instanceof \ReflectionFunctionAbstract ? $reflection->getReturnType() ?? (\PHP_VERSION_ID >= 80100 && $reflection instanceof \ReflectionMethod ? $reflection->getTentativeReturnType() : null) : $reflection->getType(); return $type ? self::fromReflectionType($type, $reflection, \true) : null; } + /** + * @return $this|string + */ private static function fromReflectionType(\ReflectionType $type, $of, bool $asObject) { if ($type instanceof \ReflectionNamedType) { @@ -68,15 +70,17 @@ public static function fromString(string $type) : self } /** * Resolves 'self', 'static' and 'parent' to the actual class name. - * @param \ReflectionFunctionAbstract|\ReflectionParameter|\ReflectionProperty $of + * @param \ReflectionFunctionAbstract|\ReflectionParameter|\ReflectionProperty $of */ public static function resolve(string $type, $of) : string { $lower = \strtolower($type); if ($of instanceof \ReflectionFunction) { return $type; - } elseif ($lower === 'self' || $lower === 'static') { + } elseif ($lower === 'self') { return $of->getDeclaringClass()->name; + } elseif ($lower === 'static') { + return ($of instanceof ReflectionMethod ? $of->getOriginalClass() : $of->getDeclaringClass())->name; } elseif ($lower === 'parent' && $of->getDeclaringClass()->getParentClass()) { return $of->getDeclaringClass()->getParentClass()->name; } else { @@ -203,9 +207,8 @@ private function allows2(array $subtypes) : bool private function allows3(array $types, array $subtypes) : bool { return Arrays::every($types, function ($type) use($subtypes) { - $builtin = Validators::isBuiltinType($type); - return Arrays::some($subtypes, function ($subtype) use($type, $builtin) { - return $builtin ? \strcasecmp($type, $subtype) === 0 : \is_a($subtype, $type, \true); + return Arrays::some($subtypes, function ($subtype) use($type) { + return Validators::isBuiltinType($type) ? \strcasecmp($type, $subtype) === 0 : \is_a($subtype, $type, \true); }); }); } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php index 64695caac..545477703 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; /** * Validation utilities. */ @@ -64,8 +64,8 @@ class Validators protected static $counters = ['string' => 'strlen', 'unicode' => [Strings::class, 'length'], 'array' => 'count', 'list' => 'count', 'alnum' => 'strlen', 'alpha' => 'strlen', 'digit' => 'strlen', 'lower' => 'strlen', 'space' => 'strlen', 'upper' => 'strlen', 'xdigit' => 'strlen']; /** * Verifies that the value is of expected types separated by pipe. - * @param mixed $value * @throws AssertionException + * @param mixed $value */ public static function assert($value, string $expected, string $label = 'variable') : void { @@ -84,7 +84,6 @@ public static function assert($value, string $expected, string $label = 'variabl /** * Verifies that element $key in array is of expected types separated by pipe. * @param mixed[] $array - * @param int|string $key * @throws AssertionException */ public static function assertField(array $array, $key, ?string $expected = null, string $label = "item '%' in array") : void @@ -97,17 +96,17 @@ public static function assertField(array $array, $key, ?string $expected = null, } /** * Verifies that the value is of expected types separated by pipe. - * @param mixed $value + * @param mixed $value */ public static function is($value, string $expected) : bool { foreach (\explode('|', $expected) as $item) { - if (\substr($item, -2) === '[]') { + if (\substr_compare($item, '[]', -\strlen('[]')) === 0) { if (\is_iterable($value) && self::everyIs($value, \substr($item, 0, -2))) { return \true; } continue; - } elseif (\substr($item, 0, 1) === '?') { + } elseif (\strncmp($item, '?', \strlen('?')) === 0) { $item = \substr($item, 1); if ($value === null) { return \true; @@ -162,7 +161,8 @@ public static function everyIs(iterable $values, string $expected) : bool } /** * Checks if the value is an integer or a float. - * @param mixed $value + * @return ($value is int|float ? true : false) + * @param mixed $value */ public static function isNumber($value) : bool { @@ -170,7 +170,8 @@ public static function isNumber($value) : bool } /** * Checks if the value is an integer or a integer written in a string. - * @param mixed $value + * @return ($value is non-empty-string ? bool : ($value is int ? true : false)) + * @param mixed $value */ public static function isNumericInt($value) : bool { @@ -178,7 +179,8 @@ public static function isNumericInt($value) : bool } /** * Checks if the value is a number or a number written in a string. - * @param mixed $value + * @return ($value is non-empty-string ? bool : ($value is int|float ? true : false)) + * @param mixed $value */ public static function isNumeric($value) : bool { @@ -186,7 +188,7 @@ public static function isNumeric($value) : bool } /** * Checks if the value is a syntactically correct callback. - * @param mixed $value + * @param mixed $value */ public static function isCallable($value) : bool { @@ -194,7 +196,7 @@ public static function isCallable($value) : bool } /** * Checks if the value is a valid UTF-8 string. - * @param mixed $value + * @param mixed $value */ public static function isUnicode($value) : bool { @@ -202,7 +204,8 @@ public static function isUnicode($value) : bool } /** * Checks if the value is 0, '', false or null. - * @param mixed $value + * @return ($value is 0|''|false|null ? true : false) + * @param mixed $value */ public static function isNone($value) : bool { @@ -216,9 +219,9 @@ public static function isMixed() : bool } /** * Checks if a variable is a zero-based integer indexed array. - * @param mixed $value * @deprecated use Nette\Utils\Arrays::isList * @return ($value is list ? true : false) + * @param mixed $value */ public static function isList($value) : bool { @@ -227,7 +230,7 @@ public static function isList($value) : bool /** * Checks if the value is in the given range [min, max], where the upper or lower limit can be omitted (null). * Numbers, strings and DateTime objects can be compared. - * @param mixed $value + * @param mixed $value */ public static function isInRange($value, array $range) : bool { @@ -258,12 +261,12 @@ public static function isEmail(string $value) : bool $alpha = "a-z\x80-\xff"; // superset of IDN return (bool) \preg_match(<< \\? (? [a-zA-Z_\x7f-\xff][\w\x7f-\xff]*) (\\ (?&name))* ) | - (? (?&type) (& (?&type))+ ) | - (? (?&type) | \( (?&intersection) \) ) (\| (?&upart))+ - )$~xAD +~((?n) + \?? (? \\? (? [a-zA-Z_\x7f-\xff][\w\x7f-\xff]*) (\\ (?&name))* ) | + (? (?&type) (& (?&type))+ ) | + (? (?&type) | \( (?&intersection) \) ) (\| (?&upart))+ +)$~xAD XX , $type); } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php index b37c5cd29..c5b9729c4 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; /** * The exception that is thrown when an image error occurs. @@ -22,7 +22,7 @@ class UnknownImageFileException extends ImageException /** * The exception that indicates error of JSON encoding/decoding. */ -class JsonException extends \Exception +class JsonException extends \JsonException { } /** @@ -30,7 +30,6 @@ class JsonException extends \Exception */ class RegexpException extends \Exception { - public const MESSAGES = [\PREG_INTERNAL_ERROR => 'Internal error', \PREG_BACKTRACK_LIMIT_ERROR => 'Backtrack limit was exhausted', \PREG_RECURSION_LIMIT_ERROR => 'Recursion limit was exhausted', \PREG_BAD_UTF8_ERROR => 'Malformed UTF-8 data', \PREG_BAD_UTF8_OFFSET_ERROR => 'Offset didn\'t correspond to the begin of a valid UTF-8 code point', 6 => 'Failed due to limited JIT stack space']; } /** * The exception that indicates assertion error. diff --git a/vendor/rector/rector/vendor/nette/utils/src/compatibility.php b/vendor/rector/rector/vendor/nette/utils/src/compatibility.php index 252ea8c3f..590dbb5ff 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/compatibility.php +++ b/vendor/rector/rector/vendor/nette/utils/src/compatibility.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette\Utils; +namespace RectorPrefix202405\Nette\Utils; -use RectorPrefix202403\Nette; +use RectorPrefix202405\Nette; if (\false) { /** @deprecated use Nette\HtmlStringable */ interface IHtmlString extends Nette\HtmlStringable @@ -16,7 +16,7 @@ interface IHtmlString extends Nette\HtmlStringable } elseif (!\interface_exists(IHtmlString::class)) { \class_alias(Nette\HtmlStringable::class, IHtmlString::class); } -namespace RectorPrefix202403\Nette\Localization; +namespace RectorPrefix202405\Nette\Localization; if (\false) { /** @deprecated use Nette\Localization\Translator */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/exceptions.php b/vendor/rector/rector/vendor/nette/utils/src/exceptions.php index 539d43710..cfa90f2bc 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/exceptions.php +++ b/vendor/rector/rector/vendor/nette/utils/src/exceptions.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202403\Nette; +namespace RectorPrefix202405\Nette; /** * The exception that is thrown when the value of an argument is diff --git a/vendor/rector/rector/vendor/nikic/php-parser/README.md b/vendor/rector/rector/vendor/nikic/php-parser/README.md index 36de23cde..3bca288b9 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/README.md +++ b/vendor/rector/rector/vendor/nikic/php-parser/README.md @@ -6,7 +6,7 @@ PHP Parser This is a PHP 5.2 to PHP 8.2 parser written in PHP. Its purpose is to simplify static code analysis and manipulation. -[**Documentation for version 4.x**][doc_4_x] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.2). +[**Documentation for version 4.x**][doc_4_x] (stable; for running on PHP >= 7.1; for parsing PHP 5.2 to PHP 8.2). [Documentation for version 3.x][doc_3_x] (unsupported; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2). diff --git a/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse b/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse index a24ecb695..14cbc88b9 100755 --- a/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse +++ b/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse @@ -1,6 +1,6 @@ #!/usr/bin/env php =7.0", + "php": ">=7.1", "ext-tokenizer": "*" }, "require-dev": { diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php index b37c94a1c..d756a554a 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php @@ -35,7 +35,7 @@ class ConstExprEvaluator * * @param callable|null $fallbackEvaluator To call if subexpression cannot be evaluated */ - public function __construct(callable $fallbackEvaluator = null) + public function __construct(?callable $fallbackEvaluator = null) { $this->fallbackEvaluator = $fallbackEvaluator ?? function (Expr $expr) { throw new \PhpParser\ConstExprEvaluationException("Expression of type {$expr->getType()} cannot be evaluated"); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index 1906a159d..f01ca2e2e 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -29,7 +29,7 @@ class PrintableNewAnonClassNode extends Expr public $implements; /** @var Node\Stmt[] Statements */ public $stmts; - public function __construct(array $attrGroups, int $flags, array $args, Node\Name $extends = null, array $implements, array $stmts, array $attributes) + public function __construct(array $attrGroups, int $flags, array $args, ?Node\Name $extends, array $implements, array $stmts, array $attributes) { parent::__construct($attributes); $this->attrGroups = $attrGroups; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index 3a1dbf52c..da74bed24 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -61,7 +61,7 @@ public function __construct(array $options = []) * @param ErrorHandler|null $errorHandler Error handler to use for lexing errors. Defaults to * ErrorHandler\Throwing */ - public function startLexing(string $code, \PhpParser\ErrorHandler $errorHandler = null) + public function startLexing(string $code, ?\PhpParser\ErrorHandler $errorHandler = null) { if (null === $errorHandler) { $errorHandler = new \PhpParser\ErrorHandler\Throwing(); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php index bf1eb2d40..013674a89 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php @@ -56,7 +56,7 @@ public function __construct(array $options = []) } } } - public function startLexing(string $code, ErrorHandler $errorHandler = null) + public function startLexing(string $code, ?ErrorHandler $errorHandler = null) { $emulators = \array_filter($this->emulators, function ($emulator) use($code) { return $emulator->isEmulationNeeded($code); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NameContext.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NameContext.php index ada35b109..534b41600 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NameContext.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NameContext.php @@ -32,7 +32,7 @@ public function __construct(\PhpParser\ErrorHandler $errorHandler) * * @param Name|null $namespace Null is the global namespace */ - public function startNamespace(Name $namespace = null) + public function startNamespace(?Name $namespace = null) { $this->namespace = $namespace; $this->origAliases = $this->aliases = [Stmt\Use_::TYPE_NORMAL => [], Stmt\Use_::TYPE_FUNCTION => [], Stmt\Use_::TYPE_CONSTANT => []]; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php index 9d3995e23..389923700 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php @@ -24,7 +24,7 @@ class Arg extends NodeAbstract * @param array $attributes Additional attributes * @param Identifier|null $name Parameter name (for named parameters) */ - public function __construct(\PhpParser\Node\Expr $value, bool $byRef = \false, bool $unpack = \false, array $attributes = [], \PhpParser\Node\Identifier $name = null) + public function __construct(\PhpParser\Node\Expr $value, bool $byRef = \false, bool $unpack = \false, array $attributes = [], ?\PhpParser\Node\Identifier $name = null) { $this->attributes = $attributes; $this->name = $name; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php index a0eaa8878..0447434a5 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php @@ -17,7 +17,7 @@ class ArrayDimFetch extends Expr * @param null|Expr $dim Array index / dim * @param array $attributes Additional attributes */ - public function __construct(Expr $var, Expr $dim = null, array $attributes = []) + public function __construct(Expr $var, ?Expr $dim = null, array $attributes = []) { $this->attributes = $attributes; $this->var = $var; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php index 9aeabc71a..37d54057b 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php @@ -22,7 +22,7 @@ class ArrayItem extends Expr * @param bool $byRef Whether to assign by reference * @param array $attributes Additional attributes */ - public function __construct(Expr $value, Expr $key = null, bool $byRef = \false, array $attributes = [], bool $unpack = \false) + public function __construct(Expr $value, ?Expr $key = null, bool $byRef = \false, array $attributes = [], bool $unpack = \false) { $this->attributes = $attributes; $this->key = $key; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php index 9576d982f..302c431e4 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php @@ -17,7 +17,7 @@ class Exit_ extends Expr * @param null|Expr $expr Expression * @param array $attributes Additional attributes */ - public function __construct(Expr $expr = null, array $attributes = []) + public function __construct(?Expr $expr = null, array $attributes = []) { $this->attributes = $attributes; $this->expr = $expr; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php index d48a46320..ced4c68b4 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php @@ -17,7 +17,7 @@ class Yield_ extends Expr * @param null|Expr $key Key expression * @param array $attributes Additional attributes */ - public function __construct(Expr $value = null, Expr $key = null, array $attributes = []) + public function __construct(?Expr $value = null, ?Expr $key = null, array $attributes = []) { $this->attributes = $attributes; $this->key = $key; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php index 7c1054a39..30f95099e 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -155,7 +155,7 @@ public function __toString() : string * * @return static|null Sliced name */ - public function slice(int $offset, int $length = null) + public function slice(int $offset, ?int $length = null) { $numParts = \count($this->parts); $realOffset = $offset < 0 ? $offset + $numParts : $offset; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php index 37bcf5ece..4718e9b3d 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php @@ -32,7 +32,7 @@ class Param extends NodeAbstract * @param int $flags Optional visibility flags * @param AttributeGroup[] $attrGroups PHP attribute groups */ - public function __construct($var, \PhpParser\Node\Expr $default = null, $type = null, bool $byRef = \false, bool $variadic = \false, array $attributes = [], int $flags = 0, array $attrGroups = []) + public function __construct($var, ?\PhpParser\Node\Expr $default = null, $type = null, bool $byRef = \false, bool $variadic = \false, array $attributes = [], int $flags = 0, array $attrGroups = []) { $this->attributes = $attributes; $this->type = \is_string($type) ? new \PhpParser\Node\Identifier($type) : $type; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php index 2a1162744..4a8ad5b0b 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php @@ -14,7 +14,7 @@ class Break_ extends Node\Stmt * @param null|Node\Expr $num Number of loops to break * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $num = null, array $attributes = []) + public function __construct(?Node\Expr $num = null, array $attributes = []) { $this->attributes = $attributes; $this->num = $num; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php index f4ab93414..7b7087713 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php @@ -22,7 +22,7 @@ class Catch_ extends Node\Stmt implements StmtsAwareInterface * @param Node\Stmt[] $stmts Statements * @param array $attributes Additional attributes */ - public function __construct(array $types, Expr\Variable $var = null, array $stmts = [], array $attributes = []) + public function __construct(array $types, ?Expr\Variable $var = null, array $stmts = [], array $attributes = []) { $this->attributes = $attributes; $this->types = $types; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php index 58f02f3ce..331a3ae55 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php @@ -14,7 +14,7 @@ class Continue_ extends Node\Stmt * @param null|Node\Expr $num Number of loops to continue * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $num = null, array $attributes = []) + public function __construct(?Node\Expr $num = null, array $attributes = []) { $this->attributes = $attributes; $this->num = $num; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php index 5b36d6f58..b57ad947c 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php @@ -17,7 +17,7 @@ class Declare_ extends Node\Stmt * @param Node\Stmt[]|null $stmts Statements * @param array $attributes Additional attributes */ - public function __construct(array $declares, array $stmts = null, array $attributes = []) + public function __construct(array $declares, ?array $stmts = null, array $attributes = []) { $this->attributes = $attributes; $this->declares = $declares; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php index 539c2761e..df41143df 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php @@ -19,7 +19,7 @@ class EnumCase extends Node\Stmt * @param AttributeGroup[] $attrGroups PHP attribute groups * @param array $attributes Additional attributes */ - public function __construct($name, Node\Expr $expr = null, array $attrGroups = [], array $attributes = []) + public function __construct($name, ?Node\Expr $expr = null, array $attrGroups = [], array $attributes = []) { parent::__construct($attributes); $this->name = \is_string($name) ? new Node\Identifier($name) : $name; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php index a4e02de82..cd96768d7 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php @@ -21,7 +21,7 @@ class Namespace_ extends Node\Stmt implements StmtsAwareInterface * @param null|Node\Stmt[] $stmts Statements * @param array $attributes Additional attributes */ - public function __construct(Node\Name $name = null, $stmts = [], array $attributes = []) + public function __construct(?Node\Name $name = null, $stmts = [], array $attributes = []) { $this->attributes = $attributes; $this->name = $name; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php index 533f8572a..d3292a5c0 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php @@ -17,7 +17,7 @@ class PropertyProperty extends Node\Stmt * @param null|Node\Expr $default Default value * @param array $attributes Additional attributes */ - public function __construct($name, Node\Expr $default = null, array $attributes = []) + public function __construct($name, ?Node\Expr $default = null, array $attributes = []) { $this->attributes = $attributes; $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php index b91bbe1be..157597cc3 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php @@ -14,7 +14,7 @@ class Return_ extends Node\Stmt * @param null|Node\Expr $expr Expression * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $expr = null, array $attributes = []) + public function __construct(?Node\Expr $expr = null, array $attributes = []) { $this->attributes = $attributes; $this->expr = $expr; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php index 424311a68..a014cb69b 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php @@ -18,7 +18,7 @@ class StaticVar extends Node\Stmt * @param null|Node\Expr $default Default value * @param array $attributes Additional attributes */ - public function __construct(Expr\Variable $var, Node\Expr $default = null, array $attributes = []) + public function __construct(Expr\Variable $var, ?Node\Expr $default = null, array $attributes = []) { $this->attributes = $attributes; $this->var = $var; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php index 768355bc6..337224a10 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php @@ -21,7 +21,7 @@ class TryCatch extends Node\Stmt implements StmtsAwareInterface * @param null|Finally_ $finally Optional finally node * @param array $attributes Additional attributes */ - public function __construct(array $stmts, array $catches, \PhpParser\Node\Stmt\Finally_ $finally = null, array $attributes = []) + public function __construct(array $stmts, array $catches, ?\PhpParser\Node\Stmt\Finally_ $finally = null, array $attributes = []) { $this->attributes = $attributes; $this->stmts = $stmts; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php index 89f4b573f..6629d42b0 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php @@ -38,7 +38,7 @@ public function __construct(array $options = []) * * @return string Dumped value */ - public function dump($node, string $code = null) : string + public function dump($node, ?string $code = null) : string { $this->code = $code; return $this->dumpRecursive($node); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php index 200d8a63a..e0f8f5bd2 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php @@ -32,7 +32,7 @@ class NameResolver extends NodeVisitorAbstract * @param ErrorHandler|null $errorHandler Error handler * @param array $options Options */ - public function __construct(ErrorHandler $errorHandler = null, array $options = []) + public function __construct(?ErrorHandler $errorHandler = null, array $options = []) { $this->nameContext = new NameContext($errorHandler ?? new ErrorHandler\Throwing()); $this->preserveOriginalNames = $options['preserveOriginalNames'] ?? \false; @@ -150,7 +150,7 @@ public function enterNode(Node $node) } return null; } - private function addAlias(Stmt\UseUse $use, int $type, Name $prefix = null) + private function addAlias(Stmt\UseUse $use, int $type, ?Name $prefix = null) { // Add prefix for group uses $name = $prefix ? Name::concat($prefix, $use->name) : $use->name; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser.php index 3aa25c61d..321e01d2d 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser.php @@ -15,5 +15,5 @@ interface Parser * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and * the parser was unable to recover from an error). */ - public function parse(string $code, \PhpParser\ErrorHandler $errorHandler = null); + public function parse(string $code, ?\PhpParser\ErrorHandler $errorHandler = null); } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php index 31752cb40..526599270 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php @@ -23,7 +23,7 @@ public function __construct(array $parsers) { $this->parsers = $parsers; } - public function parse(string $code, ErrorHandler $errorHandler = null) + public function parse(string $code, ?ErrorHandler $errorHandler = null) { if (null === $errorHandler) { $errorHandler = new ErrorHandler\Throwing(); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php index 2e85ec3f4..7d0ab67b1 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php @@ -139,7 +139,7 @@ public function __construct(\PhpParser\Lexer $lexer, array $options = []) * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and * the parser was unable to recover from an error). */ - public function parse(string $code, \PhpParser\ErrorHandler $errorHandler = null) + public function parse(string $code, ?\PhpParser\ErrorHandler $errorHandler = null) { $this->errorHandler = $errorHandler ?: new \PhpParser\ErrorHandler\Throwing(); $this->lexer->startLexing($code, $this->errorHandler); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php index 81dd199e8..95e0e6d16 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php @@ -20,7 +20,7 @@ class ParserFactory * * @return Parser The parser instance */ - public function create(int $kind, \PhpParser\Lexer $lexer = null, array $parserOptions = []) : \PhpParser\Parser + public function create(int $kind, ?\PhpParser\Lexer $lexer = null, array $parserOptions = []) : \PhpParser\Parser { if (null === $lexer) { $lexer = new \PhpParser\Lexer\Emulative(); diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json index c384564e6..62aa3fa4d 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json +++ b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json @@ -52,12 +52,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202403\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202405\\OndraM\\CiDetector\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\OndraM\\CiDetector\\Ci\\": "tests\/" + "RectorPrefix202405\\OndraM\\CiDetector\\Ci\\": "tests\/" } }, "config": { diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php b/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php index 03f4d0e02..907eeb390 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php +++ b/vendor/rector/rector/vendor/ondram/ci-detector/ecs.php @@ -1,14 +1,14 @@ parameters(); $parameters->set(Option::SKIP, [__DIR__ . '/tests/PropertiesPrinterHelper.php']); 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 37547d62e..64e7eed0c 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,9 +1,9 @@ type = $type; + $this->parameterName = $parameterName; + $this->description = $description; + } + public function __toString() : string + { + return trim("{$this->type} {$this->parameterName} {$this->description}"); + } +} diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php new file mode 100644 index 000000000..bcd97e41a --- /dev/null +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php @@ -0,0 +1,24 @@ +parameterName = $parameterName; + $this->description = $description; + } + public function __toString() : string + { + return trim("{$this->parameterName} {$this->description}"); + } +} diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php new file mode 100644 index 000000000..511e6c53e --- /dev/null +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php @@ -0,0 +1,24 @@ +parameterName = $parameterName; + $this->description = $description; + } + public function __toString() : string + { + return trim("{$this->parameterName} {$this->description}"); + } +} diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php index 23156dc9a..804eb37c8 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php @@ -66,6 +66,33 @@ public function getTypelessParamTagValues(string $tagName = '@param') : array return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\TypelessParamTagValueNode; }); } + /** + * @return ParamImmediatelyInvokedCallableTagValueNode[] + */ + public function getParamImmediatelyInvokedCallableTagValues(string $tagName = '@param-immediately-invoked-callable') : array + { + return array_filter(array_column($this->getTagsByName($tagName), 'value'), static function (\PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode $value) : bool { + return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode; + }); + } + /** + * @return ParamLaterInvokedCallableTagValueNode[] + */ + public function getParamLaterInvokedCallableTagValues(string $tagName = '@param-later-invoked-callable') : array + { + return array_filter(array_column($this->getTagsByName($tagName), 'value'), static function (\PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode $value) : bool { + return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode; + }); + } + /** + * @return ParamClosureThisTagValueNode[] + */ + public function getParamClosureThisTagValues(string $tagName = '@param-closure-this') : array + { + return array_filter(array_column($this->getTagsByName($tagName), 'value'), static function (\PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode $value) : bool { + return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\ParamClosureThisTagValueNode; + }); + } /** * @return TemplateTagValueNode[] */ diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php index 12793b8e5..ced475e9e 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php @@ -18,7 +18,7 @@ public function __construct(\PHPStan\PhpDocParser\Ast\Type\TypeNode $type, \PHPS } public function __toString() : string { - if ($this->type instanceof \PHPStan\PhpDocParser\Ast\Type\CallableTypeNode || $this->type instanceof \PHPStan\PhpDocParser\Ast\Type\ConstTypeNode || $this->type instanceof \PHPStan\PhpDocParser\Ast\Type\NullableTypeNode) { + if ($this->type instanceof \PHPStan\PhpDocParser\Ast\Type\CallableTypeNode || $this->type instanceof \PHPStan\PhpDocParser\Ast\Type\NullableTypeNode) { return '(' . $this->type . ')[' . $this->offset . ']'; } return $this->type . '[' . $this->offset . ']'; 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 55c8a4337..02f109f56 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 @@ -282,16 +282,32 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens case '@param': case '@phpstan-param': case '@psalm-param': + case '@phan-param': $tagValue = $this->parseParamTagValue($tokens); break; + case '@param-immediately-invoked-callable': + case '@phpstan-param-immediately-invoked-callable': + $tagValue = $this->parseParamImmediatelyInvokedCallableTagValue($tokens); + break; + case '@param-later-invoked-callable': + case '@phpstan-param-later-invoked-callable': + $tagValue = $this->parseParamLaterInvokedCallableTagValue($tokens); + break; + case '@param-closure-this': + case '@phpstan-param-closure-this': + $tagValue = $this->parseParamClosureThisTagValue($tokens); + break; case '@var': case '@phpstan-var': case '@psalm-var': + case '@phan-var': $tagValue = $this->parseVarTagValue($tokens); break; case '@return': case '@phpstan-return': case '@psalm-return': + case '@phan-return': + case '@phan-real-return': $tagValue = $this->parseReturnTagValue($tokens); break; case '@throws': @@ -299,6 +315,7 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens $tagValue = $this->parseThrowsTagValue($tokens); break; case '@mixin': + case '@phan-mixin': $tagValue = $this->parseMixinTagValue($tokens); break; case '@psalm-require-extends': @@ -321,16 +338,21 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens case '@psalm-property': case '@psalm-property-read': case '@psalm-property-write': + case '@phan-property': + case '@phan-property-read': + case '@phan-property-write': $tagValue = $this->parsePropertyTagValue($tokens); break; case '@method': case '@phpstan-method': case '@psalm-method': + case '@phan-method': $tagValue = $this->parseMethodTagValue($tokens); break; case '@template': case '@phpstan-template': case '@psalm-template': + case '@phan-template': case '@template-covariant': case '@phpstan-template-covariant': case '@psalm-template-covariant': @@ -343,6 +365,8 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens break; case '@extends': case '@phpstan-extends': + case '@phan-extends': + case '@phan-inherits': case '@template-extends': $tagValue = $this->parseExtendsTagValue('@extends', $tokens); break; @@ -358,6 +382,7 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens break; case '@phpstan-type': case '@psalm-type': + case '@phan-type': $tagValue = $this->parseTypeAliasTagValue($tokens); break; case '@phpstan-import-type': @@ -370,6 +395,9 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens case '@psalm-assert': case '@psalm-assert-if-true': case '@psalm-assert-if-false': + case '@phan-assert': + case '@phan-assert-if-true': + case '@phan-assert-if-false': $tagValue = $this->parseAssertTagValue($tokens); break; case '@phpstan-this-out': @@ -589,6 +617,25 @@ private function parseParamTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $ } return new Ast\PhpDoc\TypelessParamTagValueNode($isVariadic, $parameterName, $description, $isReference); } + private function parseParamImmediatelyInvokedCallableTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode + { + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode($parameterName, $description); + } + private function parseParamLaterInvokedCallableTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode + { + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode($parameterName, $description); + } + private function parseParamClosureThisTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\ParamClosureThisTagValueNode + { + $type = $this->typeParser->parse($tokens); + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\ParamClosureThisTagValueNode($type, $parameterName, $description); + } private function parseVarTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\VarTagValueNode { $type = $this->typeParser->parse($tokens); @@ -728,7 +775,7 @@ private function parseTypeAliasTagValue(\PHPStan\PhpDocParser\Parser\TokenIterat { $alias = $tokens->currentTokenValue(); $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - // support psalm-type syntax + // support phan-type/psalm-type syntax $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); if ($this->preserveTypeAliasesWithInvalidTypes) { $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 0e6f20bc0..787ec4f96 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 @@ -172,7 +172,11 @@ private function parseAtomic(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { throw new \PHPStan\PhpDocParser\Parser\ParserException($currentTokenValue, $currentTokenType, $currentTokenOffset, Lexer::TOKEN_IDENTIFIER, null, $currentTokenLine); } - return $this->enrichWithAttributes($tokens, new Ast\Type\ConstTypeNode($constExpr), $startLine, $startIndex); + $type = $this->enrichWithAttributes($tokens, new Ast\Type\ConstTypeNode($constExpr), $startLine, $startIndex); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + return $type; } catch (LogicException $e) { throw new \PHPStan\PhpDocParser\Parser\ParserException($currentTokenValue, $currentTokenType, $currentTokenOffset, Lexer::TOKEN_IDENTIFIER, null, $currentTokenLine); } @@ -497,9 +501,9 @@ private function parseCallableReturnType(\PHPStan\PhpDocParser\Parser\TokenItera if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { throw new \PHPStan\PhpDocParser\Parser\ParserException($currentTokenValue, $currentTokenType, $currentTokenOffset, Lexer::TOKEN_IDENTIFIER, null, $currentTokenLine); } - $type = new Ast\Type\ConstTypeNode($constExpr); + $type = $this->enrichWithAttributes($tokens, new Ast\Type\ConstTypeNode($constExpr), $startLine, $startIndex); if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex)); + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); } return $type; } catch (LogicException $e) { 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 fddb62d7a..361e2ecb8 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 @@ -21,6 +21,9 @@ use PHPStan\PhpDocParser\Ast\PhpDoc\MethodTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\MethodTagValueParameterNode; use PHPStan\PhpDocParser\Ast\PhpDoc\MixinTagValueNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\ParamClosureThisTagValueNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamOutTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -98,7 +101,7 @@ final class Printer */ private $emptyListInsertionMap = [CallableTypeNode::class . '->parameters' => ['(', '', ''], ArrayShapeNode::class . '->items' => ['{', '', ''], ObjectShapeNode::class . '->items' => ['{', '', ''], DoctrineArray::class . '->items' => ['{', '', ''], DoctrineAnnotation::class . '->arguments' => ['(', '', '']]; /** @var array>> */ - private $parenthesesMap = [CallableTypeNode::class . '->returnType' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class], ArrayTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, ConstTypeNode::class, NullableTypeNode::class], OffsetAccessTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, ConstTypeNode::class, NullableTypeNode::class]]; + private $parenthesesMap = [CallableTypeNode::class . '->returnType' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class], ArrayTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, ConstTypeNode::class, NullableTypeNode::class], OffsetAccessTypeNode::class . '->type' => [CallableTypeNode::class, UnionTypeNode::class, IntersectionTypeNode::class, NullableTypeNode::class]]; /** @var array>> */ private $parenthesesListMap = [IntersectionTypeNode::class . '->types' => [IntersectionTypeNode::class, UnionTypeNode::class, NullableTypeNode::class], UnionTypeNode::class . '->types' => [IntersectionTypeNode::class, UnionTypeNode::class, NullableTypeNode::class]]; public function printFormatPreserving(PhpDocNode $node, PhpDocNode $originalNode, TokenIterator $originalTokens) : string @@ -230,6 +233,15 @@ private function printTagValue(PhpDocTagValueNode $node) : string $type = $this->printType($node->type); return trim("{$type} {$reference}{$variadic}{$node->parameterName} {$node->description}"); } + if ($node instanceof ParamImmediatelyInvokedCallableTagValueNode) { + return trim("{$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamLaterInvokedCallableTagValueNode) { + return trim("{$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamClosureThisTagValueNode) { + return trim("{$node->type} {$node->parameterName} {$node->description}"); + } if ($node instanceof PropertyTagValueNode) { $type = $this->printType($node->type); return trim("{$type} {$node->propertyName} {$node->description}"); @@ -374,7 +386,7 @@ private function wrapInParentheses(TypeNode $node) : string } private function printOffsetAccessType(TypeNode $type) : string { - if ($type instanceof CallableTypeNode || $type instanceof UnionTypeNode || $type instanceof IntersectionTypeNode || $type instanceof ConstTypeNode || $type instanceof NullableTypeNode) { + if ($type instanceof CallableTypeNode || $type instanceof UnionTypeNode || $type instanceof IntersectionTypeNode || $type instanceof NullableTypeNode) { return $this->wrapInParentheses($type); } return $this->printType($type); diff --git a/vendor/rector/rector/vendor/psr/container/composer.json b/vendor/rector/rector/vendor/psr/container/composer.json index 2a4721cf3..a9682b6f4 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": { - "RectorPrefix202403\\Psr\\Container\\": "src\/" + "RectorPrefix202405\\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 59cebe922..435c877cd 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('RectorPrefix202403\\React\\Dns\\Model\\Message'); + $ref = new \ReflectionClass('RectorPrefix202405\\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 62b1dded9..7f34f8fbf 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 \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); + return \RectorPrefix202405\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 \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202405\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 9f070db14..9b77140df 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 \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); + return \RectorPrefix202405\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 \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202405\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 \RectorPrefix202403\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202405\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 23cd67f96..ec0cab6b5 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 426e458e8..691b37404 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] = \RectorPrefix202403\uv_poll_init_socket($this->uv, $stream); + $this->streamEvents[(int) $stream] = \RectorPrefix202405\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 20a8ea134..95551733d 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 \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 \RectorPrefix202405\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 553f99dce..de95962fe 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 ad5948686..9305ae1f6 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 c33fc46b9..2ce4977b1 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 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')); + 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 364e273'), '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 4228a73'), '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 d075c4f'), '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 040014c')); 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 46c33acc2..a1cc7a0a0 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 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; +use RectorPrefix202405\Composer\Installer\InstallationManager; +use RectorPrefix202405\Composer\IO\IOInterface; +use RectorPrefix202405\Composer\Package\PackageInterface; +use RectorPrefix202405\Composer\Repository\InstalledRepositoryInterface; +use RectorPrefix202405\Composer\Util\Filesystem as ComposerFilesystem; /** * @see \Rector\RectorInstaller\Tests\PluginInstallerTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json index bc94c6b6e..9e4ccad8e 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json @@ -21,7 +21,7 @@ "symplify\/phpstan-rules": "^11.4", "symplify\/rule-doc-generator": "^12.1", "symplify\/vendor-patches": "^11.3", - "tomasvotruba\/class-leak": "^0.2.8", + "tomasvotruba\/class-leak": "^0.2.13", "tomasvotruba\/unused-public": "^0.3", "tracy\/tracy": "^2.10" }, 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 2cfc7033a..9a5e62291 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 @@ rules([ - InitializeDefaultEntityCollectionRector::class, MakeEntityDateTimePropertyDateTimeInterfaceRector::class, MoveCurrentDateTimeDefaultInEntityToConstructorRector::class, CorrectDefaultTypesOnEntityPropertyRector::class, + ExplicitRelationCollectionRector::class, ImproveDoctrineCollectionDocTypeInEntityRector::class, RemoveEmptyTableAttributeRector::class, // typed properties in entities from annotations/attributes TypedPropertyFromColumnTypeRector::class, TypedPropertyFromToOneRelationTypeRector::class, TypedPropertyFromToManyRelationTypeRector::class, - TypedPropertyFromDoctrineCollectionRector::class, OrderByKeyToClassConstRector::class, ]); $rectorConfig->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'])]); 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 index b3b824192..f27e17ea0 100644 --- 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 @@ -1,7 +1,7 @@ singleton(IdAttributeTransformer::class); $rectorConfig->singleton(IdColumnAttributeTransformer::class); $rectorConfig->singleton(IdGeneratorAttributeTransformer::class); + $rectorConfig->singleton(ManyToManyAttributeTransformer::class); $rectorConfig->singleton(ManyToOneAttributeTransformer::class); $rectorConfig->singleton(OneToManyAttributeTransformer::class); + $rectorConfig->singleton(JoinTableAttributeTransformer::class); $rectorConfig->singleton(JoinColumnAttributeTransformer::class); + $rectorConfig->singleton(InverseJoinColumnAttributeTransformer::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/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/ClassAttributeTransformer/TableClassAttributeTransformer.php index de1a28c6f..30b648845 100644 --- 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 @@ -37,11 +37,19 @@ public function transform(EntityMapping $entityMapping, Class_ $class) : void $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); + $this->addIndexes($classMapping['indexes'] ?? [], $class, MappingClass::INDEX); + $this->addIndexes($classMapping['uniqueConstraints'] ?? [], $class, MappingClass::UNIQUE_CONSTRAINT); + } + /** + * @param array> $mapping + * @param MappingClass::* $attribute + */ + private function addIndexes(array $mapping, Class_ $class, string $attribute) : void + { + foreach ($mapping as $name => $values) { + $values = \array_merge(['name' => $name], $values); + $args = $this->nodeFactory->createArgs($values); + $class->attrGroups[] = AttributeFactory::createGroup($attribute, $args); } } public function getClassName() : string diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php new file mode 100644 index 000000000..400ee48c7 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/InverseJoinColumnAttributeTransformer.php @@ -0,0 +1,56 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $joinTableMapping = $entityMapping->matchManyToManyPropertyMapping($property)['joinTable'] ?? null; + if (!\is_array($joinTableMapping)) { + return; + } + $joinColumns = $joinTableMapping['inverseJoinColumns'] ?? null; + if (!\is_array($joinColumns)) { + return; + } + foreach ($joinColumns as $columnName => $joinColumn) { + $property->attrGroups[] = $this->createInverseJoinColumnAttrGroup($columnName, $joinColumn); + } + } + public function getClassName() : string + { + return MappingClass::INVERSE_JOIN_COLUMN; + } + /** + * @param int|string $columnName + * @param mixed $joinColumn + */ + private function createInverseJoinColumnAttrGroup($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/JoinColumnAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinColumnAttributeTransformer.php index b639c7089..32d5d506d 100644 --- 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 @@ -27,11 +27,25 @@ public function __construct(NodeFactory $nodeFactory) */ public function transform(EntityMapping $entityMapping, $property) : void { - $manyToOnePropertyMapping = $entityMapping->matchManyToOnePropertyMapping($property); - if (!\is_array($manyToOnePropertyMapping)) { + $this->transformMapping($property, $entityMapping->matchManyToManyPropertyMapping($property)['joinTable'] ?? null); + $this->transformMapping($property, $entityMapping->matchManyToOnePropertyMapping($property)); + } + /** + * @param array>|null $mapping + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + private function transformMapping($property, ?array $mapping) : void + { + if (!\is_array($mapping)) { return; } - $joinColumns = $manyToOnePropertyMapping['joinColumns'] ?? null; + $singleJoinColumn = $mapping['joinColumn'] ?? null; + if (\is_array($singleJoinColumn)) { + $name = $singleJoinColumn['name']; + unset($singleJoinColumn['name']); + $mapping['joinColumns'][$name] = $singleJoinColumn; + } + $joinColumns = $mapping['joinColumns'] ?? null; if (!\is_array($joinColumns)) { return; } diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php new file mode 100644 index 000000000..b5b7be298 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/JoinTableAttributeTransformer.php @@ -0,0 +1,45 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $joinTableMapping = $entityMapping->matchManyToManyPropertyMapping($property)['joinTable'] ?? null; + if (!\is_array($joinTableMapping)) { + return; + } + // handled by another mapper + unset($joinTableMapping['joinColumns'], $joinTableMapping['inverseJoinColumns']); + $args = $this->nodeFactory->createArgs($joinTableMapping); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + NodeValueNormalizer::ensureKeyIsClassConstFetch($args, EntityMappingKey::TARGET_ENTITY); + } + public function getClassName() : string + { + return MappingClass::JOIN_TABLE; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.php new file mode 100644 index 000000000..7bff4a36e --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/AttributeTransformer/PropertyAttributeTransformer/ManyToManyAttributeTransformer.php @@ -0,0 +1,45 @@ +nodeFactory = $nodeFactory; + } + /** + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function transform(EntityMapping $entityMapping, $property) : void + { + $manyToManyMapping = $entityMapping->matchManyToManyPropertyMapping($property); + if (!\is_array($manyToManyMapping)) { + return; + } + // handled by another mapper + unset($manyToManyMapping['joinTable']); + $args = $this->nodeFactory->createArgs($manyToManyMapping); + $property->attrGroups[] = AttributeFactory::createGroup($this->getClassName(), $args); + NodeValueNormalizer::ensureKeyIsClassConstFetch($args, EntityMappingKey::TARGET_ENTITY); + } + public function getClassName() : string + { + return MappingClass::MANY_TO_MANY; + } +} 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 index 3b39d2254..b094c311d 100644 --- 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 @@ -33,7 +33,7 @@ public function transform(EntityMapping $entityMapping, $property) : void return; } // handled by another mapper - unset($manyToOneMapping['joinColumns']); + unset($manyToOneMapping['joinColumn'], $manyToOneMapping['joinColumns']); // non existing unset($manyToOneMapping['nullable']); $args = $this->nodeFactory->createArgs($manyToOneMapping); diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php index 4598f34f1..55a94fce1 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php @@ -5,10 +5,10 @@ use PHPStan\Reflection\ReflectionProvider; use Rector\Doctrine\CodeQuality\ValueObject\EntityMapping; -use RectorPrefix202403\Symfony\Component\Finder\Finder; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; -use RectorPrefix202403\Symfony\Component\Yaml\Yaml; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\Finder\Finder; +use RectorPrefix202405\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\Symfony\Component\Yaml\Yaml; +use RectorPrefix202405\Webmozart\Assert\Assert; final class EntityMappingResolver { /** diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.php new file mode 100644 index 000000000..3518c55d2 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/ExplicitRelationCollectionRector.php @@ -0,0 +1,132 @@ +attrinationFinder = $attrinationFinder; + $this->constructorAssignDetector = $constructorAssignDetector; + $this->arrayCollectionAssignFactory = $arrayCollectionAssignFactory; + $this->classDependencyManipulator = $classDependencyManipulator; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Use explicit collection in one-to-many relations of Doctrine entity', [new CodeSample(<<<'CODE_SAMPLE' +use Doctrine\ORM\Mapping\OneToMany; +use Doctrine\ORM\Mapping\Entity; + +#[Entity] +class SomeClass +{ + #[OneToMany(targetEntity: 'SomeClass')] + private $items = []; +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\OneToMany; +use Doctrine\Common\Collections\ArrayCollection; +use Doctrine\Common\Collections\Collection; + +#[Entity] +class SomeClass +{ + #[OneToMany(targetEntity: 'SomeClass')] + private Collection $items; + + public function __construct() + { + $this->items = new ArrayCollection(); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Node + { + if (!$this->attrinationFinder->hasByOne($node, 'Doctrine\\ORM\\Mapping\\Entity')) { + return null; + } + $arrayCollectionAssigns = []; + foreach ($node->getProperties() as $property) { + if (!$this->attrinationFinder->hasByMany($property, ['Doctrine\\ORM\\Mapping\\OneToMany', 'Doctrine\\ORM\\Mapping\\ManyToMany'])) { + continue; + } + // make sure has collection + if (!$property->type instanceof Node) { + $property->type = new FullyQualified('Doctrine\\Common\\Collections\\Collection'); + } + // make sure is null + if ($property->props[0]->default instanceof Expr) { + $property->props[0]->default = null; + } + /** @var string $propertyName */ + $propertyName = $this->getName($property); + if ($this->constructorAssignDetector->isPropertyAssigned($node, $propertyName)) { + continue; + } + $arrayCollectionAssigns[] = $this->arrayCollectionAssignFactory->createFromPropertyName($propertyName); + // make sure it is initialized in constructor + } + if ($arrayCollectionAssigns === []) { + return null; + } + $this->classDependencyManipulator->addStmtsToConstructorIfNotThereYet($node, $arrayCollectionAssigns); + return $node; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::TYPED_PROPERTIES; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php index 0f44f3c8a..c97c731c5 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php @@ -17,6 +17,8 @@ * @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/best-practices.html#initialize-collections-in-the-constructor * * @see \Rector\Doctrine\Tests\CodeQuality\Rector\Class_\InitializeDefaultEntityCollectionRector\InitializeDefaultEntityCollectionRectorTest + * + * @deprecated This rule can create incomplete assign of object to an array. Use the @see \Rector\Doctrine\CodeQuality\Rector\Class_\ExplicitRelationCollectionRector instead. */ final class InitializeDefaultEntityCollectionRector extends AbstractRector { @@ -41,7 +43,7 @@ final class InitializeDefaultEntityCollectionRector extends AbstractRector */ private $constructorAssignDetector; /** - * @var class-string[] + * @var string[] */ private const TO_MANY_ANNOTATION_CLASSES = ['Doctrine\\ORM\\Mapping\\OneToMany', 'Doctrine\\ORM\\Mapping\\ManyToMany']; public function __construct(ClassDependencyManipulator $classDependencyManipulator, ArrayCollectionAssignFactory $arrayCollectionAssignFactory, AttrinationFinder $attrinationFinder, ConstructorAssignDetector $constructorAssignDetector) @@ -103,7 +105,13 @@ public function refactor(Node $node) : ?Node if (!$this->attrinationFinder->hasByOne($node, 'Doctrine\\ORM\\Mapping\\Entity')) { return null; } - return $this->refactorClass($node); + $toManyPropertyNames = $this->resolveToManyPropertyNames($node); + if ($toManyPropertyNames === []) { + return null; + } + $assigns = $this->createAssignsOfArrayCollectionsForPropertyNames($toManyPropertyNames); + $this->classDependencyManipulator->addStmtsToConstructorIfNotThereYet($node, $assigns); + return $node; } /** * @return string[] @@ -139,14 +147,4 @@ private function createAssignsOfArrayCollectionsForPropertyNames(array $property } return $assigns; } - private function refactorClass(Class_ $class) : ?\PhpParser\Node\Stmt\Class_ - { - $toManyPropertyNames = $this->resolveToManyPropertyNames($class); - if ($toManyPropertyNames === []) { - return null; - } - $assigns = $this->createAssignsOfArrayCollectionsForPropertyNames($toManyPropertyNames); - $this->classDependencyManipulator->addStmtsToConstructorIfNotThereYet($class, $assigns); - return $class; - } } 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 b5fa7ccb9..06ecfe08c 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' getPropertyName($property); return $this->entityMapping['embedded'][$propertyName] ?? null; } + /** + * @return array|null + * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property + */ + public function matchManyToManyPropertyMapping($property) : ?array + { + $propertyName = $this->getPropertyName($property); + return $this->entityMapping['manyToMany'][$propertyName] ?? null; + } /** * @return array|null * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $property 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 index 81c0ca2a2..728d7fb0b 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/Enum/MappingClass.php @@ -53,6 +53,22 @@ final class MappingClass * @var string */ public const GENERATED_VALUE = 'Doctrine\\ORM\\Mapping\\GeneratedValue'; + /** + * @var string + */ + public const INDEX = 'Doctrine\\ORM\\Mapping\\Index'; + /** + * @var string + */ + public const INVERSE_JOIN_COLUMN = 'Doctrine\\ORM\\Mapping\\InverseJoinColumn'; + /** + * @var string + */ + public const JOIN_TABLE = 'Doctrine\\ORM\\Mapping\\JoinTable'; + /** + * @var string + */ + public const MANY_TO_MANY = 'Doctrine\\ORM\\Mapping\\ManyToMany'; /** * @var string */ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php index fe88e8273..991076d8a 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php @@ -32,8 +32,6 @@ public function __construct(PhpDocInfoFactory $phpDocInfoFactory, \Rector\Doctri $this->attributeFinder = $attributeFinder; } /** - * @api - * @param class-string $name * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Param $node * @return \Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode|\PhpParser\Node\Attribute|null */ @@ -46,7 +44,6 @@ public function getByOne($node, string $name) return $this->attributeFinder->findAttributeByClass($node, $name); } /** - * @param class-string $name * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Param $node */ public function hasByOne($node, string $name) : bool @@ -59,15 +56,15 @@ public function hasByOne($node, string $name) : bool return $attribute instanceof Attribute; } /** - * @param class-string[] $names + * @param string[] $classNames */ - public function hasByMany(Property $property, array $names) : bool + public function hasByMany(Property $property, array $classNames) : bool { $phpDocInfo = $this->phpDocInfoFactory->createFromNode($property); - if ($phpDocInfo instanceof PhpDocInfo && $phpDocInfo->hasByAnnotationClasses($names)) { + if ($phpDocInfo instanceof PhpDocInfo && $phpDocInfo->hasByAnnotationClasses($classNames)) { return \true; } - $attribute = $this->attributeFinder->findAttributeByClasses($property, $names); + $attribute = $this->attributeFinder->findAttributeByClasses($property, $classNames); return $attribute instanceof Attribute; } } 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 a6cdeba0a..422d14546 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 3fc68aef1..727e11a08 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ReflectionProvider; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json b/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json index cbc8e49ce..3a8e86ccb 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json @@ -19,7 +19,7 @@ "symplify\/phpstan-rules": "^12.4", "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2", + "tomasvotruba\/class-leak": "^0.2.13", "tracy\/tracy": "^2.10" }, "autoload": { 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 b94deded5..9daa55a0d 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 @@ isName($propertyFetch->name, 'text')) { + $propertyFetchName = $this->getName($propertyFetch->name); + if (!\in_array($propertyFetchName, ['id', 'text'], \true)) { return null; } if (!$this->isObjectType($propertyFetch->var, new ObjectType(self::PHP_TOKEN))) { return null; } $isArrayFuncCall = new FuncCall(new Name('is_array'), [new Arg($propertyFetch->var)]); - $arrayDimFetch = new ArrayDimFetch($propertyFetch->var, new LNumber(1)); + $arrayDimFetch = new ArrayDimFetch($propertyFetch->var, $propertyFetchName === 'id' ? new LNumber(0) : new LNumber(1)); return new Ternary($isArrayFuncCall, $arrayDimFetch, $propertyFetch->var); } } 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 90a3e13bd..b21f65b4d 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 @@ testsNodeAnalyzer = $testsNodeAnalyzer; - /** - * @readonly - */ $this->betterNodeFinder = $betterNodeFinder; } public function getRuleDefinition() : RuleDefinition diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php new file mode 100644 index 000000000..d7a8c239b --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/Class_/AddCoversClassAttributeRector.php @@ -0,0 +1,157 @@ +reflectionProvider = $reflectionProvider; + $this->phpAttributeGroupFactory = $phpAttributeGroupFactory; + $this->phpAttributeAnalyzer = $phpAttributeAnalyzer; + $this->testsNodeAnalyzer = $testsNodeAnalyzer; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Adds `#[CoversClass(...)]` attribute to test files guessing source class name.', [new CodeSample(<<<'CODE_SAMPLE' +class SomeService +{ +} + +use PHPUnit\Framework\TestCase; + +class SomeServiceTest extends TestCase +{ +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeService +{ +} + +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; + +#[CoversClass(SomeService::class)] +class SomeServiceTest extends TestCase +{ +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Node + { + $className = $this->getName($node); + if ($className === null) { + return null; + } + if (!$this->testsNodeAnalyzer->isInTestClass($node)) { + return null; + } + if ($this->phpAttributeAnalyzer->hasPhpAttributes($node, ['PHPUnit\\Framework\\Attributes\\CoversNothing', 'PHPUnit\\Framework\\Attributes\\CoversClass', 'PHPUnit\\Framework\\Attributes\\CoversFunction'])) { + return null; + } + $possibleTestClassNames = $this->resolveSourceClassNames($className); + $matchingTestClassName = $this->matchExistingClassName($possibleTestClassNames); + if ($matchingTestClassName === null) { + return null; + } + $coversAttributeGroup = $this->createAttributeGroup('\\' . $matchingTestClassName); + $node->attrGroups = array_merge($node->attrGroups, [$coversAttributeGroup]); + return $node; + } + /** + * @return string[] + */ + private function resolveSourceClassNames(string $className) : array + { + $classNameParts = explode('\\', $className); + $partCount = count($classNameParts); + $classNameParts[$partCount - 1] = preg_replace(['#TestCase$#', '#Test$#'], '', $classNameParts[$partCount - 1]); + $possibleTestClassNames = [implode('\\', $classNameParts)]; + $partsWithoutTests = array_filter($classNameParts, static function (?string $part) : bool { + return $part === null ? \false : !in_array(strtolower($part), ['test', 'tests'], \true); + }); + $possibleTestClassNames[] = implode('\\', $partsWithoutTests); + return $possibleTestClassNames; + } + /** + * @param string[] $classNames + */ + private function matchExistingClassName(array $classNames) : ?string + { + foreach ($classNames as $className) { + if (!$this->reflectionProvider->hasClass($className)) { + continue; + } + $classReflection = $this->reflectionProvider->getClass($className); + if ($classReflection->isInterface()) { + continue; + } + if ($classReflection->isTrait()) { + continue; + } + if ($classReflection->isAbstract()) { + continue; + } + return $className; + } + return null; + } + private function createAttributeGroup(string $annotationValue) : AttributeGroup + { + $attributeClass = 'PHPUnit\\Framework\\Attributes\\CoversClass'; + $attributeValue = trim($annotationValue) . '::class'; + return $this->phpAttributeGroupFactory->createFromClassWithItems($attributeClass, [$attributeValue]); + } +} 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 0c669484f..7583f64da 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 RectorPrefix202403\Nette\Utils\Json; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Json; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; @@ -56,6 +56,10 @@ final class TestWithToDataProviderRector extends AbstractRector * @var \Rector\NodeManipulator\ClassInsertManipulator */ private $classInsertManipulator; + /** + * @var bool + */ + private $hasChanged = \false; public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, PhpDocInfoFactory $phpDocInfoFactory, PhpDocTagRemover $phpDocTagRemover, DocBlockUpdater $docBlockUpdater, ClassInsertManipulator $classInsertManipulator) { $this->testsNodeAnalyzer = $testsNodeAnalyzer; @@ -111,19 +115,22 @@ public function refactor(Node $node) : ?Node if (!$this->testsNodeAnalyzer->isInTestClass($node)) { return null; } + $this->hasChanged = \false; foreach ($node->stmts as $classMethod) { if (!$classMethod instanceof ClassMethod) { continue; } $this->refactorClassMethod($node, $classMethod); } + if (!$this->hasChanged) { + return null; + } return $node; } private function refactorClassMethod(Class_ $class, ClassMethod $classMethod) : void { $arrayItemsSingleLine = []; $arrayMultiLine = null; - $hasChanged = \false; $phpDocInfo = $this->phpDocInfoFactory->createFromNode($classMethod); if (!$phpDocInfo instanceof PhpDocInfo) { return; @@ -144,9 +151,11 @@ private function refactorClassMethod(Class_ $class, ClassMethod $classMethod) : $arrayItemsSingleLine[] = new ArrayItem($this->createArrayItem($values[0])); } //cleanup - $hasChanged = $this->phpDocTagRemover->removeTagValueFromNode($phpDocInfo, $testWithPhpDocTagNode); + if ($this->phpDocTagRemover->removeTagValueFromNode($phpDocInfo, $testWithPhpDocTagNode)) { + $this->hasChanged = \true; + } } - if (!$hasChanged) { + if (!$this->hasChanged) { return; } $dataProviderName = $this->generateDataProviderName($classMethod); diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertInstanceOfComparisonRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertInstanceOfComparisonRector.php index 9a83ef219..8f5ba519e 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertInstanceOfComparisonRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/CodeQuality/Rector/MethodCall/AssertInstanceOfComparisonRector.php @@ -8,6 +8,7 @@ use PhpParser\Node\Expr\Instanceof_; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\Expr\Variable; use Rector\Exception\ShouldNotHappenException; use Rector\PHPUnit\NodeAnalyzer\IdentifierManipulator; use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; @@ -79,10 +80,15 @@ private function changeArgumentsOrder($node) : void $comparison = $oldArguments[0]->value; $argument = $comparison->expr; unset($oldArguments[0]); - $className = $this->getName($comparison->class); - if ($className === null) { - throw new ShouldNotHappenException(); + if ($comparison->class instanceof Variable) { + $firstArgument = new Arg($comparison->class); + } else { + $className = $this->getName($comparison->class); + if ($className === null) { + throw new ShouldNotHappenException(); + } + $firstArgument = new Arg($this->nodeFactory->createClassConstReference($className)); } - $node->args = \array_merge([new Arg($this->nodeFactory->createClassConstReference($className)), new Arg($argument)], $oldArguments); + $node->args = \array_merge([$firstArgument, new Arg($argument)], $oldArguments); } } 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 ee40dac8b..67bdb7639 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 95f707d7b..a838a0d7d 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/StmtsAwareInterface/WithConsecutiveRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php index 70c98d3e6..fbf0ad97b 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php @@ -3,8 +3,10 @@ declare (strict_types=1); namespace Rector\PHPUnit\Rector\StmtsAwareInterface; +use PhpParser\BuilderFactory; use PhpParser\Node; use PhpParser\Node\Arg; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\ClosureUse; @@ -14,11 +16,13 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\MatchArm; +use PhpParser\Node\Param; use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Function_; use PhpParser\Node\Stmt\Return_; +use PhpParser\Node\Stmt\Throw_; use PhpParser\NodeTraverser; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Node\BetterNodeFinder; @@ -48,11 +52,17 @@ final class WithConsecutiveRector extends AbstractRector implements MinPhpVersio * @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser */ private $simpleCallableNodeTraverser; - public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, BetterNodeFinder $betterNodeFinder, SimpleCallableNodeTraverser $simpleCallableNodeTraverser) + /** + * @readonly + * @var \PhpParser\BuilderFactory + */ + private $builderFactory; + public function __construct(TestsNodeAnalyzer $testsNodeAnalyzer, BetterNodeFinder $betterNodeFinder, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, BuilderFactory $builderFactory) { $this->testsNodeAnalyzer = $testsNodeAnalyzer; $this->betterNodeFinder = $betterNodeFinder; $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; + $this->builderFactory = $builderFactory; } public function getRuleDefinition() : RuleDefinition { @@ -90,23 +100,23 @@ public function run() $this->personServiceMock->expects($matcher) ->method('prepare') - ->willReturnCallback(function () use ($matcher) { - return match ($matcher->numberOfInvocations()) { - 1 => [1, 2], - 2 => [3, 4] + ->willReturnCallback(function ($parameters) use ($matcher) { + match ($matcher->numberOfInvocations()) { + 1 => self::assertEquals([1, 2], $parameters), + 2 => self::assertEquals([3, 4], $parameters), }; - }); + }); $matcher = self::exactly(2); $this->userServiceMock->expects($matcher) ->method('prepare') - ->willReturnCallback(function () use ($matcher) { - return match ($matcher->numberOfInvocations()) { - 1 => [1, 2], - 2 => [3, 4] - }; - }); + ->willReturnCallback(function ($parameters) use ($matcher) { + match ($matcher->numberOfInvocations()) { + 1 => self::assertEquals([1, 2], $parameters), + 2 => self::assertEquals([3, 4], $parameters), + } + }); } } CODE_SAMPLE @@ -127,17 +137,100 @@ public function refactor(Node $node) if (!$this->testsNodeAnalyzer->isInTestClass($node)) { return null; } - $withConsecutiveMethodCall = $this->findWithConsecutiveMethodCall($node); + $withConsecutiveMethodCall = $this->findMethodCall($node, 'withConsecutive'); if (!$withConsecutiveMethodCall instanceof MethodCall) { return null; } + if ($this->hasWillReturnMapOrWill($node)) { + return null; + } + $returnStmts = []; + $willReturn = $this->findMethodCall($node, 'willReturn'); + if ($willReturn instanceof MethodCall) { + $args = $willReturn->getArgs(); + if (\count($args) !== 1 || !$args[0] instanceof Arg) { + return null; + } + $returnStmts = [new Return_($args[0]->value)]; + } + $willReturnSelf = $this->findMethodCall($node, 'willReturnSelf'); + if ($willReturnSelf instanceof MethodCall) { + if ($returnStmts !== []) { + return null; + } + $selfVariable = $willReturnSelf; + while (\true) { + if (!$selfVariable instanceof MethodCall) { + break; + } + $selfVariable = $selfVariable->var; + } + $returnStmts = [new Return_($selfVariable)]; + } + $willReturnArgument = $this->findMethodCall($node, 'willReturnArgument'); + if ($willReturnArgument instanceof MethodCall) { + if ($returnStmts !== []) { + return null; + } + $parametersVariable = new Variable('parameters'); + $args = $willReturnArgument->getArgs(); + if (\count($args) !== 1 || !$args[0] instanceof Arg) { + return null; + } + $returnStmts = [new Return_(new ArrayDimFetch($parametersVariable, $args[0]->value))]; + } + $willReturnOnConsecutiveCallsArgument = $this->findMethodCall($node, 'willReturnOnConsecutiveCalls'); + if ($willReturnOnConsecutiveCallsArgument instanceof MethodCall) { + if ($returnStmts !== []) { + return null; + } + $matcherVariable = new Variable('matcher'); + $numberOfInvocationsMethodCall = new MethodCall($matcherVariable, new Identifier('numberOfInvocations')); + $matchArms = []; + foreach ($willReturnOnConsecutiveCallsArgument->getArgs() as $key => $arg) { + $matchArms[] = new MatchArm([new LNumber($key + 1)], $arg->value); + } + $returnStmts = [new Return_(new Match_($numberOfInvocationsMethodCall, $matchArms))]; + } + $willReturnReferenceArgument = $this->findMethodCall($node, 'willReturnReference'); + $referenceVariable = null; + if ($willReturnReferenceArgument instanceof MethodCall) { + if ($returnStmts !== []) { + return null; + } + $args = $willReturnReferenceArgument->args; + if (\count($args) !== 1 || !$args[0] instanceof Arg) { + return null; + } + $referenceVariable = $args[0]->value; + if (!$referenceVariable instanceof Variable) { + return null; + } + $returnStmts = [new Return_($referenceVariable)]; + } + $willThrowException = $this->findMethodCall($node, 'willThrowException'); + if ($willThrowException instanceof MethodCall) { + if ($returnStmts !== []) { + return null; + } + $args = $willThrowException->getArgs(); + if (\count($args) !== 1 || !$args[0] instanceof Arg) { + return null; + } + $returnStmts = [new Throw_($args[0]->value)]; + } + /** + * remove willReturn, willReturnArgument, willReturnOnConsecutiveCalls, willReturnReference + * willReturnSelf and willThrowException + */ + $this->removeWills($node); $expectsCall = $this->matchAndRefactorExpectsMethodCall($node); if (!$expectsCall instanceof MethodCall && !$expectsCall instanceof StaticCall) { return null; } // 2. rename and replace withConsecutive() $withConsecutiveMethodCall->name = new Identifier('willReturnCallback'); - $withConsecutiveMethodCall->args = [new Arg($this->createClosure($withConsecutiveMethodCall))]; + $withConsecutiveMethodCall->args = [new Arg($this->createClosure($withConsecutiveMethodCall, $returnStmts, $referenceVariable))]; $matcherAssign = new Assign(new Variable('matcher'), $expectsCall); return [new Expression($matcherAssign), $node]; } @@ -173,17 +266,28 @@ public function findInstancesOfScoped($node, string $type) : array }); return $foundNodes; } - private function createClosure(MethodCall $expectsMethodCall) : Closure + /** + * @param Node\Stmt[] $returnStmts + */ + private function createClosure(MethodCall $expectsMethodCall, array $returnStmts, ?Variable $referenceVariable) : Closure { $closure = new Closure(); + $byRef = $referenceVariable instanceof Variable; + $closure->byRef = $byRef; $matcherVariable = new Variable('matcher'); $closure->uses[] = new ClosureUse($matcherVariable); - $usedVariables = $this->resolveUniqueUsedVariables($expectsMethodCall); + $usedVariables = $this->resolveUniqueUsedVariables(\array_merge($expectsMethodCall->getArgs(), $this->resolveUniqueUsedVariables($returnStmts))); foreach ($usedVariables as $usedVariable) { - $closure->uses[] = new ClosureUse($usedVariable); + $closureUse = new ClosureUse($usedVariable); + if ($byRef && $this->getName($usedVariable) === $this->getName($referenceVariable)) { + $closureUse->byRef = \true; + } + $closure->uses[] = $closureUse; } - $match = $this->createMatch($matcherVariable, $expectsMethodCall); - $closure->stmts[] = new Return_($match); + $parametersVariable = new Variable('parameters'); + $match = $this->createMatch($matcherVariable, $expectsMethodCall, $parametersVariable); + $closure->params[] = new Param($parametersVariable); + $closure->stmts = \array_merge([new Expression($match)], $returnStmts); return $closure; } /** @@ -213,39 +317,41 @@ private function matchAndRefactorExpectsMethodCall(Expression $expression) }); return $exactlyCall; } - private function findWithConsecutiveMethodCall(Expression $expression) : ?MethodCall + private function findMethodCall(Expression $expression, string $methodName) : ?MethodCall { if (!$expression->expr instanceof MethodCall) { return null; } - /** @var MethodCall|null $withConsecutiveMethodCall */ - $withConsecutiveMethodCall = $this->betterNodeFinder->findFirst($expression->expr, function (Node $node) : bool { + /** @var MethodCall|null $methodCall */ + $methodCall = $this->betterNodeFinder->findFirst($expression->expr, function (Node $node) use($methodName) : bool { if (!$node instanceof MethodCall) { return \false; } - return $this->isName($node->name, 'withConsecutive'); + return $this->isName($node->name, $methodName); }); - return $withConsecutiveMethodCall; + return $methodCall; } - private function createMatch(Variable $matcherVariable, MethodCall $expectsMethodCall) : Match_ + private function createMatch(Variable $matcherVariable, MethodCall $expectsMethodCall, Variable $parameters) : Match_ { $numberOfInvocationsMethodCall = new MethodCall($matcherVariable, new Identifier('numberOfInvocations')); $matchArms = []; foreach ($expectsMethodCall->getArgs() as $key => $arg) { - $matchArms[] = new MatchArm([new LNumber($key + 1)], $arg->value); + $assertEquals = $this->builderFactory->staticCall('self', 'assertEquals', [$arg, $parameters]); + $matchArms[] = new MatchArm([new LNumber($key + 1)], $assertEquals); } return new Match_($numberOfInvocationsMethodCall, $matchArms); } /** + * @param Node[] $nodes * @return Variable[] */ - private function resolveUniqueUsedVariables(MethodCall $expectsMethodCall) : array + private function resolveUniqueUsedVariables(array $nodes) : array { /** @var Variable[] $usedVariables */ - $usedVariables = $this->findInstancesOfScoped($expectsMethodCall->getArgs(), Variable::class); + $usedVariables = $this->findInstancesOfScoped($nodes, Variable::class); $uniqueUsedVariables = []; foreach ($usedVariables as $usedVariable) { - if ($this->isName($usedVariable, 'this')) { + if ($this->isNames($usedVariable, ['this', 'matcher', 'parameters'])) { continue; } $usedVariableName = $this->getName($usedVariable); @@ -253,4 +359,32 @@ private function resolveUniqueUsedVariables(MethodCall $expectsMethodCall) : arr } return $uniqueUsedVariables; } + /** + * @param \PhpParser\Node\Stmt\Expression|\PhpParser\Node $node + */ + private function hasWillReturnMapOrWill($node) : bool + { + $nodesWithWillReturnMap = $this->betterNodeFinder->find($node, function (Node $node) : bool { + if (!$node instanceof MethodCall) { + return \false; + } + return $this->isNames($node->name, ['willReturnMap', 'will']); + }); + return $nodesWithWillReturnMap !== []; + } + /** + * @param \PhpParser\Node\Stmt\Expression|\PhpParser\Node $expression + */ + private function removeWills($expression) : void + { + $this->traverseNodesWithCallable($expression, function (Node $node) : ?Node { + if (!$node instanceof MethodCall) { + return null; + } + if (!$this->isNames($node->name, ['willReturn', 'willReturnArgument', 'willReturnSelf', 'willReturnOnConsecutiveCalls', 'willReturnReference', 'willThrowException'])) { + return null; + } + return $node->var; + }); + } } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json index 9a4a49a17..55092579e 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json @@ -26,7 +26,7 @@ "symplify\/phpstan-rules": "^12.0", "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "^0.2.6", + "tomasvotruba\/class-leak": "^0.2.13", "tracy\/tracy": "^2.10" }, "autoload": { 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 a8b706d8f..aaa138242 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 @@ ruleWithConfiguration(AnnotationToAttributeRector::class, [new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Bic'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Blank'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Callback'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\CardScheme'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Cascade'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Choice'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Count'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Country'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Currency'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Date'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DateTime'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DisableAutoMapping'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DivisibleBy'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Email'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\EnableAutoMapping'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\EqualTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Expression'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\ExpressionLanguageSyntax'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\File'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GreaterThan'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GreaterThanOrEqual'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GroupSequence'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GroupSequenceProvider'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Hostname'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Iban'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IdenticalTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Image'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Ip'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Isbn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsFalse'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Isin'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsNull'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Issn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsTrue'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Json'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Language'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Length'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\LessThan'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\LessThanOrEqual'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Locale'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Luhn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Negative'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NegativeOrZero'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotBlank'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotCompromisedPassword'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotEqualTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotIdenticalTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotNull'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Positive'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\PositiveOrZero'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Range'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Regex'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Time'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Timezone'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Traverse'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Type'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Ulid'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Unique'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Url'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Uuid'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Valid'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\DiscriminatorMap'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\Groups'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\Ignore'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\MaxDepth'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\SerializedName')]); + $rectorConfig->ruleWithConfiguration(AnnotationToAttributeRector::class, [new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Bic'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Blank'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Callback'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\CardScheme'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Cascade'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Choice'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Count'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Country'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Currency'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Date'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DateTime'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DisableAutoMapping'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\DivisibleBy'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Email'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\EnableAutoMapping'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\EqualTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Expression'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\ExpressionLanguageSyntax'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\File'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GreaterThan'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GreaterThanOrEqual'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GroupSequence'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\GroupSequenceProvider'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Hostname'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Iban'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IdenticalTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Image'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Ip'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Isbn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsFalse'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Isin'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsNull'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Issn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\IsTrue'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Json'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Language'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Length'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\LessThan'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\LessThanOrEqual'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Locale'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Luhn'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Negative'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NegativeOrZero'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotBlank'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotCompromisedPassword'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotEqualTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotIdenticalTo'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\NotNull'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Positive'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\PositiveOrZero'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Range'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Regex'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Time'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Timezone'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Traverse'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Type'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Ulid'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Unique'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Url'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Uuid'), new AnnotationToAttribute('Symfony\\Component\\Validator\\Constraints\\Valid'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\Context'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\DiscriminatorMap'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\Groups'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\Ignore'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\MaxDepth'), new AnnotationToAttribute('Symfony\\Component\\Serializer\\Annotation\\SerializedName')]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony52.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony52.php index 384f1b6b8..0608dcc80 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony52.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony52.php @@ -1,7 +1,7 @@ createConfigVariable($configClass); $stmts = $this->createMethodCallStmts($extensionKeyAndConfiguration->getArray(), $configVariable); + if ($stmts === null) { + return null; + } return $this->symfonyClosureFactory->create($configClass, $node, $stmts); } /** * @return array> */ - private function createMethodCallStmts(Array_ $configurationArray, Variable $configVariable) : array + private function createMethodCallStmts(Array_ $configurationArray, Variable $configVariable) : ?array { $methodCallStmts = []; $configurationValues = $this->valueResolver->getValue($configurationArray); @@ -180,6 +183,9 @@ private function createMethodCallStmts(Array_ $configurationArray, Variable $con } else { $currentConfigCaller = $configVariable; } + if (!\is_array($value)) { + return null; + } foreach ($value as $itemName => $itemConfiguration) { if ($nested && \is_array($itemConfiguration)) { $methodCallName = $itemName; 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 aa6550f69..7d1b97c57 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 ca0a63abe..f49056b78 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 RectorPrefix202403\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202405\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 00bb66ce4..7d32c01b3 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 RectorPrefix202403\Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use RectorPrefix202405\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 abbc5704d..ad1f45a8a 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 ea5c750b6..403ffcc01 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 ec04b21b6..f8956a23f 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 RectorPrefix202403\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202405\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 8e279ee28..bf25573e8 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php index 53bc4af58..78604aa38 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 6b2fe6aad..7daeed742 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 RectorPrefix202403\Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; -use RectorPrefix202403\Symfony\Component\HttpKernel\Controller\ValueResolverInterface; +use RectorPrefix202405\Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; +use RectorPrefix202405\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/src/Bridge/Symfony/ContainerServiceProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php index 7c23b5b49..9a6e49815 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 RectorPrefix202403\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Container; +use RectorPrefix202405\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 5bbeb4ff6..6a28343a3 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 RectorPrefix202403\Symfony\Component\Routing\RouterInterface; -use RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\Symfony\Component\Routing\RouterInterface; +use RectorPrefix202405\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 94d7e83e2..13856c289 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\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 9f5927e20..a0735a89a 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 RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\Strings; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; @@ -83,14 +83,15 @@ private function resolve(string $namespace, string $class, string $method) : str $bundle = $this->resolveBundle($class, $namespace); $controller = $this->resolveController($class); $action = Strings::replace($method, self::ACTION_MATCH_REGEX, ''); + $action = Strings::replace($action, self::SMALL_LETTER_BIG_LETTER_REGEX, '$1_$2'); $fullPath = ''; if ($bundle !== '') { $fullPath .= $bundle . '/'; } if ($controller !== '') { - $fullPath .= $controller . '/'; + $fullPath .= \strtolower($controller) . '/'; } - return $fullPath . $action . '.html.twig'; + return $fullPath . \strtolower($action) . '.html.twig'; } private function resolveBundle(string $class, string $namespace) : string { @@ -108,7 +109,7 @@ private function resolveController(string $class) : string if ($match === null) { return ''; } - $controller = Strings::replace($match['class_name_without_suffix'], self::SMALL_LETTER_BIG_LETTER_REGEX, '1_\\2'); + $controller = Strings::replace($match['class_name_without_suffix'], self::SMALL_LETTER_BIG_LETTER_REGEX, '$1_$2'); return \str_replace('\\', '/', $controller); } } 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 9c794162a..58e6cd1f3 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 RectorPrefix202403\Webmozart\Assert\Assert; +use RectorPrefix202405\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 eee18da00..101bdc04e 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 RectorPrefix202403\Nette\Utils\FileSystem; -use RectorPrefix202403\Nette\Utils\Json; -use RectorPrefix202403\Nette\Utils\Strings; +use RectorPrefix202405\Nette\Utils\FileSystem; +use RectorPrefix202405\Nette\Utils\Json; +use RectorPrefix202405\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 48dcb34a6..33b0d4e87 100644 --- a/vendor/rector/rector/vendor/scoper-autoload.php +++ b/vendor/rector/rector/vendor/scoper-autoload.php @@ -14,7 +14,7 @@ // Restore the backup and ensure the excluded files are properly marked as loaded $GLOBALS['__composer_autoload_files'] = \array_merge( $existingComposerAutoloadFiles, - \array_fill_keys(['5928a00fa978807cf85d90ec3f4b0147', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a'], true) + \array_fill_keys(['0e6d7bf4a5811bfa5cf40c5ccd6fae6a', '5928a00fa978807cf85d90ec3f4b0147'], true) ); return $loader; @@ -29,58 +29,58 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) { } } } -humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202403\AutoloadIncluder'); -humbug_phpscoper_expose_class('ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54', 'RectorPrefix202403\ComposerAutoloaderInit2d887a2f87c676eb32b3e04612865e54'); -humbug_phpscoper_expose_class('Product', 'RectorPrefix202403\Product'); +humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202405\AutoloadIncluder'); +humbug_phpscoper_expose_class('ComposerAutoloaderInit70e3025dac7e7555f69a9b4ca9e3dfde', 'RectorPrefix202405\ComposerAutoloaderInit70e3025dac7e7555f69a9b4ca9e3dfde'); +humbug_phpscoper_expose_class('Product', 'RectorPrefix202405\Product'); // Function aliases. For more information see: // https://github.com/humbug/php-scoper/blob/master/docs/further-reading.md#function-aliases -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()); } } +if (!function_exists('dump_node')) { function dump_node() { return \RectorPrefix202405\dump_node(...func_get_args()); } } +if (!function_exists('formatErrorMessage')) { function formatErrorMessage() { return \RectorPrefix202405\formatErrorMessage(...func_get_args()); } } +if (!function_exists('includeIfExists')) { function includeIfExists() { return \RectorPrefix202405\includeIfExists(...func_get_args()); } } +if (!function_exists('mb_check_encoding')) { function mb_check_encoding() { return \RectorPrefix202405\mb_check_encoding(...func_get_args()); } } +if (!function_exists('mb_chr')) { function mb_chr() { return \RectorPrefix202405\mb_chr(...func_get_args()); } } +if (!function_exists('mb_convert_case')) { function mb_convert_case() { return \RectorPrefix202405\mb_convert_case(...func_get_args()); } } +if (!function_exists('mb_convert_encoding')) { function mb_convert_encoding() { return \RectorPrefix202405\mb_convert_encoding(...func_get_args()); } } +if (!function_exists('mb_convert_variables')) { function mb_convert_variables() { return \RectorPrefix202405\mb_convert_variables(...func_get_args()); } } +if (!function_exists('mb_decode_mimeheader')) { function mb_decode_mimeheader() { return \RectorPrefix202405\mb_decode_mimeheader(...func_get_args()); } } +if (!function_exists('mb_decode_numericentity')) { function mb_decode_numericentity() { return \RectorPrefix202405\mb_decode_numericentity(...func_get_args()); } } +if (!function_exists('mb_detect_encoding')) { function mb_detect_encoding() { return \RectorPrefix202405\mb_detect_encoding(...func_get_args()); } } +if (!function_exists('mb_detect_order')) { function mb_detect_order() { return \RectorPrefix202405\mb_detect_order(...func_get_args()); } } +if (!function_exists('mb_encode_mimeheader')) { function mb_encode_mimeheader() { return \RectorPrefix202405\mb_encode_mimeheader(...func_get_args()); } } +if (!function_exists('mb_encode_numericentity')) { function mb_encode_numericentity() { return \RectorPrefix202405\mb_encode_numericentity(...func_get_args()); } } +if (!function_exists('mb_encoding_aliases')) { function mb_encoding_aliases() { return \RectorPrefix202405\mb_encoding_aliases(...func_get_args()); } } +if (!function_exists('mb_get_info')) { function mb_get_info() { return \RectorPrefix202405\mb_get_info(...func_get_args()); } } +if (!function_exists('mb_http_input')) { function mb_http_input() { return \RectorPrefix202405\mb_http_input(...func_get_args()); } } +if (!function_exists('mb_http_output')) { function mb_http_output() { return \RectorPrefix202405\mb_http_output(...func_get_args()); } } +if (!function_exists('mb_internal_encoding')) { function mb_internal_encoding() { return \RectorPrefix202405\mb_internal_encoding(...func_get_args()); } } +if (!function_exists('mb_language')) { function mb_language() { return \RectorPrefix202405\mb_language(...func_get_args()); } } +if (!function_exists('mb_list_encodings')) { function mb_list_encodings() { return \RectorPrefix202405\mb_list_encodings(...func_get_args()); } } +if (!function_exists('mb_ord')) { function mb_ord() { return \RectorPrefix202405\mb_ord(...func_get_args()); } } +if (!function_exists('mb_output_handler')) { function mb_output_handler() { return \RectorPrefix202405\mb_output_handler(...func_get_args()); } } +if (!function_exists('mb_parse_str')) { function mb_parse_str() { return \RectorPrefix202405\mb_parse_str(...func_get_args()); } } +if (!function_exists('mb_scrub')) { function mb_scrub() { return \RectorPrefix202405\mb_scrub(...func_get_args()); } } +if (!function_exists('mb_str_pad')) { function mb_str_pad() { return \RectorPrefix202405\mb_str_pad(...func_get_args()); } } +if (!function_exists('mb_str_split')) { function mb_str_split() { return \RectorPrefix202405\mb_str_split(...func_get_args()); } } +if (!function_exists('mb_stripos')) { function mb_stripos() { return \RectorPrefix202405\mb_stripos(...func_get_args()); } } +if (!function_exists('mb_stristr')) { function mb_stristr() { return \RectorPrefix202405\mb_stristr(...func_get_args()); } } +if (!function_exists('mb_strlen')) { function mb_strlen() { return \RectorPrefix202405\mb_strlen(...func_get_args()); } } +if (!function_exists('mb_strpos')) { function mb_strpos() { return \RectorPrefix202405\mb_strpos(...func_get_args()); } } +if (!function_exists('mb_strrchr')) { function mb_strrchr() { return \RectorPrefix202405\mb_strrchr(...func_get_args()); } } +if (!function_exists('mb_strrichr')) { function mb_strrichr() { return \RectorPrefix202405\mb_strrichr(...func_get_args()); } } +if (!function_exists('mb_strripos')) { function mb_strripos() { return \RectorPrefix202405\mb_strripos(...func_get_args()); } } +if (!function_exists('mb_strrpos')) { function mb_strrpos() { return \RectorPrefix202405\mb_strrpos(...func_get_args()); } } +if (!function_exists('mb_strstr')) { function mb_strstr() { return \RectorPrefix202405\mb_strstr(...func_get_args()); } } +if (!function_exists('mb_strtolower')) { function mb_strtolower() { return \RectorPrefix202405\mb_strtolower(...func_get_args()); } } +if (!function_exists('mb_strtoupper')) { function mb_strtoupper() { return \RectorPrefix202405\mb_strtoupper(...func_get_args()); } } +if (!function_exists('mb_strwidth')) { function mb_strwidth() { return \RectorPrefix202405\mb_strwidth(...func_get_args()); } } +if (!function_exists('mb_substitute_character')) { function mb_substitute_character() { return \RectorPrefix202405\mb_substitute_character(...func_get_args()); } } +if (!function_exists('mb_substr')) { function mb_substr() { return \RectorPrefix202405\mb_substr(...func_get_args()); } } +if (!function_exists('mb_substr_count')) { function mb_substr_count() { return \RectorPrefix202405\mb_substr_count(...func_get_args()); } } +if (!function_exists('parseArgs')) { function parseArgs() { return \RectorPrefix202405\parseArgs(...func_get_args()); } } +if (!function_exists('print_node')) { function print_node() { return \RectorPrefix202405\print_node(...func_get_args()); } } +if (!function_exists('showHelp')) { function showHelp() { return \RectorPrefix202405\showHelp(...func_get_args()); } } +if (!function_exists('trigger_deprecation')) { function trigger_deprecation() { return \RectorPrefix202405\trigger_deprecation(...func_get_args()); } } +if (!function_exists('uv_poll_init_socket')) { function uv_poll_init_socket() { return \RectorPrefix202405\uv_poll_init_socket(...func_get_args()); } } return $loader; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php b/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php index 6558afa30..64ae92b78 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 1c47cffa4..1d4b48485 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 bfcc0e855..8a6b0582b 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 RectorPrefix202403\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; +use RectorPrefix202405\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; final class Differ { public const OLD = 0; 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 d8860148d..b695c00a7 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\SebastianBergmann\Diff; use function gettype; use function is_object; 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 92f16d848..61c833a36 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 059cbe120..1376f4727 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 fe89543a7..13680d7ae 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 28cc10255..bf7310831 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 b7aa77cf7..6c8c48682 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\SebastianBergmann\Diff; use function array_fill; use function array_merge; 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 207e05f7d..7da064817 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 RectorPrefix202403\SebastianBergmann\Diff\Output; +namespace RectorPrefix202405\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 714f7fa1d..c1eea9c40 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 RectorPrefix202403\SebastianBergmann\Diff\Output; +namespace RectorPrefix202405\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 RectorPrefix202403\SebastianBergmann\Diff\Differ; +use RectorPrefix202405\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 19fb407cf..de9c29bdb 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 RectorPrefix202403\SebastianBergmann\Diff\Output; +namespace RectorPrefix202405\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 3de767305..2a82106c3 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 RectorPrefix202403\SebastianBergmann\Diff\Output; +namespace RectorPrefix202405\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 RectorPrefix202403\SebastianBergmann\Diff\ConfigurationException; -use RectorPrefix202403\SebastianBergmann\Diff\Differ; +use RectorPrefix202405\SebastianBergmann\Diff\ConfigurationException; +use RectorPrefix202405\SebastianBergmann\Diff\Differ; /** * Strict Unified diff output builder. * 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 d76e34c39..ebaf18e31 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 RectorPrefix202403\SebastianBergmann\Diff\Output; +namespace RectorPrefix202405\SebastianBergmann\Diff\Output; use function array_splice; use function count; @@ -21,7 +21,7 @@ use function str_ends_with; use function stream_get_contents; use function substr; -use RectorPrefix202403\SebastianBergmann\Diff\Differ; +use RectorPrefix202405\SebastianBergmann\Diff\Differ; /** * Builds a diff string representation in unified diff format in chunks. */ diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php b/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php index 02221b57f..1f3983675 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 059f3a3eb..cf8b334b3 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 RectorPrefix202403\SebastianBergmann\Diff; +namespace RectorPrefix202405\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 caeee42a0..c23272feb 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Command\CompleteCommand; +use RectorPrefix202405\Symfony\Component\Console\Command\DumpCompletionCommand; +use RectorPrefix202405\Symfony\Component\Console\Command\HelpCommand; +use RectorPrefix202405\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202405\Symfony\Component\Console\Command\ListCommand; +use RectorPrefix202405\Symfony\Component\Console\Command\SignalableCommandInterface; +use RectorPrefix202405\Symfony\Component\Console\CommandLoader\CommandLoaderInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202405\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Exception\NamespaceNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Helper\DebugFormatterHelper; +use RectorPrefix202405\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202405\Symfony\Component\Console\Helper\FormatterHelper; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202405\Symfony\Component\Console\Helper\ProcessHelper; +use RectorPrefix202405\Symfony\Component\Console\Helper\QuestionHelper; +use RectorPrefix202405\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202405\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\SignalRegistry\SignalRegistry; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\ErrorHandler\ErrorHandler; +use RectorPrefix202405\Symfony\Contracts\EventDispatcher\EventDispatcherInterface; +use RectorPrefix202405\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 5cfcc655a..026fd1326 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 RectorPrefix202403\Symfony\Component\Console\Attribute; +namespace RectorPrefix202405\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 adc13887f..1697528ad 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 RectorPrefix202403\Symfony\Component\Console\CI; +namespace RectorPrefix202405\Symfony\Component\Console\CI; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 ce3e18092..c83a4ba12 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 5097217ee..72dd5d097 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202405\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 10e82b7a2..af0c5ee8e 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Output\BashCompletionOutput; +use RectorPrefix202405\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\Output\FishCompletionOutput; +use RectorPrefix202405\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; +use RectorPrefix202405\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 c292e9643..476006da7 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 d106a732e..48d96b94c 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\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; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202405\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 c447720f0..71d37b237 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\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 d8c55a579..60890c89c 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 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; +namespace RectorPrefix202405\Symfony\Component\Console\Command; + +use RectorPrefix202405\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202405\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 d98f20a11..4c59a0f01 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Lock\LockFactory; +use RectorPrefix202405\Symfony\Component\Lock\LockInterface; +use RectorPrefix202405\Symfony\Component\Lock\Store\FlockStore; +use RectorPrefix202405\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 e1361b1fb..6db9a577c 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\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 9b5a0f5a1..c1e22a27d 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 RectorPrefix202403\Symfony\Component\Console\Command; +namespace RectorPrefix202405\Symfony\Component\Console\Command; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202405\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 7f7ff61b6..4270ec370 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 RectorPrefix202403\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202405\Symfony\Component\Console\CommandLoader; -use RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\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 577377c21..119b3b49d 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 RectorPrefix202403\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202405\Symfony\Component\Console\CommandLoader; -use RectorPrefix202403\Psr\Container\ContainerInterface; -use RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Psr\Container\ContainerInterface; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\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 52936609e..eecb8401d 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 RectorPrefix202403\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202405\Symfony\Component\Console\CommandLoader; -use RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\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 4dc53d5f9..62e481f63 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 RectorPrefix202403\Symfony\Component\Console\Completion; +namespace RectorPrefix202405\Symfony\Component\Console\Completion; -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; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; /** * An input specialized for shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php index 8f153973c..49357c979 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 RectorPrefix202403\Symfony\Component\Console\Completion; +namespace RectorPrefix202405\Symfony\Component\Console\Completion; -use RectorPrefix202403\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 57bf61d38..706d97a05 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 RectorPrefix202403\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Completion\Output; -use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\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 425e39659..585ecc600 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 RectorPrefix202403\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Completion\Output; -use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\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 137218b5e..6dae40aa1 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 RectorPrefix202403\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Completion\Output; -use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\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 605a93e53..abec149c7 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 RectorPrefix202403\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Completion\Output; -use RectorPrefix202403\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\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 3738e45b2..442f69201 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 RectorPrefix202403\Symfony\Component\Console\Completion; +namespace RectorPrefix202405\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 2e64a9dd7..f9db7f742 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -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 RectorPrefix202405\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202405\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202405\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 a0ac4ed06..5977b7c7b 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 a476e2792..953d10ec1 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 RectorPrefix202403\Symfony\Component\Console\DataCollector; +namespace RectorPrefix202405\Symfony\Component\Console\DataCollector; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Debug\CliRequest; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\SignalRegistry\SignalMap; +use RectorPrefix202405\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202405\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202405\Symfony\Component\HttpKernel\DataCollector\DataCollector; +use RectorPrefix202405\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 dabafbee8..95cd97c01 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 RectorPrefix202403\Symfony\Component\Console\Debug; +namespace RectorPrefix202405\Symfony\Component\Console\Debug; -use RectorPrefix202403\Symfony\Component\Console\Command\TraceableCommand; -use RectorPrefix202403\Symfony\Component\HttpFoundation\Request; -use RectorPrefix202403\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202405\Symfony\Component\Console\Command\TraceableCommand; +use RectorPrefix202405\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202405\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 a02b7d2bb..08bc9aad7 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 RectorPrefix202403\Symfony\Component\Console\DependencyInjection; +namespace RectorPrefix202405\Symfony\Component\Console\DependencyInjection; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202405\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use RectorPrefix202405\Symfony\Component\DependencyInjection\ContainerBuilder; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\DependencyInjection\Reference; +use RectorPrefix202405\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 15484dea5..50ec9deac 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -use RectorPrefix202403\Symfony\Component\Console\Application; -use RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\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 fe12c3cec..ac2f52702 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 2db1da2eb..170ade4d2 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 f74dec0b7..1521a285b 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\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 84f96d4df..59e8ce477 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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 RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\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 952145290..3c0ab18f7 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\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 ecbbe9b28..df6557134 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\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 4dddfe064..4beabf311 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 RectorPrefix202403\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202405\Symfony\Component\Console\Descriptor; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202405\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 bd56b87ab..9f24f5a59 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 5da77fe12..913586547 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 6b21aa9ca..faa7be0b8 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 25265afe6..cf0632797 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 7ec865643..fa56f7f1c 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 c6d3aff6e..c32f390c2 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 8cac82371..f07293c78 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 0e9c3faf5..f2d3cc3ac 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\Symfony\Component\Console\Exception; -use RectorPrefix202403\Symfony\Component\Console\Messenger\RunCommandContext; +use RectorPrefix202405\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 dbae4a6a8..58a24b690 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 RectorPrefix202403\Symfony\Component\Console\Exception; +namespace RectorPrefix202405\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 83adca037..38db870b9 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\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 6f96939f7..f66a841fd 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\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 f3883faa4..33fffdb45 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\Symfony\Component\Console\Formatter; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use function RectorPrefix202403\Symfony\Component\String\b; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use function RectorPrefix202405\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 8f3302e94..680b19129 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\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 76882ed02..1008c9e1b 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\Symfony\Component\Console\Formatter; -use RectorPrefix202403\Symfony\Component\Console\Color; +use RectorPrefix202405\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 3233f24c4..8ed6bf559 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\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 0267cf61f..a0e44186e 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\Symfony\Component\Console\Formatter; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 568cb3536..b8c3b7916 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 RectorPrefix202403\Symfony\Component\Console\Formatter; +namespace RectorPrefix202405\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 48118960e..1a7b973a3 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\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 ec7fa5ba0..44ff603d2 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\DescriptorInterface; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\JsonDescriptor; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\MarkdownDescriptor; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\TextDescriptor; +use RectorPrefix202405\Symfony\Component\Console\Descriptor\XmlDescriptor; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 e8d6fb28f..2a1deace7 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\VarDumper\Cloner\ClonerInterface; +use RectorPrefix202405\Symfony\Component\VarDumper\Cloner\VarCloner; +use RectorPrefix202405\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 5badca56f..01a39ed72 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\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 f103902c8..648f2d74c 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202403\Symfony\Component\String\UnicodeString; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\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 ee989fd99..e6cef2c20 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\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 38e11c4b1..e83683aac 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 f090c75d6..cdbb48015 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202405\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 de24a45f6..d7cbff860 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\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 3e63b964e..2d53c9916 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202405\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 e722856e2..72f288e32 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Cursor; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Terminal; /** * The ProgressBar provides helpers to display progress output. * @@ -238,9 +238,9 @@ public function setMessage(string $message, string $name = 'message') : void { $this->messages[$name] = $message; } - public function getMessage(string $name = 'message') : string + public function getMessage(string $name = 'message') : ?string { - return $this->messages[$name]; + return $this->messages[$name] ?? null; } public function getStartTime() : int { diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php index 0274a75c7..04869a632 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\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 4a87b5226..e476ec85a 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Cursor; +use RectorPrefix202405\Symfony\Component\Console\Exception\MissingInputException; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatterStyle; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\StreamableInputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202405\Symfony\Component\Console\Question\Question; +use RectorPrefix202405\Symfony\Component\Console\Terminal; +use function RectorPrefix202405\Symfony\Component\String\s; /** * The QuestionHelper class provides helpers to interact with the user. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index c90488b89..f29d21a9f 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202405\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202405\Symfony\Component\Console\Question\Question; +use RectorPrefix202405\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 79732c877..cb08fc874 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -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; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; /** * Provides helpers to display a table. * @@ -366,7 +366,7 @@ public function render() foreach ($parts as $idx => $part) { if ($headers && !$containsColspan) { if (0 === $idx) { - $rows[] = [\sprintf('%s: %s', \str_pad($headers[$i] ?? '', $maxHeaderLength, ' ', \STR_PAD_LEFT), $part)]; + $rows[] = [\sprintf('%s%s: %s', \str_repeat(' ', $maxHeaderLength - Helper::width(Helper::removeDecoration($formatter, $headers[$i] ?? ''))), $headers[$i] ?? '', $part)]; } else { $rows[] = [\sprintf('%s %s', \str_pad('', $maxHeaderLength, ' ', \STR_PAD_LEFT), $part)]; } diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php index 68dae0fda..38e2312dc 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 a6f798b2e..43a29e6c9 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 29c9284d7..6a57fa610 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\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 6e514e55b..3f57a83bb 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\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 cc932f69a..6e7d5d4cc 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 RectorPrefix202403\Symfony\Component\Console\Helper; +namespace RectorPrefix202405\Symfony\Component\Console\Helper; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 26cf920a2..4320bb700 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\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 f7c95a630..bfb0fa3b6 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidOptionException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 7e77e9ce9..825fd1be0 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 83ac02cef..e439e86fc 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line argument. * @@ -35,7 +35,7 @@ class InputArgument */ private $mode; /** - * @var string|int|bool|mixed[]|null|float + * @var mixed[]|bool|float|int|string|null */ private $default; /** @@ -120,7 +120,7 @@ public function setDefault($default = null) } /** * Returns the default value. - * @return string|bool|int|float|mixed[]|null + * @return mixed[]|bool|float|int|string|null */ public function getDefault() { diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php index 58069be19..f8d69ca45 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\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 554265b64..f45c65b29 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 746d89050..daee83b3d 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 8127e0058..0a16fb52c 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -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; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line option. * @@ -48,7 +48,7 @@ class InputOption */ private $name; /** - * @var string|mixed[]|null + * @var mixed[]|string|null */ private $shortcut; /** @@ -56,7 +56,7 @@ class InputOption */ private $mode; /** - * @var string|int|bool|mixed[]|null|float + * @var mixed[]|bool|float|int|string|null */ private $default; /** @@ -195,7 +195,7 @@ public function setDefault($default = null) } /** * Returns the default value. - * @return string|bool|int|float|mixed[]|null + * @return mixed[]|bool|float|int|string|null */ public function getDefault() { diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php index 7d710fa62..a4fd5d401 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\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 f0324bd36..d0c148593 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 RectorPrefix202403\Symfony\Component\Console\Input; +namespace RectorPrefix202405\Symfony\Component\Console\Input; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 cff4098c6..3659492d7 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 RectorPrefix202403\Symfony\Component\Console\Logger; +namespace RectorPrefix202405\Symfony\Component\Console\Logger; -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; +use RectorPrefix202405\Psr\Log\AbstractLogger; +use RectorPrefix202405\Psr\Log\InvalidArgumentException; +use RectorPrefix202405\Psr\Log\LogLevel; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\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 64d71829a..d0b3531bd 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 RectorPrefix202403\Symfony\Component\Console\Messenger; +namespace RectorPrefix202405\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 0a6041d21..a7588a5bb 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 RectorPrefix202403\Symfony\Component\Console\Messenger; +namespace RectorPrefix202405\Symfony\Component\Console\Messenger; -use RectorPrefix202403\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202405\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 3d9038e12..657c280a3 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 RectorPrefix202403\Symfony\Component\Console\Messenger; +namespace RectorPrefix202405\Symfony\Component\Console\Messenger; -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; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202405\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202405\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 7271f1595..83ef03c0c 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 341ec6805..a5bbdf6ab 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\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 0e58a6c1a..b01e4009a 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\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 d6d0464b9..b7957682a 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\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 1bc3a4195..248194829 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202403\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202403\Symfony\Component\Console\Terminal; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\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 50e5c73bc..fa310bbc4 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Formatter\NullOutputFormatter; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Formatter\NullOutputFormatter; +use RectorPrefix202405\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 573c85473..5c39e34b0 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\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 c7f431ff1..3ad81d7b3 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\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 5db809c09..e232100d1 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * StreamOutput writes the output to a given stream. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php index 8738dcf75..c1e7eb25f 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 RectorPrefix202403\Symfony\Component\Console\Output; +namespace RectorPrefix202405\Symfony\Component\Console\Output; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 5f21c1241..f5fb59aac 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 RectorPrefix202403\Symfony\Component\Console\Question; +namespace RectorPrefix202405\Symfony\Component\Console\Question; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\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 9a9f8170b..d11aaa87e 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 RectorPrefix202403\Symfony\Component\Console\Question; +namespace RectorPrefix202405\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 c759c1fbe..0462050c7 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 RectorPrefix202403\Symfony\Component\Console\Question; +namespace RectorPrefix202405\Symfony\Component\Console\Question; -use RectorPrefix202403\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\LogicException; /** * Represents a Question. * @@ -44,7 +44,7 @@ class Question */ private $validator; /** - * @var string|int|bool|null|float + * @var bool|float|int|string|null */ private $default; /** @@ -77,7 +77,7 @@ public function getQuestion() : string } /** * Returns the default answer. - * @return string|bool|int|float|null + * @return bool|float|int|string|null */ public function getDefault() { diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php index db3364f8f..2e2651226 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 RectorPrefix202403\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202405\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 3ccfa926d..3a64bfc94 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 RectorPrefix202403\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202405\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 adbb6c17c..63f13004e 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -use RectorPrefix202403\Symfony\Component\Console\Command\Command; -use RectorPrefix202403\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202403\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\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 64f6ee7d1..36956f9a3 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 RectorPrefix202403\Symfony\Component\Console\Style; +namespace RectorPrefix202405\Symfony\Component\Console\Style; -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; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202405\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\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 a871992a6..72d0839ed 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 RectorPrefix202403\Symfony\Component\Console\Style; +namespace RectorPrefix202405\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 b16b629a0..ec02bc3b5 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 RectorPrefix202403\Symfony\Component\Console\Style; +namespace RectorPrefix202405\Symfony\Component\Console\Style; -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; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202405\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202405\Symfony\Component\Console\Helper\OutputWrapper; +use RectorPrefix202405\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202405\Symfony\Component\Console\Helper\SymfonyQuestionHelper; +use RectorPrefix202405\Symfony\Component\Console\Helper\Table; +use RectorPrefix202405\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202405\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Output\TrimmedBufferOutput; +use RectorPrefix202405\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202405\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202405\Symfony\Component\Console\Question\Question; +use RectorPrefix202405\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 f5dbb5289..b7778ec9e 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 RectorPrefix202403\Symfony\Component\Console; +namespace RectorPrefix202405\Symfony\Component\Console; -use RectorPrefix202403\Symfony\Component\Console\Output\AnsiColorMode; +use RectorPrefix202405\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 d3c9fe744..fc4eb2163 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": { - "RectorPrefix202403\\Symfony\\Component\\Console\\": "" + "RectorPrefix202405\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/deprecation-contracts/composer.json b/vendor/rector/rector/vendor/symfony/deprecation-contracts/composer.json index 768470a95..696f5a7f2 100644 --- a/vendor/rector/rector/vendor/symfony/deprecation-contracts/composer.json +++ b/vendor/rector/rector/vendor/symfony/deprecation-contracts/composer.json @@ -25,7 +25,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony\/contracts", diff --git a/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php b/vendor/rector/rector/vendor/symfony/deprecation-contracts/function.php index e44fdb0bb..debc9eae1 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 657d7a822..c9a7a651c 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 RectorPrefix202403\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202405\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 ec084889e..43298be21 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 RectorPrefix202403\Symfony\Component\Filesystem; +namespace RectorPrefix202405\Symfony\Component\Filesystem; -use RectorPrefix202403\Symfony\Component\Filesystem\Exception\FileNotFoundException; -use RectorPrefix202403\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Filesystem\Exception\IOException; +use RectorPrefix202405\Symfony\Component\Filesystem\Exception\FileNotFoundException; +use RectorPrefix202405\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Filesystem\Exception\IOException; /** * Provides basic utility to manipulate the file system. * @@ -66,6 +66,8 @@ public function copy(string $originFile, string $targetFile, bool $overwriteNewe if ($originIsLocal) { // Like `cp`, preserve executable permission bits self::box('chmod', $targetFile, \fileperms($targetFile) | \fileperms($originFile) & 0111); + // Like `cp`, preserve the file modification time + self::box('touch', $targetFile, \filemtime($originFile)); if ($bytesCopied !== ($bytesOrigin = \filesize($originFile))) { throw new IOException(\sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); } @@ -178,7 +180,7 @@ private static function doRemove(array $files, bool $isRecursive) : void } throw new IOException(\sprintf('Failed to remove directory "%s": ', $file) . $lastError); } - } elseif (!self::box('unlink', $file) && (\strpos(self::$lastError, 'Permission denied') !== \false || \file_exists($file))) { + } elseif (!self::box('unlink', $file) && (self::$lastError && \strpos(self::$lastError, 'Permission denied') !== \false || \file_exists($file))) { throw new IOException(\sprintf('Failed to remove file "%s": ', $file) . self::$lastError); } } @@ -592,7 +594,7 @@ public function dumpFile(string $filename, $content) if (\false === self::box('file_put_contents', $tmpFile, $content)) { throw new IOException(\sprintf('Failed to write file "%s": ', $filename) . self::$lastError, 0, null, $filename); } - self::box('chmod', $tmpFile, \file_exists($filename) ? \fileperms($filename) : 0666 & ~\umask()); + self::box('chmod', $tmpFile, @\fileperms($filename) ?: 0666 & ~\umask()); $this->rename($tmpFile, $filename, \true); } finally { if (\file_exists($tmpFile)) { diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Path.php b/vendor/rector/rector/vendor/symfony/filesystem/Path.php index 7073de764..1c8988ad2 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 RectorPrefix202403\Symfony\Component\Filesystem; +namespace RectorPrefix202405\Symfony\Component\Filesystem; -use RectorPrefix202403\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202403\Symfony\Component\Filesystem\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202405\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 6e03810be..15f452795 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/composer.json +++ b/vendor/rector/rector/vendor/symfony/filesystem/composer.json @@ -18,11 +18,12 @@ "require": { "php": ">=8.1", "symfony\/polyfill-ctype": "~1.8", - "symfony\/polyfill-mbstring": "~1.8" + "symfony\/polyfill-mbstring": "~1.8", + "symfony\/process": "^5.4|^6.4" }, "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202405\\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 90aaf5c07..9c020681d 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 RectorPrefix202403\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202405\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 38b3aad4b..a953fe4c5 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 RectorPrefix202403\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202405\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 d416c72ec..eafc19748 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 RectorPrefix202403\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202405\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 060137602..fcb3b6f0a 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 RectorPrefix202403\Symfony\Component\Finder\Exception; +namespace RectorPrefix202405\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 8c308a91c..b27fc3520 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 RectorPrefix202403\Symfony\Component\Finder\Exception; +namespace RectorPrefix202405\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 3a8659f0c..2262f647d 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 RectorPrefix202403\Symfony\Component\Finder; +namespace RectorPrefix202405\Symfony\Component\Finder; -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; +use RectorPrefix202405\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202405\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202405\Symfony\Component\Finder\Exception\DirectoryNotFoundException; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\CustomFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\FilenameFilterIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\LazyIterator; +use RectorPrefix202405\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; +use RectorPrefix202405\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 855f1099e..bd5a13ed4 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 RectorPrefix202403\Symfony\Component\Finder; +namespace RectorPrefix202405\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 79658681d..ab0d3494a 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 RectorPrefix202403\Symfony\Component\Finder; +namespace RectorPrefix202405\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 4caf8f368..966549e1a 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 bb5fffb56..436916ab3 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202405\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 7356e76dd..6efc44602 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 208370089..5b6f7129e 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\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 1750bb1f2..8682df5bd 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 5ae7115d1..08c15a7fb 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\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 01191beb9..db7a7372b 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\Glob; +use RectorPrefix202405\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 0bd5e45ce..9d077b0c1 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 ec00910e0..c1554c67b 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 388133e6c..23b88215f 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\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 212275dad..4d3117f4c 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\Exception\AccessDeniedException; -use RectorPrefix202403\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202405\Symfony\Component\Finder\Exception\AccessDeniedException; +use RectorPrefix202405\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 ad3d0c0c4..5f57f95e8 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202405\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 d44328185..444d74639 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\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 6c1065b9c..d04ffc36c 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 RectorPrefix202403\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202405\Symfony\Component\Finder\Iterator; -use RectorPrefix202403\Symfony\Component\Finder\Gitignore; +use RectorPrefix202405\Symfony\Component\Finder\Gitignore; /** * @extends \FilterIterator */ @@ -34,9 +34,9 @@ final class VcsIgnoredFilterIterator extends \FilterIterator public function __construct(\Iterator $iterator, string $baseDir) { $this->baseDir = $this->normalizePath($baseDir); - foreach ($this->parentDirectoriesUpwards($this->baseDir) as $parentDirectory) { - if (@\is_dir("{$parentDirectory}/.git")) { - $this->baseDir = $parentDirectory; + foreach (\array_merge([$this->baseDir], $this->parentDirectoriesUpwards($this->baseDir)) as $directory) { + if (@\is_dir("{$directory}/.git")) { + $this->baseDir = $directory; break; } } diff --git a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php index f69cd72f0..55ae1e3d4 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 RectorPrefix202403\Symfony\Component\Finder; +namespace RectorPrefix202405\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 9d325ecee..a38abe9f5 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": { - "RectorPrefix202403\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202405\\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 26bdf70cd..1fb9c696f 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 25ae8b5c7..2e544233d 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 861d3c356..f8aa4c018 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/polyfill-mbstring/bootstrap80.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php index 08db438c9..e5d45a627 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -36,13 +36,13 @@ function mb_convert_case(?string $string, ?int $mode, ?string $encoding = null): } if (!function_exists('mb_internal_encoding')) { /** - * @return string|bool + * @return bool|string */ function mb_internal_encoding(?string $encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); } } if (!function_exists('mb_language')) { /** - * @return string|bool + * @return bool|string */ function mb_language(?string $language = null) { return p\Mbstring::mb_language($language); } } @@ -93,7 +93,7 @@ function mb_strtoupper(?string $string, ?string $encoding = null): string { retu if (!function_exists('mb_substitute_character')) { /** * @param string|int|null $substitute_character - * @return string|int|bool + * @return bool|int|string */ function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); } } @@ -144,13 +144,13 @@ function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = fa } if (!function_exists('mb_get_info')) { /** - * @return mixed[]|string|int|false + * @return mixed[]|int|string|false */ function mb_get_info(?string $type = 'all') { return p\Mbstring::mb_get_info((string) $type); } } if (!function_exists('mb_http_output')) { /** - * @return string|bool + * @return bool|string */ function mb_http_output(?string $encoding = null) { return p\Mbstring::mb_http_output($encoding); } } diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php index 79930c25f..6b692013c 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\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 a5631194b..9f232814c 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\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 eb890d66d..e8025ba7d 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\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 105e72bc8..07bff020b 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\Symfony\Component\Process\Exception; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\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 1f91b15e2..f62071bd2 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\Symfony\Component\Process\Exception; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\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 d05394722..4ef9f9401 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\Symfony\Component\Process\Exception; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\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 eeb4b47f1..ae557bd29 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\Symfony\Component\Process\Exception; -use RectorPrefix202403\Symfony\Component\Process\Messenger\RunProcessContext; +use RectorPrefix202405\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 2f9b262b7..09dc8712d 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 RectorPrefix202403\Symfony\Component\Process\Exception; +namespace RectorPrefix202405\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 37285939e..b3d859fd8 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; /** * Generic executable finder. diff --git a/vendor/rector/rector/vendor/symfony/process/InputStream.php b/vendor/rector/rector/vendor/symfony/process/InputStream.php index e501dd4ba..4fea67fe1 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; -use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202405\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 1cc4bfd6e..83feefa87 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 RectorPrefix202403\Symfony\Component\Process\Messenger; +namespace RectorPrefix202405\Symfony\Component\Process\Messenger; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\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 077bfa1f5..685e4086d 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 RectorPrefix202403\Symfony\Component\Process\Messenger; +namespace RectorPrefix202405\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 d43251a81..4f0831c13 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 RectorPrefix202403\Symfony\Component\Process\Messenger; +namespace RectorPrefix202405\Symfony\Component\Process\Messenger; -use RectorPrefix202403\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202403\Symfony\Component\Process\Exception\RunProcessFailedException; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202405\Symfony\Component\Process\Exception\RunProcessFailedException; +use RectorPrefix202405\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 5ad2e49c6..3a8557e4b 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\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 3adafef62..3f7865018 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; -use RectorPrefix202403\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202405\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 5b55b0b4e..2d631d143 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; -use RectorPrefix202403\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202405\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 5c5f5a70c..78f7e2e12 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 RectorPrefix202403\Symfony\Component\Process\Pipes; +namespace RectorPrefix202405\Symfony\Component\Process\Pipes; -use RectorPrefix202403\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202405\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 c38fb1646..a1f5d1b81 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 RectorPrefix202403\Symfony\Component\Process\Pipes; +namespace RectorPrefix202405\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 3c775ecbd..5243994dc 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 RectorPrefix202403\Symfony\Component\Process\Pipes; +namespace RectorPrefix202405\Symfony\Component\Process\Pipes; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\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 f2fd2e2ac..9eb88ad97 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 RectorPrefix202403\Symfony\Component\Process\Pipes; +namespace RectorPrefix202405\Symfony\Component\Process\Pipes; -use RectorPrefix202403\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202403\Symfony\Component\Process\Process; +use RectorPrefix202405\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202405\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 cd52322ec..e94c7bcc4 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; -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; +use RectorPrefix202405\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202405\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202405\Symfony\Component\Process\Exception\ProcessSignaledException; +use RectorPrefix202405\Symfony\Component\Process\Exception\ProcessTimedOutException; +use RectorPrefix202405\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Process\Pipes\UnixPipes; +use RectorPrefix202405\Symfony\Component\Process\Pipes\WindowsPipes; /** * Process is a thin wrapper around proc_* functions to easily * start independent PHP processes. diff --git a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php index 690f21520..3be6dfd31 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 RectorPrefix202403\Symfony\Component\Process; +namespace RectorPrefix202405\Symfony\Component\Process; -use RectorPrefix202403\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202405\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 8f03427ca..669927a09 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": { - "RectorPrefix202403\\Symfony\\Component\\Process\\": "" + "RectorPrefix202405\\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 ac6cfda39..6315c4a40 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 RectorPrefix202403\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202405\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 ad7c18a59..5053cbd6e 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.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 RectorPrefix202403\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202405\Symfony\Contracts\Service\Attribute; -use RectorPrefix202403\Symfony\Contracts\Service\ServiceSubscriberInterface; -use RectorPrefix202403\Symfony\Contracts\Service\ServiceSubscriberTrait; +use RectorPrefix202405\Symfony\Contracts\Service\ServiceMethodsSubscriberTrait; +use RectorPrefix202405\Symfony\Contracts\Service\ServiceSubscriberInterface; /** * For use as the return value for {@see ServiceSubscriberInterface}. * * @example new SubscribedService('http_client', HttpClientInterface::class, false, new Target('githubApi')) * - * Use with {@see ServiceSubscriberTrait} to mark a method's return type + * Use with {@see ServiceMethodsSubscriberTrait} to mark a method's return type * as a subscribed service. * * @author Kevin Bond diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php index 185f2cecf..63083f469 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 RectorPrefix202403\Symfony\Contracts\Service; +namespace RectorPrefix202405\Symfony\Contracts\Service; /** * Provides a way to reset an object to its initial state. diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceCollectionInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceCollectionInterface.php new file mode 100644 index 000000000..3e25b305e --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceCollectionInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202405\Symfony\Contracts\Service; + +/** + * A ServiceProviderInterface that is also countable and iterable. + * + * @author Kevin Bond + * + * @template-covariant T of mixed + * + * @extends ServiceProviderInterface + * @extends \IteratorAggregate + */ +interface ServiceCollectionInterface extends ServiceProviderInterface, \Countable, \IteratorAggregate +{ +} diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php index e6577efbd..eddc45e4b 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 RectorPrefix202403\Symfony\Contracts\Service; +namespace RectorPrefix202405\Symfony\Contracts\Service; -use RectorPrefix202403\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202403\Psr\Container\NotFoundExceptionInterface; +use RectorPrefix202405\Psr\Container\ContainerExceptionInterface; +use RectorPrefix202405\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/ServiceMethodsSubscriberTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php new file mode 100644 index 000000000..8ed425360 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202405\Symfony\Contracts\Service; + +use RectorPrefix202405\Psr\Container\ContainerInterface; +use RectorPrefix202405\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202405\Symfony\Contracts\Service\Attribute\SubscribedService; +/** + * Implementation of ServiceSubscriberInterface that determines subscribed services + * from methods that have the #[SubscribedService] attribute. + * + * Service ids are available as "ClassName::methodName" so that the implementation + * of subscriber methods can be just `return $this->container->get(__METHOD__);`. + * + * @author Kevin Bond + */ +trait ServiceMethodsSubscriberTrait +{ + /** + * @var \Psr\Container\ContainerInterface + */ + protected $container; + public static function getSubscribedServices() : array + { + $services = \method_exists(\get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : []; + foreach ((new \ReflectionClass(self::class))->getMethods() as $method) { + if (self::class !== $method->getDeclaringClass()->name) { + continue; + } + if (!($attribute = (\method_exists($method, 'getAttributes') ? $method->getAttributes(SubscribedService::class) : [])[0] ?? null)) { + continue; + } + if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) { + throw new \LogicException(\sprintf('Cannot use "%s" on method "%s::%s()" (can only be used on non-static, non-abstract methods with no parameters).', SubscribedService::class, self::class, $method->name)); + } + if (!($returnType = $method->getReturnType())) { + throw new \LogicException(\sprintf('Cannot use "%s" on methods without a return type in "%s::%s()".', SubscribedService::class, $method->name, self::class)); + } + /* @var SubscribedService $attribute */ + $attribute = $attribute->newInstance(); + $attribute->key = $attribute->key ?? self::class . '::' . $method->name; + $attribute->type = $attribute->type ?? ($returnType instanceof \ReflectionNamedType ? $returnType->getName() : (string) $returnType); + $attribute->nullable = $returnType->allowsNull(); + if ($attribute->attributes) { + $services[] = $attribute; + } else { + $services[$attribute->key] = ($attribute->nullable ? '?' : '') . $attribute->type; + } + } + return $services; + } + /** + * @required + */ + public function setContainer(ContainerInterface $container) : ?ContainerInterface + { + $ret = null; + if (\method_exists(\get_parent_class(self::class) ?: '', __FUNCTION__)) { + $ret = parent::setContainer($container); + } + $this->container = $container; + return $ret; + } +} diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php index c6956394f..a8caacbf8 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 RectorPrefix202403\Symfony\Contracts\Service; +namespace RectorPrefix202405\Symfony\Contracts\Service; -use RectorPrefix202403\Psr\Container\ContainerInterface; +use RectorPrefix202405\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 a551e1721..bd95e9b20 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 RectorPrefix202403\Symfony\Contracts\Service; +namespace RectorPrefix202405\Symfony\Contracts\Service; -use RectorPrefix202403\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202405\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 f7463ba4a..e778dc216 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -8,21 +8,27 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202403\Symfony\Contracts\Service; +namespace RectorPrefix202405\Symfony\Contracts\Service; -use RectorPrefix202403\Psr\Container\ContainerInterface; -use RectorPrefix202403\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202403\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202405\Psr\Container\ContainerInterface; +use RectorPrefix202405\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202405\Symfony\Contracts\Service\Attribute\SubscribedService; +trigger_deprecation('symfony/contracts', 'v3.5', '"%s" is deprecated, use "ServiceMethodsSubscriberTrait" instead.', ServiceSubscriberTrait::class); /** - * Implementation of ServiceSubscriberInterface that determines subscribed services from - * method return types. Service ids are available as "ClassName::methodName". + * Implementation of ServiceSubscriberInterface that determines subscribed services + * from methods that have the #[SubscribedService] attribute. + * + * Service ids are available as "ClassName::methodName" so that the implementation + * of subscriber methods can be just `return $this->container->get(__METHOD__);`. + * + * @property ContainerInterface $container * * @author Kevin Bond + * + * @deprecated since symfony/contracts v3.5, use ServiceMethodsSubscriberTrait instead */ trait ServiceSubscriberTrait { - /** @var ContainerInterface */ - protected $container; public static function getSubscribedServices() : array { $services = \method_exists(\get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : []; diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json index 514af08c2..0724723da 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json +++ b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json @@ -24,14 +24,15 @@ ], "require": { "php": ">=8.1", - "psr\/container": "^1.1|^2.0" + "psr\/container": "^1.1|^2.0", + "symfony\/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202405\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" @@ -40,7 +41,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony\/contracts", diff --git a/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php b/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php index 1d61290bb..500914e2f 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Command/LintCommand.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 RectorPrefix202403\Symfony\Component\Yaml\Command; +namespace RectorPrefix202405\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; +use RectorPrefix202405\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202405\Symfony\Component\Console\CI\GithubActionReporter; +use RectorPrefix202405\Symfony\Component\Console\Command\Command; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202405\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202405\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202405\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202405\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202405\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202405\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202405\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202405\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202405\Symfony\Component\Yaml\Parser; +use RectorPrefix202405\Symfony\Component\Yaml\Yaml; /** * Validates YAML files syntax and outputs encountered errors. * diff --git a/vendor/rector/rector/vendor/symfony/yaml/Dumper.php b/vendor/rector/rector/vendor/symfony/yaml/Dumper.php index b323de265..f44168233 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Dumper.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Dumper.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; -use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +use RectorPrefix202405\Symfony\Component\Yaml\Tag\TaggedValue; /** * Dumper dumps PHP variables to YAML strings. * diff --git a/vendor/rector/rector/vendor/symfony/yaml/Escaper.php b/vendor/rector/rector/vendor/symfony/yaml/Escaper.php index 7055dd23e..531667c96 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Escaper.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Escaper.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; /** * Escaper encapsulates escaping rules for single and double-quoted diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php index e6dc05444..29c8a8c60 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/DumpException.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 RectorPrefix202403\Symfony\Component\Yaml\Exception; +namespace RectorPrefix202405\Symfony\Component\Yaml\Exception; /** * Exception class thrown when an error occurs during dumping. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php index a5ec14b1c..52e56acc2 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/yaml/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 RectorPrefix202403\Symfony\Component\Yaml\Exception; +namespace RectorPrefix202405\Symfony\Component\Yaml\Exception; /** * Exception interface for all exceptions thrown by the component. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php index 150d38b46..6945ddb0c 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Exception/ParseException.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 RectorPrefix202403\Symfony\Component\Yaml\Exception; +namespace RectorPrefix202405\Symfony\Component\Yaml\Exception; /** * Exception class thrown when an error occurs during parsing. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php index 302af13f9..32b266148 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/yaml/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 RectorPrefix202403\Symfony\Component\Yaml\Exception; +namespace RectorPrefix202405\Symfony\Component\Yaml\Exception; /** * Exception class thrown when an error occurs during parsing. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Inline.php b/vendor/rector/rector/vendor/symfony/yaml/Inline.php index 65709354e..fffdb5506 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Inline.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Inline.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; -use RectorPrefix202403\Symfony\Component\Yaml\Exception\DumpException; -use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; -use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\DumpException; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202405\Symfony\Component\Yaml\Tag\TaggedValue; /** * Inline implements a YAML parser/dumper for the YAML inline syntax. * diff --git a/vendor/rector/rector/vendor/symfony/yaml/Parser.php b/vendor/rector/rector/vendor/symfony/yaml/Parser.php index bac5c6d61..b69d04966 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Parser.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Parser.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; -use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; -use RectorPrefix202403\Symfony\Component\Yaml\Tag\TaggedValue; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202405\Symfony\Component\Yaml\Tag\TaggedValue; /** * Parser parses YAML strings to convert them to PHP arrays. * @@ -567,11 +567,11 @@ private function getNextEmbedBlock(?int $indentation = null, bool $inSequence = break; } if ($this->isCurrentLineBlank()) { - $data[] = \substr($this->currentLine, $newIndent); + $data[] = \substr($this->currentLine, $newIndent ?? 0); continue; } if ($indent >= $newIndent) { - $data[] = \substr($this->currentLine, $newIndent); + $data[] = \substr($this->currentLine, $newIndent ?? 0); } elseif ($this->isCurrentLineComment()) { $data[] = $this->currentLine; } elseif (0 == $indent) { diff --git a/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint b/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint index 47c3c710c..b46716b06 100755 --- a/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint +++ b/vendor/rector/rector/vendor/symfony/yaml/Resources/bin/yaml-lint @@ -1,6 +1,6 @@ #!/usr/bin/env php */ -use RectorPrefix202403\Symfony\Component\Console\Application; -use RectorPrefix202403\Symfony\Component\Yaml\Command\LintCommand; +use RectorPrefix202405\Symfony\Component\Console\Application; +use RectorPrefix202405\Symfony\Component\Yaml\Command\LintCommand; function includeIfExists(string $file) : bool { return \file_exists($file) && (include $file); diff --git a/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php b/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php index 7512e0ec9..e37e93b11 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Tag/TaggedValue.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 RectorPrefix202403\Symfony\Component\Yaml\Tag; +namespace RectorPrefix202405\Symfony\Component\Yaml\Tag; /** * @author Nicolas Grekas diff --git a/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php b/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php index e176a39f4..5a5d6b694 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Unescaper.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Unescaper.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; -use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\ParseException; /** * Unescaper encapsulates unescaping rules for single and double-quoted * YAML strings. diff --git a/vendor/rector/rector/vendor/symfony/yaml/Yaml.php b/vendor/rector/rector/vendor/symfony/yaml/Yaml.php index 285c897fa..0c50e2bf5 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/Yaml.php +++ b/vendor/rector/rector/vendor/symfony/yaml/Yaml.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 RectorPrefix202403\Symfony\Component\Yaml; +namespace RectorPrefix202405\Symfony\Component\Yaml; -use RectorPrefix202403\Symfony\Component\Yaml\Exception\ParseException; +use RectorPrefix202405\Symfony\Component\Yaml\Exception\ParseException; /** * Yaml offers convenience methods to load and dump YAML. * diff --git a/vendor/rector/rector/vendor/symfony/yaml/composer.json b/vendor/rector/rector/vendor/symfony/yaml/composer.json index a85d13e28..337767920 100644 --- a/vendor/rector/rector/vendor/symfony/yaml/composer.json +++ b/vendor/rector/rector/vendor/symfony/yaml/composer.json @@ -28,7 +28,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202403\\Symfony\\Component\\Yaml\\": "" + "RectorPrefix202405\\Symfony\\Component\\Yaml\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json index 160c77b66..0b6e114b9 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json @@ -20,12 +20,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202403\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202405\\Symplify\\EasyParallel\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Symplify\\EasyParallel\\Tests\\": "tests" + "RectorPrefix202405\\Symplify\\EasyParallel\\Tests\\": "tests" } }, "scripts": { 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 08fecf642..e90f37a8d 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/src/CommandLine/WorkerCommandLineFactory.php b/vendor/rector/rector/vendor/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php index a98e87fe9..6f825b3ef 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 @@ =8.1", - "nette\/utils": "^3.2" + "php": ">=8.1" }, "require-dev": { "php-parallel-lint\/php-parallel-lint": "^1.3", diff --git a/vendor/rector/rector/vendor/symplify/rule-doc-generator-contracts/src/ValueObject/RuleDefinition.php b/vendor/rector/rector/vendor/symplify/rule-doc-generator-contracts/src/ValueObject/RuleDefinition.php index c71c63dcc..5e76c95b1 100644 --- a/vendor/rector/rector/vendor/symplify/rule-doc-generator-contracts/src/ValueObject/RuleDefinition.php +++ b/vendor/rector/rector/vendor/symplify/rule-doc-generator-contracts/src/ValueObject/RuleDefinition.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Symplify\RuleDocGenerator\ValueObject; -use RectorPrefix202403\Nette\Utils\Strings; use Symplify\RuleDocGenerator\Contract\CodeSampleInterface; use Symplify\RuleDocGenerator\Exception\PoorDocumentationException; use Symplify\RuleDocGenerator\Exception\ShouldNotHappenException; @@ -70,7 +69,8 @@ public function getRuleShortClass() : string if ($this->ruleClass === null) { throw new ShouldNotHappenException(); } - return (string) Strings::after($this->ruleClass, '\\', -1); + // get short class name + return \basename(\str_replace('\\', '/', $this->ruleClass)); } /** * @return CodeSampleInterface[] diff --git a/vendor/rector/rector/vendor/webmozart/assert/composer.json b/vendor/rector/rector/vendor/webmozart/assert/composer.json index be6e8fe67..2e6af8e54 100644 --- a/vendor/rector/rector/vendor/webmozart/assert/composer.json +++ b/vendor/rector/rector/vendor/webmozart/assert/composer.json @@ -26,13 +26,13 @@ }, "autoload": { "psr-4": { - "RectorPrefix202403\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202405\\Webmozart\\Assert\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202403\\Webmozart\\Assert\\Tests\\": "tests\/", - "RectorPrefix202403\\Webmozart\\Assert\\Bin\\": "bin\/src" + "RectorPrefix202405\\Webmozart\\Assert\\Tests\\": "tests\/", + "RectorPrefix202405\\Webmozart\\Assert\\Bin\\": "bin\/src" } }, "extra": { diff --git a/vendor/rector/rector/vendor/webmozart/assert/src/Assert.php b/vendor/rector/rector/vendor/webmozart/assert/src/Assert.php index 760edb383..ad3f1da42 100644 --- a/vendor/rector/rector/vendor/webmozart/assert/src/Assert.php +++ b/vendor/rector/rector/vendor/webmozart/assert/src/Assert.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 RectorPrefix202403\Webmozart\Assert; +namespace RectorPrefix202405\Webmozart\Assert; use ArrayAccess; use BadMethodCallException; diff --git a/vendor/rector/rector/vendor/webmozart/assert/src/InvalidArgumentException.php b/vendor/rector/rector/vendor/webmozart/assert/src/InvalidArgumentException.php index 7c7b790fe..3aeda394b 100644 --- a/vendor/rector/rector/vendor/webmozart/assert/src/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/webmozart/assert/src/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 RectorPrefix202403\Webmozart\Assert; +namespace RectorPrefix202405\Webmozart\Assert; class InvalidArgumentException extends \InvalidArgumentException { diff --git a/vendor/rector/rector/vendor/webmozart/assert/src/Mixin.php b/vendor/rector/rector/vendor/webmozart/assert/src/Mixin.php index 7cd6b8764..f33556736 100644 --- a/vendor/rector/rector/vendor/webmozart/assert/src/Mixin.php +++ b/vendor/rector/rector/vendor/webmozart/assert/src/Mixin.php @@ -1,6 +1,6 @@ messages[$name] = $message; } + /** + * @return string|null + */ public function getMessage(string $name = 'message') { - return $this->messages[$name]; + return $this->messages[$name] ?? null; } public function getStartTime(): int diff --git a/vendor/symfony/deprecation-contracts/LICENSE b/vendor/symfony/deprecation-contracts/LICENSE index 406242ff2..0ed3a2465 100644 --- a/vendor/symfony/deprecation-contracts/LICENSE +++ b/vendor/symfony/deprecation-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020-2022 Fabien Potencier +Copyright (c) 2020-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 diff --git a/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php b/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php index 351dc5131..81f4e89fd 100644 --- a/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php +++ b/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php @@ -27,5 +27,5 @@ interface EventDispatcherInterface extends PsrEventDispatcherInterface * * @return object The passed $event MUST be returned */ - public function dispatch(object $event, string $eventName = null): object; + public function dispatch(object $event, ?string $eventName = null): object; } diff --git a/vendor/symfony/event-dispatcher-contracts/LICENSE b/vendor/symfony/event-dispatcher-contracts/LICENSE index 74cdc2dbf..7536caeae 100644 --- a/vendor/symfony/event-dispatcher-contracts/LICENSE +++ b/vendor/symfony/event-dispatcher-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2022 Fabien Potencier +Copyright (c) 2018-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 diff --git a/vendor/symfony/event-dispatcher/Debug/WrappedListener.php b/vendor/symfony/event-dispatcher/Debug/WrappedListener.php index 80d49a168..792c17561 100644 --- a/vendor/symfony/event-dispatcher/Debug/WrappedListener.php +++ b/vendor/symfony/event-dispatcher/Debug/WrappedListener.php @@ -47,7 +47,7 @@ public function __construct($listener, ?string $name, Stopwatch $stopwatch, ?Eve $this->pretty = $this->name.'::'.$listener[1]; } elseif ($listener instanceof \Closure) { $r = new \ReflectionFunction($listener); - if (str_contains($r->name, '{closure}')) { + if (str_contains($r->name, '{closure')) { $this->pretty = $this->name = 'closure'; } elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $this->name = $class->name; diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 037629f18..c5cfa4714 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -72,6 +72,9 @@ public function copy(string $originFile, string $targetFile, bool $overwriteNewe // Like `cp`, preserve executable permission bits self::box('chmod', $targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111)); + // Like `cp`, preserve the file modification time + self::box('touch', $targetFile, filemtime($originFile)); + if ($bytesCopied !== $bytesOrigin = filesize($originFile)) { throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); } @@ -199,7 +202,7 @@ private static function doRemove(array $files, bool $isRecursive): void throw new IOException(sprintf('Failed to remove directory "%s": ', $file).$lastError); } - } elseif (!self::box('unlink', $file) && (str_contains(self::$lastError, 'Permission denied') || file_exists($file))) { + } elseif (!self::box('unlink', $file) && ((self::$lastError && str_contains(self::$lastError, 'Permission denied')) || file_exists($file))) { throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError); } } @@ -688,7 +691,7 @@ public function dumpFile(string $filename, $content) throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); } - self::box('chmod', $tmpFile, file_exists($filename) ? fileperms($filename) : 0666 & ~umask()); + self::box('chmod', $tmpFile, @fileperms($filename) ?: 0666 & ~umask()); $this->rename($tmpFile, $filename, true); } finally { diff --git a/vendor/symfony/filesystem/composer.json b/vendor/symfony/filesystem/composer.json index e756104cd..95e9f3f03 100644 --- a/vendor/symfony/filesystem/composer.json +++ b/vendor/symfony/filesystem/composer.json @@ -19,7 +19,8 @@ "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.16", + "symfony/process": "^5.4|^6.4" }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, diff --git a/vendor/symfony/service-contracts/LICENSE b/vendor/symfony/service-contracts/LICENSE index 74cdc2dbf..7536caeae 100644 --- a/vendor/symfony/service-contracts/LICENSE +++ b/vendor/symfony/service-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2022 Fabien Potencier +Copyright (c) 2018-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 diff --git a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 16e3eb2c1..6c560a427 100644 --- a/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -98,12 +98,13 @@ public static function getSubscribedServices(): array */ public function setContainer(ContainerInterface $container) { - $this->container = $container; - + $ret = null; if (method_exists(get_parent_class(self::class) ?: '', __FUNCTION__)) { - return parent::setContainer($container); + $ret = parent::setContainer($container); } - return null; + $this->container = $container; + + return $ret; } } diff --git a/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php b/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php index 2a1b565f5..07d12b4a5 100644 --- a/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php +++ b/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php @@ -11,85 +11,13 @@ namespace Symfony\Contracts\Service\Test; -use PHPUnit\Framework\TestCase; -use Psr\Container\ContainerInterface; -use Symfony\Contracts\Service\ServiceLocatorTrait; +class_alias(ServiceLocatorTestCase::class, ServiceLocatorTest::class); -abstract class ServiceLocatorTest extends TestCase -{ +if (false) { /** - * @return ContainerInterface + * @deprecated since PHPUnit 9.6 */ - protected function getServiceLocator(array $factories) + class ServiceLocatorTest { - return new class($factories) implements ContainerInterface { - use ServiceLocatorTrait; - }; - } - - public function testHas() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - function () { return 'dummy'; }, - ]); - - $this->assertTrue($locator->has('foo')); - $this->assertTrue($locator->has('bar')); - $this->assertFalse($locator->has('dummy')); - } - - public function testGet() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('baz', $locator->get('bar')); - } - - public function testGetDoesNotMemoize() - { - $i = 0; - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$i) { - ++$i; - - return 'bar'; - }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame(2, $i); - } - - public function testThrowsOnUndefinedInternalService() - { - if (!$this->getExpectedException()) { - $this->expectException(\Psr\Container\NotFoundExceptionInterface::class); - $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); - } - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); - } - - public function testThrowsOnCircularReference() - { - $this->expectException(\Psr\Container\ContainerExceptionInterface::class); - $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - 'bar' => function () use (&$locator) { return $locator->get('baz'); }, - 'baz' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); } } diff --git a/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php b/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php new file mode 100644 index 000000000..8696db7bf --- /dev/null +++ b/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Service\Test; + +use PHPUnit\Framework\TestCase; +use Psr\Container\ContainerInterface; +use Symfony\Contracts\Service\ServiceLocatorTrait; + +abstract class ServiceLocatorTestCase extends TestCase +{ + /** + * @return ContainerInterface + */ + protected function getServiceLocator(array $factories) + { + return new class($factories) implements ContainerInterface { + use ServiceLocatorTrait; + }; + } + + public function testHas() + { + $locator = $this->getServiceLocator([ + 'foo' => function () { return 'bar'; }, + 'bar' => function () { return 'baz'; }, + function () { return 'dummy'; }, + ]); + + $this->assertTrue($locator->has('foo')); + $this->assertTrue($locator->has('bar')); + $this->assertFalse($locator->has('dummy')); + } + + public function testGet() + { + $locator = $this->getServiceLocator([ + 'foo' => function () { return 'bar'; }, + 'bar' => function () { return 'baz'; }, + ]); + + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame('baz', $locator->get('bar')); + } + + public function testGetDoesNotMemoize() + { + $i = 0; + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$i) { + ++$i; + + return 'bar'; + }, + ]); + + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame(2, $i); + } + + public function testThrowsOnUndefinedInternalService() + { + if (!$this->getExpectedException()) { + $this->expectException(\Psr\Container\NotFoundExceptionInterface::class); + $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); + } + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$locator) { return $locator->get('bar'); }, + ]); + + $locator->get('foo'); + } + + public function testThrowsOnCircularReference() + { + $this->expectException(\Psr\Container\ContainerExceptionInterface::class); + $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$locator) { return $locator->get('bar'); }, + 'bar' => function () use (&$locator) { return $locator->get('baz'); }, + 'baz' => function () use (&$locator) { return $locator->get('bar'); }, + ]); + + $locator->get('foo'); + } +} diff --git a/vendor/symfony/string/LazyString.php b/vendor/symfony/string/LazyString.php index 9c7a9c58b..5f7e7370d 100644 --- a/vendor/symfony/string/LazyString.php +++ b/vendor/symfony/string/LazyString.php @@ -148,7 +148,7 @@ private static function getPrettyName(callable $callback): string } elseif ($callback instanceof \Closure) { $r = new \ReflectionFunction($callback); - if (false !== strpos($r->name, '{closure}') || !$class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { + if (str_contains($r->name, '{closure') || !$class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { return $r->name; }