Version Description
(10.02.2020) = * Add compatibility with Polylang * Add confirmation popup before mass conversion of slugs * Improve selection of posts and tags for conversion to avoid selection of excessive items for mass conversion * Fix bug with redirection from the old slug to a new one after background slug conversion * Fix js to run in old browsers like IE
Download this release
Release Info
Developer | mihdan |
Plugin | Cyr-To-Lat |
Version | 4.6.0 |
Comparing to | |
See all releases |
Code changes from version 4.5.1 to 4.6.0
- .phpcs.cache +0 -1
- classes/background-processes/class-conversion-process.php +3 -2
- classes/background-processes/class-post-conversion-process.php +8 -6
- classes/background-processes/class-term-conversion-process.php +12 -0
- classes/class-converter.php +37 -49
- classes/class-main.php +97 -2
- classes/class-requirements.php +7 -5
- classes/class-settings.php +70 -53
- classes/class-wp-cli.php +5 -0
- css/cyr-to-lat-admin.css +22 -1
- cyr-to-lat.php +9 -8
- dist/js/settings/app.js +2 -0
- languages/cyr2lat-ru_RU.mo +0 -0
- languages/cyr2lat-ru_RU.po +88 -58
- languages/cyr2lat-sv.mo +0 -0
- languages/cyr2lat-uk.mo +0 -0
- languages/en_US.pot +115 -56
- lib/polyfill-mbstring/README.md +13 -0
- lib/polyfill-mbstring/composer.json +34 -0
- readme.txt +11 -1
- vendor/10up/wp_mock/.gitmodules +0 -1
- vendor/10up/wp_mock/CONTRIBUTING.md +0 -26
- vendor/10up/wp_mock/LICENSE.md +0 -368
- vendor/10up/wp_mock/behat.yml +0 -9
- vendor/10up/wp_mock/bootstrap.php.dist +0 -5
- vendor/10up/wp_mock/features/bootstrap/FeatureContext.php +0 -88
- vendor/10up/wp_mock/features/bootstrap/FunctionsContext.php +0 -127
- vendor/10up/wp_mock/features/bootstrap/HooksContext.php +0 -235
- vendor/10up/wp_mock/features/function-mocks.feature +0 -48
- vendor/10up/wp_mock/features/hooks.feature +0 -228
- vendor/10up/wp_mock/php/WP_Mock.php +0 -543
- vendor/10up/wp_mock/php/WP_Mock/API/constant-mocks.php +0 -72
- vendor/10up/wp_mock/php/WP_Mock/API/dummy-files/themes/vip/plugins/vip-init.php +0 -0
- vendor/10up/wp_mock/php/WP_Mock/API/dummy-files/wp-includes/class-http.php +0 -0
- vendor/10up/wp_mock/php/WP_Mock/API/function-mocks.php +0 -161
- vendor/10up/wp_mock/php/WP_Mock/Action.php +0 -77
- vendor/10up/wp_mock/php/WP_Mock/DeprecatedListener.php +0 -119
- vendor/10up/wp_mock/php/WP_Mock/EventManager.php +0 -124
- vendor/10up/wp_mock/php/WP_Mock/Filter.php +0 -76
- vendor/10up/wp_mock/php/WP_Mock/Functions.php +0 -295
- vendor/10up/wp_mock/php/WP_Mock/Handler.php +0 -110
- vendor/10up/wp_mock/php/WP_Mock/Hook.php +0 -88
- vendor/10up/wp_mock/php/WP_Mock/HookedCallback.php +0 -107
- vendor/10up/wp_mock/php/WP_Mock/InvokedFilterValue.php +0 -25
- vendor/10up/wp_mock/php/WP_Mock/Loader.php +0 -149
- vendor/10up/wp_mock/php/WP_Mock/Matcher/FuzzyObject.php +0 -101
- vendor/10up/wp_mock/php/WP_Mock/ReturnSequence.php +0 -39
- vendor/10up/wp_mock/php/WP_Mock/Tools/Constraints/ExpectationsMet.php +0 -40
- vendor/10up/wp_mock/php/WP_Mock/Tools/Constraints/IsEqualHtml.php +0 -21
- vendor/10up/wp_mock/php/WP_Mock/Tools/TestCase.php +0 -319
- vendor/10up/wp_mock/phpdoc.xml +0 -16
- vendor/10up/wp_mock/phpunit.xml.dist +0 -22
- vendor/antecedent/patchwork/.scrutinizer.yml +0 -48
- vendor/antecedent/patchwork/LICENSE +0 -21
- vendor/antecedent/patchwork/Patchwork.php +0 -149
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +32 -0
- vendor/composer/InstalledVersions.php +96 -608
- vendor/composer/autoload_classmap.php +0 -623
- vendor/composer/autoload_files.php +0 -13
- vendor/composer/autoload_namespaces.php +0 -5
- vendor/composer/autoload_psr4.php +0 -24
- vendor/composer/autoload_real.php +8 -8
- vendor/composer/autoload_static.php +4 -816
- vendor/composer/installed.json +2 -4084
- vendor/composer/installed.php +6 -583
- vendor/composer/installers/composer.json +112 -0
- vendor/composer/installers/src/Composer/Installers/AglInstaller.php +21 -0
- vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php +49 -0
- vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +137 -0
- vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +126 -0
- vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +72 -0
- vendor/composer/installers/src/Composer/Installers/ChefInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +34 -0
- vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +13 -0
- vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +35 -0
- vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +21 -0
- vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/DframeInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php +50 -0
- vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php +16 -0
- vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +22 -0
- vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php +29 -0
- vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/GravInstaller.php +30 -0
- vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +25 -0
- vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/Installer.php +280 -0
- vendor/composer/installers/src/Composer/Installers/ItopInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +15 -0
- vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php +18 -0
- vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/KnownInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php +27 -0
- vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +16 -0
- vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php +37 -0
- vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php +23 -0
- vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +25 -0
- vendor/composer/installers/src/Composer/Installers/MayaInstaller.php +33 -0
- vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +51 -0
- vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php +119 -0
- vendor/composer/installers/src/Composer/Installers/ModxInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +58 -0
- vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +47 -0
- vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php +24 -0
- vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php +14 -0
- vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +59 -0
- vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php +21 -0
- vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +32 -0
- vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php +29 -0
- vendor/composer/installers/src/Composer/Installers/Plugin.php +27 -0
- vendor/composer/installers/src/Composer/Installers/PortoInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php +63 -0
- vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php +24 -0
- vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php +10 -0
- vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php +22 -0
- vendor/composer/installers/src/Composer/Installers/SMFInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +60 -0
- vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +35 -0
- vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php +25 -0
- vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +49 -0
- vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +26 -0
- vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +16 -0
- vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +38 -0
- vendor/composer/installers/src/Composer/Installers/TaoInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/TuskInstaller.php +14 -0
- vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php +10 -0
- vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php +49 -0
- vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php +21 -0
- vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +9 -0
- vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +12 -0
- vendor/composer/installers/src/Composer/Installers/YawikInstaller.php +32 -0
- vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +11 -0
- vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +10 -0
- vendor/composer/installers/src/bootstrap.php +13 -0
- vendor/doctrine/instantiator/.scrutinizer.yml +0 -46
- vendor/doctrine/instantiator/.travis.install.sh +0 -14
- vendor/doctrine/instantiator/CONTRIBUTING.md +0 -35
- vendor/doctrine/instantiator/LICENSE +0 -19
- vendor/doctrine/instantiator/phpmd.xml.dist +0 -27
- vendor/doctrine/instantiator/phpunit.xml.dist +0 -22
- vendor/guzzlehttp/guzzle/.php_cs +0 -23
- vendor/guzzlehttp/guzzle/Dockerfile +0 -18
- vendor/guzzlehttp/guzzle/LICENSE +0 -19
- vendor/guzzlehttp/guzzle/UPGRADING.md +0 -1203
- vendor/guzzlehttp/promises/.php_cs.dist +0 -88
- vendor/guzzlehttp/promises/LICENSE +0 -19
- vendor/guzzlehttp/promises/phpstan-baseline.neon +0 -7
- vendor/guzzlehttp/promises/phpstan.neon.dist +0 -10
- vendor/guzzlehttp/promises/psalm.xml +0 -15
- vendor/guzzlehttp/psr7/LICENSE +0 -19
- vendor/hamcrest/hamcrest-php/.gush.yml +0 -7
- vendor/hamcrest/hamcrest-php/CHANGES.txt +0 -173
- vendor/hamcrest/hamcrest-php/LICENSE.txt +0 -27
- vendor/hamcrest/hamcrest-php/generator/FactoryCall.php +0 -41
- vendor/hamcrest/hamcrest-php/generator/FactoryClass.php +0 -71
- vendor/hamcrest/hamcrest-php/generator/FactoryFile.php +0 -121
- vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php +0 -124
- vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php +0 -231
- vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php +0 -131
- vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php +0 -42
- vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php +0 -38
- vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt +0 -7
- vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt +0 -0
- vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt +0 -24
- vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt +0 -0
- vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt +0 -1
- vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt +0 -7
- vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt +0 -2
- vendor/hamcrest/hamcrest-php/generator/run.php +0 -37
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php +0 -882
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php +0 -118
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php +0 -63
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php +0 -59
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php +0 -57
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php +0 -75
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php +0 -80
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php +0 -73
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php +0 -69
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php +0 -75
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php +0 -10
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php +0 -132
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php +0 -30
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php +0 -71
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php +0 -47
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php +0 -59
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php +0 -58
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php +0 -78
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php +0 -68
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php +0 -56
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php +0 -56
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php +0 -57
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php +0 -45
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php +0 -93
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php +0 -44
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php +0 -38
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php +0 -67
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php +0 -44
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php +0 -56
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php +0 -51
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php +0 -71
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php +0 -95
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php +0 -43
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php +0 -70
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php +0 -25
- vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php +0 -9
.phpcs.cache
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"config":{"phpVersion":70033,"phpExtensions":"25b54755e960a66bca8abdd593feffae","tabWidth":4,"encoding":"utf-8","recordErrors":true,"annotations":true,"configData":{"installed_paths":"vendor\/phpcompatibility\/php-compatibility,vendor\/phpcompatibility\/phpcompatibility-paragonie,vendor\/phpcompatibility\/phpcompatibility-wp,vendor\/wp-coding-standards\/wpcs","testVersion":"5.6-","minimum_supported_wp_version":"5.1"},"codeHash":"65dd9046d872e9e232515bf57a1dc55c","rulesetHash":"74009a863ae4785386cc97164a8ffd49"},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/cyr-to-lat.php":{"hash":"16d0d38fb5f962d9e84c5eb82528374b33188","errors":{"19":{"4":[{"message":"Expected \"Squiz Pty Ltd <products@squiz.net>\" for author tag","source":"Squiz.Commenting.FileComment.IncorrectAuthor","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":true},{"message":"The tag in position 2 should be the @subpackage tag","source":"Squiz.Commenting.FileComment.SubpackageTagOrder","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"20":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"28":{"1":[{"message":"There must be no blank line following an inline comment","source":"Squiz.Commenting.InlineComment.SpacingAfter","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":true}]},"34":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"39":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"44":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"49":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"54":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"59":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"64":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"69":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"74":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"79":{"1":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":3}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":10}},"Multiple statements on same line":{"values":{"no":16}},"Control structure defined inline":{"values":{"no":3}},"Space before operator":{"values":{"1":2}},"Space after operator":{"values":{"1":4}},"Constant name case":{"values":{"upper":9}},"Spacing before string concat":{"values":{"1":1}},"Spacing after string concat":{"values":{"1":1}},"Assigning new by reference":{"values":{"no":2}},"Object instantiation with parenthesis":{"values":{"yes":2}},"Space between classname and parenthesis":{"values":[2]},"Spacing before object operator":{"values":[1]},"Spacing after object operator":{"values":[1]}},"errorCount":23,"warningCount":1,"fixableCount":12,"numTokens":430},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-admin-notices.php":{"hash":"f010bb07a24c170ab8b886793516c4d433188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"92":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"22":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"29":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"28":{"38":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"38":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"39":{"12":[{"message":"Type hint \"string\" missing for $message","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $class","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"array\" missing for $options","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}],"73":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"45":{"5":[{"message":"Expected \/\/end add_notice()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"40":{"28":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"49":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"66":{"5":[{"message":"Expected \/\/end show_notices()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"73":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"75":{"15":[{"message":"Type hint \"array\" missing for $notice","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"91":{"5":[{"message":"Expected \/\/end is_page_allowed()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]},"13":{"4":[{"message":"@class tag is not allowed in class comment","source":"Squiz.Commenting.ClassComment.TagNotAllowed","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClassCommentSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":67}},"PHP short open tag used":{"values":{"no":13}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":25}},"Multiple statements on same line":{"values":{"no":13}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Space after operator":{"values":{"1":14}},"Short array syntax used":{"values":{"yes":4}},"Function has doc comment":{"values":{"yes":4}},"Function opening brace placement":{"values":{"same line":4}},"Single line array - comma after last item":{"values":{"no":1}},"Spacing before object operator":{"values":[4]},"Spacing after object operator":{"values":[4]},"Multi-line array - comma after last item":{"values":{"yes":1}},"Control structure defined inline":{"values":{"no":5}},"Space before operator":{"values":{"1":6}},"PHP constant case":{"values":{"lower":4}},"Spacing after cast statement":{"values":{"1":1}},"PHP type case":{"values":{"lower":1}}},"errorCount":17,"warningCount":2,"fixableCount":10,"numTokens":543},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-acf.php":{"hash":"b7dbc11af2c4260cba1d51160b87cf3d33188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"58":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"27":{"12":[{"message":"Type hint \"Settings\" missing for $settings","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"31":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"35":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"38":{"5":[{"message":"Expected \/\/end init_hooks()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"37":{"62":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"42":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"57":{"5":[{"message":"Expected \/\/end enqueue_script()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"49":{"13":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"54":{"19":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":36}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":9}},"Multiple statements on same line":{"values":{"no":9}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":3}},"Function opening brace placement":{"values":{"same line":3}},"Spacing before object operator":{"values":[4]},"Spacing after object operator":{"values":[4]},"Space after operator":{"values":{"1":4}},"Single line array - comma after last item":{"values":{"no":2}},"Short array syntax used":{"values":{"yes":3}},"Spacing before string concat":{"values":{"1":1}},"Spacing after string concat":{"values":{"1":1}},"PHP constant case":{"values":{"lower":1}}},"errorCount":11,"warningCount":1,"fixableCount":7,"numTokens":293},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/background-processes\/class-conversion-process.php":{"hash":"fe09f83c1ee9bef2995729c06240b88c33188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"103":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"36":{"12":[{"message":"Type hint \"Main\" missing for $main","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"41":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"52":{"5":[{"message":"Expected \/\/end task()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"56":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"61":{"5":[{"message":"Expected \/\/end complete()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"66":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"77":{"5":[{"message":"Expected \/\/end is_process_completed()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"85":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"88":{"5":[{"message":"Expected \/\/end is_process_running()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"95":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"96":{"15":[{"message":"Type hint \"string\" missing for $message","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"102":{"5":[{"message":"Expected \/\/end log()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":75}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":27}},"Multiple statements on same line":{"values":{"no":15}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":6}},"Function opening brace placement":{"values":{"same line":6}},"Spacing before object operator":{"values":[8]},"Spacing after object operator":{"values":[8]},"Space after operator":{"values":{"1":3}},"Adjacent assignments aligned":{"values":{"yes":1}},"PHP constant case":{"values":{"lower":3}},"Spacing before string concat":{"values":{"1":4}},"Spacing after string concat":{"values":{"1":4}},"Control structure defined inline":{"values":{"no":2}},"Space before operator":{"values":{"1":1}}},"errorCount":14,"warningCount":1,"fixableCount":7,"numTokens":527},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-wp-cli.php":{"hash":"b27299a55796b193f3c13af19b4ba84733188","errors":{"7":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false},{"message":"Missing @author tag in file comment","source":"Squiz.Commenting.FileComment.MissingAuthorTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"6":{"4":[{"message":"The tag in position 2 should be the @subpackage tag","source":"Squiz.Commenting.FileComment.SubpackageTagOrder","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"89":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"38":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"50":{"8":[{"message":"Parameter tags must be defined first in a doc comment","source":"Generic.Commenting.DocComment.ParamNotFirst","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Commenting\\DocCommentSniff","severity":0,"fixable":false}]},"52":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"53":{"12":[{"message":"Type hint \"array\" missing for $args","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"array\" missing for $assoc_args","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}],"41":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}],"59":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"79":{"5":[{"message":"Expected \/\/end regenerate()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"55":{"9":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"62":{"19":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"88":{"5":[{"message":"Expected \/\/end make_progress_bar()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]},"19":{"4":[{"message":"@class tag is not allowed in class comment","source":"Squiz.Commenting.ClassComment.TagNotAllowed","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClassCommentSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":57}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":20}},"Multiple statements on same line":{"values":{"no":19}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":3}},"Function opening brace placement":{"values":{"same line":3}},"Spacing before object operator":{"values":[8]},"Spacing after object operator":{"values":[8]},"Space after operator":{"values":{"1":9}},"Short array syntax used":{"values":{"yes":3}},"Control structure defined inline":{"values":{"no":2}},"Space before operator":{"values":{"1":2}},"Adjacent assignments aligned":{"values":{"yes":2}}},"errorCount":16,"warningCount":2,"fixableCount":8,"numTokens":572},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/background-processes\/class-term-conversion-process.php":{"hash":"30c280f4ec14fa14a58a76fc2fc2e6cc33188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"110":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"43":{"12":[{"message":"Type hint \"Main\" missing for $main","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"48":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"57":{"15":[{"message":"Type hint \"stdClass\" missing for $term","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"75":{"5":[{"message":"Expected \/\/end task()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"63":{"31":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"65":{"34":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"69":{"42":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}],"94":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"79":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"84":{"5":[{"message":"Expected \/\/end complete()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"109":{"5":[{"message":"Expected \/\/end filter_term_locale()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"92":{"17":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"105":{"81":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":75}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":25}},"Multiple statements on same line":{"values":{"no":25}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":4}},"Function opening brace placement":{"values":{"same line":4}},"Spacing before object operator":{"values":[21]},"Spacing after object operator":{"values":[21]},"Space after operator":{"values":{"1":16,"newline":1}},"Adjacent assignments aligned":{"values":{"yes":2}},"Single line array - comma after last item":{"values":{"no":4}},"Short array syntax used":{"values":{"yes":6}},"Control structure defined inline":{"values":{"no":2}},"Space before operator":{"values":{"1":4}},"Spacing before string concat":{"values":{"1":4}},"Spacing after string concat":{"values":{"1":4}},"PHP constant case":{"values":{"lower":3}},"Multi-line array - comma after last item":{"values":{"yes":1}}},"errorCount":15,"warningCount":1,"fixableCount":11,"numTokens":709},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/background-processes\/class-post-conversion-process.php":{"hash":"575cb31b50d78aa140067bebbeec931433188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"210":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"43":{"12":[{"message":"Type hint \"Main\" missing for $main","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"48":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"57":{"15":[{"message":"Type hint \"stdClass\" missing for $post","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"82":{"5":[{"message":"Expected \/\/end task()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"63":{"31":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"65":{"34":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"70":{"42":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}],"99":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"88":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"89":{"15":[{"message":"Type hint \"int\" missing for $post_id","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"87":{"8":[{"message":"Expected \"integer\" but found \"int\" for parameter type","source":"Squiz.Commenting.FunctionComment.IncorrectParamVarName","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"108":{"5":[{"message":"Expected \/\/end rename_attachment()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"114":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"115":{"15":[{"message":"Type hint \"int\" missing for $post_id","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"113":{"8":[{"message":"Expected \"integer\" but found \"int\" for parameter type","source":"Squiz.Commenting.FunctionComment.IncorrectParamVarName","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"131":{"5":[{"message":"Expected \/\/end rename_thumbnails()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"137":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"138":{"15":[{"message":"Type hint \"int\" missing for $attachment_id","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"136":{"8":[{"message":"Expected \"integer\" but found \"int\" for parameter type","source":"Squiz.Commenting.FunctionComment.IncorrectParamVarName","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"152":{"5":[{"message":"Expected \/\/end update_attachment_metadata()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"161":{"15":[{"message":"Type hint \"string\" missing for $file","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"166":{"5":[{"message":"Expected \/\/end get_transliterated_file()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"175":{"8":[{"message":"Expected \"boolean|null\" but found \"bool|null\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"177":{"15":[{"message":"Type hint \"string\" missing for $file","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $new_file","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"189":{"5":[{"message":"Expected \/\/end rename_file()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"193":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"198":{"5":[{"message":"Expected \/\/end complete()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"209":{"5":[{"message":"Expected \/\/end filter_post_locale()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":160}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":51}},"Multiple statements on same line":{"values":{"no":53}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":9}},"Function opening brace placement":{"values":{"same line":9}},"Spacing before object operator":{"values":[38]},"Spacing after object operator":{"values":[38]},"Space after operator":{"values":{"1":34}},"Adjacent assignments aligned":{"values":{"yes":7}},"Single line array - comma after last item":{"values":{"no":4}},"Short array syntax used":{"values":{"yes":4}},"Control structure defined inline":{"values":{"no":12}},"Space before operator":{"values":{"1":6}},"Spacing before string concat":{"values":{"1":21}},"Spacing after string concat":{"values":{"1":21}},"PHP constant case":{"values":{"lower":5}}},"errorCount":31,"warningCount":1,"fixableCount":18,"numTokens":1604},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-converter.php":{"hash":"c9557a1c97fbbde50d578055cda47a3033188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"287":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"83":{"12":[{"message":"Type hint \"Main\" missing for $main","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"Settings\" missing for $settings","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"Post_Conversion_Process\" missing for $process_all_posts","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"Term_Conversion_Process\" missing for $process_all_terms","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"Admin_Notices\" missing for $admin_notices","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"92":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"96":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"100":{"5":[{"message":"Expected \/\/end init_hooks()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"98":{"35":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"99":{"35":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"104":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"140":{"5":[{"message":"Expected \/\/end conversion_notices()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"110":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"144":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"151":{"5":[{"message":"Expected \/\/end start_conversion()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"155":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"166":{"5":[{"message":"Expected \/\/end process_handler()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"172":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"173":{"12":[{"message":"Type hint \"array\" missing for $args","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}],"53":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"176":{"5":[{"message":"Expected \/\/end convert_existing_slugs()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"182":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"183":{"15":[{"message":"Type hint \"array\" missing for $args","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}],"61":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"234":{"5":[{"message":"Expected \/\/end convert_existing_post_slugs()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"186":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"188":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"190":{"21":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"192":{"30":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"205":{"16":[{"message":"Variable \"$wpdb\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false},{"message":"Variable \"$regexp\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false},{"message":"Variable \"$all_posts_sql\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false}]},"238":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"273":{"5":[{"message":"Expected \/\/end convert_existing_term_slugs()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"245":{"17":[{"message":"Variable \"$wpdb\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false},{"message":"Variable \"$wpdb\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false}]},"279":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"280":{"15":[{"message":"Type hint \"string\" missing for $message","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"286":{"5":[{"message":"Expected \/\/end log()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]},"13":{"4":[{"message":"@class tag is not allowed in class comment","source":"Squiz.Commenting.ClassComment.TagNotAllowed","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClassCommentSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":226}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":59}},"Multiple statements on same line":{"values":{"no":59}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Constant name case":{"values":{"upper":2}},"Space after operator":{"values":{"1":36,"newline":1}},"Function has doc comment":{"values":{"yes":9}},"Function opening brace placement":{"values":{"same line":9}},"Spacing before object operator":{"values":[61]},"Spacing after object operator":{"values":[61]},"Adjacent assignments aligned":{"values":{"yes":3}},"Single line array - comma after last item":{"values":{"no":6}},"Short array syntax used":{"values":{"yes":9}},"Control structure defined inline":{"values":{"no":15}},"Space before operator":{"values":{"1":11}},"Spacing before string concat":{"values":{"1":11}},"Spacing after string concat":{"values":{"1":10,"newline":1}},"PHP constant case":{"values":{"lower":1}},"Multi-line array - comma after last item":{"values":{"yes":1}},"Spacing after cast statement":{"values":{"1":2}},"PHP type case":{"values":{"lower":2}}},"errorCount":41,"warningCount":2,"fixableCount":19,"numTokens":1811},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-requirements.php":{"hash":"0aac6da5549aea3fe4f18ccfad6437d533188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"235":{"5":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"46":{"16":[{"message":"Type hint \"Admin_Notices\" missing for $admin_notices","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"WP_Filesystem_Direct\" missing for $wp_filesystem","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"68":{"9":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"52":{"35":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"56":{"17":[{"message":"File is being conditionally included; use \"include_once\" instead","source":"PEAR.Files.IncludingFile.UseIncludeOnce","listener":"PHP_CodeSniffer\\Standards\\PEAR\\Sniffs\\Files\\IncludingFileSniff","severity":0,"fixable":true}]},"58":{"13":[{"message":"There must be no blank line following an inline comment","source":"Squiz.Commenting.InlineComment.SpacingAfter","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":true}]},"73":{"12":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"84":{"9":[{"message":"Expected \/\/end are_requirements_met()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"80":{"43":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"88":{"10":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"103":{"9":[{"message":"Expected \/\/end deactivate_plugin()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"108":{"12":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"121":{"9":[{"message":"Expected \/\/end is_php_version_required()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"112":{"17":[{"message":"Single line block comment not allowed; use inline (\"\/\/ text\") comment instead","source":"Squiz.Commenting.BlockComment.SingleLine","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true}]},"126":{"12":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"169":{"9":[{"message":"Expected \/\/end is_max_input_vars_required()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"150":{"21":[{"message":"Single line block comment not allowed; use inline (\"\/\/ text\") comment instead","source":"Squiz.Commenting.BlockComment.SingleLine","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true}]},"154":{"21":[{"message":"Single line block comment not allowed; use inline (\"\/\/ text\") comment instead","source":"Squiz.Commenting.BlockComment.SingleLine","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true}]},"157":{"21":[{"message":"Single line block comment not allowed; use inline (\"\/\/ text\") comment instead","source":"Squiz.Commenting.BlockComment.SingleLine","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true}]},"173":{"10":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"209":{"9":[{"message":"Expected \/\/end try_to_fix_max_input_vars()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"202":{"18":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"203":{"32":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"218":{"9":[{"message":"Expected \/\/end get_user_ini_filename()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"222":{"10":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"234":{"9":[{"message":"Expected \/\/end ask_to_increase_max_input_vars()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"232":{"17":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":186}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":58}},"Multiple statements on same line":{"values":{"no":58}},"Control structure defined inline":{"values":{"no":18}},"Space before operator":{"values":{"1":15}},"Space after operator":{"values":{"1":46}},"Spacing before string concat":{"values":{"1":5}},"Spacing after string concat":{"values":{"1":5}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":8}},"Function opening brace placement":{"values":{"same line":8}},"PHP constant case":{"values":{"lower":9}},"Spacing before object operator":{"values":[36]},"Spacing after object operator":{"values":[36]},"Assigning new by reference":{"values":{"no":2}},"Object instantiation with parenthesis":{"values":{"yes":2}},"Space between classname and parenthesis":{"values":[2]},"Single line array - comma after last item":{"values":{"no":4}},"Short array syntax used":{"values":{"yes":5}},"Adjacent assignments aligned":{"values":{"yes":6}},"Closure opening brace placement":{"values":{"same line":2}},"Spacing after cast statement":{"values":{"1":1}},"PHP type case":{"values":{"lower":1}}},"errorCount":29,"warningCount":1,"fixableCount":23,"numTokens":1711},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-main.php":{"hash":"0a502575997c4ba7233236ee1ca2ce4733188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"401":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"91":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"95":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"111":{"5":[{"message":"Expected \/\/end init()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"99":{"17":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"115":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"120":{"5":[{"message":"Expected \/\/end init_hooks()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"117":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"118":{"43":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"119":{"44":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"131":{"12":[{"message":"Type hint \"string\" missing for $title","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $raw_title","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $context","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"172":{"5":[{"message":"Expected \/\/end sanitize_title()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"162":{"60":[{"message":"Variable \"$wpdb\" not allowed in double quoted string; use concatenation instead","source":"Squiz.Strings.DoubleQuoteUsage.ContainsVar","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Strings\\DoubleQuoteUsageSniff","severity":0,"fixable":false}]},"179":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"181":{"15":[{"message":"Type hint \"string\" missing for $title","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"195":{"5":[{"message":"Expected \/\/end is_wc_attribute_taxonomy()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"205":{"12":[{"message":"Type hint \"string\" missing for $filename","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $filename_raw","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"217":{"5":[{"message":"Expected \/\/end sanitize_filename()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"226":{"13":[{"message":"Type hint \"string\" missing for $string","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"238":{"5":[{"message":"Expected \/\/end fix_mac_string()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"230":{"16":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"248":{"15":[{"message":"Type hint \"string\" missing for $string","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"array\" missing for $table","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"265":{"5":[{"message":"Expected \/\/end split_chinese_string()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"274":{"5":[{"message":"Expected \/\/end get_filtered_table()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"283":{"12":[{"message":"Type hint \"string\" missing for $string","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"296":{"5":[{"message":"Expected \/\/end transliterate()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"303":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"313":{"5":[{"message":"Expected \/\/end is_classic_editor_plugin_active()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"310":{"9":[{"message":"There must be no blank line following an inline comment","source":"Squiz.Commenting.InlineComment.SpacingAfter","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":true}]},"321":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"343":{"5":[{"message":"Expected \/\/end is_gutenberg_editor_active()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"337":{"36":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"353":{"12":[{"message":"Type hint \"array\" missing for $data","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"array\" missing for $postarr","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}],"59":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"373":{"5":[{"message":"Expected \/\/end sanitize_post_name()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"367":{"47":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"378":{"12":[{"message":"Tag value for @see tag indented incorrectly; expected 4 spaces but found 1","source":"Generic.Commenting.DocComment.TagValueIndent","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Commenting\\DocCommentSniff","severity":0,"fixable":true}]},"381":{"8":[{"message":"Parameter tags must be defined first in a doc comment","source":"Generic.Commenting.DocComment.ParamNotFirst","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Commenting\\DocCommentSniff","severity":0,"fixable":false},{"message":"Parameter comment must start with a capital letter","source":"Squiz.Commenting.FunctionComment.ParamCommentNotCapital","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"386":{"12":[{"message":"Type hint \"string\" missing for $format","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"382":{"8":[{"message":"Parameter comment must start with a capital letter","source":"Squiz.Commenting.FunctionComment.ParamCommentNotCapital","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"400":{"5":[{"message":"Expected \/\/end prepare_in()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":323}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":113}},"Multiple statements on same line":{"values":{"no":88}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":14}},"Function opening brace placement":{"values":{"same line":14}},"Spacing before object operator":{"values":[37]},"Spacing after object operator":{"values":[37]},"Space after operator":{"values":{"1":78,"newline":1}},"Adjacent assignments aligned":{"values":{"yes":9}},"Assigning new by reference":{"values":{"no":7}},"Object instantiation with parenthesis":{"values":{"yes":7}},"Space between classname and parenthesis":{"values":[7]},"Control structure defined inline":{"values":{"no":29}},"Space before operator":{"values":{"1":33,"newline":2}},"Single line array - comma after last item":{"values":{"no":5}},"Short array syntax used":{"values":{"yes":7}},"PHP constant case":{"values":{"lower":14}},"Spacing before string concat":{"values":{"1":3}},"Spacing after string concat":{"values":{"1":3}},"Spacing after cast statement":{"values":{"1":2}},"PHP type case":{"values":{"lower":2}}},"errorCount":49,"warningCount":1,"fixableCount":28,"numTokens":2697},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-settings.php":{"hash":"4d578d7810bfbad6cb1818d057503fb333188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"768":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"73":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"80":{"5":[{"message":"Expected \/\/end __construct()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"79":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"84":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"90":{"5":[{"message":"Expected \/\/end init()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"94":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"110":{"5":[{"message":"Expected \/\/end init_hooks()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"98":{"13":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"103":{"35":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"104":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"105":{"39":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"107":{"63":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"109":{"46":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"125":{"12":[{"message":"Type hint \"array\" missing for $actions","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $plugin_file","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"array\" missing for $plugin_data","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false},{"message":"Type hint \"string\" missing for $context","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"134":{"5":[{"message":"Expected \/\/end add_settings_link()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"126":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"138":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"182":{"5":[{"message":"Expected \/\/end init_locales()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"144":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"145":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"148":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"151":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"154":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"157":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"160":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"163":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"166":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"169":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"172":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"175":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"178":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"193":{"5":[{"message":"Expected \/\/end get_current_locale()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"197":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"218":{"5":[{"message":"Expected \/\/end init_form_fields()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"203":{"30":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"208":{"45":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"226":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"238":{"5":[{"message":"Expected \/\/end init_settings()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"251":{"5":[{"message":"Expected \/\/end get_form_fields()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"250":{"27":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"260":{"15":[{"message":"Type hint \"array\" missing for $field","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"266":{"5":[{"message":"Expected \/\/end set_defaults()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"270":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"279":{"5":[{"message":"Expected \/\/end add_settings_page()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"277":{"24":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"283":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"342":{"5":[{"message":"Expected \/\/end settings_page()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"346":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"360":{"5":[{"message":"Expected \/\/end setup_sections()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"356":{"17":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"366":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"367":{"12":[{"message":"Type hint \"array\" missing for $arguments","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"372":{"5":[{"message":"Expected \/\/end section_callback()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"376":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"399":{"5":[{"message":"Expected \/\/end setup_fields()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"393":{"17":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"405":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"406":{"12":[{"message":"Type hint \"array\" missing for $arguments","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"582":{"5":[{"message":"Expected \/\/end field_callback()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"439":{"45":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"462":{"29":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"463":{"44":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"464":{"46":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"466":{"44":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"467":{"50":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"468":{"50":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"469":{"50":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"470":{"50":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"471":{"50":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"473":{"44":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"496":{"29":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"497":{"45":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"498":{"51":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"499":{"51":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"529":{"29":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"530":{"45":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"531":{"51":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"532":{"51":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"592":{"12":[{"message":"Type hint \"string\" missing for $key","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"608":{"5":[{"message":"Expected \/\/end get_option()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"617":{"15":[{"message":"Type hint \"array\" missing for $field","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"619":{"5":[{"message":"Expected \/\/end get_field_default()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"626":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"627":{"12":[{"message":"Type hint \"string\" missing for $key","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"634":{"5":[{"message":"Expected \/\/end set_option()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"645":{"12":[{"message":"Type hint \"string\" missing for $option","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"669":{"5":[{"message":"Expected \/\/end pre_update_option_filter()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"673":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"693":{"5":[{"message":"Expected \/\/end admin_enqueue_scripts()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"682":{"13":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"690":{"13":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"697":{"6":[{"message":"Missing @return tag in function comment","source":"Squiz.Commenting.FunctionComment.MissingReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"704":{"5":[{"message":"Expected \/\/end load_plugin_textdomain()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"720":{"5":[{"message":"Expected \/\/end get_table()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"725":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"731":{"5":[{"message":"Expected \/\/end is_chinese_locale()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"728":{"28":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"742":{"15":[{"message":"Type hint \"array\" missing for $table","source":"Squiz.Commenting.FunctionComment.TypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"756":{"5":[{"message":"Expected \/\/end transpose_chinese_table()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"747":{"29":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"761":{"8":[{"message":"Expected \"boolean\" but found \"bool\" for function return type","source":"Squiz.Commenting.FunctionComment.InvalidReturn","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":true}]},"767":{"5":[{"message":"Expected \/\/end is_options_screen()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]},"15":{"4":[{"message":"@class tag is not allowed in class comment","source":"Squiz.Commenting.ClassComment.TagNotAllowed","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClassCommentSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":671}},"PHP short open tag used":{"values":{"no":53}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":196}},"Multiple statements on same line":{"values":{"no":139}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Constant name case":{"values":{"upper":4}},"Space after operator":{"values":{"1":156,"newline":1}},"Short array syntax used":{"values":{"yes":51}},"Function has doc comment":{"values":{"yes":26}},"Function opening brace placement":{"values":{"same line":26}},"Single line array - comma after last item":{"values":{"no":13}},"Spacing before object operator":{"values":[72]},"Spacing after object operator":{"values":[72]},"Spacing before string concat":{"values":{"1":18}},"Spacing after string concat":{"values":{"1":16,"newline":2}},"Multi-line array - comma after last item":{"values":{"yes":22}},"Control structure defined inline":{"values":{"no":40}},"Space before operator":{"values":{"1":43}},"PHP constant case":{"values":{"lower":10}},"Adjacent assignments aligned":{"values":{"yes":5}}},"errorCount":107,"warningCount":2,"fixableCount":80,"numTokens":5301},"\/home\/runner\/work\/cyr2lat\/cyr2lat\/classes\/class-conversion-tables.php":{"hash":"789faca9a24f86a4633a1899259a582b33188","errors":{"6":{"2":[{"message":"Missing @subpackage tag in file comment","source":"Squiz.Commenting.FileComment.MissingSubpackageTag","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FileCommentSniff","severity":0,"fixable":false}]},"1226":{"1":[{"message":"Expected \/\/end class","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"24":{"8":[{"message":"Parameter tags must be defined first in a doc comment","source":"Generic.Commenting.DocComment.ParamNotFirst","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Commenting\\DocCommentSniff","severity":0,"fixable":false}]},"28":{"19":[{"message":"Type hint \"string\" missing for $locale","source":"Squiz.Commenting.FunctionComment.ScalarTypeHintMissing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\FunctionCommentSniff","severity":0,"fixable":false}]},"1198":{"5":[{"message":"Expected \/\/end get()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"32":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"101":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"172":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"248":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"315":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"381":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"436":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"520":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"563":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"667":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"714":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"1119":{"26":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]},"1225":{"5":[{"message":"Expected \/\/end get_fix_table_for_mac()","source":"Squiz.Commenting.ClosingDeclarationComment.Missing","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClosingDeclarationCommentSniff","severity":0,"fixable":true}]},"1207":{"9":[{"message":"Block comments must be started with \/*","source":"Squiz.Commenting.BlockComment.WrongStart","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\BlockCommentSniff","severity":0,"fixable":true},{"message":"Inline doc block comments are not allowed; use \"\/* Comment *\/\" or \"\/\/ Comment\" instead","source":"Squiz.Commenting.InlineComment.DocBlock","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\InlineCommentSniff","severity":0,"fixable":false}]},"1219":{"16":[{"message":"Short array syntax is not allowed","source":"Generic.Arrays.DisallowShortArraySyntax.Found","listener":"PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\Arrays\\DisallowShortArraySyntaxSniff","severity":0,"fixable":true}]}},"warnings":{"1":{"1":[{"message":"The \"WordPress.WP.TimezoneChange\" sniff has been deprecated. Use the \"WordPress.DateTime.RestrictedFunctions\" sniff instead. Please update your custom ruleset.","source":"WordPress.WP.TimezoneChange.DeprecatedSniff","listener":"WordPressCS\\WordPress\\Sniffs\\WP\\TimezoneChangeSniff","severity":0,"fixable":false}]},"15":{"4":[{"message":"@class tag is not allowed in class comment","source":"Squiz.Commenting.ClassComment.TagNotAllowed","listener":"PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Commenting\\ClassCommentSniff","severity":0,"fixable":false}]}},"metrics":{"File has doc comment":{"values":{"yes":1}},"Line indent":{"values":{"tabs":1204}},"PHP short open tag used":{"values":{"no":1}},"PHP closing tag at end of PHP-only file":{"values":{"no":1}},"EOL char":{"values":{"\\n":1}},"Newline at EOF":{"values":{"yes":1}},"PHP keyword case":{"values":{"lower":42}},"Multiple statements on same line":{"values":{"no":27}},"Class has doc comment":{"values":{"yes":1}},"Class opening brace placement":{"values":{"same line":1}},"Function has doc comment":{"values":{"yes":2}},"Function opening brace placement":{"values":{"same line":2}},"Control structure defined inline":{"values":{"no":4}},"Space after operator":{"values":{"1":1112}},"Multi-line array - comma after last item":{"values":{"yes":13}},"Short array syntax used":{"values":{"yes":13}},"Space before operator":{"values":{"1":3}},"Spacing before object operator":{"values":[3]},"Spacing after object operator":{"values":[3]}},"errorCount":21,"warningCount":2,"fixableCount":17,"numTokens":9463}}
|
|
classes/background-processes/class-conversion-process.php
CHANGED
@@ -92,12 +92,13 @@ class Conversion_Process extends WP_Background_Process {
|
|
92 |
* Log
|
93 |
*
|
94 |
* @param string $message Message to log.
|
|
|
|
|
95 |
*/
|
96 |
protected function log( $message ) {
|
97 |
if ( defined( 'WP_DEBUG_LOG' ) && constant( 'WP_DEBUG_LOG' ) ) {
|
98 |
-
// @phpcs:
|
99 |
error_log( 'Cyr To Lat: ' . $message );
|
100 |
-
// @phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
101 |
}
|
102 |
}
|
103 |
}
|
92 |
* Log
|
93 |
*
|
94 |
* @param string $message Message to log.
|
95 |
+
*
|
96 |
+
* @noinspection ForgottenDebugOutputInspection
|
97 |
*/
|
98 |
protected function log( $message ) {
|
99 |
if ( defined( 'WP_DEBUG_LOG' ) && constant( 'WP_DEBUG_LOG' ) ) {
|
100 |
+
// @phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
101 |
error_log( 'Cyr To Lat: ' . $message );
|
|
|
102 |
}
|
103 |
}
|
104 |
}
|
classes/background-processes/class-post-conversion-process.php
CHANGED
@@ -53,23 +53,24 @@ class Post_Conversion_Process extends Conversion_Process {
|
|
53 |
* @param stdClass $post Queue item to iterate over.
|
54 |
*
|
55 |
* @return mixed
|
|
|
56 |
*/
|
57 |
protected function task( $post ) {
|
58 |
global $wpdb;
|
59 |
|
60 |
-
$this->post
|
61 |
-
$
|
62 |
|
63 |
add_filter( 'locale', [ $this, 'filter_post_locale' ] );
|
64 |
-
$transliterated_name = $this->main->transliterate( $
|
65 |
remove_filter( 'locale', [ $this, 'filter_post_locale' ] );
|
66 |
|
67 |
-
if ( $transliterated_name !== $
|
68 |
-
update_post_meta( $post->ID, '_wp_old_slug', $post_name );
|
69 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
70 |
$wpdb->update( $wpdb->posts, [ 'post_name' => rawurlencode( $transliterated_name ) ], [ 'ID' => $post->ID ] );
|
71 |
|
72 |
-
$this->log( __( 'Post slug converted:', 'cyr2lat' ) . ' ' . $
|
73 |
|
74 |
if ( 'attachment' === $post->post_type ) {
|
75 |
$this->rename_attachment( $post->ID );
|
@@ -203,6 +204,7 @@ class Post_Conversion_Process extends Conversion_Process {
|
|
203 |
* @return string
|
204 |
*/
|
205 |
public function filter_post_locale() {
|
|
|
206 |
$wpml_post_language_details = apply_filters( 'wpml_post_language_details', false, $this->post->ID );
|
207 |
|
208 |
return isset( $wpml_post_language_details['locale'] ) ? $wpml_post_language_details['locale'] : $this->locale;
|
53 |
* @param stdClass $post Queue item to iterate over.
|
54 |
*
|
55 |
* @return mixed
|
56 |
+
* @noinspection PhpParameterNameChangedDuringInheritanceInspection
|
57 |
*/
|
58 |
protected function task( $post ) {
|
59 |
global $wpdb;
|
60 |
|
61 |
+
$this->post = $post;
|
62 |
+
$decoded_post_name = urldecode( $post->post_name );
|
63 |
|
64 |
add_filter( 'locale', [ $this, 'filter_post_locale' ] );
|
65 |
+
$transliterated_name = $this->main->transliterate( $decoded_post_name );
|
66 |
remove_filter( 'locale', [ $this, 'filter_post_locale' ] );
|
67 |
|
68 |
+
if ( $transliterated_name !== $decoded_post_name ) {
|
69 |
+
update_post_meta( $post->ID, '_wp_old_slug', $post->post_name );
|
70 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
71 |
$wpdb->update( $wpdb->posts, [ 'post_name' => rawurlencode( $transliterated_name ) ], [ 'ID' => $post->ID ] );
|
72 |
|
73 |
+
$this->log( __( 'Post slug converted:', 'cyr2lat' ) . ' ' . $decoded_post_name . ' => ' . $transliterated_name );
|
74 |
|
75 |
if ( 'attachment' === $post->post_type ) {
|
76 |
$this->rename_attachment( $post->ID );
|
204 |
* @return string
|
205 |
*/
|
206 |
public function filter_post_locale() {
|
207 |
+
// This is common filter for WPML and Polylang, since Polylang supports wpml_post_language_details filter.
|
208 |
$wpml_post_language_details = apply_filters( 'wpml_post_language_details', false, $this->post->ID );
|
209 |
|
210 |
return isset( $wpml_post_language_details['locale'] ) ? $wpml_post_language_details['locale'] : $this->locale;
|
classes/background-processes/class-term-conversion-process.php
CHANGED
@@ -53,6 +53,7 @@ class Term_Conversion_Process extends Conversion_Process {
|
|
53 |
* @param stdClass $term Queue item to iterate over.
|
54 |
*
|
55 |
* @return mixed
|
|
|
56 |
*/
|
57 |
protected function task( $term ) {
|
58 |
global $wpdb;
|
@@ -89,6 +90,17 @@ class Term_Conversion_Process extends Conversion_Process {
|
|
89 |
* @return string
|
90 |
*/
|
91 |
public function filter_term_locale() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
$args = [
|
93 |
'element_type' => $this->term->taxonomy,
|
94 |
'element_id' => $this->term->term_taxonomy_id,
|
53 |
* @param stdClass $term Queue item to iterate over.
|
54 |
*
|
55 |
* @return mixed
|
56 |
+
* @noinspection PhpParameterNameChangedDuringInheritanceInspection
|
57 |
*/
|
58 |
protected function task( $term ) {
|
59 |
global $wpdb;
|
90 |
* @return string
|
91 |
*/
|
92 |
public function filter_term_locale() {
|
93 |
+
// Polylang filter.
|
94 |
+
if ( class_exists( 'Polylang' ) ) {
|
95 |
+
$pll_pll_get_term_language = pll_get_term_language( $this->term->term_taxonomy_id );
|
96 |
+
if ( false !== $pll_pll_get_term_language ) {
|
97 |
+
return $pll_pll_get_term_language;
|
98 |
+
}
|
99 |
+
|
100 |
+
return $this->locale;
|
101 |
+
}
|
102 |
+
|
103 |
+
// WPML filter.
|
104 |
$args = [
|
105 |
'element_type' => $this->term->taxonomy,
|
106 |
'element_id' => $this->term->term_taxonomy_id,
|
classes/class-converter.php
CHANGED
@@ -20,14 +20,14 @@ class Converter {
|
|
20 |
const QUERY_ARG = 'cyr-to-lat-convert';
|
21 |
|
22 |
/**
|
23 |
-
* Regex of
|
24 |
-
*
|
25 |
-
*
|
26 |
-
*
|
27 |
*
|
28 |
* @link https://dev.mysql.com/doc/refman/5.6/en/regexp.html
|
29 |
*/
|
30 |
-
const
|
31 |
|
32 |
/**
|
33 |
* Plugin main class.
|
@@ -36,13 +36,6 @@ class Converter {
|
|
36 |
*/
|
37 |
private $main;
|
38 |
|
39 |
-
/**
|
40 |
-
* Plugin settings.
|
41 |
-
*
|
42 |
-
* @var Settings
|
43 |
-
*/
|
44 |
-
private $settings;
|
45 |
-
|
46 |
/**
|
47 |
* Background process to convert posts.
|
48 |
*
|
@@ -69,20 +62,18 @@ class Converter {
|
|
69 |
*
|
70 |
* @var string
|
71 |
*/
|
72 |
-
private $option_group
|
73 |
|
74 |
/**
|
75 |
* Converter constructor.
|
76 |
*
|
77 |
* @param Main $main Plugin main class.
|
78 |
-
* @param Settings $settings Plugin settings.
|
79 |
* @param Post_Conversion_Process $process_all_posts Post conversion process.
|
80 |
* @param Term_Conversion_Process $process_all_terms Term conversion process.
|
81 |
* @param Admin_Notices $admin_notices Admin notices.
|
82 |
*/
|
83 |
-
public function __construct( $main, $
|
84 |
$this->main = $main;
|
85 |
-
$this->settings = $settings;
|
86 |
$this->option_group = Settings::OPTION_GROUP;
|
87 |
$this->process_all_posts = $process_all_posts;
|
88 |
$this->process_all_terms = $process_all_terms;
|
@@ -143,7 +134,7 @@ class Converter {
|
|
143 |
* Check if we have to start conversion and start it.
|
144 |
*/
|
145 |
public function start_conversion() {
|
146 |
-
if ( ! isset( $_POST['
|
147 |
return;
|
148 |
}
|
149 |
check_admin_referer( $this->option_group . '-options' );
|
@@ -154,7 +145,7 @@ class Converter {
|
|
154 |
* Process handler.
|
155 |
*/
|
156 |
public function process_handler() {
|
157 |
-
if ( ! isset( $_GET[ self::QUERY_ARG ]
|
158 |
return;
|
159 |
}
|
160 |
|
@@ -192,17 +183,17 @@ class Converter {
|
|
192 |
'post_status' => [ 'publish', 'future', 'private' ],
|
193 |
];
|
194 |
|
195 |
-
$
|
196 |
|
197 |
-
$regexp = $wpdb->prepare( '%s', self::
|
198 |
|
199 |
$post_sql =
|
200 |
-
'post_status IN (' . $this->main->prepare_in( $
|
201 |
-
' AND post_type IN (' . $this->main->prepare_in( $
|
202 |
$media_sql = "post_status = 'inherit' AND post_type = 'attachment'";
|
203 |
$all_posts_sql = '(' . $post_sql . ') OR (' . $media_sql . ')';
|
204 |
|
205 |
-
$sql = "SELECT ID, post_name, post_type FROM $wpdb->posts WHERE post_name REGEXP($regexp) AND ($all_posts_sql)";
|
206 |
|
207 |
// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
|
208 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
@@ -218,19 +209,17 @@ class Converter {
|
|
218 |
return;
|
219 |
}
|
220 |
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
}
|
225 |
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
|
232 |
-
|
233 |
-
}
|
234 |
}
|
235 |
|
236 |
/**
|
@@ -243,8 +232,8 @@ class Converter {
|
|
243 |
$terms = $wpdb->get_results(
|
244 |
$wpdb->prepare(
|
245 |
"SELECT t.term_id, slug, tt.taxonomy, tt.term_taxonomy_id FROM $wpdb->terms t, $wpdb->term_taxonomy tt
|
246 |
-
WHERE t.slug REGEXP(%s) AND tt.term_id = t.term_id",
|
247 |
-
self::
|
248 |
)
|
249 |
);
|
250 |
|
@@ -257,31 +246,30 @@ class Converter {
|
|
257 |
return;
|
258 |
}
|
259 |
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
}
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
|
271 |
-
|
272 |
-
}
|
273 |
}
|
274 |
|
275 |
/**
|
276 |
* Log.
|
277 |
*
|
278 |
* @param string $message Message to log.
|
|
|
|
|
279 |
*/
|
280 |
protected function log( $message ) {
|
281 |
if ( defined( 'WP_DEBUG_LOG' ) && constant( 'WP_DEBUG_LOG' ) ) {
|
282 |
-
// @phpcs:
|
283 |
error_log( 'Cyr To Lat: ' . $message );
|
284 |
-
// @phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
285 |
}
|
286 |
}
|
287 |
}
|
20 |
const QUERY_ARG = 'cyr-to-lat-convert';
|
21 |
|
22 |
/**
|
23 |
+
* Regex of allowed chars in lower-cased slugs.
|
24 |
+
*
|
25 |
+
* Allowed chars are a-z, 0-9, [.apostrophe.], [.hyphen.], [.period.], [.underscore.],
|
26 |
+
* or any url-encoded character in the range \x20-x7F.
|
27 |
*
|
28 |
* @link https://dev.mysql.com/doc/refman/5.6/en/regexp.html
|
29 |
*/
|
30 |
+
const ALLOWED_CHARS_REGEX = "^([a-z0-9\'-._]|%[2-7][0-F])+$";
|
31 |
|
32 |
/**
|
33 |
* Plugin main class.
|
36 |
*/
|
37 |
private $main;
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* Background process to convert posts.
|
41 |
*
|
62 |
*
|
63 |
* @var string
|
64 |
*/
|
65 |
+
private $option_group;
|
66 |
|
67 |
/**
|
68 |
* Converter constructor.
|
69 |
*
|
70 |
* @param Main $main Plugin main class.
|
|
|
71 |
* @param Post_Conversion_Process $process_all_posts Post conversion process.
|
72 |
* @param Term_Conversion_Process $process_all_terms Term conversion process.
|
73 |
* @param Admin_Notices $admin_notices Admin notices.
|
74 |
*/
|
75 |
+
public function __construct( $main, $process_all_posts, $process_all_terms, $admin_notices ) {
|
76 |
$this->main = $main;
|
|
|
77 |
$this->option_group = Settings::OPTION_GROUP;
|
78 |
$this->process_all_posts = $process_all_posts;
|
79 |
$this->process_all_terms = $process_all_terms;
|
134 |
* Check if we have to start conversion and start it.
|
135 |
*/
|
136 |
public function start_conversion() {
|
137 |
+
if ( ! isset( $_POST['ctl-convert'] ) ) {
|
138 |
return;
|
139 |
}
|
140 |
check_admin_referer( $this->option_group . '-options' );
|
145 |
* Process handler.
|
146 |
*/
|
147 |
public function process_handler() {
|
148 |
+
if ( ! isset( $_GET[ self::QUERY_ARG ], $_GET['_wpnonce'] ) ) {
|
149 |
return;
|
150 |
}
|
151 |
|
183 |
'post_status' => [ 'publish', 'future', 'private' ],
|
184 |
];
|
185 |
|
186 |
+
$parsed_args = wp_parse_args( $args, $defaults );
|
187 |
|
188 |
+
$regexp = $wpdb->prepare( '%s', self::ALLOWED_CHARS_REGEX );
|
189 |
|
190 |
$post_sql =
|
191 |
+
'post_status IN (' . $this->main->prepare_in( $parsed_args['post_status'] ) . ')' .
|
192 |
+
' AND post_type IN (' . $this->main->prepare_in( $parsed_args['post_type'] ) . ')';
|
193 |
$media_sql = "post_status = 'inherit' AND post_type = 'attachment'";
|
194 |
$all_posts_sql = '(' . $post_sql . ') OR (' . $media_sql . ')';
|
195 |
|
196 |
+
$sql = "SELECT ID, post_name, post_type FROM $wpdb->posts WHERE LOWER(post_name) NOT REGEXP($regexp) AND ($all_posts_sql)";
|
197 |
|
198 |
// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
|
199 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
209 |
return;
|
210 |
}
|
211 |
|
212 |
+
foreach ( (array) $posts as $post ) {
|
213 |
+
$this->process_all_posts->push_to_queue( $post );
|
214 |
+
}
|
|
|
215 |
|
216 |
+
$this->log( __( 'Post slugs conversion started.', 'cyr2lat' ) );
|
217 |
+
$this->admin_notices->add_notice(
|
218 |
+
__( 'Cyr To Lat started conversion of existing post slugs.', 'cyr2lat' ),
|
219 |
+
'notice notice-info is-dismissible'
|
220 |
+
);
|
221 |
|
222 |
+
$this->process_all_posts->save()->dispatch();
|
|
|
223 |
}
|
224 |
|
225 |
/**
|
232 |
$terms = $wpdb->get_results(
|
233 |
$wpdb->prepare(
|
234 |
"SELECT t.term_id, slug, tt.taxonomy, tt.term_taxonomy_id FROM $wpdb->terms t, $wpdb->term_taxonomy tt
|
235 |
+
WHERE LOWER(t.slug) NOT REGEXP(%s) AND tt.term_id = t.term_id",
|
236 |
+
self::ALLOWED_CHARS_REGEX
|
237 |
)
|
238 |
);
|
239 |
|
246 |
return;
|
247 |
}
|
248 |
|
249 |
+
foreach ( (array) $terms as $term ) {
|
250 |
+
$this->process_all_terms->push_to_queue( $term );
|
251 |
+
}
|
|
|
252 |
|
253 |
+
$this->log( __( 'Term slugs conversion started.', 'cyr2lat' ) );
|
254 |
+
$this->admin_notices->add_notice(
|
255 |
+
__( 'Cyr To Lat started conversion of existing term slugs.', 'cyr2lat' ),
|
256 |
+
'notice notice-info is-dismissible'
|
257 |
+
);
|
258 |
|
259 |
+
$this->process_all_terms->save()->dispatch();
|
|
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
* Log.
|
264 |
*
|
265 |
* @param string $message Message to log.
|
266 |
+
*
|
267 |
+
* @noinspection ForgottenDebugOutputInspection
|
268 |
*/
|
269 |
protected function log( $message ) {
|
270 |
if ( defined( 'WP_DEBUG_LOG' ) && constant( 'WP_DEBUG_LOG' ) ) {
|
271 |
+
// @phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
272 |
error_log( 'Cyr To Lat: ' . $message );
|
|
|
273 |
}
|
274 |
}
|
275 |
}
|
classes/class-main.php
CHANGED
@@ -65,6 +65,13 @@ class Main {
|
|
65 |
*/
|
66 |
protected $acf;
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
/**
|
69 |
* Main constructor.
|
70 |
*/
|
@@ -75,7 +82,6 @@ class Main {
|
|
75 |
$this->admin_notices = new Admin_Notices();
|
76 |
$this->converter = new Converter(
|
77 |
$this,
|
78 |
-
$this->settings,
|
79 |
$this->process_all_posts,
|
80 |
$this->process_all_terms,
|
81 |
$this->admin_notices
|
@@ -92,6 +98,8 @@ class Main {
|
|
92 |
|
93 |
/**
|
94 |
* Init class.
|
|
|
|
|
95 |
*/
|
96 |
public function init() {
|
97 |
if ( defined( 'WP_CLI' ) && constant( 'WP_CLI' ) ) {
|
@@ -117,6 +125,10 @@ class Main {
|
|
117 |
add_filter( 'sanitize_title', [ $this, 'sanitize_title' ], 9, 3 );
|
118 |
add_filter( 'sanitize_file_name', [ $this, 'sanitize_filename' ], 10, 2 );
|
119 |
add_filter( 'wp_insert_post_data', [ $this, 'sanitize_post_name' ], 10, 2 );
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
|
122 |
/**
|
@@ -127,6 +139,7 @@ class Main {
|
|
127 |
* @param string $context The context for which the title is being sanitized.
|
128 |
*
|
129 |
* @return string
|
|
|
130 |
*/
|
131 |
public function sanitize_title( $title, $raw_title = '', $context = '' ) {
|
132 |
global $wpdb;
|
@@ -201,6 +214,7 @@ class Main {
|
|
201 |
* @param string $filename_raw The filename prior to sanitization.
|
202 |
*
|
203 |
* @return string
|
|
|
204 |
*/
|
205 |
public function sanitize_filename( $filename, $filename_raw ) {
|
206 |
$pre = apply_filters( 'ctl_pre_sanitize_filename', false, $filename );
|
@@ -289,7 +303,7 @@ class Main {
|
|
289 |
|
290 |
if ( function_exists( 'iconv' ) ) {
|
291 |
$new_string = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $string );
|
292 |
-
|
293 |
}
|
294 |
|
295 |
return $string;
|
@@ -301,6 +315,7 @@ class Main {
|
|
301 |
* @link https://kagg.eu/how-to-catch-gutenberg/
|
302 |
*
|
303 |
* @return bool
|
|
|
304 |
*/
|
305 |
private function is_classic_editor_plugin_active() {
|
306 |
// @codeCoverageIgnoreStart
|
@@ -349,6 +364,7 @@ class Main {
|
|
349 |
* @param array $postarr An array of sanitized, but otherwise unmodified post data.
|
350 |
*
|
351 |
* @return mixed
|
|
|
352 |
*/
|
353 |
public function sanitize_post_name( $data, $postarr = [] ) {
|
354 |
global $current_screen;
|
@@ -372,6 +388,85 @@ class Main {
|
|
372 |
return $data;
|
373 |
}
|
374 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
/**
|
376 |
* Changes array of items into string of items, separated by comma and sql-escaped
|
377 |
*
|
65 |
*/
|
66 |
protected $acf;
|
67 |
|
68 |
+
/**
|
69 |
+
* Polylang locale.
|
70 |
+
*
|
71 |
+
* @var string
|
72 |
+
*/
|
73 |
+
private $pll_locale = false;
|
74 |
+
|
75 |
/**
|
76 |
* Main constructor.
|
77 |
*/
|
82 |
$this->admin_notices = new Admin_Notices();
|
83 |
$this->converter = new Converter(
|
84 |
$this,
|
|
|
85 |
$this->process_all_posts,
|
86 |
$this->process_all_terms,
|
87 |
$this->admin_notices
|
98 |
|
99 |
/**
|
100 |
* Init class.
|
101 |
+
*
|
102 |
+
* @noinspection PhpUndefinedClassInspection
|
103 |
*/
|
104 |
public function init() {
|
105 |
if ( defined( 'WP_CLI' ) && constant( 'WP_CLI' ) ) {
|
125 |
add_filter( 'sanitize_title', [ $this, 'sanitize_title' ], 9, 3 );
|
126 |
add_filter( 'sanitize_file_name', [ $this, 'sanitize_filename' ], 10, 2 );
|
127 |
add_filter( 'wp_insert_post_data', [ $this, 'sanitize_post_name' ], 10, 2 );
|
128 |
+
|
129 |
+
if ( class_exists( 'Polylang' ) ) {
|
130 |
+
add_filter( 'locale', [ $this, 'pll_locale_filter' ] );
|
131 |
+
}
|
132 |
}
|
133 |
|
134 |
/**
|
139 |
* @param string $context The context for which the title is being sanitized.
|
140 |
*
|
141 |
* @return string
|
142 |
+
* @noinspection PhpUnusedParameterInspection
|
143 |
*/
|
144 |
public function sanitize_title( $title, $raw_title = '', $context = '' ) {
|
145 |
global $wpdb;
|
214 |
* @param string $filename_raw The filename prior to sanitization.
|
215 |
*
|
216 |
* @return string
|
217 |
+
* @noinspection PhpUnusedParameterInspection
|
218 |
*/
|
219 |
public function sanitize_filename( $filename, $filename_raw ) {
|
220 |
$pre = apply_filters( 'ctl_pre_sanitize_filename', false, $filename );
|
303 |
|
304 |
if ( function_exists( 'iconv' ) ) {
|
305 |
$new_string = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $string );
|
306 |
+
return $new_string ?: $string;
|
307 |
}
|
308 |
|
309 |
return $string;
|
315 |
* @link https://kagg.eu/how-to-catch-gutenberg/
|
316 |
*
|
317 |
* @return bool
|
318 |
+
* @noinspection PhpIncludeInspection
|
319 |
*/
|
320 |
private function is_classic_editor_plugin_active() {
|
321 |
// @codeCoverageIgnoreStart
|
364 |
* @param array $postarr An array of sanitized, but otherwise unmodified post data.
|
365 |
*
|
366 |
* @return mixed
|
367 |
+
* @noinspection PhpUnusedParameterInspection
|
368 |
*/
|
369 |
public function sanitize_post_name( $data, $postarr = [] ) {
|
370 |
global $current_screen;
|
388 |
return $data;
|
389 |
}
|
390 |
|
391 |
+
/**
|
392 |
+
* Locale filter for Polylang.
|
393 |
+
*
|
394 |
+
* @param string $locale Locale.
|
395 |
+
*
|
396 |
+
* @return string
|
397 |
+
*/
|
398 |
+
public function pll_locale_filter( $locale ) {
|
399 |
+
if ( $this->pll_locale ) {
|
400 |
+
return $this->pll_locale;
|
401 |
+
}
|
402 |
+
|
403 |
+
if ( defined( 'REST_REQUEST' ) && constant( 'REST_REQUEST' ) ) {
|
404 |
+
$rest_server = rest_get_server();
|
405 |
+
$data = json_decode( $rest_server::get_raw_data(), false );
|
406 |
+
if ( isset( $data->lang ) ) {
|
407 |
+
$this->pll_locale = $data->lang;
|
408 |
+
|
409 |
+
return $this->pll_locale;
|
410 |
+
}
|
411 |
+
|
412 |
+
return $locale;
|
413 |
+
}
|
414 |
+
|
415 |
+
if ( ! is_admin() ) {
|
416 |
+
return $locale;
|
417 |
+
}
|
418 |
+
|
419 |
+
$pll_get_post_language = false;
|
420 |
+
|
421 |
+
// phpcs:disable WordPress.Security.NonceVerification.Missing
|
422 |
+
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
423 |
+
if ( isset( $_POST['post_ID'] ) ) {
|
424 |
+
$pll_get_post_language = pll_get_post_language(
|
425 |
+
(int) filter_input( INPUT_POST, 'post_ID', FILTER_SANITIZE_STRING )
|
426 |
+
);
|
427 |
+
}
|
428 |
+
if ( isset( $_POST['pll_post_id'] ) ) {
|
429 |
+
$pll_get_post_language = pll_get_post_language(
|
430 |
+
(int) filter_input( INPUT_POST, 'pll_post_id', FILTER_SANITIZE_STRING )
|
431 |
+
);
|
432 |
+
}
|
433 |
+
if ( isset( $_GET['post'] ) ) {
|
434 |
+
$pll_get_post_language = pll_get_post_language(
|
435 |
+
(int) filter_input( INPUT_GET, 'post', FILTER_SANITIZE_STRING )
|
436 |
+
);
|
437 |
+
}
|
438 |
+
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
439 |
+
// phpcs:enable WordPress.Security.NonceVerification.Missing
|
440 |
+
|
441 |
+
if ( false !== $pll_get_post_language ) {
|
442 |
+
$this->pll_locale = $pll_get_post_language;
|
443 |
+
|
444 |
+
return $this->pll_locale;
|
445 |
+
}
|
446 |
+
|
447 |
+
$pll_get_term_language = false;
|
448 |
+
|
449 |
+
// phpcs:disable WordPress.Security.NonceVerification.Missing
|
450 |
+
if ( isset( $_POST['term_lang_choice'] ) ) {
|
451 |
+
$pll_get_language = PLL()->model->get_language(
|
452 |
+
filter_input( INPUT_POST, 'term_lang_choice', FILTER_SANITIZE_STRING )
|
453 |
+
);
|
454 |
+
|
455 |
+
if ( $pll_get_language ) {
|
456 |
+
$pll_get_term_language = $pll_get_language->slug;
|
457 |
+
}
|
458 |
+
}
|
459 |
+
// phpcs:enable WordPress.Security.NonceVerification.Missing
|
460 |
+
|
461 |
+
if ( false !== $pll_get_term_language ) {
|
462 |
+
$this->pll_locale = $pll_get_term_language;
|
463 |
+
|
464 |
+
return $this->pll_locale;
|
465 |
+
}
|
466 |
+
|
467 |
+
return $locale;
|
468 |
+
}
|
469 |
+
|
470 |
/**
|
471 |
* Changes array of items into string of items, separated by comma and sql-escaped
|
472 |
*
|
classes/class-requirements.php
CHANGED
@@ -42,6 +42,8 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
|
|
42 |
*
|
43 |
* @param Admin_Notices $admin_notices Admin notices.
|
44 |
* @param WP_Filesystem_Direct $wp_filesystem File system.
|
|
|
|
|
45 |
*/
|
46 |
public function __construct( $admin_notices = null, $wp_filesystem = null ) {
|
47 |
$this->admin_notices = $admin_notices;
|
@@ -106,6 +108,7 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
|
|
106 |
* Check php version.
|
107 |
*
|
108 |
* @return bool
|
|
|
109 |
*/
|
110 |
private function is_php_version_required() {
|
111 |
if ( version_compare( constant( 'CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION' ), phpversion(), '>' ) ) {
|
@@ -143,7 +146,7 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
|
|
143 |
|
144 |
if ( constant( 'CYR_TO_LAT_REQUIRED_MAX_INPUT_VARS' ) > ini_get( 'max_input_vars' ) ) {
|
145 |
$mtime = $this->wp_filesystem->mtime( $this->get_user_ini_filename() );
|
146 |
-
$ini_ttl =
|
147 |
$time_left = ( $mtime + $ini_ttl ) - time();
|
148 |
|
149 |
if ( 0 < $time_left ) {
|
@@ -176,12 +179,11 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
|
|
176 |
|
177 |
$content = $this->wp_filesystem->get_contents( $user_ini_filename );
|
178 |
|
179 |
-
$content = str_replace( "\r\n", "\n", $content );
|
180 |
-
$content = str_replace( "\r", "\n", $content );
|
181 |
$content_arr = explode( "\n", $content );
|
182 |
|
183 |
array_map(
|
184 |
-
function ( $line ) use ( &$value ) {
|
185 |
if ( preg_match( '/(?<![; ])\s*?(max_input_vars).*?=\D*?(\d+)/i', $line, $matches ) ) {
|
186 |
$value = (int) $matches[2];
|
187 |
}
|
@@ -195,7 +197,7 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
|
|
195 |
|
196 |
$content_arr = array_filter(
|
197 |
$content_arr,
|
198 |
-
function ( $line ) {
|
199 |
return false === strpos( $line, 'max_input_vars' );
|
200 |
}
|
201 |
);
|
42 |
*
|
43 |
* @param Admin_Notices $admin_notices Admin notices.
|
44 |
* @param WP_Filesystem_Direct $wp_filesystem File system.
|
45 |
+
*
|
46 |
+
* @noinspection PhpIncludeInspection
|
47 |
*/
|
48 |
public function __construct( $admin_notices = null, $wp_filesystem = null ) {
|
49 |
$this->admin_notices = $admin_notices;
|
108 |
* Check php version.
|
109 |
*
|
110 |
* @return bool
|
111 |
+
* @noinspection ConstantCanBeUsedInspection
|
112 |
*/
|
113 |
private function is_php_version_required() {
|
114 |
if ( version_compare( constant( 'CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION' ), phpversion(), '>' ) ) {
|
146 |
|
147 |
if ( constant( 'CYR_TO_LAT_REQUIRED_MAX_INPUT_VARS' ) > ini_get( 'max_input_vars' ) ) {
|
148 |
$mtime = $this->wp_filesystem->mtime( $this->get_user_ini_filename() );
|
149 |
+
$ini_ttl = (int) ini_get( 'user_ini.cache_ttl' );
|
150 |
$time_left = ( $mtime + $ini_ttl ) - time();
|
151 |
|
152 |
if ( 0 < $time_left ) {
|
179 |
|
180 |
$content = $this->wp_filesystem->get_contents( $user_ini_filename );
|
181 |
|
182 |
+
$content = str_replace( [ "\r\n", "\r" ], "\n", $content );
|
|
|
183 |
$content_arr = explode( "\n", $content );
|
184 |
|
185 |
array_map(
|
186 |
+
static function ( $line ) use ( &$value ) {
|
187 |
if ( preg_match( '/(?<![; ])\s*?(max_input_vars).*?=\D*?(\d+)/i', $line, $matches ) ) {
|
188 |
$value = (int) $matches[2];
|
189 |
}
|
197 |
|
198 |
$content_arr = array_filter(
|
199 |
$content_arr,
|
200 |
+
static function ( $line ) {
|
201 |
return false === strpos( $line, 'max_input_vars' );
|
202 |
}
|
203 |
);
|
classes/class-settings.php
CHANGED
@@ -18,52 +18,47 @@ class Settings {
|
|
18 |
|
19 |
/**
|
20 |
* Admin screen id.
|
21 |
-
*
|
22 |
-
* @var string
|
23 |
*/
|
24 |
const SCREEN_ID = 'settings_page_cyr-to-lat';
|
25 |
|
26 |
/**
|
27 |
* Option group.
|
28 |
-
*
|
29 |
-
* @var string
|
30 |
*/
|
31 |
const OPTION_GROUP = 'cyr_to_lat_group';
|
32 |
|
33 |
/**
|
34 |
* Option page.
|
35 |
-
*
|
36 |
-
* @var string
|
37 |
*/
|
38 |
const PAGE = 'cyr-to-lat';
|
39 |
|
40 |
/**
|
41 |
* Plugin options name.
|
42 |
-
*
|
43 |
-
* @var string
|
44 |
*/
|
45 |
const OPTION_NAME = 'cyr_to_lat_settings';
|
46 |
|
47 |
/**
|
48 |
-
*
|
49 |
-
*
|
50 |
-
* @var array
|
51 |
*/
|
52 |
-
|
53 |
|
54 |
/**
|
55 |
-
*
|
|
|
|
|
|
|
|
|
|
|
56 |
*
|
57 |
* @var array
|
58 |
*/
|
59 |
-
public $
|
60 |
|
61 |
/**
|
62 |
* Plugin options.
|
63 |
*
|
64 |
* @var array
|
65 |
*/
|
66 |
-
|
67 |
|
68 |
/**
|
69 |
* Served locales.
|
@@ -107,6 +102,7 @@ class Settings {
|
|
107 |
add_filter( 'pre_update_option_' . self::OPTION_NAME, [ $this, 'pre_update_option_filter' ], 10, 3 );
|
108 |
|
109 |
add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] );
|
|
|
110 |
}
|
111 |
|
112 |
/**
|
@@ -121,6 +117,7 @@ class Settings {
|
|
121 |
* 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.
|
122 |
*
|
123 |
* @return array|mixed Plugin links
|
|
|
124 |
*/
|
125 |
public function add_settings_link( $actions, $plugin_file, $plugin_data, $context ) {
|
126 |
$ctl_actions = [
|
@@ -189,7 +186,7 @@ class Settings {
|
|
189 |
private function get_current_locale() {
|
190 |
$current_locale = get_locale();
|
191 |
|
192 |
-
return
|
193 |
}
|
194 |
|
195 |
/**
|
@@ -304,31 +301,15 @@ class Settings {
|
|
304 |
</form>
|
305 |
|
306 |
<form id="ctl-convert-existing-slugs" action="" method="post">
|
|
|
307 |
<?php
|
308 |
wp_nonce_field( self::OPTION_GROUP . '-options' );
|
309 |
-
submit_button( __( 'Convert Existing Slugs', 'cyr2lat' ), 'secondary', '
|
310 |
?>
|
311 |
</form>
|
312 |
|
313 |
-
<div id="
|
314 |
<h2>
|
315 |
-
<?php echo esc_html( __( 'Donate', 'cyr2lat' ) ); ?>
|
316 |
-
</h2>
|
317 |
-
<p>
|
318 |
-
<?php echo esc_html( __( 'Would you like to support the advancement of this plugin?', 'cyr2lat' ) ); ?>
|
319 |
-
</p>
|
320 |
-
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
|
321 |
-
<input type="hidden" name="cmd" value="_s-xclick">
|
322 |
-
<input type="hidden" name="hosted_button_id" value="BENCPARA8S224">
|
323 |
-
<input
|
324 |
-
type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"
|
325 |
-
name="submit" alt="PayPal - The safer, easier way to pay online!">
|
326 |
-
<img
|
327 |
-
alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1"
|
328 |
-
height="1">
|
329 |
-
</form>
|
330 |
-
|
331 |
-
<h2 id="appreciation">
|
332 |
<?php echo esc_html( __( 'Your appreciation', 'cyr2lat' ) ); ?>
|
333 |
</h2>
|
334 |
<a
|
@@ -381,9 +362,6 @@ class Settings {
|
|
381 |
|
382 |
register_setting( self::OPTION_GROUP, self::OPTION_NAME );
|
383 |
|
384 |
-
// Get current settings.
|
385 |
-
$this->options = get_option( self::OPTION_NAME );
|
386 |
-
|
387 |
foreach ( $this->form_fields as $key => $field ) {
|
388 |
$field['field_id'] = $key;
|
389 |
|
@@ -508,10 +486,8 @@ class Settings {
|
|
508 |
$options_markup = '';
|
509 |
foreach ( $arguments['options'] as $key => $label ) {
|
510 |
$selected = '';
|
511 |
-
if ( is_array( $value ) ) {
|
512 |
-
|
513 |
-
$selected = selected( $key, $key, false );
|
514 |
-
}
|
515 |
}
|
516 |
$options_markup .= sprintf(
|
517 |
'<option value="%s" %s>%s</option>',
|
@@ -600,7 +576,7 @@ class Settings {
|
|
600 |
$this->settings[ $key ] = isset( $form_fields[ $key ] ) ? $this->get_field_default( $form_fields[ $key ] ) : '';
|
601 |
}
|
602 |
|
603 |
-
if (
|
604 |
$this->settings[ $key ] = $empty_value;
|
605 |
}
|
606 |
|
@@ -641,6 +617,7 @@ class Settings {
|
|
641 |
* @param string $option Option name.
|
642 |
*
|
643 |
* @return mixed
|
|
|
644 |
*/
|
645 |
public function pre_update_option_filter( $value, $old_value, $option ) {
|
646 |
if ( $value === $old_value ) {
|
@@ -654,14 +631,10 @@ class Settings {
|
|
654 |
|
655 |
$form_fields = $this->get_form_fields();
|
656 |
foreach ( $form_fields as $key => $form_field ) {
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
$value[ $key ] = $form_field_value;
|
662 |
-
break;
|
663 |
-
default:
|
664 |
-
break;
|
665 |
}
|
666 |
}
|
667 |
|
@@ -677,21 +650,65 @@ class Settings {
|
|
677 |
}
|
678 |
|
679 |
wp_enqueue_script(
|
680 |
-
|
681 |
constant( 'CYR_TO_LAT_URL' ) . '/dist/js/settings/app.js',
|
682 |
[],
|
683 |
constant( 'CYR_TO_LAT_VERSION' ),
|
684 |
true
|
685 |
);
|
686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
wp_enqueue_style(
|
688 |
-
|
689 |
constant( 'CYR_TO_LAT_URL' ) . '/css/cyr-to-lat-admin.css',
|
690 |
[],
|
691 |
constant( 'CYR_TO_LAT_VERSION' )
|
692 |
);
|
693 |
}
|
694 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
/**
|
696 |
* Load plugin text domain.
|
697 |
*/
|
18 |
|
19 |
/**
|
20 |
* Admin screen id.
|
|
|
|
|
21 |
*/
|
22 |
const SCREEN_ID = 'settings_page_cyr-to-lat';
|
23 |
|
24 |
/**
|
25 |
* Option group.
|
|
|
|
|
26 |
*/
|
27 |
const OPTION_GROUP = 'cyr_to_lat_group';
|
28 |
|
29 |
/**
|
30 |
* Option page.
|
|
|
|
|
31 |
*/
|
32 |
const PAGE = 'cyr-to-lat';
|
33 |
|
34 |
/**
|
35 |
* Plugin options name.
|
|
|
|
|
36 |
*/
|
37 |
const OPTION_NAME = 'cyr_to_lat_settings';
|
38 |
|
39 |
/**
|
40 |
+
* Script handle.
|
|
|
|
|
41 |
*/
|
42 |
+
const HANDLE = 'cyr-to-lat-settings';
|
43 |
|
44 |
/**
|
45 |
+
* Script localization object.
|
46 |
+
*/
|
47 |
+
const OBJECT = 'Cyr2LatSettingsObject';
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Form fields.
|
51 |
*
|
52 |
* @var array
|
53 |
*/
|
54 |
+
public $form_fields;
|
55 |
|
56 |
/**
|
57 |
* Plugin options.
|
58 |
*
|
59 |
* @var array
|
60 |
*/
|
61 |
+
public $settings;
|
62 |
|
63 |
/**
|
64 |
* Served locales.
|
102 |
add_filter( 'pre_update_option_' . self::OPTION_NAME, [ $this, 'pre_update_option_filter' ], 10, 3 );
|
103 |
|
104 |
add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] );
|
105 |
+
add_action( 'in_admin_header', [ $this, 'in_admin_header' ] );
|
106 |
}
|
107 |
|
108 |
/**
|
117 |
* 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.
|
118 |
*
|
119 |
* @return array|mixed Plugin links
|
120 |
+
* @noinspection PhpUnusedParameterInspection
|
121 |
*/
|
122 |
public function add_settings_link( $actions, $plugin_file, $plugin_data, $context ) {
|
123 |
$ctl_actions = [
|
186 |
private function get_current_locale() {
|
187 |
$current_locale = get_locale();
|
188 |
|
189 |
+
return array_key_exists( $current_locale, $this->locales ) ? $current_locale : 'iso9';
|
190 |
}
|
191 |
|
192 |
/**
|
301 |
</form>
|
302 |
|
303 |
<form id="ctl-convert-existing-slugs" action="" method="post">
|
304 |
+
<input type="hidden" name="ctl-convert" />
|
305 |
<?php
|
306 |
wp_nonce_field( self::OPTION_GROUP . '-options' );
|
307 |
+
submit_button( __( 'Convert Existing Slugs', 'cyr2lat' ), 'secondary', 'ctl-convert-button' );
|
308 |
?>
|
309 |
</form>
|
310 |
|
311 |
+
<div id="appreciation">
|
312 |
<h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
<?php echo esc_html( __( 'Your appreciation', 'cyr2lat' ) ); ?>
|
314 |
</h2>
|
315 |
<a
|
362 |
|
363 |
register_setting( self::OPTION_GROUP, self::OPTION_NAME );
|
364 |
|
|
|
|
|
|
|
365 |
foreach ( $this->form_fields as $key => $field ) {
|
366 |
$field['field_id'] = $key;
|
367 |
|
486 |
$options_markup = '';
|
487 |
foreach ( $arguments['options'] as $key => $label ) {
|
488 |
$selected = '';
|
489 |
+
if ( is_array( $value ) && in_array( $key, $value, true ) ) {
|
490 |
+
$selected = selected( $key, $key, false );
|
|
|
|
|
491 |
}
|
492 |
$options_markup .= sprintf(
|
493 |
'<option value="%s" %s>%s</option>',
|
576 |
$this->settings[ $key ] = isset( $form_fields[ $key ] ) ? $this->get_field_default( $form_fields[ $key ] ) : '';
|
577 |
}
|
578 |
|
579 |
+
if ( '' === $this->settings[ $key ] && ! is_null( $empty_value ) ) {
|
580 |
$this->settings[ $key ] = $empty_value;
|
581 |
}
|
582 |
|
617 |
* @param string $option Option name.
|
618 |
*
|
619 |
* @return mixed
|
620 |
+
* @noinspection PhpUnusedParameterInspection
|
621 |
*/
|
622 |
public function pre_update_option_filter( $value, $old_value, $option ) {
|
623 |
if ( $value === $old_value ) {
|
631 |
|
632 |
$form_fields = $this->get_form_fields();
|
633 |
foreach ( $form_fields as $key => $form_field ) {
|
634 |
+
if ( 'checkbox' === $form_field['type'] ) {
|
635 |
+
$form_field_value = isset( $value[ $key ] ) ? $value[ $key ] : 'no';
|
636 |
+
$form_field_value = '1' === $form_field_value || 'yes' === $form_field_value ? 'yes' : 'no';
|
637 |
+
$value[ $key ] = $form_field_value;
|
|
|
|
|
|
|
|
|
638 |
}
|
639 |
}
|
640 |
|
650 |
}
|
651 |
|
652 |
wp_enqueue_script(
|
653 |
+
self::HANDLE,
|
654 |
constant( 'CYR_TO_LAT_URL' ) . '/dist/js/settings/app.js',
|
655 |
[],
|
656 |
constant( 'CYR_TO_LAT_VERSION' ),
|
657 |
true
|
658 |
);
|
659 |
|
660 |
+
wp_localize_script(
|
661 |
+
self::HANDLE,
|
662 |
+
self::OBJECT,
|
663 |
+
[
|
664 |
+
'optionsSaveSuccessMessage' => __( 'Options saved.', 'cyr2lat' ),
|
665 |
+
'optionsSaveErrorMessage' => __( 'Error saving options.', 'cyr2lat' ),
|
666 |
+
]
|
667 |
+
);
|
668 |
+
|
669 |
wp_enqueue_style(
|
670 |
+
self::HANDLE,
|
671 |
constant( 'CYR_TO_LAT_URL' ) . '/css/cyr-to-lat-admin.css',
|
672 |
[],
|
673 |
constant( 'CYR_TO_LAT_VERSION' )
|
674 |
);
|
675 |
}
|
676 |
|
677 |
+
/**
|
678 |
+
* Output convert confirmation popup.
|
679 |
+
*/
|
680 |
+
public function in_admin_header() {
|
681 |
+
if ( ! $this->is_options_screen() ) {
|
682 |
+
return;
|
683 |
+
}
|
684 |
+
|
685 |
+
?>
|
686 |
+
<div id="ctl-confirm-popup">
|
687 |
+
<div id="ctl-confirm-content">
|
688 |
+
<p>
|
689 |
+
<strong><?php esc_html_e( 'Important:', 'cyr2lat' ); ?></strong>
|
690 |
+
<?php
|
691 |
+
esc_html_e(
|
692 |
+
'This operation is irreversible. Please make sure that you have made backup copy of your database.',
|
693 |
+
'cyr2lat'
|
694 |
+
);
|
695 |
+
?>
|
696 |
+
</p>
|
697 |
+
<p><?php esc_html_e( 'Are you sure to continue?', 'cyr2lat' ); ?></p>
|
698 |
+
<div id="ctl-confirm-buttons">
|
699 |
+
<input
|
700 |
+
type="button" id="ctl-confirm-ok" class="button button-primary"
|
701 |
+
value="<?php esc_html_e( 'OK', 'cyr2lat' ); ?>">
|
702 |
+
<button
|
703 |
+
type="button" id="ctl-confirm-cancel" class="button button-secondary">
|
704 |
+
<?php esc_html_e( 'Cancel', 'cyr2lat' ); ?>
|
705 |
+
</button>
|
706 |
+
</div>
|
707 |
+
</div>
|
708 |
+
</div>
|
709 |
+
<?php
|
710 |
+
}
|
711 |
+
|
712 |
/**
|
713 |
* Load plugin text domain.
|
714 |
*/
|
classes/class-wp-cli.php
CHANGED
@@ -6,6 +6,9 @@
|
|
6 |
* @link https://github.com/mihdan/wp-rocket-cli/blob/master/command.php
|
7 |
*/
|
8 |
|
|
|
|
|
|
|
9 |
namespace Cyr_To_Lat;
|
10 |
|
11 |
use cli\progress\Bar;
|
@@ -49,6 +52,8 @@ class WP_CLI extends WP_CLI_Command {
|
|
49 |
*
|
50 |
* @param array $args Arguments.
|
51 |
* @param array $assoc_args Arguments in associative array.
|
|
|
|
|
52 |
*/
|
53 |
public function regenerate( $args = [], $assoc_args = [] ) {
|
54 |
|
6 |
* @link https://github.com/mihdan/wp-rocket-cli/blob/master/command.php
|
7 |
*/
|
8 |
|
9 |
+
// phpcs:ignore Generic.Commenting.DocComment.MissingShort
|
10 |
+
/** @noinspection PhpUndefinedClassInspection */
|
11 |
+
|
12 |
namespace Cyr_To_Lat;
|
13 |
|
14 |
use cli\progress\Bar;
|
52 |
*
|
53 |
* @param array $args Arguments.
|
54 |
* @param array $assoc_args Arguments in associative array.
|
55 |
+
*
|
56 |
+
* @noinspection PhpUnusedParameterInspection
|
57 |
*/
|
58 |
public function regenerate( $args = [], $assoc_args = [] ) {
|
59 |
|
css/cyr-to-lat-admin.css
CHANGED
@@ -132,10 +132,31 @@ body.js #ctl-options .ctl-table {
|
|
132 |
outline: none;
|
133 |
}
|
134 |
|
135 |
-
#
|
136 |
clear: both;
|
137 |
}
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
@media screen and (max-width: 767px) {
|
140 |
.ctl-table-cell label {
|
141 |
width: 2.2em;
|
132 |
outline: none;
|
133 |
}
|
134 |
|
135 |
+
#appreciation {
|
136 |
clear: both;
|
137 |
}
|
138 |
|
139 |
+
#ctl-confirm-popup {
|
140 |
+
display: none;
|
141 |
+
position: fixed;
|
142 |
+
left: 0;
|
143 |
+
right: 0;
|
144 |
+
top: 0;
|
145 |
+
bottom: 0;
|
146 |
+
background: rgba(241,241,241,0.8);
|
147 |
+
z-index: 9999;
|
148 |
+
}
|
149 |
+
|
150 |
+
#ctl-confirm-content {
|
151 |
+
display: block;
|
152 |
+
position: fixed;
|
153 |
+
left: 50%;
|
154 |
+
top: 50%;
|
155 |
+
transform: translate(-50%, -50%);
|
156 |
+
background: #fff;
|
157 |
+
padding: 20px;
|
158 |
+
}
|
159 |
+
|
160 |
@media screen and (max-width: 767px) {
|
161 |
.ctl-table-cell label {
|
162 |
width: 2.2em;
|
cyr-to-lat.php
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
* Author URI: https://profiles.wordpress.org/sergeybiryukov/
|
10 |
* Requires at least: 5.1
|
11 |
* Tested up to: 5.6
|
12 |
-
* Version: 4.
|
13 |
-
* Stable tag: 4.
|
14 |
*
|
15 |
* Text Domain: cyr2lat
|
16 |
* Domain Path: /languages/
|
@@ -21,11 +21,11 @@
|
|
21 |
|
22 |
namespace Cyr_To_Lat;
|
23 |
|
24 |
-
// @codeCoverageIgnoreStart
|
25 |
if ( ! defined( 'ABSPATH' ) ) {
|
26 |
-
|
|
|
|
|
27 |
}
|
28 |
-
// @codeCoverageIgnoreEnd
|
29 |
|
30 |
if ( defined( 'CYR_TO_LAT_VERSION' ) ) {
|
31 |
return;
|
@@ -34,12 +34,12 @@ if ( defined( 'CYR_TO_LAT_VERSION' ) ) {
|
|
34 |
/**
|
35 |
* Plugin version.
|
36 |
*/
|
37 |
-
define( 'CYR_TO_LAT_VERSION', '4.
|
38 |
|
39 |
/**
|
40 |
* Path to the plugin dir.
|
41 |
*/
|
42 |
-
define( 'CYR_TO_LAT_PATH',
|
43 |
|
44 |
/**
|
45 |
* Plugin dir url.
|
@@ -87,5 +87,6 @@ if ( ! $cyr_to_lat_requirements->are_requirements_met() ) {
|
|
87 |
return;
|
88 |
}
|
89 |
|
90 |
-
$cyr_to_lat_plugin
|
91 |
|
|
9 |
* Author URI: https://profiles.wordpress.org/sergeybiryukov/
|
10 |
* Requires at least: 5.1
|
11 |
* Tested up to: 5.6
|
12 |
+
* Version: 4.6.0
|
13 |
+
* Stable tag: 4.6.0
|
14 |
*
|
15 |
* Text Domain: cyr2lat
|
16 |
* Domain Path: /languages/
|
21 |
|
22 |
namespace Cyr_To_Lat;
|
23 |
|
|
|
24 |
if ( ! defined( 'ABSPATH' ) ) {
|
25 |
+
// @codeCoverageIgnoreStart
|
26 |
+
exit;
|
27 |
+
// @codeCoverageIgnoreEnd
|
28 |
}
|
|
|
29 |
|
30 |
if ( defined( 'CYR_TO_LAT_VERSION' ) ) {
|
31 |
return;
|
34 |
/**
|
35 |
* Plugin version.
|
36 |
*/
|
37 |
+
define( 'CYR_TO_LAT_VERSION', '4.6.0' );
|
38 |
|
39 |
/**
|
40 |
* Path to the plugin dir.
|
41 |
*/
|
42 |
+
define( 'CYR_TO_LAT_PATH', __DIR__ );
|
43 |
|
44 |
/**
|
45 |
* Plugin dir url.
|
87 |
return;
|
88 |
}
|
89 |
|
90 |
+
global $cyr_to_lat_plugin;
|
91 |
|
92 |
+
$cyr_to_lat_plugin = new Main();
|
dist/js/settings/app.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){n(1),t.exports=n(2)},function(t,e){var n=function(t){function e(){this.fetch=!1,this.DOMException=t.DOMException}return e.prototype=t,new e}("undefined"!=typeof self?self:this);!function(t){!function(e){var n="URLSearchParams"in t,r="Symbol"in t&&"iterator"in Symbol,i="FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),o="FormData"in t,s="ArrayBuffer"in t;if(s)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(t){return t&&a.indexOf(Object.prototype.toString.call(t))>-1};function l(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function c(t){return"string"!=typeof t&&(t=String(t)),t}function h(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function d(t){this.map={},t instanceof d?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function p(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function f(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function y(t){var e=new FileReader,n=f(e);return e.readAsArrayBuffer(t),n}function b(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:i&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():s&&i&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=b(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(t)||u(t))?this._bodyArrayBuffer=b(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var t=p(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(y)}),this.text=function(){var t,e,n,r=p(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=f(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r<e.length;r++)n[r]=String.fromCharCode(e[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o&&(this.formData=function(){return this.text().then(S)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(t,e){t=l(t),e=c(e);var n=this.map[t];this.map[t]=n?n+", "+e:e},d.prototype.delete=function(t){delete this.map[l(t)]},d.prototype.get=function(t){return t=l(t),this.has(t)?this.map[t]:null},d.prototype.has=function(t){return this.map.hasOwnProperty(l(t))},d.prototype.set=function(t,e){this.map[l(t)]=c(e)},d.prototype.forEach=function(t,e){for(var n in this.map)this.map.hasOwnProperty(n)&&t.call(e,this.map[n],n,this)},d.prototype.keys=function(){var t=[];return this.forEach((function(e,n){t.push(n)})),h(t)},d.prototype.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),h(t)},d.prototype.entries=function(){var t=[];return this.forEach((function(e,n){t.push([n,e])})),h(t)},r&&(d.prototype[Symbol.iterator]=d.prototype.entries);var m=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(t,e){var n,r,i=(e=e||{}).body;if(t instanceof E){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new d(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,i||null==t._bodyInit||(i=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new d(e.headers)),this.method=(n=e.method||this.method||"GET",r=n.toUpperCase(),m.indexOf(r)>-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function S(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(i))}})),e}function L(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new d(e.headers),this.url=e.url||"",this._initBody(t)}E.prototype.clone=function(){return new E(this,{body:this._bodyInit})},v.call(E.prototype),v.call(L.prototype),L.prototype.clone=function(){return new L(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},L.error=function(){var t=new L(null,{status:0,statusText:""});return t.type="error",t};var T=[301,302,303,307,308];L.redirect=function(t,e){if(-1===T.indexOf(e))throw new RangeError("Invalid status code");return new L(null,{status:e,headers:{location:t}})},e.DOMException=t.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function _(t,n){return new Promise((function(r,o){var s=new E(t,n);if(s.signal&&s.signal.aborted)return o(new e.DOMException("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,n={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new d,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();e.append(r,i)}})),e)};n.url="responseURL"in a?a.responseURL:n.headers.get("X-Request-URL");var i="response"in a?a.response:a.responseText;r(new L(i,n))},a.onerror=function(){o(new TypeError("Network request failed"))},a.ontimeout=function(){o(new TypeError("Network request failed"))},a.onabort=function(){o(new e.DOMException("Aborted","AbortError"))},a.open(s.method,s.url,!0),"include"===s.credentials?a.withCredentials=!0:"omit"===s.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),s.headers.forEach((function(t,e){a.setRequestHeader(e,t)})),s.signal&&(s.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&s.signal.removeEventListener("abort",u)}),a.send(void 0===s._bodyInit?null:s._bodyInit)}))}_.polyfill=!0,t.fetch||(t.fetch=_,t.Headers=d,t.Request=E,t.Response=L),e.Headers=d,e.Request=E,e.Response=L,e.fetch=_}({})}(n),delete n.fetch.polyfill,(e=n.fetch).default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,t.exports=e},function(t,e,n){"use strict";var r,i=n(3),o=(r=i)&&r.__esModule?r:{default:r};document.addEventListener("DOMContentLoaded",(function(){new o.default}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var o=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.OPTIONS_FORM_SELECTOR="#ctl-options",this.HEADER_SELECTOR=this.OPTIONS_FORM_SELECTOR+" h2",this.TABLE_SELECTOR=this.OPTIONS_FORM_SELECTOR+" table",this.SUBMIT_SELECTOR=this.OPTIONS_FORM_SELECTOR+" #submit",this.CONVERT_FORM_SELECTOR="#ctl-convert-existing-slugs",this.CONVERT_BUTTON_SELECTOR="#ctl-convert-button",this.CONFIRM_POPUP_SELECTOR="#ctl-confirm-popup",this.CONFIRM_OK_SELECTOR="#ctl-confirm-ok",this.CONFIRM_CANCEL_SELECTOR="#ctl-confirm-cancel",this.CURRENT_STUB_ID="ctl-current",this.CURRENT_NAV_TAB_CLASS="nav-tab-current",this.ACTIVE_NAV_TAB_CLASS="nav-tab-active",this.ACTIVE_TABLE_CLASS="active",this.EDIT_LABEL_ID="ctl-edit-label",this.EDIT_LABEL_ERROR_CLASS="ctl-edit-label-error",this.plusButton='<button type="button" aria-haspopup="true" aria-expanded="false" class="components-button block-editor-inserter__toggle has-icon" aria-label="Добавить блок"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 24 24" role="img" aria-hidden="true" focusable="false"><path d="M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6zM10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z"></path></svg></button>',this.PLUS_CLASS="ctl-plus",this.optionsForm=document.querySelector(this.OPTIONS_FORM_SELECTOR),this.tablesData=this.getTablesData(),this.submitButton=document.querySelector(this.SUBMIT_SELECTOR),this.confirmPopup=document.querySelector(this.CONFIRM_POPUP_SELECTOR),this.optionsSaveSuccessMessage=Cyr2LatSettingsObject.optionsSaveSuccessMessage,this.optionsSaveErrorMessage=Cyr2LatSettingsObject.optionsSaveErrorMessage,this.addWrapper(),this.addMessageLines(),this.addEditLabelInput(),this.hideTables(),this.bindEvents(),this.setSubmitStatus()}return r(t,[{key:"getHeaders",value:function(){return[].concat(i(document.querySelectorAll(this.HEADER_SELECTOR)))}},{key:"getActiveHeader",value:function(){return document.querySelector(this.HEADER_SELECTOR+"."+this.ACTIVE_NAV_TAB_CLASS)}},{key:"getActiveIndex",value:function(){return this.getActiveHeader().dataset.index}},{key:"getTables",value:function(){return[].concat(i(document.querySelectorAll(this.TABLE_SELECTOR)))}},{key:"getActiveTable",value:function(){return document.querySelector(this.TABLE_SELECTOR+"."+this.ACTIVE_TABLE_CLASS)}},{key:"getInputs",value:function(){return[].concat(i(document.querySelectorAll(this.OPTIONS_FORM_SELECTOR+" input")))}},{key:"getLabels",value:function(){return[].concat(i(document.querySelectorAll(this.OPTIONS_FORM_SELECTOR+" label")))}},{key:"getPlusButtons",value:function(){return[].concat(i(document.querySelectorAll(this.OPTIONS_FORM_SELECTOR+" ."+this.PLUS_CLASS)))}},{key:"isActiveTableChanged",value:function(){var t=this.getActiveIndex();return JSON.stringify(this.getActiveTableData())!==JSON.stringify(this.tablesData[t])}},{key:"setSubmitStatus",value:function(){this.submitButton.disabled=!this.isActiveTableChanged()}},{key:"saveActiveTable",value:function(){var t=this;if(this.isActiveTableChanged()){var e=this.getActiveTable(),n=document.createElement("form");return n.action=this.optionsForm.getAttribute("action"),n.method=this.optionsForm.method,n.appendChild(e.cloneNode(!0)),[].concat(i(e.querySelectorAll("input"))).map((function(t){return n.querySelector("#"+t.id).value=t.value})),[].concat(i(this.optionsForm.querySelectorAll('input[type="hidden"]'))).map((function(t){return n.appendChild(t.cloneNode(!0))})),document.body.appendChild(n),fetch(this.optionsForm.getAttribute("action"),{method:n.method,body:new URLSearchParams([].concat(i(new FormData(n))))}).then((function(e){return e.ok?(t.showMessage(t.successMessage,t.optionsSaveSuccessMessage),t.tablesData=t.getTablesData()):t.showMessage(t.errorMessage,t.optionsSaveErrorMessage),e.json()})).finally((function(){n.parentNode.removeChild(n),t.setSubmitStatus()}))}}},{key:"getTableData",value:function(t){var e=this,n=[].concat(i(t.querySelectorAll("input"))),r={};return n.forEach((function(t){var n=document.querySelector(e.OPTIONS_FORM_SELECTOR+' label[for="'+t.id+'"]');r[n.innerHTML]=t.value})),r}},{key:"getTablesData",value:function(){var t=this;return this.getTables().map((function(e){return t.getTableData(e)}))}},{key:"getActiveTableData",value:function(){return this.getTableData(this.getActiveTable())}},{key:"addWrapper",value:function(){this.wrapper=document.createElement("ul"),this.wrapper.classList.add("nav-tab-wrapper"),this.optionsForm.insertBefore(this.wrapper,this.optionsForm.firstChild)}},{key:"addMessageLine",value:function(t){var e=document.createElement("div");return e.id=t,this.optionsForm.insertBefore(e,this.optionsForm.firstChild),e}},{key:"addMessageLines",value:function(){this.successMessage=this.addMessageLine("ctl-success"),this.errorMessage=this.addMessageLine("ctl-error")}},{key:"addEditLabelInput",value:function(){this.editLabelInput=document.createElement("input"),this.editLabelInput.id=this.EDIT_LABEL_ID,this.editLabelInput.style.display="none",document.body.appendChild(this.editLabelInput)}},{key:"hideEditLabelInput",value:function(){this.editLabelInput.style.display="none",this.editLabelInput.classList.remove(this.EDIT_LABEL_ERROR_CLASS),document.body.appendChild(this.editLabelInput)}},{key:"getLastCell",value:function(){return document.querySelector(this.OPTIONS_FORM_SELECTOR+" ."+this.ACTIVE_TABLE_CLASS+" ."+this.PLUS_CLASS).previousElementSibling}},{key:"addCell",value:function(){var t=this.getLastCell();t.parentElement.insertBefore(t.cloneNode(!0),t.nextElementSibling);var e=(t=this.getLastCell()).querySelector("label"),n=t.querySelector("input"),r=n.id.split("-"),i=r[0]+"-"+(parseInt(r[1])+1);e.htmlFor=i,e.innerHTML="",n.id=i,n.value="",n.setAttribute("value",""),this.replaceName(n,""),this.bindEvents(),this.editLabel(e)}},{key:"hideTables",value:function(){var t=this,e=0;this.getTables().map((function(n,r){n.classList.add("ctl-table"),t.CURRENT_STUB_ID===n.previousElementSibling.id&&(e=r,n.classList.add(t.ACTIVE_TABLE_CLASS));var i=document.createElement("div");return i.classList.add(t.PLUS_CLASS),i.innerHTML=t.plusButton,n.querySelector("td").appendChild(i),null})),this.getHeaders().map((function(n,r){return n.classList.add("nav-tab"),n.dataset.index=r,t.wrapper.appendChild(n),r===e&&(n.classList.add(t.CURRENT_NAV_TAB_CLASS),n.classList.add(t.ACTIVE_NAV_TAB_CLASS)),null}))}},{key:"bindEvents",value:function(){var t=this;this.getHeaders().map((function(e,n,r){return e.onclick=function(e){e.preventDefault();var n=e.target.dataset.index;if(n===t.getActiveIndex())return!1;t.saveActiveTable(),r.map((function(e){return e.classList.remove(t.ACTIVE_NAV_TAB_CLASS)})),r[n].classList.add(t.ACTIVE_NAV_TAB_CLASS);var i=t.getTables();return i.map((function(e){return e.classList.remove(t.ACTIVE_TABLE_CLASS)})),i[n].classList.add(t.ACTIVE_TABLE_CLASS),t.setSubmitStatus(),!1},null})),this.getInputs().map((function(e){return e.oninput=function(){t.setSubmitStatus()},null})),this.getLabels().map((function(e){return e.onclick=function(e){return e.preventDefault(),t.editLabel(e.target),!1},null})),this.editLabelInput.onblur=function(){t.saveLabel()},this.editLabelInput.onkeyup=function(e){"Escape"===e.key&&t.saveLabel(!0),"Enter"===e.key&&t.saveLabel()},this.getPlusButtons().map((function(e){return e.onclick=function(e){return e.preventDefault(),t.addCell(e.target),!1},null})),this.submitButton.onclick=function(e){return e.preventDefault(),t.saveActiveTable(),!1},document.querySelector(this.CONVERT_BUTTON_SELECTOR).onclick=function(e){return e.preventDefault(),t.confirmPopup.style.display="block",!1},this.confirmPopup.onclick=function(){t.hideConfirmPopup()},document.querySelector(this.CONFIRM_OK_SELECTOR).onclick=function(e){e.stopPropagation(),t.hideConfirmPopup(),document.querySelector(t.CONVERT_FORM_SELECTOR).submit()},document.querySelector(this.CONFIRM_CANCEL_SELECTOR).onclick=function(e){e.stopPropagation(),t.hideConfirmPopup()}}},{key:"hideConfirmPopup",value:function(){this.confirmPopup.style.display="none"}},{key:"editLabel",value:function(t){t.parentNode.appendChild(this.editLabelInput),this.editLabelInput.value=t.innerHTML,this.editLabelInput.classList.remove(this.EDIT_LABEL_ERROR_CLASS),this.editLabelInput.style.display="block",this.editLabelInput.focus()}},{key:"isUniqueLabel",value:function(t){return[].concat(i(this.getActiveTable().querySelectorAll("label"))).reduce((function(e,n){return e&&n.innerHTML!==t}),!0)}},{key:"saveLabel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if("none"!==this.editLabelInput.style.display){var e=this.editLabelInput.value.trim();if(""===e){var n=document.getElementById(this.EDIT_LABEL_ID).parentElement;return this.hideEditLabelInput(),n.parentNode.removeChild(n),void this.setSubmitStatus()}var r=this.editLabelInput.parentNode.querySelector("label");if(t||e===r.innerHTML)this.hideEditLabelInput();else if(this.isUniqueLabel(e)){var i=this.editLabelInput.parentNode.querySelector("input");this.hideEditLabelInput(),r.innerHTML=e,this.replaceName(i,e),this.setSubmitStatus()}else this.editLabelInput.classList.add(this.EDIT_LABEL_ERROR_CLASS)}}},{key:"replaceName",value:function(t,e){t.name=t.name.replace(/(.+\[.+])\[.*]/g,"$1["+e+"]")}},{key:"clearMessage",value:function(t){t.innerHTML="",t.classList.remove("active")}},{key:"clearMessages",value:function(){this.clearMessage(this.successMessage),this.clearMessage(this.errorMessage),clearTimeout(this.msgTimer)}},{key:"showMessage",value:function(t,e){var n=this;t.innerHTML=e,t.classList.add("active"),this.msgTimer=setTimeout((function(){n.clearMessages()}),5e3)}}]),t}();e.default=o}]);
|
2 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb3NzLWZldGNoL2Rpc3QvYnJvd3Nlci1wb255ZmlsbC5qcyIsIndlYnBhY2s6Ly8vLi9qcy9zZXR0aW5ncy9hcHAuanMiLCJ3ZWJwYWNrOi8vLy4vanMvc2V0dGluZ3Mvc2V0dGluZ3MuanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJfX3NlbGZfXyIsInJvb3QiLCJGIiwidGhpcyIsImZldGNoIiwiRE9NRXhjZXB0aW9uIiwic2VsZiIsInN1cHBvcnQiLCJCbG9iIiwiZSIsInZpZXdDbGFzc2VzIiwiaXNBcnJheUJ1ZmZlclZpZXciLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsIm9iaiIsImluZGV4T2YiLCJ0b1N0cmluZyIsIm5vcm1hbGl6ZU5hbWUiLCJTdHJpbmciLCJ0ZXN0IiwiVHlwZUVycm9yIiwidG9Mb3dlckNhc2UiLCJub3JtYWxpemVWYWx1ZSIsIml0ZXJhdG9yRm9yIiwiaXRlbXMiLCJpdGVyYXRvciIsIm5leHQiLCJzaGlmdCIsImRvbmUiLCJ1bmRlZmluZWQiLCJIZWFkZXJzIiwiaGVhZGVycyIsIm1hcCIsImZvckVhY2giLCJhcHBlbmQiLCJBcnJheSIsImlzQXJyYXkiLCJoZWFkZXIiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiY29uc3VtZWQiLCJib2R5IiwiYm9keVVzZWQiLCJQcm9taXNlIiwicmVqZWN0IiwiZmlsZVJlYWRlclJlYWR5IiwicmVhZGVyIiwicmVzb2x2ZSIsIm9ubG9hZCIsInJlc3VsdCIsIm9uZXJyb3IiLCJlcnJvciIsInJlYWRCbG9iQXNBcnJheUJ1ZmZlciIsImJsb2IiLCJGaWxlUmVhZGVyIiwicHJvbWlzZSIsInJlYWRBc0FycmF5QnVmZmVyIiwiYnVmZmVyQ2xvbmUiLCJidWYiLCJzbGljZSIsInZpZXciLCJVaW50OEFycmF5IiwiYnl0ZUxlbmd0aCIsInNldCIsImJ1ZmZlciIsIkJvZHkiLCJfaW5pdEJvZHkiLCJfYm9keUluaXQiLCJfYm9keVRleHQiLCJpc1Byb3RvdHlwZU9mIiwiX2JvZHlCbG9iIiwiRm9ybURhdGEiLCJfYm9keUZvcm1EYXRhIiwiVVJMU2VhcmNoUGFyYW1zIiwiRGF0YVZpZXciLCJfYm9keUFycmF5QnVmZmVyIiwidHlwZSIsInJlamVjdGVkIiwiRXJyb3IiLCJhcnJheUJ1ZmZlciIsInRoZW4iLCJ0ZXh0IiwicmVhZEFzVGV4dCIsImNoYXJzIiwibGVuZ3RoIiwiZnJvbUNoYXJDb2RlIiwiam9pbiIsInJlYWRBcnJheUJ1ZmZlckFzVGV4dCIsImZvcm1EYXRhIiwiZGVjb2RlIiwianNvbiIsIkpTT04iLCJwYXJzZSIsIm9sZFZhbHVlIiwiaGFzIiwiY2FsbGJhY2siLCJ0aGlzQXJnIiwia2V5cyIsInB1c2giLCJ2YWx1ZXMiLCJlbnRyaWVzIiwibWV0aG9kcyIsIlJlcXVlc3QiLCJpbnB1dCIsIm9wdGlvbnMiLCJtZXRob2QiLCJ1cGNhc2VkIiwidXJsIiwiY3JlZGVudGlhbHMiLCJzaWduYWwiLCJ0b1VwcGVyQ2FzZSIsInJlZmVycmVyIiwiZm9ybSIsInRyaW0iLCJzcGxpdCIsImJ5dGVzIiwicmVwbGFjZSIsImRlY29kZVVSSUNvbXBvbmVudCIsIlJlc3BvbnNlIiwiYm9keUluaXQiLCJzdGF0dXMiLCJvayIsInN0YXR1c1RleHQiLCJjbG9uZSIsInJlc3BvbnNlIiwicmVkaXJlY3RTdGF0dXNlcyIsInJlZGlyZWN0IiwiUmFuZ2VFcnJvciIsImxvY2F0aW9uIiwiZXJyIiwibWVzc2FnZSIsInN0YWNrIiwiY29uc3RydWN0b3IiLCJpbml0IiwicmVxdWVzdCIsImFib3J0ZWQiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsImFib3J0WGhyIiwiYWJvcnQiLCJyYXdIZWFkZXJzIiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwibGluZSIsInBhcnRzIiwicmVzcG9uc2VVUkwiLCJyZXNwb25zZVRleHQiLCJvbnRpbWVvdXQiLCJvbmFib3J0Iiwib3BlbiIsIndpdGhDcmVkZW50aWFscyIsInJlc3BvbnNlVHlwZSIsInNldFJlcXVlc3RIZWFkZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzZW5kIiwicG9seWZpbGwiLCJkZWZhdWx0IiwiZG9jdW1lbnQiLCJTZXR0aW5ncyIsIk9QVElPTlNfRk9STV9TRUxFQ1RPUiIsIkhFQURFUl9TRUxFQ1RPUiIsIlRBQkxFX1NFTEVDVE9SIiwiU1VCTUlUX1NFTEVDVE9SIiwiQ09OVkVSVF9GT1JNX1NFTEVDVE9SIiwiQ09OVkVSVF9CVVRUT05fU0VMRUNUT1IiLCJDT05GSVJNX1BPUFVQX1NFTEVDVE9SIiwiQ09ORklSTV9PS19TRUxFQ1RPUiIsIkNPTkZJUk1fQ0FOQ0VMX1NFTEVDVE9SIiwiQ1VSUkVOVF9TVFVCX0lEIiwiQ1VSUkVOVF9OQVZfVEFCX0NMQVNTIiwiQUNUSVZFX05BVl9UQUJfQ0xBU1MiLCJBQ1RJVkVfVEFCTEVfQ0xBU1MiLCJFRElUX0xBQkVMX0lEIiwiRURJVF9MQUJFTF9FUlJPUl9DTEFTUyIsInBsdXNCdXR0b24iLCJQTFVTX0NMQVNTIiwib3B0aW9uc0Zvcm0iLCJxdWVyeVNlbGVjdG9yIiwidGFibGVzRGF0YSIsImdldFRhYmxlc0RhdGEiLCJzdWJtaXRCdXR0b24iLCJjb25maXJtUG9wdXAiLCJvcHRpb25zU2F2ZVN1Y2Nlc3NNZXNzYWdlIiwiQ3lyMkxhdFNldHRpbmdzT2JqZWN0Iiwib3B0aW9uc1NhdmVFcnJvck1lc3NhZ2UiLCJhZGRXcmFwcGVyIiwiYWRkTWVzc2FnZUxpbmVzIiwiYWRkRWRpdExhYmVsSW5wdXQiLCJoaWRlVGFibGVzIiwiYmluZEV2ZW50cyIsInNldFN1Ym1pdFN0YXR1cyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJnZXRBY3RpdmVIZWFkZXIiLCJkYXRhc2V0IiwiaW5kZXgiLCJhY3RpdmVJbmRleCIsImdldEFjdGl2ZUluZGV4Iiwic3RyaW5naWZ5IiwiZ2V0QWN0aXZlVGFibGVEYXRhIiwiZGlzYWJsZWQiLCJpc0FjdGl2ZVRhYmxlQ2hhbmdlZCIsImFjdGl2ZVRhYmxlIiwiZ2V0QWN0aXZlVGFibGUiLCJhY3RpdmVGb3JtIiwiY3JlYXRlRWxlbWVudCIsImFjdGlvbiIsImdldEF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwiYWN0aXZlSW5wdXRzIiwiaWQiLCJoaWRkZW5JbnB1dHMiLCJzaG93TWVzc2FnZSIsInN1Y2Nlc3NNZXNzYWdlIiwiZXJyb3JNZXNzYWdlIiwiZmluYWxseSIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInRhYmxlIiwiaW5wdXRzIiwiZGF0YSIsImxhYmVsIiwiaW5uZXJIVE1MIiwiZ2V0VGFibGVzIiwiZ2V0VGFibGVEYXRhIiwid3JhcHBlciIsImNsYXNzTGlzdCIsImFkZCIsImluc2VydEJlZm9yZSIsImZpcnN0Q2hpbGQiLCJhZGRNZXNzYWdlTGluZSIsImVkaXRMYWJlbElucHV0Iiwic3R5bGUiLCJkaXNwbGF5IiwicmVtb3ZlIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImxhc3RDZWxsIiwiZ2V0TGFzdENlbGwiLCJwYXJlbnRFbGVtZW50IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaWRBcnIiLCJuZXdJZCIsInBhcnNlSW50IiwiaHRtbEZvciIsInNldEF0dHJpYnV0ZSIsInJlcGxhY2VOYW1lIiwiZWRpdExhYmVsIiwiY3VycmVudEluZGV4IiwicGx1cyIsImdldEhlYWRlcnMiLCJvbmNsaWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsInNhdmVBY3RpdmVUYWJsZSIsImFIZWFkZXIiLCJ0YWJsZXMiLCJnZXRJbnB1dHMiLCJvbmlucHV0IiwiZ2V0TGFiZWxzIiwib25ibHVyIiwic2F2ZUxhYmVsIiwib25rZXl1cCIsImdldFBsdXNCdXR0b25zIiwiYWRkQ2VsbCIsImhpZGVDb25maXJtUG9wdXAiLCJzdG9wUHJvcGFnYXRpb24iLCJzdWJtaXQiLCJmb2N1cyIsIm5ld1ZhbHVlIiwicmVkdWNlIiwiYWNjIiwiY2FuY2VsIiwiZWRpdGVkQ2VsbCIsImdldEVsZW1lbnRCeUlkIiwiaGlkZUVkaXRMYWJlbElucHV0IiwiaXNVbmlxdWVMYWJlbCIsImNsZWFyTWVzc2FnZSIsImNsZWFyVGltZW91dCIsIm1zZ1RpbWVyIiwiZWwiLCJzZXRUaW1lb3V0IiwiY2xlYXJNZXNzYWdlcyJdLCJtYXBwaW5ncyI6ImFBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVBR0pGLEVBQU9ELFFBS2ZGLEVBQW9CUSxFQUFJRixFQUd4Qk4sRUFBb0JTLEVBQUlWLEVBR3hCQyxFQUFvQlUsRUFBSSxTQUFTUixFQUFTUyxFQUFNQyxHQUMzQ1osRUFBb0JhLEVBQUVYLEVBQVNTLElBQ2xDRyxPQUFPQyxlQUFlYixFQUFTUyxFQUFNLENBQUVLLFlBQVksRUFBTUMsSUFBS0wsS0FLaEVaLEVBQW9Ca0IsRUFBSSxTQUFTaEIsR0FDWCxvQkFBWGlCLFFBQTBCQSxPQUFPQyxhQUMxQ04sT0FBT0MsZUFBZWIsRUFBU2lCLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RFAsT0FBT0MsZUFBZWIsRUFBUyxhQUFjLENBQUVtQixPQUFPLEtBUXZEckIsRUFBb0JzQixFQUFJLFNBQVNELEVBQU9FLEdBRXZDLEdBRFUsRUFBUEEsSUFBVUYsRUFBUXJCLEVBQW9CcUIsSUFDL0IsRUFBUEUsRUFBVSxPQUFPRixFQUNwQixHQUFXLEVBQVBFLEdBQThCLGlCQUFWRixHQUFzQkEsR0FBU0EsRUFBTUcsV0FBWSxPQUFPSCxFQUNoRixJQUFJSSxFQUFLWCxPQUFPWSxPQUFPLE1BR3ZCLEdBRkExQixFQUFvQmtCLEVBQUVPLEdBQ3RCWCxPQUFPQyxlQUFlVSxFQUFJLFVBQVcsQ0FBRVQsWUFBWSxFQUFNSyxNQUFPQSxJQUN0RCxFQUFQRSxHQUE0QixpQkFBVEYsRUFBbUIsSUFBSSxJQUFJTSxLQUFPTixFQUFPckIsRUFBb0JVLEVBQUVlLEVBQUlFLEVBQUssU0FBU0EsR0FBTyxPQUFPTixFQUFNTSxJQUFRQyxLQUFLLEtBQU1ELElBQzlJLE9BQU9GLEdBSVJ6QixFQUFvQjZCLEVBQUksU0FBUzFCLEdBQ2hDLElBQUlTLEVBQVNULEdBQVVBLEVBQU9xQixXQUM3QixXQUF3QixPQUFPckIsRUFBZ0IsU0FDL0MsV0FBOEIsT0FBT0EsR0FFdEMsT0FEQUgsRUFBb0JVLEVBQUVFLEVBQVEsSUFBS0EsR0FDNUJBLEdBSVJaLEVBQW9CYSxFQUFJLFNBQVNpQixFQUFRQyxHQUFZLE9BQU9qQixPQUFPa0IsVUFBVUMsZUFBZTFCLEtBQUt1QixFQUFRQyxJQUd6Ry9CLEVBQW9Ca0MsRUFBSSxHQUlqQmxDLEVBQW9CQSxFQUFvQm1DLEVBQUksRyxxRENsRnJELElBQUlDLEVBQVcsU0FBV0MsR0FDMUIsU0FBU0MsSUFDVEMsS0FBS0MsT0FBUSxFQUNiRCxLQUFLRSxhQUFlSixFQUFLSSxhQUd6QixPQURBSCxFQUFFTixVQUFZSyxFQUNQLElBQUlDLEVBTkksQ0FPSSxvQkFBVEksS0FBdUJBLEtBQU9ILE9BQ3hDLFNBQVVHLElBRVEsU0FBVXhDLEdBRTFCLElBQUl5QyxFQUNZLG9CQUFxQkQsRUFEakNDLEVBRVEsV0FBWUQsR0FBUSxhQUFjdkIsT0FGMUN3QixFQUlBLGVBQWdCRCxHQUNoQixTQUFVQSxHQUNWLFdBQ0UsSUFFRSxPQURBLElBQUlFLE1BQ0csRUFDUCxNQUFPQyxHQUNQLE9BQU8sR0FMWCxHQU5BRixFQWNRLGFBQWNELEVBZHRCQyxFQWVXLGdCQUFpQkQsRUFPaEMsR0FBSUMsRUFDRixJQUFJRyxFQUFjLENBQ2hCLHFCQUNBLHNCQUNBLDZCQUNBLHNCQUNBLHVCQUNBLHNCQUNBLHVCQUNBLHdCQUNBLHlCQUdFQyxFQUNGQyxZQUFZQyxRQUNaLFNBQVNDLEdBQ1AsT0FBT0EsR0FBT0osRUFBWUssUUFBUXJDLE9BQU9rQixVQUFVb0IsU0FBUzdDLEtBQUsyQyxLQUFTLEdBSWhGLFNBQVNHLEVBQWMxQyxHQUlyQixHQUhvQixpQkFBVEEsSUFDVEEsRUFBTzJDLE9BQU8zQyxJQUVaLDRCQUE0QjRDLEtBQUs1QyxHQUNuQyxNQUFNLElBQUk2QyxVQUFVLDBDQUV0QixPQUFPN0MsRUFBSzhDLGNBR2QsU0FBU0MsRUFBZXJDLEdBSXRCLE1BSHFCLGlCQUFWQSxJQUNUQSxFQUFRaUMsT0FBT2pDLElBRVZBLEVBSVQsU0FBU3NDLEVBQVlDLEdBQ25CLElBQUlDLEVBQVcsQ0FDYkMsS0FBTSxXQUNKLElBQUl6QyxFQUFRdUMsRUFBTUcsUUFDbEIsTUFBTyxDQUFDQyxVQUFnQkMsSUFBVjVDLEVBQXFCQSxNQUFPQSxLQVU5QyxPQU5Jc0IsSUFDRmtCLEVBQVMxQyxPQUFPMEMsVUFBWSxXQUMxQixPQUFPQSxJQUlKQSxFQUdULFNBQVNLLEVBQVFDLEdBQ2Y1QixLQUFLNkIsSUFBTSxHQUVQRCxhQUFtQkQsRUFDckJDLEVBQVFFLFNBQVEsU0FBU2hELEVBQU9WLEdBQzlCNEIsS0FBSytCLE9BQU8zRCxFQUFNVSxLQUNqQmtCLE1BQ01nQyxNQUFNQyxRQUFRTCxHQUN2QkEsRUFBUUUsU0FBUSxTQUFTSSxHQUN2QmxDLEtBQUsrQixPQUFPRyxFQUFPLEdBQUlBLEVBQU8sTUFDN0JsQyxNQUNNNEIsR0FDVHJELE9BQU80RCxvQkFBb0JQLEdBQVNFLFNBQVEsU0FBUzFELEdBQ25ENEIsS0FBSytCLE9BQU8zRCxFQUFNd0QsRUFBUXhELE1BQ3pCNEIsTUFnRVAsU0FBU29DLEVBQVNDLEdBQ2hCLEdBQUlBLEVBQUtDLFNBQ1AsT0FBT0MsUUFBUUMsT0FBTyxJQUFJdkIsVUFBVSxpQkFFdENvQixFQUFLQyxVQUFXLEVBR2xCLFNBQVNHLEVBQWdCQyxHQUN2QixPQUFPLElBQUlILFNBQVEsU0FBU0ksRUFBU0gsR0FDbkNFLEVBQU9FLE9BQVMsV0FDZEQsRUFBUUQsRUFBT0csU0FFakJILEVBQU9JLFFBQVUsV0FDZk4sRUFBT0UsRUFBT0ssV0FLcEIsU0FBU0MsRUFBc0JDLEdBQzdCLElBQUlQLEVBQVMsSUFBSVEsV0FDYkMsRUFBVVYsRUFBZ0JDLEdBRTlCLE9BREFBLEVBQU9VLGtCQUFrQkgsR0FDbEJFLEVBb0JULFNBQVNFLEVBQVlDLEdBQ25CLEdBQUlBLEVBQUlDLE1BQ04sT0FBT0QsRUFBSUMsTUFBTSxHQUVqQixJQUFJQyxFQUFPLElBQUlDLFdBQVdILEVBQUlJLFlBRTlCLE9BREFGLEVBQUtHLElBQUksSUFBSUYsV0FBV0gsSUFDakJFLEVBQUtJLE9BSWhCLFNBQVNDLElBMEZQLE9BekZBN0QsS0FBS3NDLFVBQVcsRUFFaEJ0QyxLQUFLOEQsVUFBWSxTQUFTekIsR0FoTTVCLElBQW9CMUIsRUFpTWhCWCxLQUFLK0QsVUFBWTFCLEVBQ1pBLEVBRXNCLGlCQUFUQSxFQUNoQnJDLEtBQUtnRSxVQUFZM0IsRUFDUmpDLEdBQWdCQyxLQUFLWixVQUFVd0UsY0FBYzVCLEdBQ3REckMsS0FBS2tFLFVBQVk3QixFQUNSakMsR0FBb0IrRCxTQUFTMUUsVUFBVXdFLGNBQWM1QixHQUM5RHJDLEtBQUtvRSxjQUFnQi9CLEVBQ1pqQyxHQUF3QmlFLGdCQUFnQjVFLFVBQVV3RSxjQUFjNUIsR0FDekVyQyxLQUFLZ0UsVUFBWTNCLEVBQUt4QixXQUNiVCxHQUF1QkEsS0E1TWxCTyxFQTRNNkMwQixJQTNNakRpQyxTQUFTN0UsVUFBVXdFLGNBQWN0RCxLQTRNM0NYLEtBQUt1RSxpQkFBbUJsQixFQUFZaEIsRUFBS3VCLFFBRXpDNUQsS0FBSytELFVBQVksSUFBSTFELEtBQUssQ0FBQ0wsS0FBS3VFLG9CQUN2Qm5FLElBQXdCSyxZQUFZaEIsVUFBVXdFLGNBQWM1QixJQUFTN0IsRUFBa0I2QixJQUNoR3JDLEtBQUt1RSxpQkFBbUJsQixFQUFZaEIsR0FFcENyQyxLQUFLZ0UsVUFBWTNCLEVBQU85RCxPQUFPa0IsVUFBVW9CLFNBQVM3QyxLQUFLcUUsR0FoQnZEckMsS0FBS2dFLFVBQVksR0FtQmRoRSxLQUFLNEIsUUFBUWxELElBQUksa0JBQ0EsaUJBQVQyRCxFQUNUckMsS0FBSzRCLFFBQVErQixJQUFJLGVBQWdCLDRCQUN4QjNELEtBQUtrRSxXQUFhbEUsS0FBS2tFLFVBQVVNLEtBQzFDeEUsS0FBSzRCLFFBQVErQixJQUFJLGVBQWdCM0QsS0FBS2tFLFVBQVVNLE1BQ3ZDcEUsR0FBd0JpRSxnQkFBZ0I1RSxVQUFVd0UsY0FBYzVCLElBQ3pFckMsS0FBSzRCLFFBQVErQixJQUFJLGVBQWdCLHFEQUtuQ3ZELElBQ0ZKLEtBQUtpRCxLQUFPLFdBQ1YsSUFBSXdCLEVBQVdyQyxFQUFTcEMsTUFDeEIsR0FBSXlFLEVBQ0YsT0FBT0EsRUFHVCxHQUFJekUsS0FBS2tFLFVBQ1AsT0FBTzNCLFFBQVFJLFFBQVEzQyxLQUFLa0UsV0FDdkIsR0FBSWxFLEtBQUt1RSxpQkFDZCxPQUFPaEMsUUFBUUksUUFBUSxJQUFJdEMsS0FBSyxDQUFDTCxLQUFLdUUsb0JBQ2pDLEdBQUl2RSxLQUFLb0UsY0FDZCxNQUFNLElBQUlNLE1BQU0sd0NBRWhCLE9BQU9uQyxRQUFRSSxRQUFRLElBQUl0QyxLQUFLLENBQUNMLEtBQUtnRSxjQUkxQ2hFLEtBQUsyRSxZQUFjLFdBQ2pCLE9BQUkzRSxLQUFLdUUsaUJBQ0FuQyxFQUFTcEMsT0FBU3VDLFFBQVFJLFFBQVEzQyxLQUFLdUUsa0JBRXZDdkUsS0FBS2lELE9BQU8yQixLQUFLNUIsS0FLOUJoRCxLQUFLNkUsS0FBTyxXQUNWLElBM0ZvQjVCLEVBQ2xCUCxFQUNBUyxFQXlGRXNCLEVBQVdyQyxFQUFTcEMsTUFDeEIsR0FBSXlFLEVBQ0YsT0FBT0EsRUFHVCxHQUFJekUsS0FBS2tFLFVBQ1AsT0FqR2tCakIsRUFpR0lqRCxLQUFLa0UsVUFoRzNCeEIsRUFBUyxJQUFJUSxXQUNiQyxFQUFVVixFQUFnQkMsR0FDOUJBLEVBQU9vQyxXQUFXN0IsR0FDWEUsRUE4RkUsR0FBSW5ELEtBQUt1RSxpQkFDZCxPQUFPaEMsUUFBUUksUUE1RnJCLFNBQStCVyxHQUk3QixJQUhBLElBQUlFLEVBQU8sSUFBSUMsV0FBV0gsR0FDdEJ5QixFQUFRLElBQUkvQyxNQUFNd0IsRUFBS3dCLFFBRWxCbkgsRUFBSSxFQUFHQSxFQUFJMkYsRUFBS3dCLE9BQVFuSCxJQUMvQmtILEVBQU1sSCxHQUFLa0QsT0FBT2tFLGFBQWF6QixFQUFLM0YsSUFFdEMsT0FBT2tILEVBQU1HLEtBQUssSUFxRlNDLENBQXNCbkYsS0FBS3VFLG1CQUM3QyxHQUFJdkUsS0FBS29FLGNBQ2QsTUFBTSxJQUFJTSxNQUFNLHdDQUVoQixPQUFPbkMsUUFBUUksUUFBUTNDLEtBQUtnRSxZQUk1QjVELElBQ0ZKLEtBQUtvRixTQUFXLFdBQ2QsT0FBT3BGLEtBQUs2RSxPQUFPRCxLQUFLUyxLQUk1QnJGLEtBQUtzRixLQUFPLFdBQ1YsT0FBT3RGLEtBQUs2RSxPQUFPRCxLQUFLVyxLQUFLQyxRQUd4QnhGLEtBMU1UMkIsRUFBUWxDLFVBQVVzQyxPQUFTLFNBQVMzRCxFQUFNVSxHQUN4Q1YsRUFBTzBDLEVBQWMxQyxHQUNyQlUsRUFBUXFDLEVBQWVyQyxHQUN2QixJQUFJMkcsRUFBV3pGLEtBQUs2QixJQUFJekQsR0FDeEI0QixLQUFLNkIsSUFBSXpELEdBQVFxSCxFQUFXQSxFQUFXLEtBQU8zRyxFQUFRQSxHQUd4RDZDLEVBQVFsQyxVQUFrQixPQUFJLFNBQVNyQixVQUM5QjRCLEtBQUs2QixJQUFJZixFQUFjMUMsS0FHaEN1RCxFQUFRbEMsVUFBVWYsSUFBTSxTQUFTTixHQUUvQixPQURBQSxFQUFPMEMsRUFBYzFDLEdBQ2Q0QixLQUFLMEYsSUFBSXRILEdBQVE0QixLQUFLNkIsSUFBSXpELEdBQVEsTUFHM0N1RCxFQUFRbEMsVUFBVWlHLElBQU0sU0FBU3RILEdBQy9CLE9BQU80QixLQUFLNkIsSUFBSW5DLGVBQWVvQixFQUFjMUMsS0FHL0N1RCxFQUFRbEMsVUFBVWtFLElBQU0sU0FBU3ZGLEVBQU1VLEdBQ3JDa0IsS0FBSzZCLElBQUlmLEVBQWMxQyxJQUFTK0MsRUFBZXJDLElBR2pENkMsRUFBUWxDLFVBQVVxQyxRQUFVLFNBQVM2RCxFQUFVQyxHQUM3QyxJQUFLLElBQUl4SCxLQUFRNEIsS0FBSzZCLElBQ2hCN0IsS0FBSzZCLElBQUluQyxlQUFldEIsSUFDMUJ1SCxFQUFTM0gsS0FBSzRILEVBQVM1RixLQUFLNkIsSUFBSXpELEdBQU9BLEVBQU00QixPQUtuRDJCLEVBQVFsQyxVQUFVb0csS0FBTyxXQUN2QixJQUFJeEUsRUFBUSxHQUlaLE9BSEFyQixLQUFLOEIsU0FBUSxTQUFTaEQsRUFBT1YsR0FDM0JpRCxFQUFNeUUsS0FBSzFILE1BRU5nRCxFQUFZQyxJQUdyQk0sRUFBUWxDLFVBQVVzRyxPQUFTLFdBQ3pCLElBQUkxRSxFQUFRLEdBSVosT0FIQXJCLEtBQUs4QixTQUFRLFNBQVNoRCxHQUNwQnVDLEVBQU15RSxLQUFLaEgsTUFFTnNDLEVBQVlDLElBR3JCTSxFQUFRbEMsVUFBVXVHLFFBQVUsV0FDMUIsSUFBSTNFLEVBQVEsR0FJWixPQUhBckIsS0FBSzhCLFNBQVEsU0FBU2hELEVBQU9WLEdBQzNCaUQsRUFBTXlFLEtBQUssQ0FBQzFILEVBQU1VLE9BRWJzQyxFQUFZQyxJQUdqQmpCLElBQ0Z1QixFQUFRbEMsVUFBVWIsT0FBTzBDLFVBQVlLLEVBQVFsQyxVQUFVdUcsU0FxSnpELElBQUlDLEVBQVUsQ0FBQyxTQUFVLE1BQU8sT0FBUSxVQUFXLE9BQVEsT0FPM0QsU0FBU0MsRUFBUUMsRUFBT0MsR0FFdEIsSUFQdUJDLEVBQ25CQyxFQU1BakUsR0FESitELEVBQVVBLEdBQVcsSUFDRi9ELEtBRW5CLEdBQUk4RCxhQUFpQkQsRUFBUyxDQUM1QixHQUFJQyxFQUFNN0QsU0FDUixNQUFNLElBQUlyQixVQUFVLGdCQUV0QmpCLEtBQUt1RyxJQUFNSixFQUFNSSxJQUNqQnZHLEtBQUt3RyxZQUFjTCxFQUFNSyxZQUNwQkosRUFBUXhFLFVBQ1g1QixLQUFLNEIsUUFBVSxJQUFJRCxFQUFRd0UsRUFBTXZFLFVBRW5DNUIsS0FBS3FHLE9BQVNGLEVBQU1FLE9BQ3BCckcsS0FBS2hCLEtBQU9tSCxFQUFNbkgsS0FDbEJnQixLQUFLeUcsT0FBU04sRUFBTU0sT0FDZnBFLEdBQTJCLE1BQW5COEQsRUFBTXBDLFlBQ2pCMUIsRUFBTzhELEVBQU1wQyxVQUNib0MsRUFBTTdELFVBQVcsUUFHbkJ0QyxLQUFLdUcsSUFBTXhGLE9BQU9vRixHQVlwQixHQVRBbkcsS0FBS3dHLFlBQWNKLEVBQVFJLGFBQWV4RyxLQUFLd0csYUFBZSxlQUMxREosRUFBUXhFLFNBQVk1QixLQUFLNEIsVUFDM0I1QixLQUFLNEIsUUFBVSxJQUFJRCxFQUFReUUsRUFBUXhFLFVBRXJDNUIsS0FBS3FHLFFBakNrQkEsRUFpQ09ELEVBQVFDLFFBQVVyRyxLQUFLcUcsUUFBVSxNQWhDM0RDLEVBQVVELEVBQU9LLGNBQ2RULEVBQVFyRixRQUFRMEYsSUFBWSxFQUFJQSxFQUFVRCxHQWdDakRyRyxLQUFLaEIsS0FBT29ILEVBQVFwSCxNQUFRZ0IsS0FBS2hCLE1BQVEsS0FDekNnQixLQUFLeUcsT0FBU0wsRUFBUUssUUFBVXpHLEtBQUt5RyxPQUNyQ3pHLEtBQUsyRyxTQUFXLE1BRUssUUFBaEIzRyxLQUFLcUcsUUFBb0MsU0FBaEJyRyxLQUFLcUcsU0FBc0JoRSxFQUN2RCxNQUFNLElBQUlwQixVQUFVLDZDQUV0QmpCLEtBQUs4RCxVQUFVekIsR0FPakIsU0FBU2dELEVBQU9oRCxHQUNkLElBQUl1RSxFQUFPLElBQUl6QyxTQVlmLE9BWEE5QixFQUNHd0UsT0FDQUMsTUFBTSxLQUNOaEYsU0FBUSxTQUFTaUYsR0FDaEIsR0FBSUEsRUFBTyxDQUNULElBQUlELEVBQVFDLEVBQU1ELE1BQU0sS0FDcEIxSSxFQUFPMEksRUFBTXRGLFFBQVF3RixRQUFRLE1BQU8sS0FDcENsSSxFQUFRZ0ksRUFBTTVCLEtBQUssS0FBSzhCLFFBQVEsTUFBTyxLQUMzQ0osRUFBSzdFLE9BQU9rRixtQkFBbUI3SSxHQUFPNkksbUJBQW1CbkksUUFHeEQ4SCxFQXFCVCxTQUFTTSxFQUFTQyxFQUFVZixHQUNyQkEsSUFDSEEsRUFBVSxJQUdacEcsS0FBS3dFLEtBQU8sVUFDWnhFLEtBQUtvSCxZQUE0QjFGLElBQW5CMEUsRUFBUWdCLE9BQXVCLElBQU1oQixFQUFRZ0IsT0FDM0RwSCxLQUFLcUgsR0FBS3JILEtBQUtvSCxRQUFVLEtBQU9wSCxLQUFLb0gsT0FBUyxJQUM5Q3BILEtBQUtzSCxXQUFhLGVBQWdCbEIsRUFBVUEsRUFBUWtCLFdBQWEsS0FDakV0SCxLQUFLNEIsUUFBVSxJQUFJRCxFQUFReUUsRUFBUXhFLFNBQ25DNUIsS0FBS3VHLElBQU1ILEVBQVFHLEtBQU8sR0FDMUJ2RyxLQUFLOEQsVUFBVXFELEdBakRqQmpCLEVBQVF6RyxVQUFVOEgsTUFBUSxXQUN4QixPQUFPLElBQUlyQixFQUFRbEcsS0FBTSxDQUFDcUMsS0FBTXJDLEtBQUsrRCxhQW1DdkNGLEVBQUs3RixLQUFLa0ksRUFBUXpHLFdBZ0JsQm9FLEVBQUs3RixLQUFLa0osRUFBU3pILFdBRW5CeUgsRUFBU3pILFVBQVU4SCxNQUFRLFdBQ3pCLE9BQU8sSUFBSUwsRUFBU2xILEtBQUsrRCxVQUFXLENBQ2xDcUQsT0FBUXBILEtBQUtvSCxPQUNiRSxXQUFZdEgsS0FBS3NILFdBQ2pCMUYsUUFBUyxJQUFJRCxFQUFRM0IsS0FBSzRCLFNBQzFCMkUsSUFBS3ZHLEtBQUt1RyxPQUlkVyxFQUFTbkUsTUFBUSxXQUNmLElBQUl5RSxFQUFXLElBQUlOLEVBQVMsS0FBTSxDQUFDRSxPQUFRLEVBQUdFLFdBQVksS0FFMUQsT0FEQUUsRUFBU2hELEtBQU8sUUFDVGdELEdBR1QsSUFBSUMsRUFBbUIsQ0FBQyxJQUFLLElBQUssSUFBSyxJQUFLLEtBRTVDUCxFQUFTUSxTQUFXLFNBQVNuQixFQUFLYSxHQUNoQyxJQUEwQyxJQUF0Q0ssRUFBaUI3RyxRQUFRd0csR0FDM0IsTUFBTSxJQUFJTyxXQUFXLHVCQUd2QixPQUFPLElBQUlULEVBQVMsS0FBTSxDQUFDRSxPQUFRQSxFQUFReEYsUUFBUyxDQUFDZ0csU0FBVXJCLE1BR2pFNUksRUFBUXVDLGFBQWVDLEVBQUtELGFBQzVCLElBQ0UsSUFBSXZDLEVBQVF1QyxhQUNaLE1BQU8ySCxHQUNQbEssRUFBUXVDLGFBQWUsU0FBUzRILEVBQVMxSixHQUN2QzRCLEtBQUs4SCxRQUFVQSxFQUNmOUgsS0FBSzVCLEtBQU9BLEVBQ1osSUFBSTJFLEVBQVEyQixNQUFNb0QsR0FDbEI5SCxLQUFLK0gsTUFBUWhGLEVBQU1nRixPQUVyQnBLLEVBQVF1QyxhQUFhVCxVQUFZbEIsT0FBT1ksT0FBT3VGLE1BQU1qRixXQUNyRDlCLEVBQVF1QyxhQUFhVCxVQUFVdUksWUFBY3JLLEVBQVF1QyxhQUd2RCxTQUFTRCxFQUFNa0csRUFBTzhCLEdBQ3BCLE9BQU8sSUFBSTFGLFNBQVEsU0FBU0ksRUFBU0gsR0FDbkMsSUFBSTBGLEVBQVUsSUFBSWhDLEVBQVFDLEVBQU84QixHQUVqQyxHQUFJQyxFQUFRekIsUUFBVXlCLEVBQVF6QixPQUFPMEIsUUFDbkMsT0FBTzNGLEVBQU8sSUFBSTdFLEVBQVF1QyxhQUFhLFVBQVcsZUFHcEQsSUFBSWtJLEVBQU0sSUFBSUMsZUFFZCxTQUFTQyxJQUNQRixFQUFJRyxRQUdOSCxFQUFJeEYsT0FBUyxXQUNYLElBeEZnQjRGLEVBQ2hCNUcsRUF1Rkl3RSxFQUFVLENBQ1pnQixPQUFRZ0IsRUFBSWhCLE9BQ1pFLFdBQVljLEVBQUlkLFdBQ2hCMUYsU0EzRmM0RyxFQTJGUUosRUFBSUsseUJBQTJCLEdBMUZ2RDdHLEVBQVUsSUFBSUQsRUFHUTZHLEVBQVd4QixRQUFRLGVBQWdCLEtBQ3pDRixNQUFNLFNBQVNoRixTQUFRLFNBQVM0RyxHQUNsRCxJQUFJQyxFQUFRRCxFQUFLNUIsTUFBTSxLQUNuQjFILEVBQU11SixFQUFNbkgsUUFBUXFGLE9BQ3hCLEdBQUl6SCxFQUFLLENBQ1AsSUFBSU4sRUFBUTZKLEVBQU16RCxLQUFLLEtBQUsyQixPQUM1QmpGLEVBQVFHLE9BQU8zQyxFQUFLTixPQUdqQjhDLElBZ0ZId0UsRUFBUUcsSUFBTSxnQkFBaUI2QixFQUFNQSxFQUFJUSxZQUFjeEMsRUFBUXhFLFFBQVFsRCxJQUFJLGlCQUMzRSxJQUFJMkQsRUFBTyxhQUFjK0YsRUFBTUEsRUFBSVosU0FBV1ksRUFBSVMsYUFDbERsRyxFQUFRLElBQUl1RSxFQUFTN0UsRUFBTStELEtBRzdCZ0MsRUFBSXRGLFFBQVUsV0FDWk4sRUFBTyxJQUFJdkIsVUFBVSw0QkFHdkJtSCxFQUFJVSxVQUFZLFdBQ2R0RyxFQUFPLElBQUl2QixVQUFVLDRCQUd2Qm1ILEVBQUlXLFFBQVUsV0FDWnZHLEVBQU8sSUFBSTdFLEVBQVF1QyxhQUFhLFVBQVcsZ0JBRzdDa0ksRUFBSVksS0FBS2QsRUFBUTdCLE9BQVE2QixFQUFRM0IsS0FBSyxHQUVWLFlBQXhCMkIsRUFBUTFCLFlBQ1Y0QixFQUFJYSxpQkFBa0IsRUFDVyxTQUF4QmYsRUFBUTFCLGNBQ2pCNEIsRUFBSWEsaUJBQWtCLEdBR3BCLGlCQUFrQmIsR0FBT2hJLElBQzNCZ0ksRUFBSWMsYUFBZSxRQUdyQmhCLEVBQVF0RyxRQUFRRSxTQUFRLFNBQVNoRCxFQUFPVixHQUN0Q2dLLEVBQUllLGlCQUFpQi9LLEVBQU1VLE1BR3pCb0osRUFBUXpCLFNBQ1Z5QixFQUFRekIsT0FBTzJDLGlCQUFpQixRQUFTZCxHQUV6Q0YsRUFBSWlCLG1CQUFxQixXQUVBLElBQW5CakIsRUFBSWtCLFlBQ05wQixFQUFRekIsT0FBTzhDLG9CQUFvQixRQUFTakIsS0FLbERGLEVBQUlvQixVQUFrQyxJQUF0QnRCLEVBQVFuRSxVQUE0QixLQUFPbUUsRUFBUW5FLGNBSXZFOUQsRUFBTXdKLFVBQVcsRUFFWnRKLEVBQUtGLFFBQ1JFLEVBQUtGLE1BQVFBLEVBQ2JFLEVBQUt3QixRQUFVQSxFQUNmeEIsRUFBSytGLFFBQVVBLEVBQ2YvRixFQUFLK0csU0FBV0EsR0FHbEJ2SixFQUFRZ0UsUUFBVUEsRUFDbEJoRSxFQUFRdUksUUFBVUEsRUFDbEJ2SSxFQUFRdUosU0FBV0EsRUFDbkJ2SixFQUFRc0MsTUFBUUEsRUExZ0JELENBOGdCZixJQWhoQkYsQ0FpaEJHSixVQUNJQSxFQUFTSSxNQUFNd0osVUFDdEI5TCxFQUFVa0MsRUFBU0ksT0FDWHlKLFFBQVU3SixFQUFTSSxNQUMzQnRDLEVBQVFzQyxNQUFRSixFQUFTSSxNQUN6QnRDLEVBQVFnRSxRQUFVOUIsRUFBUzhCLFFBQzNCaEUsRUFBUXVJLFFBQVVyRyxFQUFTcUcsUUFDM0J2SSxFQUFRdUosU0FBV3JILEVBQVNxSCxTQUM1QnRKLEVBQU9ELFFBQVVBLEcsNkJDOWhCakIsSSxFQUFBLE8sb0NBRUFnTSxTQUFTUCxpQkFBa0Isb0JBQW9CLFdBQzlDLElBQUlRLGMsbWNDQUNBLEUsV0FJTCxjLDRGQUFjLFNBQ2I1SixLQUFLNkosc0JBQXdCLGVBQzdCN0osS0FBSzhKLGdCQUFrQjlKLEtBQUs2SixzQkFBd0IsTUFDcEQ3SixLQUFLK0osZUFBaUIvSixLQUFLNkosc0JBQXdCLFNBQ25EN0osS0FBS2dLLGdCQUFrQmhLLEtBQUs2SixzQkFBd0IsV0FDcEQ3SixLQUFLaUssc0JBQXdCLDhCQUM3QmpLLEtBQUtrSyx3QkFBMEIsc0JBQy9CbEssS0FBS21LLHVCQUF5QixxQkFDOUJuSyxLQUFLb0ssb0JBQXNCLGtCQUMzQnBLLEtBQUtxSyx3QkFBMEIsc0JBQy9CckssS0FBS3NLLGdCQUFrQixjQUN2QnRLLEtBQUt1SyxzQkFBd0Isa0JBQzdCdkssS0FBS3dLLHFCQUF1QixpQkFDNUJ4SyxLQUFLeUssbUJBQXFCLFNBQzFCekssS0FBSzBLLGNBQWdCLGlCQUNyQjFLLEtBQUsySyx1QkFBeUIsdUJBQzlCM0ssS0FBSzRLLFdBQ0osc2tCQU1ENUssS0FBSzZLLFdBQWEsV0FFbEI3SyxLQUFLOEssWUFBY25CLFNBQVNvQixjQUFlL0ssS0FBSzZKLHVCQUNoRDdKLEtBQUtnTCxXQUFhaEwsS0FBS2lMLGdCQUN2QmpMLEtBQUtrTCxhQUFldkIsU0FBU29CLGNBQWUvSyxLQUFLZ0ssaUJBQ2pEaEssS0FBS21MLGFBQWV4QixTQUFTb0IsY0FDNUIvSyxLQUFLbUssd0JBSU5uSyxLQUFLb0wsMEJBQ0pDLHNCQUFzQkQsMEJBQ3ZCcEwsS0FBS3NMLHdCQUNKRCxzQkFBc0JDLHdCQUV2QnRMLEtBQUt1TCxhQUNMdkwsS0FBS3dMLGtCQUNMeEwsS0FBS3lMLG9CQUNMekwsS0FBSzBMLGFBQ0wxTCxLQUFLMkwsYUFDTDNMLEtBQUs0TCxrQiwrQ0FTTCxrQkFBWWpDLFNBQVNrQyxpQkFBa0I3TCxLQUFLOEoscUIsd0NBUzVDLE9BQU9ILFNBQVNvQixjQUNmL0ssS0FBSzhKLGdCQUFrQixJQUFNOUosS0FBS3dLLHdCLHVDQVVuQyxPQUFPeEssS0FBSzhMLGtCQUFrQkMsUUFBUUMsUSxrQ0FTdEMsa0JBQVlyQyxTQUFTa0MsaUJBQWtCN0wsS0FBSytKLG9CLHVDQVM1QyxPQUFPSixTQUFTb0IsY0FDZi9LLEtBQUsrSixlQUFpQixJQUFNL0osS0FBS3lLLHNCLGtDQVVsQyxrQkFDSWQsU0FBU2tDLGlCQUNYN0wsS0FBSzZKLHNCQUF3QixjLGtDQVcvQixrQkFDSUYsU0FBU2tDLGlCQUNYN0wsS0FBSzZKLHNCQUF3QixjLHVDQVcvQixrQkFDSUYsU0FBU2tDLGlCQUNYN0wsS0FBSzZKLHNCQUF3QixLQUFPN0osS0FBSzZLLGdCLDZDQVczQyxJQUFNb0IsRUFBY2pNLEtBQUtrTSxpQkFFekIsT0FDQzNHLEtBQUs0RyxVQUFXbk0sS0FBS29NLHdCQUNyQjdHLEtBQUs0RyxVQUFXbk0sS0FBS2dMLFdBQVlpQixNLHdDQVFsQ2pNLEtBQUtrTCxhQUFhbUIsVUFBYXJNLEtBQUtzTSx5Qix3Q0FNbkIsV0FDakIsR0FBT3RNLEtBQUtzTSx1QkFBWixDQUlBLElBQU1DLEVBQWN2TSxLQUFLd00saUJBRW5CQyxFQUFhOUMsU0FBUytDLGNBQWUsUUFtQjNDLE9BbEJBRCxFQUFXRSxPQUFTM00sS0FBSzhLLFlBQVk4QixhQUFjLFVBQ25ESCxFQUFXcEcsT0FBU3JHLEtBQUs4SyxZQUFZekUsT0FDckNvRyxFQUFXSSxZQUFhTixFQUFZTyxXQUFXLElBRTFCQyxHQUFmQSxTQUFvQlIsRUFBWVYsaUJBQWtCLFdBQzNDaEssS0FBSyxTQUFFc0UsR0FDbkIsT0FBU3NHLEVBQVcxQixjQUFlLElBQU01RSxFQUFNNkcsSUFBS2xPLE1BQ25EcUgsRUFBTXJILFNBR2FtTyxHQUFmQSxTQUNGak4sS0FBSzhLLFlBQVllLGlCQUFrQiwwQkFFMUJoSyxLQUFLLFNBQUVzRSxHQUNuQixPQUFPc0csRUFBV0ksWUFBYTFHLEVBQU0yRyxXQUFXLE9BRWpEbkQsU0FBU3RILEtBQUt3SyxZQUFhSixHQUVwQnhNLE1BQU9ELEtBQUs4SyxZQUFZOEIsYUFBYyxVQUFZLENBQ3hEdkcsT0FBUW9HLEVBQVdwRyxPQUNuQmhFLEtBQU0sSUFBSWdDLGdCQUFKLFlBQTBCLElBQUlGLFNBQVVzSSxRQUU3QzdILE1BQU0sU0FBRTRDLEdBY1IsT0FiS0EsRUFBU0gsSUFDYixFQUFLNkYsWUFDSixFQUFLQyxlQUNMLEVBQUsvQiwyQkFFTixFQUFLSixXQUFhLEVBQUtDLGlCQUV2QixFQUFLaUMsWUFDSixFQUFLRSxhQUNMLEVBQUs5Qix5QkFJQTlELEVBQVNsQyxVQUVoQitILFNBQVMsV0FDVFosRUFBV2EsV0FBV0MsWUFBYWQsR0FDbkMsRUFBS2Isd0IsbUNBVU00QixHQUFRLFdBQ2ZDLEVBQVNBLEdBQVRBLFNBQWNELEVBQU0zQixpQkFBa0IsV0FFdEM2QixFQUFPLEdBU2IsT0FSQUQsRUFBTzNMLFNBQVMsU0FBRXFFLEdBQ2pCLElBQU13SCxFQUFRaEUsU0FBU29CLGNBQ3RCLEVBQUtsQixzQkFBd0IsZUFBaUIxRCxFQUFNNkcsR0FBSyxNQUcxRFUsRUFBTUMsRUFBTUMsV0FBY3pILEVBQU1ySCxTQUcxQjRPLEksc0NBUVEsV0FDZixPQUFPMU4sS0FBSzZOLFlBQVloTSxLQUFLLFNBQUUyTCxHQUM5QixPQUFPLEVBQUtNLGFBQWNOLFEsMkNBVTNCLE9BQU94TixLQUFLOE4sYUFBYzlOLEtBQUt3TSxvQixtQ0FPL0J4TSxLQUFLK04sUUFBVXBFLFNBQVMrQyxjQUFlLE1BQ3ZDMU0sS0FBSytOLFFBQVFDLFVBQVVDLElBQUssbUJBQzVCak8sS0FBSzhLLFlBQVlvRCxhQUNoQmxPLEtBQUsrTixRQUNML04sS0FBSzhLLFlBQVlxRCxjLHFDQVVIbkIsR0FDZixJQUFNbEYsRUFBVTZCLFNBQVMrQyxjQUFlLE9BSXhDLE9BSEE1RSxFQUFRa0YsR0FBS0EsRUFDYmhOLEtBQUs4SyxZQUFZb0QsYUFBY3BHLEVBQVM5SCxLQUFLOEssWUFBWXFELFlBRWxEckcsSSx3Q0FPUDlILEtBQUttTixlQUFpQm5OLEtBQUtvTyxlQUFnQixlQUMzQ3BPLEtBQUtvTixhQUFlcE4sS0FBS29PLGVBQWdCLGUsMENBT3pDcE8sS0FBS3FPLGVBQWlCMUUsU0FBUytDLGNBQWUsU0FDOUMxTSxLQUFLcU8sZUFBZXJCLEdBQUtoTixLQUFLMEssY0FDOUIxSyxLQUFLcU8sZUFBZUMsTUFBTUMsUUFBVSxPQUNwQzVFLFNBQVN0SCxLQUFLd0ssWUFBYTdNLEtBQUtxTyxrQiwyQ0FPaENyTyxLQUFLcU8sZUFBZUMsTUFBTUMsUUFBVSxPQUNwQ3ZPLEtBQUtxTyxlQUFlTCxVQUFVUSxPQUFReE8sS0FBSzJLLHdCQUMzQ2hCLFNBQVN0SCxLQUFLd0ssWUFBYTdNLEtBQUtxTyxrQixvQ0FTaEMsT0FBTzFFLFNBQVNvQixjQUNmL0ssS0FBSzZKLHNCQUNKLEtBQ0E3SixLQUFLeUssbUJBQ0wsS0FDQXpLLEtBQUs2SyxZQUNMNEQseUIsZ0NBT0YsSUFBSUMsRUFBVzFPLEtBQUsyTyxjQUNwQkQsRUFBU0UsY0FBY1YsYUFDdEJRLEVBQVM1QixXQUFXLEdBQ3BCNEIsRUFBU0csb0JBSVYsSUFBTWxCLEdBRE5lLEVBQVcxTyxLQUFLMk8sZUFDTzVELGNBQWUsU0FDaEM1RSxFQUFRdUksRUFBUzNELGNBQWUsU0FFaEMrRCxFQUFRM0ksRUFBTTZHLEdBQUdsRyxNQUFPLEtBQ3hCaUksRUFBUUQsRUFBTyxHQUFNLEtBQVFFLFNBQVVGLEVBQU8sSUFBUSxHQUU1RG5CLEVBQU1zQixRQUFVRixFQUNoQnBCLEVBQU1DLFVBQVksR0FFbEJ6SCxFQUFNNkcsR0FBSytCLEVBQ1g1SSxFQUFNckgsTUFBUSxHQUNkcUgsRUFBTStJLGFBQWMsUUFBUyxJQUM3QmxQLEtBQUttUCxZQUFhaEosRUFBTyxJQUV6Qm5HLEtBQUsyTCxhQUVMM0wsS0FBS29QLFVBQVd6QixLLG1DQU9KLFdBQ1IwQixFQUFlLEVBRW5CclAsS0FBSzZOLFlBQVloTSxLQUFLLFNBQUUyTCxFQUFPeEIsR0FDOUJ3QixFQUFNUSxVQUFVQyxJQUFLLGFBRWhCLEVBQUszRCxrQkFBb0JrRCxFQUFNaUIsdUJBQXVCekIsS0FDMURxQyxFQUFlckQsRUFDZndCLEVBQU1RLFVBQVVDLElBQUssRUFBS3hELHFCQUczQixJQUFNNkUsRUFBTzNGLFNBQVMrQyxjQUFlLE9BS3JDLE9BSkE0QyxFQUFLdEIsVUFBVUMsSUFBSyxFQUFLcEQsWUFDekJ5RSxFQUFLMUIsVUFBWSxFQUFLaEQsV0FDdEI0QyxFQUFNekMsY0FBZSxNQUFPOEIsWUFBYXlDLEdBRWxDLFFBR1J0UCxLQUFLdVAsYUFBYTFOLEtBQUssU0FBRUssRUFBUThKLEdBVWhDLE9BVEE5SixFQUFPOEwsVUFBVUMsSUFBSyxXQUN0Qi9MLEVBQU82SixRQUFRQyxNQUFRQSxFQUV2QixFQUFLK0IsUUFBUWxCLFlBQWEzSyxHQUNyQjhKLElBQVVxRCxJQUNkbk4sRUFBTzhMLFVBQVVDLElBQUssRUFBSzFELHVCQUMzQnJJLEVBQU84TCxVQUFVQyxJQUFLLEVBQUt6RCx1QkFHckIsVSxtQ0FPSSxXQUNaeEssS0FBS3VQLGFBQWExTixLQUFLLFNBQUVLLEVBQVFyRSxFQUFHK0QsR0ErQm5DLE9BOUJBTSxFQUFPc04sUUFBVSxTQUFFQyxHQUNsQkEsRUFBTUMsaUJBRU4sSUFBTTFELEVBQVF5RCxFQUFNRSxPQUFPNUQsUUFBUUMsTUFHbkMsR0FBS0EsSUFGZSxFQUFLRSxpQkFHeEIsT0FBTyxFQUdSLEVBQUswRCxrQkFFTGhPLEVBQVFDLEtBQUssU0FBRWdPLEdBQ2QsT0FBT0EsRUFBUTdCLFVBQVVRLE9BQ3hCLEVBQUtoRSx5QkFHUDVJLEVBQVNvSyxHQUFRZ0MsVUFBVUMsSUFBSyxFQUFLekQsc0JBRXJDLElBQU1zRixFQUFTLEVBQUtqQyxZQVFwQixPQVBBaUMsRUFBT2pPLEtBQUssU0FBRTJMLEdBQ2IsT0FBT0EsRUFBTVEsVUFBVVEsT0FBUSxFQUFLL0QsdUJBRXJDcUYsRUFBUTlELEdBQVFnQyxVQUFVQyxJQUFLLEVBQUt4RCxvQkFFcEMsRUFBS21CLG1CQUVFLEdBR0QsUUFHUjVMLEtBQUsrUCxZQUFZbE8sS0FBSyxTQUFFc0UsR0FLdkIsT0FKQUEsRUFBTTZKLFFBQVUsV0FDZixFQUFLcEUsbUJBR0MsUUFHUjVMLEtBQUtpUSxZQUFZcE8sS0FBSyxTQUFFOEwsR0FPdkIsT0FOQUEsRUFBTTZCLFFBQVUsU0FBRUMsR0FHakIsT0FGQUEsRUFBTUMsaUJBQ04sRUFBS04sVUFBV0ssRUFBTUUsU0FDZixHQUdELFFBR1IzUCxLQUFLcU8sZUFBZTZCLE9BQVMsV0FDNUIsRUFBS0MsYUFHTm5RLEtBQUtxTyxlQUFlK0IsUUFBVSxTQUFFOVAsR0FDMUIsV0FBYUEsRUFBRWxCLEtBQ25CLEVBQUsrUSxXQUFXLEdBR1osVUFBWTdQLEVBQUVsQixLQUNsQixFQUFLK1EsYUFJUG5RLEtBQUtxUSxpQkFBaUJ4TyxLQUFLLFNBQUV5TixHQU81QixPQU5BQSxFQUFLRSxRQUFVLFNBQUVDLEdBR2hCLE9BRkFBLEVBQU1DLGlCQUNOLEVBQUtZLFFBQVNiLEVBQU1FLFNBQ2IsR0FHRCxRQUdSM1AsS0FBS2tMLGFBQWFzRSxRQUFVLFNBQUVDLEdBRzdCLE9BRkFBLEVBQU1DLGlCQUNOLEVBQUtFLG1CQUNFLEdBR1JqRyxTQUFTb0IsY0FBZS9LLEtBQUtrSyx5QkFBMEJzRixRQUFVLFNBQ2hFQyxHQUlBLE9BRkFBLEVBQU1DLGlCQUNOLEVBQUt2RSxhQUFhbUQsTUFBTUMsUUFBVSxTQUMzQixHQUdSdk8sS0FBS21MLGFBQWFxRSxRQUFVLFdBQzNCLEVBQUtlLG9CQUdONUcsU0FBU29CLGNBQWUvSyxLQUFLb0sscUJBQXNCb0YsUUFBVSxTQUM1REMsR0FFQUEsRUFBTWUsa0JBQ04sRUFBS0QsbUJBQ0w1RyxTQUFTb0IsY0FBZSxFQUFLZCx1QkFBd0J3RyxVQUd0RDlHLFNBQVNvQixjQUFlL0ssS0FBS3FLLHlCQUEwQm1GLFFBQVUsU0FDaEVDLEdBRUFBLEVBQU1lLGtCQUNOLEVBQUtELHNCLHlDQVFOdlEsS0FBS21MLGFBQWFtRCxNQUFNQyxRQUFVLFMsZ0NBUXhCWixHQUNWQSxFQUFNTCxXQUFXVCxZQUFhN00sS0FBS3FPLGdCQUNuQ3JPLEtBQUtxTyxlQUFldlAsTUFBUTZPLEVBQU1DLFVBRWxDNU4sS0FBS3FPLGVBQWVMLFVBQVVRLE9BQVF4TyxLQUFLMkssd0JBQzNDM0ssS0FBS3FPLGVBQWVDLE1BQU1DLFFBQVUsUUFDcEN2TyxLQUFLcU8sZUFBZXFDLFUsb0NBU05DLEdBQ2QsTUFBTyxZQUFLM1EsS0FBS3dNLGlCQUFpQlgsaUJBQWtCLFdBQVkrRSxRQUMvRCxTQUFFQyxFQUFLbEQsR0FDTixPQUFPa0QsR0FBT2xELEVBQU1DLFlBQWMrQyxLQUVuQyxLLGtDQVMwQixJQUFqQkcsRUFBaUIsd0RBQzNCLEdBQUssU0FBVzlRLEtBQUtxTyxlQUFlQyxNQUFNQyxRQUExQyxDQUlBLElBQU1vQyxFQUFXM1EsS0FBS3FPLGVBQWV2UCxNQUFNK0gsT0FFM0MsR0FBSyxLQUFPOEosRUFBVyxDQUN0QixJQUFNSSxFQUFhcEgsU0FBU3FILGVBQWdCaFIsS0FBSzBLLGVBQy9Da0UsY0FLRixPQUpBNU8sS0FBS2lSLHFCQUNMRixFQUFXekQsV0FBV0MsWUFBYXdELFFBQ25DL1EsS0FBSzRMLGtCQUtOLElBQU0rQixFQUFRM04sS0FBS3FPLGVBQWVmLFdBQVd2QyxjQUFlLFNBQzVELEdBQUsrRixHQUFVSCxJQUFhaEQsRUFBTUMsVUFDakM1TixLQUFLaVIsMEJBS04sR0FBT2pSLEtBQUtrUixjQUFlUCxHQUEzQixDQU1BLElBQU14SyxFQUFRbkcsS0FBS3FPLGVBQWVmLFdBQVd2QyxjQUFlLFNBRTVEL0ssS0FBS2lSLHFCQUVMdEQsRUFBTUMsVUFBWStDLEVBQ2xCM1EsS0FBS21QLFlBQWFoSixFQUFPd0ssR0FFekIzUSxLQUFLNEwsdUJBWko1TCxLQUFLcU8sZUFBZUwsVUFBVUMsSUFBS2pPLEtBQUsySywyQixrQ0FxQjdCeEUsRUFBT3dLLEdBRW5CeEssRUFBTS9ILEtBQU8rSCxFQUFNL0gsS0FBSzRJLFFBQ3ZCLGtCQUNBLE1BQVEySixFQUFXLE8sbUNBU1A3SSxHQUNiQSxFQUFROEYsVUFBWSxHQUNwQjlGLEVBQVFrRyxVQUFVUSxPQUFRLFksc0NBTzFCeE8sS0FBS21SLGFBQWNuUixLQUFLbU4sZ0JBQ3hCbk4sS0FBS21SLGFBQWNuUixLQUFLb04sY0FDeEJnRSxhQUFjcFIsS0FBS3FSLFksa0NBU1BDLEVBQUl4SixHQUFVLFdBQzFCd0osRUFBRzFELFVBQVk5RixFQUNmd0osRUFBR3RELFVBQVVDLElBQUssVUFFbEJqTyxLQUFLcVIsU0FBV0UsWUFBWSxXQUMzQixFQUFLQyxrQkFDSCxTLGVBSVU1SCIsImZpbGUiOiJqcy9zZXR0aW5ncy9hcHAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7XG4iLCJ2YXIgX19zZWxmX18gPSAoZnVuY3Rpb24gKHJvb3QpIHtcbmZ1bmN0aW9uIEYoKSB7XG50aGlzLmZldGNoID0gZmFsc2U7XG50aGlzLkRPTUV4Y2VwdGlvbiA9IHJvb3QuRE9NRXhjZXB0aW9uXG59XG5GLnByb3RvdHlwZSA9IHJvb3Q7XG5yZXR1cm4gbmV3IEYoKTtcbn0pKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB0aGlzKTtcbihmdW5jdGlvbihzZWxmKSB7XG5cbnZhciBpcnJlbGV2YW50ID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG5cbiAgdmFyIHN1cHBvcnQgPSB7XG4gICAgc2VhcmNoUGFyYW1zOiAnVVJMU2VhcmNoUGFyYW1zJyBpbiBzZWxmLFxuICAgIGl0ZXJhYmxlOiAnU3ltYm9sJyBpbiBzZWxmICYmICdpdGVyYXRvcicgaW4gU3ltYm9sLFxuICAgIGJsb2I6XG4gICAgICAnRmlsZVJlYWRlcicgaW4gc2VsZiAmJlxuICAgICAgJ0Jsb2InIGluIHNlbGYgJiZcbiAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXcgQmxvYigpO1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSkoKSxcbiAgICBmb3JtRGF0YTogJ0Zvcm1EYXRhJyBpbiBzZWxmLFxuICAgIGFycmF5QnVmZmVyOiAnQXJyYXlCdWZmZXInIGluIHNlbGZcbiAgfTtcblxuICBmdW5jdGlvbiBpc0RhdGFWaWV3KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2Yob2JqKVxuICB9XG5cbiAgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIpIHtcbiAgICB2YXIgdmlld0NsYXNzZXMgPSBbXG4gICAgICAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICAgICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICAgICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgICAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgICAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDMyQXJyYXldJyxcbiAgICAgICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgRmxvYXQ2NEFycmF5XSdcbiAgICBdO1xuXG4gICAgdmFyIGlzQXJyYXlCdWZmZXJWaWV3ID1cbiAgICAgIEFycmF5QnVmZmVyLmlzVmlldyB8fFxuICAgICAgZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogJiYgdmlld0NsYXNzZXMuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSkgPiAtMVxuICAgICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5vcm1hbGl6ZU5hbWUobmFtZSkge1xuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSk7XG4gICAgfVxuICAgIGlmICgvW15hLXowLTlcXC0jJCUmJyorLl5fYHx+XS9pLnRlc3QobmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lJylcbiAgICB9XG4gICAgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplVmFsdWUodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8vIEJ1aWxkIGEgZGVzdHJ1Y3RpdmUgaXRlcmF0b3IgZm9yIHRoZSB2YWx1ZSBsaXN0XG4gIGZ1bmN0aW9uIGl0ZXJhdG9yRm9yKGl0ZW1zKSB7XG4gICAgdmFyIGl0ZXJhdG9yID0ge1xuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1zLnNoaWZ0KCk7XG4gICAgICAgIHJldHVybiB7ZG9uZTogdmFsdWUgPT09IHVuZGVmaW5lZCwgdmFsdWU6IHZhbHVlfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoc3VwcG9ydC5pdGVyYWJsZSkge1xuICAgICAgaXRlcmF0b3JbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXRlcmF0b3JcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZXJhdG9yXG4gIH1cblxuICBmdW5jdGlvbiBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICB0aGlzLm1hcCA9IHt9O1xuXG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQobmFtZSwgdmFsdWUpO1xuICAgICAgfSwgdGhpcyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7XG4gICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICAgIHRoaXMuYXBwZW5kKGhlYWRlclswXSwgaGVhZGVyWzFdKTtcbiAgICAgIH0sIHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaGVhZGVycykge1xuICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgIHRoaXMuYXBwZW5kKG5hbWUsIGhlYWRlcnNbbmFtZV0pO1xuICAgICAgfSwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKTtcbiAgICB2YWx1ZSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLm1hcFtuYW1lXTtcbiAgICB0aGlzLm1hcFtuYW1lXSA9IG9sZFZhbHVlID8gb2xkVmFsdWUgKyAnLCAnICsgdmFsdWUgOiB2YWx1ZTtcbiAgfTtcblxuICBIZWFkZXJzLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMubWFwW25vcm1hbGl6ZU5hbWUobmFtZSldO1xuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcy5oYXMobmFtZSkgPyB0aGlzLm1hcFtuYW1lXSA6IG51bGxcbiAgfTtcblxuICBIZWFkZXJzLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KG5vcm1hbGl6ZU5hbWUobmFtZSkpXG4gIH07XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgfTtcblxuICBIZWFkZXJzLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMubWFwKSB7XG4gICAgICBpZiAodGhpcy5tYXAuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB0aGlzLm1hcFtuYW1lXSwgbmFtZSwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgIGl0ZW1zLnB1c2gobmFtZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGl0ZXJhdG9yRm9yKGl0ZW1zKVxuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgaXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGl0ZXJhdG9yRm9yKGl0ZW1zKVxuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgIGl0ZW1zLnB1c2goW25hbWUsIHZhbHVlXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGl0ZXJhdG9yRm9yKGl0ZW1zKVxuICB9O1xuXG4gIGlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gICAgSGVhZGVycy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEhlYWRlcnMucHJvdG90eXBlLmVudHJpZXM7XG4gIH1cblxuICBmdW5jdGlvbiBjb25zdW1lZChib2R5KSB7XG4gICAgaWYgKGJvZHkuYm9keVVzZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKSlcbiAgICB9XG4gICAgYm9keS5ib2R5VXNlZCA9IHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChyZWFkZXIuZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEJsb2JBc0FycmF5QnVmZmVyKGJsb2IpIHtcbiAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpO1xuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTtcbiAgICByZXR1cm4gcHJvbWlzZVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYikge1xuICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcik7XG4gICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7XG4gICAgcmV0dXJuIHByb21pc2VcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRBcnJheUJ1ZmZlckFzVGV4dChidWYpIHtcbiAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgdmFyIGNoYXJzID0gbmV3IEFycmF5KHZpZXcubGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmlldy5sZW5ndGg7IGkrKykge1xuICAgICAgY2hhcnNbaV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHZpZXdbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gY2hhcnMuam9pbignJylcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1Zikge1xuICAgIGlmIChidWYuc2xpY2UpIHtcbiAgICAgIHJldHVybiBidWYuc2xpY2UoMClcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYuYnl0ZUxlbmd0aCk7XG4gICAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWYpKTtcbiAgICAgIHJldHVybiB2aWV3LmJ1ZmZlclxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIEJvZHkoKSB7XG4gICAgdGhpcy5ib2R5VXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5faW5pdEJvZHkgPSBmdW5jdGlvbihib2R5KSB7XG4gICAgICB0aGlzLl9ib2R5SW5pdCA9IGJvZHk7XG4gICAgICBpZiAoIWJvZHkpIHtcbiAgICAgICAgdGhpcy5fYm9keVRleHQgPSAnJztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keTtcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5ibG9iICYmIEJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUJsb2IgPSBib2R5O1xuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LmZvcm1EYXRhICYmIEZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlGb3JtRGF0YSA9IGJvZHk7XG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuc2VhcmNoUGFyYW1zICYmIFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHkudG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlciAmJiBzdXBwb3J0LmJsb2IgJiYgaXNEYXRhVmlldyhib2R5KSkge1xuICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIgPSBidWZmZXJDbG9uZShib2R5LmJ1ZmZlcik7XG4gICAgICAgIC8vIElFIDEwLTExIGNhbid0IGhhbmRsZSBhIERhdGFWaWV3IGJvZHkuXG4gICAgICAgIHRoaXMuX2JvZHlJbml0ID0gbmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pO1xuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LmFycmF5QnVmZmVyICYmIChBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSB8fCBpc0FycmF5QnVmZmVyVmlldyhib2R5KSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHkgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYm9keSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgnKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QmxvYiAmJiB0aGlzLl9ib2R5QmxvYi50eXBlKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgdGhpcy5fYm9keUJsb2IudHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgdGhpcy5ibG9iID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciByZWplY3RlZCA9IGNvbnN1bWVkKHRoaXMpO1xuICAgICAgICBpZiAocmVqZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0ZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9ib2R5QmxvYikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2InKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHRoaXMuYXJyYXlCdWZmZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICAgIHJldHVybiBjb25zdW1lZCh0aGlzKSB8fCBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmJsb2IoKS50aGVuKHJlYWRCbG9iQXNBcnJheUJ1ZmZlcilcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZWplY3RlZCA9IGNvbnN1bWVkKHRoaXMpO1xuICAgICAgaWYgKHJlamVjdGVkKSB7XG4gICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fYm9keUJsb2IpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRCbG9iQXNUZXh0KHRoaXMuX2JvZHlCbG9iKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZWFkQXJyYXlCdWZmZXJBc1RleHQodGhpcy5fYm9keUFycmF5QnVmZmVyKSlcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpXG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChzdXBwb3J0LmZvcm1EYXRhKSB7XG4gICAgICB0aGlzLmZvcm1EYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKGRlY29kZSlcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5qc29uID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG4gIHZhciBtZXRob2RzID0gWydERUxFVEUnLCAnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUycsICdQT1NUJywgJ1BVVCddO1xuXG4gIGZ1bmN0aW9uIG5vcm1hbGl6ZU1ldGhvZChtZXRob2QpIHtcbiAgICB2YXIgdXBjYXNlZCA9IG1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiBtZXRob2RzLmluZGV4T2YodXBjYXNlZCkgPiAtMSA/IHVwY2FzZWQgOiBtZXRob2RcbiAgfVxuXG4gIGZ1bmN0aW9uIFJlcXVlc3QoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB2YXIgYm9keSA9IG9wdGlvbnMuYm9keTtcblxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHtcbiAgICAgIGlmIChpbnB1dC5ib2R5VXNlZCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKVxuICAgICAgfVxuICAgICAgdGhpcy51cmwgPSBpbnB1dC51cmw7XG4gICAgICB0aGlzLmNyZWRlbnRpYWxzID0gaW5wdXQuY3JlZGVudGlhbHM7XG4gICAgICBpZiAoIW9wdGlvbnMuaGVhZGVycykge1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbnB1dC5oZWFkZXJzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWV0aG9kID0gaW5wdXQubWV0aG9kO1xuICAgICAgdGhpcy5tb2RlID0gaW5wdXQubW9kZTtcbiAgICAgIHRoaXMuc2lnbmFsID0gaW5wdXQuc2lnbmFsO1xuICAgICAgaWYgKCFib2R5ICYmIGlucHV0Ll9ib2R5SW5pdCAhPSBudWxsKSB7XG4gICAgICAgIGJvZHkgPSBpbnB1dC5fYm9keUluaXQ7XG4gICAgICAgIGlucHV0LmJvZHlVc2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cmwgPSBTdHJpbmcoaW5wdXQpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzIHx8IHRoaXMuY3JlZGVudGlhbHMgfHwgJ3NhbWUtb3JpZ2luJztcbiAgICBpZiAob3B0aW9ucy5oZWFkZXJzIHx8ICF0aGlzLmhlYWRlcnMpIHtcbiAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKG9wdGlvbnMuaGVhZGVycyk7XG4gICAgfVxuICAgIHRoaXMubWV0aG9kID0gbm9ybWFsaXplTWV0aG9kKG9wdGlvbnMubWV0aG9kIHx8IHRoaXMubWV0aG9kIHx8ICdHRVQnKTtcbiAgICB0aGlzLm1vZGUgPSBvcHRpb25zLm1vZGUgfHwgdGhpcy5tb2RlIHx8IG51bGw7XG4gICAgdGhpcy5zaWduYWwgPSBvcHRpb25zLnNpZ25hbCB8fCB0aGlzLnNpZ25hbDtcbiAgICB0aGlzLnJlZmVycmVyID0gbnVsbDtcblxuICAgIGlmICgodGhpcy5tZXRob2QgPT09ICdHRVQnIHx8IHRoaXMubWV0aG9kID09PSAnSEVBRCcpICYmIGJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0JvZHkgbm90IGFsbG93ZWQgZm9yIEdFVCBvciBIRUFEIHJlcXVlc3RzJylcbiAgICB9XG4gICAgdGhpcy5faW5pdEJvZHkoYm9keSk7XG4gIH1cblxuICBSZXF1ZXN0LnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCh0aGlzLCB7Ym9keTogdGhpcy5fYm9keUluaXR9KVxuICB9O1xuXG4gIGZ1bmN0aW9uIGRlY29kZShib2R5KSB7XG4gICAgdmFyIGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBib2R5XG4gICAgICAudHJpbSgpXG4gICAgICAuc3BsaXQoJyYnKVxuICAgICAgLmZvckVhY2goZnVuY3Rpb24oYnl0ZXMpIHtcbiAgICAgICAgaWYgKGJ5dGVzKSB7XG4gICAgICAgICAgdmFyIHNwbGl0ID0gYnl0ZXMuc3BsaXQoJz0nKTtcbiAgICAgICAgICB2YXIgbmFtZSA9IHNwbGl0LnNoaWZ0KCkucmVwbGFjZSgvXFwrL2csICcgJyk7XG4gICAgICAgICAgdmFyIHZhbHVlID0gc3BsaXQuam9pbignPScpLnJlcGxhY2UoL1xcKy9nLCAnICcpO1xuICAgICAgICAgIGZvcm0uYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChuYW1lKSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiBmb3JtXG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZUhlYWRlcnMocmF3SGVhZGVycykge1xuICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICAvLyBSZXBsYWNlIGluc3RhbmNlcyBvZiBcXHJcXG4gYW5kIFxcbiBmb2xsb3dlZCBieSBhdCBsZWFzdCBvbmUgc3BhY2Ugb3IgaG9yaXpvbnRhbCB0YWIgd2l0aCBhIHNwYWNlXG4gICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjJcbiAgICB2YXIgcHJlUHJvY2Vzc2VkSGVhZGVycyA9IHJhd0hlYWRlcnMucmVwbGFjZSgvXFxyP1xcbltcXHQgXSsvZywgJyAnKTtcbiAgICBwcmVQcm9jZXNzZWRIZWFkZXJzLnNwbGl0KC9cXHI/XFxuLykuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7XG4gICAgICB2YXIgcGFydHMgPSBsaW5lLnNwbGl0KCc6Jyk7XG4gICAgICB2YXIga2V5ID0gcGFydHMuc2hpZnQoKS50cmltKCk7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oJzonKS50cmltKCk7XG4gICAgICAgIGhlYWRlcnMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBoZWFkZXJzXG4gIH1cblxuICBCb2R5LmNhbGwoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4gIGZ1bmN0aW9uIFJlc3BvbnNlKGJvZHlJbml0LCBvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuXG4gICAgdGhpcy50eXBlID0gJ2RlZmF1bHQnO1xuICAgIHRoaXMuc3RhdHVzID0gb3B0aW9ucy5zdGF0dXMgPT09IHVuZGVmaW5lZCA/IDIwMCA6IG9wdGlvbnMuc3RhdHVzO1xuICAgIHRoaXMub2sgPSB0aGlzLnN0YXR1cyA+PSAyMDAgJiYgdGhpcy5zdGF0dXMgPCAzMDA7XG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJ3N0YXR1c1RleHQnIGluIG9wdGlvbnMgPyBvcHRpb25zLnN0YXR1c1RleHQgOiAnT0snO1xuICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKG9wdGlvbnMuaGVhZGVycyk7XG4gICAgdGhpcy51cmwgPSBvcHRpb25zLnVybCB8fCAnJztcbiAgICB0aGlzLl9pbml0Qm9keShib2R5SW5pdCk7XG4gIH1cblxuICBCb2R5LmNhbGwoUmVzcG9uc2UucHJvdG90eXBlKTtcblxuICBSZXNwb25zZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHRoaXMuX2JvZHlJbml0LCB7XG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgIHVybDogdGhpcy51cmxcbiAgICB9KVxuICB9O1xuXG4gIFJlc3BvbnNlLmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDAsIHN0YXR1c1RleHQ6ICcnfSk7XG4gICAgcmVzcG9uc2UudHlwZSA9ICdlcnJvcic7XG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH07XG5cbiAgdmFyIHJlZGlyZWN0U3RhdHVzZXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdO1xuXG4gIFJlc3BvbnNlLnJlZGlyZWN0ID0gZnVuY3Rpb24odXJsLCBzdGF0dXMpIHtcbiAgICBpZiAocmVkaXJlY3RTdGF0dXNlcy5pbmRleE9mKHN0YXR1cykgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCBzdGF0dXMgY29kZScpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShudWxsLCB7c3RhdHVzOiBzdGF0dXMsIGhlYWRlcnM6IHtsb2NhdGlvbjogdXJsfX0pXG4gIH07XG5cbiAgZXhwb3J0cy5ET01FeGNlcHRpb24gPSBzZWxmLkRPTUV4Y2VwdGlvbjtcbiAgdHJ5IHtcbiAgICBuZXcgZXhwb3J0cy5ET01FeGNlcHRpb24oKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXhwb3J0cy5ET01FeGNlcHRpb24gPSBmdW5jdGlvbihtZXNzYWdlLCBuYW1lKSB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgIHZhciBlcnJvciA9IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgdGhpcy5zdGFjayA9IGVycm9yLnN0YWNrO1xuICAgIH07XG4gICAgZXhwb3J0cy5ET01FeGNlcHRpb24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpO1xuICAgIGV4cG9ydHMuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGV4cG9ydHMuRE9NRXhjZXB0aW9uO1xuICB9XG5cbiAgZnVuY3Rpb24gZmV0Y2goaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KTtcblxuICAgICAgaWYgKHJlcXVlc3Quc2lnbmFsICYmIHJlcXVlc3Quc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgZXhwb3J0cy5ET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKVxuICAgICAgfVxuXG4gICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICAgIGZ1bmN0aW9uIGFib3J0WGhyKCkge1xuICAgICAgICB4aHIuYWJvcnQoKTtcbiAgICAgIH1cblxuICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICBzdGF0dXM6IHhoci5zdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogeGhyLnN0YXR1c1RleHQsXG4gICAgICAgICAgaGVhZGVyczogcGFyc2VIZWFkZXJzKHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSB8fCAnJylcbiAgICAgICAgfTtcbiAgICAgICAgb3B0aW9ucy51cmwgPSAncmVzcG9uc2VVUkwnIGluIHhociA/IHhoci5yZXNwb25zZVVSTCA6IG9wdGlvbnMuaGVhZGVycy5nZXQoJ1gtUmVxdWVzdC1VUkwnKTtcbiAgICAgICAgdmFyIGJvZHkgPSAncmVzcG9uc2UnIGluIHhociA/IHhoci5yZXNwb25zZSA6IHhoci5yZXNwb25zZVRleHQ7XG4gICAgICAgIHJlc29sdmUobmV3IFJlc3BvbnNlKGJvZHksIG9wdGlvbnMpKTtcbiAgICAgIH07XG5cbiAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChuZXcgVHlwZUVycm9yKCdOZXR3b3JrIHJlcXVlc3QgZmFpbGVkJykpO1xuICAgICAgfTtcblxuICAgICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IGZhaWxlZCcpKTtcbiAgICAgIH07XG5cbiAgICAgIHhoci5vbmFib3J0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChuZXcgZXhwb3J0cy5ET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKTtcbiAgICAgIH07XG5cbiAgICAgIHhoci5vcGVuKHJlcXVlc3QubWV0aG9kLCByZXF1ZXN0LnVybCwgdHJ1ZSk7XG5cbiAgICAgIGlmIChyZXF1ZXN0LmNyZWRlbnRpYWxzID09PSAnaW5jbHVkZScpIHtcbiAgICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdvbWl0Jykge1xuICAgICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICgncmVzcG9uc2VUeXBlJyBpbiB4aHIgJiYgc3VwcG9ydC5ibG9iKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYmxvYic7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3QuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVxdWVzdC5zaWduYWwpIHtcbiAgICAgICAgcmVxdWVzdC5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydFhocik7XG5cbiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIC8vIERPTkUgKHN1Y2Nlc3Mgb3IgZmFpbHVyZSlcbiAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgICAgICAgIHJlcXVlc3Quc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRYaHIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgeGhyLnNlbmQodHlwZW9mIHJlcXVlc3QuX2JvZHlJbml0ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiByZXF1ZXN0Ll9ib2R5SW5pdCk7XG4gICAgfSlcbiAgfVxuXG4gIGZldGNoLnBvbHlmaWxsID0gdHJ1ZTtcblxuICBpZiAoIXNlbGYuZmV0Y2gpIHtcbiAgICBzZWxmLmZldGNoID0gZmV0Y2g7XG4gICAgc2VsZi5IZWFkZXJzID0gSGVhZGVycztcbiAgICBzZWxmLlJlcXVlc3QgPSBSZXF1ZXN0O1xuICAgIHNlbGYuUmVzcG9uc2UgPSBSZXNwb25zZTtcbiAgfVxuXG4gIGV4cG9ydHMuSGVhZGVycyA9IEhlYWRlcnM7XG4gIGV4cG9ydHMuUmVxdWVzdCA9IFJlcXVlc3Q7XG4gIGV4cG9ydHMuUmVzcG9uc2UgPSBSZXNwb25zZTtcbiAgZXhwb3J0cy5mZXRjaCA9IGZldGNoO1xuXG4gIHJldHVybiBleHBvcnRzO1xuXG59KHt9KSk7XG59KShfX3NlbGZfXyk7XG5kZWxldGUgX19zZWxmX18uZmV0Y2gucG9seWZpbGxcbmV4cG9ydHMgPSBfX3NlbGZfXy5mZXRjaCAvLyBUbyBlbmFibGU6IGltcG9ydCBmZXRjaCBmcm9tICdjcm9zcy1mZXRjaCdcbmV4cG9ydHMuZGVmYXVsdCA9IF9fc2VsZl9fLmZldGNoIC8vIEZvciBUeXBlU2NyaXB0IGNvbnN1bWVycyB3aXRob3V0IGVzTW9kdWxlSW50ZXJvcC5cbmV4cG9ydHMuZmV0Y2ggPSBfX3NlbGZfXy5mZXRjaCAvLyBUbyBlbmFibGU6IGltcG9ydCB7ZmV0Y2h9IGZyb20gJ2Nyb3NzLWZldGNoJ1xuZXhwb3J0cy5IZWFkZXJzID0gX19zZWxmX18uSGVhZGVyc1xuZXhwb3J0cy5SZXF1ZXN0ID0gX19zZWxmX18uUmVxdWVzdFxuZXhwb3J0cy5SZXNwb25zZSA9IF9fc2VsZl9fLlJlc3BvbnNlXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNcbiIsIi8qKlxuICogQGZpbGUgU2V0dGluZ3MgQXBwbGljYXRpb24uXG4gKi9cbmltcG9ydCBTZXR0aW5ncyBmcm9tICcuL3NldHRpbmdzJztcblxuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG5cdG5ldyBTZXR0aW5ncygpO1xufSApO1xuIiwiLyoqXG4gKiBAZmlsZSBjbGFzcyBTZXR0aW5ncy5cbiAqL1xuXG4vKiBnbG9iYWwgQ3lyMkxhdFNldHRpbmdzT2JqZWN0ICovXG5cbmNsYXNzIFNldHRpbmdzIHtcblx0LyoqXG5cdCAqIENsYXNzIGNvbnN0cnVjdG9yLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5PUFRJT05TX0ZPUk1fU0VMRUNUT1IgPSAnI2N0bC1vcHRpb25zJztcblx0XHR0aGlzLkhFQURFUl9TRUxFQ1RPUiA9IHRoaXMuT1BUSU9OU19GT1JNX1NFTEVDVE9SICsgJyBoMic7XG5cdFx0dGhpcy5UQUJMRV9TRUxFQ1RPUiA9IHRoaXMuT1BUSU9OU19GT1JNX1NFTEVDVE9SICsgJyB0YWJsZSc7XG5cdFx0dGhpcy5TVUJNSVRfU0VMRUNUT1IgPSB0aGlzLk9QVElPTlNfRk9STV9TRUxFQ1RPUiArICcgI3N1Ym1pdCc7XG5cdFx0dGhpcy5DT05WRVJUX0ZPUk1fU0VMRUNUT1IgPSAnI2N0bC1jb252ZXJ0LWV4aXN0aW5nLXNsdWdzJztcblx0XHR0aGlzLkNPTlZFUlRfQlVUVE9OX1NFTEVDVE9SID0gJyNjdGwtY29udmVydC1idXR0b24nO1xuXHRcdHRoaXMuQ09ORklSTV9QT1BVUF9TRUxFQ1RPUiA9ICcjY3RsLWNvbmZpcm0tcG9wdXAnO1xuXHRcdHRoaXMuQ09ORklSTV9PS19TRUxFQ1RPUiA9ICcjY3RsLWNvbmZpcm0tb2snO1xuXHRcdHRoaXMuQ09ORklSTV9DQU5DRUxfU0VMRUNUT1IgPSAnI2N0bC1jb25maXJtLWNhbmNlbCc7XG5cdFx0dGhpcy5DVVJSRU5UX1NUVUJfSUQgPSAnY3RsLWN1cnJlbnQnO1xuXHRcdHRoaXMuQ1VSUkVOVF9OQVZfVEFCX0NMQVNTID0gJ25hdi10YWItY3VycmVudCc7XG5cdFx0dGhpcy5BQ1RJVkVfTkFWX1RBQl9DTEFTUyA9ICduYXYtdGFiLWFjdGl2ZSc7XG5cdFx0dGhpcy5BQ1RJVkVfVEFCTEVfQ0xBU1MgPSAnYWN0aXZlJztcblx0XHR0aGlzLkVESVRfTEFCRUxfSUQgPSAnY3RsLWVkaXQtbGFiZWwnO1xuXHRcdHRoaXMuRURJVF9MQUJFTF9FUlJPUl9DTEFTUyA9ICdjdGwtZWRpdC1sYWJlbC1lcnJvcic7XG5cdFx0dGhpcy5wbHVzQnV0dG9uID1cblx0XHRcdCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGNsYXNzPVwiY29tcG9uZW50cy1idXR0b24gYmxvY2stZWRpdG9yLWluc2VydGVyX190b2dnbGUgaGFzLWljb25cIiBhcmlhLWxhYmVsPVwi0JTQvtCx0LDQstC40YLRjCDQsdC70L7QulwiPicgK1xuXHRcdFx0Jzxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCItMiAtMiAyNCAyNFwiIHJvbGU9XCJpbWdcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPicgK1xuXHRcdFx0JzxwYXRoIGQ9XCJNMTAgMWMtNSAwLTkgNC05IDlzNCA5IDkgOSA5LTQgOS05LTQtOS05LTl6bTAgMTZjLTMuOSAwLTctMy4xLTctN3MzLjEtNyA3LTcgNyAzLjEgNyA3LTMuMSA3LTcgN3ptMS0xMUg5djNINnYyaDN2M2gydi0zaDNWOWgtM1Y2ek0xMCAxYy01IDAtOSA0LTkgOXM0IDkgOSA5IDktNCA5LTktNC05LTktOXptMCAxNmMtMy45IDAtNy0zLjEtNy03czMuMS03IDctNyA3IDMuMSA3IDctMy4xIDctNyA3em0xLTExSDl2M0g2djJoM3YzaDJ2LTNoM1Y5aC0zVjZ6XCI+JyArXG5cdFx0XHQnPC9wYXRoPicgK1xuXHRcdFx0Jzwvc3ZnPicgK1xuXHRcdFx0JzwvYnV0dG9uPic7XG5cdFx0dGhpcy5QTFVTX0NMQVNTID0gJ2N0bC1wbHVzJztcblxuXHRcdHRoaXMub3B0aW9uc0Zvcm0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCB0aGlzLk9QVElPTlNfRk9STV9TRUxFQ1RPUiApO1xuXHRcdHRoaXMudGFibGVzRGF0YSA9IHRoaXMuZ2V0VGFibGVzRGF0YSgpO1xuXHRcdHRoaXMuc3VibWl0QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggdGhpcy5TVUJNSVRfU0VMRUNUT1IgKTtcblx0XHR0aGlzLmNvbmZpcm1Qb3B1cCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHR0aGlzLkNPTkZJUk1fUE9QVVBfU0VMRUNUT1Jcblx0XHQpO1xuXG5cdFx0Ly8gQ29weSB0byBjbGFzcyBwcm9wZXJ0aWVzLCBvdGhlcndpc2UgZXNsaW50IG1hcmtzIHNvbWUgcHJvcGVydGllcyBvZiBnbG9iYWwgb2JqZWN0IGFzIHVucmVzb2x2ZWQuXG5cdFx0dGhpcy5vcHRpb25zU2F2ZVN1Y2Nlc3NNZXNzYWdlID1cblx0XHRcdEN5cjJMYXRTZXR0aW5nc09iamVjdC5vcHRpb25zU2F2ZVN1Y2Nlc3NNZXNzYWdlO1xuXHRcdHRoaXMub3B0aW9uc1NhdmVFcnJvck1lc3NhZ2UgPVxuXHRcdFx0Q3lyMkxhdFNldHRpbmdzT2JqZWN0Lm9wdGlvbnNTYXZlRXJyb3JNZXNzYWdlO1xuXG5cdFx0dGhpcy5hZGRXcmFwcGVyKCk7XG5cdFx0dGhpcy5hZGRNZXNzYWdlTGluZXMoKTtcblx0XHR0aGlzLmFkZEVkaXRMYWJlbElucHV0KCk7XG5cdFx0dGhpcy5oaWRlVGFibGVzKCk7XG5cdFx0dGhpcy5iaW5kRXZlbnRzKCk7XG5cdFx0dGhpcy5zZXRTdWJtaXRTdGF0dXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgaGVhZGVycy5cblx0ICpcblx0ICogQHJldHVybiB7KltdfSBIZWFkZXJzLlxuXHQgKi9cblx0Z2V0SGVhZGVycygpIHtcblx0XHRyZXR1cm4gWyAuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCB0aGlzLkhFQURFUl9TRUxFQ1RPUiApIF07XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGl2ZSBoZWFkZXIuXG5cdCAqXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEFjdGl2ZSBoZWFkZXIuXG5cdCAqL1xuXHRnZXRBY3RpdmVIZWFkZXIoKSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHR0aGlzLkhFQURFUl9TRUxFQ1RPUiArICcuJyArIHRoaXMuQUNUSVZFX05BVl9UQUJfQ0xBU1Ncblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhY3RpdmUgaW5kZXguXG5cdCAqXG5cdCAqIEByZXR1cm4geyp9IEFjdGl2ZSBpbmRleC5cblx0ICovXG5cdGdldEFjdGl2ZUluZGV4KCkge1xuXHRcdHJldHVybiB0aGlzLmdldEFjdGl2ZUhlYWRlcigpLmRhdGFzZXQuaW5kZXg7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRhYmxlcy5cblx0ICpcblx0ICogQHJldHVybiB7KltdfSBUYWJsZXMuXG5cdCAqL1xuXHRnZXRUYWJsZXMoKSB7XG5cdFx0cmV0dXJuIFsgLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCggdGhpcy5UQUJMRV9TRUxFQ1RPUiApIF07XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGl2ZSB0YWJsZS5cblx0ICpcblx0ICogQHJldHVybiB7RWxlbWVudH0gQWN0aXZlIHRhYmxlLlxuXHQgKi9cblx0Z2V0QWN0aXZlVGFibGUoKSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHR0aGlzLlRBQkxFX1NFTEVDVE9SICsgJy4nICsgdGhpcy5BQ1RJVkVfVEFCTEVfQ0xBU1Ncblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBpbnB1dHMuXG5cdCAqXG5cdCAqIEByZXR1cm4geypbXX0gSW5wdXRzLlxuXHQgKi9cblx0Z2V0SW5wdXRzKCkge1xuXHRcdHJldHVybiBbXG5cdFx0XHQuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuXHRcdFx0XHR0aGlzLk9QVElPTlNfRk9STV9TRUxFQ1RPUiArICcgaW5wdXQnXG5cdFx0XHQpLFxuXHRcdF07XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGxhYmVscy5cblx0ICpcblx0ICogQHJldHVybiB7KltdfSBMYWJlbHMuXG5cdCAqL1xuXHRnZXRMYWJlbHMoKSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG5cdFx0XHRcdHRoaXMuT1BUSU9OU19GT1JNX1NFTEVDVE9SICsgJyBsYWJlbCdcblx0XHRcdCksXG5cdFx0XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgcGx1cyBidXR0b25zLlxuXHQgKlxuXHQgKiBAcmV0dXJuIHsqW119IFBsdXMgYnV0dG9ucy5cblx0ICovXG5cdGdldFBsdXNCdXR0b25zKCkge1xuXHRcdHJldHVybiBbXG5cdFx0XHQuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuXHRcdFx0XHR0aGlzLk9QVElPTlNfRk9STV9TRUxFQ1RPUiArICcgLicgKyB0aGlzLlBMVVNfQ0xBU1Ncblx0XHRcdCksXG5cdFx0XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVjayBvZiBhY3RpdmUgdGFibGUgd2FzIGNoYW5nZWQuXG5cdCAqXG5cdCAqIEByZXR1cm4ge2Jvb2xlYW59IElmIGFjdGl2ZSB0YWJsZSB3YXMgY2hhbmdlZC5cblx0ICovXG5cdGlzQWN0aXZlVGFibGVDaGFuZ2VkKCkge1xuXHRcdGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5nZXRBY3RpdmVJbmRleCgpO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdEpTT04uc3RyaW5naWZ5KCB0aGlzLmdldEFjdGl2ZVRhYmxlRGF0YSgpICkgIT09XG5cdFx0XHRKU09OLnN0cmluZ2lmeSggdGhpcy50YWJsZXNEYXRhWyBhY3RpdmVJbmRleCBdIClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCBzdGF0dXMgb2Ygc3VibWl0IGJ1dHRvbi5cblx0ICovXG5cdHNldFN1Ym1pdFN0YXR1cygpIHtcblx0XHR0aGlzLnN1Ym1pdEJ1dHRvbi5kaXNhYmxlZCA9ICEgdGhpcy5pc0FjdGl2ZVRhYmxlQ2hhbmdlZCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYWN0aXZlIHRhYmxlLlxuXHQgKi9cblx0c2F2ZUFjdGl2ZVRhYmxlKCkge1xuXHRcdGlmICggISB0aGlzLmlzQWN0aXZlVGFibGVDaGFuZ2VkKCkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWN0aXZlVGFibGUgPSB0aGlzLmdldEFjdGl2ZVRhYmxlKCk7XG5cblx0XHRjb25zdCBhY3RpdmVGb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2Zvcm0nICk7XG5cdFx0YWN0aXZlRm9ybS5hY3Rpb24gPSB0aGlzLm9wdGlvbnNGb3JtLmdldEF0dHJpYnV0ZSggJ2FjdGlvbicgKTtcblx0XHRhY3RpdmVGb3JtLm1ldGhvZCA9IHRoaXMub3B0aW9uc0Zvcm0ubWV0aG9kO1xuXHRcdGFjdGl2ZUZvcm0uYXBwZW5kQ2hpbGQoIGFjdGl2ZVRhYmxlLmNsb25lTm9kZSggdHJ1ZSApICk7XG5cblx0XHRjb25zdCBhY3RpdmVJbnB1dHMgPSBbIC4uLmFjdGl2ZVRhYmxlLnF1ZXJ5U2VsZWN0b3JBbGwoICdpbnB1dCcgKSBdO1xuXHRcdGFjdGl2ZUlucHV0cy5tYXAoICggaW5wdXQgKSA9PiB7XG5cdFx0XHRyZXR1cm4gKCBhY3RpdmVGb3JtLnF1ZXJ5U2VsZWN0b3IoICcjJyArIGlucHV0LmlkICkudmFsdWUgPVxuXHRcdFx0XHRpbnB1dC52YWx1ZSApO1xuXHRcdH0gKTtcblxuXHRcdGNvbnN0IGhpZGRlbklucHV0cyA9IFtcblx0XHRcdC4uLnRoaXMub3B0aW9uc0Zvcm0ucXVlcnlTZWxlY3RvckFsbCggJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl0nICksXG5cdFx0XTtcblx0XHRoaWRkZW5JbnB1dHMubWFwKCAoIGlucHV0ICkgPT4ge1xuXHRcdFx0cmV0dXJuIGFjdGl2ZUZvcm0uYXBwZW5kQ2hpbGQoIGlucHV0LmNsb25lTm9kZSggdHJ1ZSApICk7XG5cdFx0fSApO1xuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIGFjdGl2ZUZvcm0gKTtcblxuXHRcdHJldHVybiBmZXRjaCggdGhpcy5vcHRpb25zRm9ybS5nZXRBdHRyaWJ1dGUoICdhY3Rpb24nICksIHtcblx0XHRcdG1ldGhvZDogYWN0aXZlRm9ybS5tZXRob2QsXG5cdFx0XHRib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKCBbIC4uLm5ldyBGb3JtRGF0YSggYWN0aXZlRm9ybSApIF0gKSxcblx0XHR9IClcblx0XHRcdC50aGVuKCAoIHJlc3BvbnNlICkgPT4ge1xuXHRcdFx0XHRpZiAoIHJlc3BvbnNlLm9rICkge1xuXHRcdFx0XHRcdHRoaXMuc2hvd01lc3NhZ2UoXG5cdFx0XHRcdFx0XHR0aGlzLnN1Y2Nlc3NNZXNzYWdlLFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zU2F2ZVN1Y2Nlc3NNZXNzYWdlXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR0aGlzLnRhYmxlc0RhdGEgPSB0aGlzLmdldFRhYmxlc0RhdGEoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNob3dNZXNzYWdlKFxuXHRcdFx0XHRcdFx0dGhpcy5lcnJvck1lc3NhZ2UsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbnNTYXZlRXJyb3JNZXNzYWdlXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiByZXNwb25zZS5qc29uKCk7XG5cdFx0XHR9IClcblx0XHRcdC5maW5hbGx5KCAoKSA9PiB7XG5cdFx0XHRcdGFjdGl2ZUZvcm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggYWN0aXZlRm9ybSApO1xuXHRcdFx0XHR0aGlzLnNldFN1Ym1pdFN0YXR1cygpO1xuXHRcdFx0fSApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0YWJsZSBkYXRhLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0VsZW1lbnR9IHRhYmxlIFRhYmxlLlxuXHQgKiBAcmV0dXJuIHt7fVtdfSBUYWJsZSBkYXRhLlxuXHQgKi9cblx0Z2V0VGFibGVEYXRhKCB0YWJsZSApIHtcblx0XHRjb25zdCBpbnB1dHMgPSBbIC4uLnRhYmxlLnF1ZXJ5U2VsZWN0b3JBbGwoICdpbnB1dCcgKSBdO1xuXG5cdFx0Y29uc3QgZGF0YSA9IHt9O1xuXHRcdGlucHV0cy5mb3JFYWNoKCAoIGlucHV0ICkgPT4ge1xuXHRcdFx0Y29uc3QgbGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuXHRcdFx0XHR0aGlzLk9QVElPTlNfRk9STV9TRUxFQ1RPUiArICcgbGFiZWxbZm9yPVwiJyArIGlucHV0LmlkICsgJ1wiXSdcblx0XHRcdCk7XG5cblx0XHRcdGRhdGFbIGxhYmVsLmlubmVySFRNTCBdID0gaW5wdXQudmFsdWU7XG5cdFx0fSApO1xuXG5cdFx0cmV0dXJuIGRhdGE7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGRhdGEgZnJvbSBhbGwgdGFibGVzLlxuXHQgKlxuXHQgKiBAcmV0dXJuIHt7fVtdW119IERhdGEgZnJvbSBhbGwgdGFibGVzLlxuXHQgKi9cblx0Z2V0VGFibGVzRGF0YSgpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRUYWJsZXMoKS5tYXAoICggdGFibGUgKSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRUYWJsZURhdGEoIHRhYmxlICk7XG5cdFx0fSApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhY3RpdmUgdGFibGUgZGF0YS5cblx0ICpcblx0ICogQHJldHVybiB7e31bXX0gQWN0aXZlIHRhYmxlIGRhdGEuXG5cdCAqL1xuXHRnZXRBY3RpdmVUYWJsZURhdGEoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VGFibGVEYXRhKCB0aGlzLmdldEFjdGl2ZVRhYmxlKCkgKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgd3JhcHBlci5cblx0ICovXG5cdGFkZFdyYXBwZXIoKSB7XG5cdFx0dGhpcy53cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3VsJyApO1xuXHRcdHRoaXMud3JhcHBlci5jbGFzc0xpc3QuYWRkKCAnbmF2LXRhYi13cmFwcGVyJyApO1xuXHRcdHRoaXMub3B0aW9uc0Zvcm0uaW5zZXJ0QmVmb3JlKFxuXHRcdFx0dGhpcy53cmFwcGVyLFxuXHRcdFx0dGhpcy5vcHRpb25zRm9ybS5maXJzdENoaWxkXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgbWVzc2FnZSBsaW5lLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gaWQgTWVzc2FnZSBpZC5cblx0ICogQHJldHVybiB7SFRNTERpdkVsZW1lbnR9IE1lc3NhZ2UgbGluZS5cblx0ICovXG5cdGFkZE1lc3NhZ2VMaW5lKCBpZCApIHtcblx0XHRjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTtcblx0XHRtZXNzYWdlLmlkID0gaWQ7XG5cdFx0dGhpcy5vcHRpb25zRm9ybS5pbnNlcnRCZWZvcmUoIG1lc3NhZ2UsIHRoaXMub3B0aW9uc0Zvcm0uZmlyc3RDaGlsZCApO1xuXG5cdFx0cmV0dXJuIG1lc3NhZ2U7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIHN1Y2Nlc3MgYW5kIGVycm9yIG1lc3NhZ2UgbGluZXMuXG5cdCAqL1xuXHRhZGRNZXNzYWdlTGluZXMoKSB7XG5cdFx0dGhpcy5zdWNjZXNzTWVzc2FnZSA9IHRoaXMuYWRkTWVzc2FnZUxpbmUoICdjdGwtc3VjY2VzcycgKTtcblx0XHR0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuYWRkTWVzc2FnZUxpbmUoICdjdGwtZXJyb3InICk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGVkaXQgbGFiZWwgaW5wdXQuXG5cdCAqL1xuXHRhZGRFZGl0TGFiZWxJbnB1dCgpIHtcblx0XHR0aGlzLmVkaXRMYWJlbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2lucHV0JyApO1xuXHRcdHRoaXMuZWRpdExhYmVsSW5wdXQuaWQgPSB0aGlzLkVESVRfTEFCRUxfSUQ7XG5cdFx0dGhpcy5lZGl0TGFiZWxJbnB1dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIHRoaXMuZWRpdExhYmVsSW5wdXQgKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIaWRlIGVkaXQgbGFiZWwgaW5wdXQuXG5cdCAqL1xuXHRoaWRlRWRpdExhYmVsSW5wdXQoKSB7XG5cdFx0dGhpcy5lZGl0TGFiZWxJbnB1dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdHRoaXMuZWRpdExhYmVsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSggdGhpcy5FRElUX0xBQkVMX0VSUk9SX0NMQVNTICk7XG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCggdGhpcy5lZGl0TGFiZWxJbnB1dCApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBsYXN0IGNlbGwgaW4gYWN0aXZlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSBMYXN0IGNlbGwuXG5cdCAqL1xuXHRnZXRMYXN0Q2VsbCgpIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdHRoaXMuT1BUSU9OU19GT1JNX1NFTEVDVE9SICtcblx0XHRcdFx0JyAuJyArXG5cdFx0XHRcdHRoaXMuQUNUSVZFX1RBQkxFX0NMQVNTICtcblx0XHRcdFx0JyAuJyArXG5cdFx0XHRcdHRoaXMuUExVU19DTEFTU1xuXHRcdCkucHJldmlvdXNFbGVtZW50U2libGluZztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgbmV3IGNlbGwgdG8gdGhlIGFjdGl2ZSB0YWJsZS5cblx0ICovXG5cdGFkZENlbGwoKSB7XG5cdFx0bGV0IGxhc3RDZWxsID0gdGhpcy5nZXRMYXN0Q2VsbCgpO1xuXHRcdGxhc3RDZWxsLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuXHRcdFx0bGFzdENlbGwuY2xvbmVOb2RlKCB0cnVlICksXG5cdFx0XHRsYXN0Q2VsbC5uZXh0RWxlbWVudFNpYmxpbmdcblx0XHQpO1xuXG5cdFx0bGFzdENlbGwgPSB0aGlzLmdldExhc3RDZWxsKCk7XG5cdFx0Y29uc3QgbGFiZWwgPSBsYXN0Q2VsbC5xdWVyeVNlbGVjdG9yKCAnbGFiZWwnICk7XG5cdFx0Y29uc3QgaW5wdXQgPSBsYXN0Q2VsbC5xdWVyeVNlbGVjdG9yKCAnaW5wdXQnICk7XG5cblx0XHRjb25zdCBpZEFyciA9IGlucHV0LmlkLnNwbGl0KCAnLScgKTtcblx0XHRjb25zdCBuZXdJZCA9IGlkQXJyWyAwIF0gKyAnLScgKyAoIHBhcnNlSW50KCBpZEFyclsgMSBdICkgKyAxICk7XG5cblx0XHRsYWJlbC5odG1sRm9yID0gbmV3SWQ7XG5cdFx0bGFiZWwuaW5uZXJIVE1MID0gJyc7XG5cblx0XHRpbnB1dC5pZCA9IG5ld0lkO1xuXHRcdGlucHV0LnZhbHVlID0gJyc7XG5cdFx0aW5wdXQuc2V0QXR0cmlidXRlKCAndmFsdWUnLCAnJyApO1xuXHRcdHRoaXMucmVwbGFjZU5hbWUoIGlucHV0LCAnJyApO1xuXG5cdFx0dGhpcy5iaW5kRXZlbnRzKCk7XG5cblx0XHR0aGlzLmVkaXRMYWJlbCggbGFiZWwgKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIaWRlIGNvbnZlcnNpb24gdGFibGVzIGV4Y2VwdCB0aGUgZmlyc3Qgb25lLlxuXHQgKiBDcmVhdGUgbmF2aWdhdGlvbiB0YWJzLlxuXHQgKi9cblx0aGlkZVRhYmxlcygpIHtcblx0XHRsZXQgY3VycmVudEluZGV4ID0gMDtcblxuXHRcdHRoaXMuZ2V0VGFibGVzKCkubWFwKCAoIHRhYmxlLCBpbmRleCApID0+IHtcblx0XHRcdHRhYmxlLmNsYXNzTGlzdC5hZGQoICdjdGwtdGFibGUnICk7XG5cblx0XHRcdGlmICggdGhpcy5DVVJSRU5UX1NUVUJfSUQgPT09IHRhYmxlLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuaWQgKSB7XG5cdFx0XHRcdGN1cnJlbnRJbmRleCA9IGluZGV4O1xuXHRcdFx0XHR0YWJsZS5jbGFzc0xpc3QuYWRkKCB0aGlzLkFDVElWRV9UQUJMRV9DTEFTUyApO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBwbHVzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTtcblx0XHRcdHBsdXMuY2xhc3NMaXN0LmFkZCggdGhpcy5QTFVTX0NMQVNTICk7XG5cdFx0XHRwbHVzLmlubmVySFRNTCA9IHRoaXMucGx1c0J1dHRvbjtcblx0XHRcdHRhYmxlLnF1ZXJ5U2VsZWN0b3IoICd0ZCcgKS5hcHBlbmRDaGlsZCggcGx1cyApO1xuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9ICk7XG5cblx0XHR0aGlzLmdldEhlYWRlcnMoKS5tYXAoICggaGVhZGVyLCBpbmRleCApID0+IHtcblx0XHRcdGhlYWRlci5jbGFzc0xpc3QuYWRkKCAnbmF2LXRhYicgKTtcblx0XHRcdGhlYWRlci5kYXRhc2V0LmluZGV4ID0gaW5kZXg7XG5cblx0XHRcdHRoaXMud3JhcHBlci5hcHBlbmRDaGlsZCggaGVhZGVyICk7XG5cdFx0XHRpZiAoIGluZGV4ID09PSBjdXJyZW50SW5kZXggKSB7XG5cdFx0XHRcdGhlYWRlci5jbGFzc0xpc3QuYWRkKCB0aGlzLkNVUlJFTlRfTkFWX1RBQl9DTEFTUyApO1xuXHRcdFx0XHRoZWFkZXIuY2xhc3NMaXN0LmFkZCggdGhpcy5BQ1RJVkVfTkFWX1RBQl9DTEFTUyApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9ICk7XG5cdH1cblxuXHQvKipcblx0ICogQmluZCBldmVudHMgdG8gbWV0aG9kcy5cblx0ICovXG5cdGJpbmRFdmVudHMoKSB7XG5cdFx0dGhpcy5nZXRIZWFkZXJzKCkubWFwKCAoIGhlYWRlciwgaSwgaGVhZGVycyApID0+IHtcblx0XHRcdGhlYWRlci5vbmNsaWNrID0gKCBldmVudCApID0+IHtcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdFx0XHRjb25zdCBpbmRleCA9IGV2ZW50LnRhcmdldC5kYXRhc2V0LmluZGV4O1xuXHRcdFx0XHRjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKTtcblxuXHRcdFx0XHRpZiAoIGluZGV4ID09PSBhY3RpdmVJbmRleCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLnNhdmVBY3RpdmVUYWJsZSgpO1xuXG5cdFx0XHRcdGhlYWRlcnMubWFwKCAoIGFIZWFkZXIgKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGFIZWFkZXIuY2xhc3NMaXN0LnJlbW92ZShcblx0XHRcdFx0XHRcdHRoaXMuQUNUSVZFX05BVl9UQUJfQ0xBU1Ncblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdGhlYWRlcnNbIGluZGV4IF0uY2xhc3NMaXN0LmFkZCggdGhpcy5BQ1RJVkVfTkFWX1RBQl9DTEFTUyApO1xuXG5cdFx0XHRcdGNvbnN0IHRhYmxlcyA9IHRoaXMuZ2V0VGFibGVzKCk7XG5cdFx0XHRcdHRhYmxlcy5tYXAoICggdGFibGUgKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHRhYmxlLmNsYXNzTGlzdC5yZW1vdmUoIHRoaXMuQUNUSVZFX1RBQkxFX0NMQVNTICk7XG5cdFx0XHRcdH0gKTtcblx0XHRcdFx0dGFibGVzWyBpbmRleCBdLmNsYXNzTGlzdC5hZGQoIHRoaXMuQUNUSVZFX1RBQkxFX0NMQVNTICk7XG5cblx0XHRcdFx0dGhpcy5zZXRTdWJtaXRTdGF0dXMoKTtcblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9ICk7XG5cblx0XHR0aGlzLmdldElucHV0cygpLm1hcCggKCBpbnB1dCApID0+IHtcblx0XHRcdGlucHV0Lm9uaW5wdXQgPSAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuc2V0U3VibWl0U3RhdHVzKCk7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9ICk7XG5cblx0XHR0aGlzLmdldExhYmVscygpLm1hcCggKCBsYWJlbCApID0+IHtcblx0XHRcdGxhYmVsLm9uY2xpY2sgPSAoIGV2ZW50ICkgPT4ge1xuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHR0aGlzLmVkaXRMYWJlbCggZXZlbnQudGFyZ2V0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0gKTtcblxuXHRcdHRoaXMuZWRpdExhYmVsSW5wdXQub25ibHVyID0gKCkgPT4ge1xuXHRcdFx0dGhpcy5zYXZlTGFiZWwoKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5lZGl0TGFiZWxJbnB1dC5vbmtleXVwID0gKCBlICkgPT4ge1xuXHRcdFx0aWYgKCAnRXNjYXBlJyA9PT0gZS5rZXkgKSB7XG5cdFx0XHRcdHRoaXMuc2F2ZUxhYmVsKCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggJ0VudGVyJyA9PT0gZS5rZXkgKSB7XG5cdFx0XHRcdHRoaXMuc2F2ZUxhYmVsKCk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0UGx1c0J1dHRvbnMoKS5tYXAoICggcGx1cyApID0+IHtcblx0XHRcdHBsdXMub25jbGljayA9ICggZXZlbnQgKSA9PiB7XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdHRoaXMuYWRkQ2VsbCggZXZlbnQudGFyZ2V0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0gKTtcblxuXHRcdHRoaXMuc3VibWl0QnV0dG9uLm9uY2xpY2sgPSAoIGV2ZW50ICkgPT4ge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdHRoaXMuc2F2ZUFjdGl2ZVRhYmxlKCk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcblxuXHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIHRoaXMuQ09OVkVSVF9CVVRUT05fU0VMRUNUT1IgKS5vbmNsaWNrID0gKFxuXHRcdFx0ZXZlbnRcblx0XHQpID0+IHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR0aGlzLmNvbmZpcm1Qb3B1cC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xuXG5cdFx0dGhpcy5jb25maXJtUG9wdXAub25jbGljayA9ICgpID0+IHtcblx0XHRcdHRoaXMuaGlkZUNvbmZpcm1Qb3B1cCgpO1xuXHRcdH07XG5cblx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCB0aGlzLkNPTkZJUk1fT0tfU0VMRUNUT1IgKS5vbmNsaWNrID0gKFxuXHRcdFx0ZXZlbnRcblx0XHQpID0+IHtcblx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0dGhpcy5oaWRlQ29uZmlybVBvcHVwKCk7XG5cdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCB0aGlzLkNPTlZFUlRfRk9STV9TRUxFQ1RPUiApLnN1Ym1pdCgpO1xuXHRcdH07XG5cblx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCB0aGlzLkNPTkZJUk1fQ0FOQ0VMX1NFTEVDVE9SICkub25jbGljayA9IChcblx0XHRcdGV2ZW50XG5cdFx0KSA9PiB7XG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdHRoaXMuaGlkZUNvbmZpcm1Qb3B1cCgpO1xuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogSGlkZSBjb25maXJtYXRpb24gcG9wdXAuXG5cdCAqL1xuXHRoaWRlQ29uZmlybVBvcHVwKCkge1xuXHRcdHRoaXMuY29uZmlybVBvcHVwLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdH1cblxuXHQvKipcblx0ICogRWRpdCBsYWJlbC5cblx0ICpcblx0ICogQHBhcmFtIHtFbGVtZW50fSBsYWJlbCBMYWJlbCB0byBlZGl0LlxuXHQgKi9cblx0ZWRpdExhYmVsKCBsYWJlbCApIHtcblx0XHRsYWJlbC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKCB0aGlzLmVkaXRMYWJlbElucHV0ICk7XG5cdFx0dGhpcy5lZGl0TGFiZWxJbnB1dC52YWx1ZSA9IGxhYmVsLmlubmVySFRNTDtcblxuXHRcdHRoaXMuZWRpdExhYmVsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSggdGhpcy5FRElUX0xBQkVMX0VSUk9SX0NMQVNTICk7XG5cdFx0dGhpcy5lZGl0TGFiZWxJbnB1dC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblx0XHR0aGlzLmVkaXRMYWJlbElucHV0LmZvY3VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogSXMgbmV3IHZhbHVlIG9mIGVkaXRlZCBsYWJlbCB1bmlxdWUgaW4gYWN0aXZlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWUgTmV3IFZhbHVlIGZyb20gZWRpdGVkIGxhYmVsLlxuXHQgKiBAcmV0dXJuIHsqfSBJZiBuZXcgdmFsdWUgb2YgZWRpdGVkIGxhYmVsIGlzIHVuaXF1ZSBpbiBhY3RpdmUgdGFibGUuXG5cdCAqL1xuXHRpc1VuaXF1ZUxhYmVsKCBuZXdWYWx1ZSApIHtcblx0XHRyZXR1cm4gWyAuLi50aGlzLmdldEFjdGl2ZVRhYmxlKCkucXVlcnlTZWxlY3RvckFsbCggJ2xhYmVsJyApIF0ucmVkdWNlKFxuXHRcdFx0KCBhY2MsIGxhYmVsICkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gYWNjICYmIGxhYmVsLmlubmVySFRNTCAhPT0gbmV3VmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogU2F2ZSBtb2RpZmllZCBsYWJlbC5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBjYW5jZWwgQ2FuY2VsLlxuXHQgKi9cblx0c2F2ZUxhYmVsKCBjYW5jZWwgPSBmYWxzZSApIHtcblx0XHRpZiAoICdub25lJyA9PT0gdGhpcy5lZGl0TGFiZWxJbnB1dC5zdHlsZS5kaXNwbGF5ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5lZGl0TGFiZWxJbnB1dC52YWx1ZS50cmltKCk7XG5cblx0XHRpZiAoICcnID09PSBuZXdWYWx1ZSApIHtcblx0XHRcdGNvbnN0IGVkaXRlZENlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggdGhpcy5FRElUX0xBQkVMX0lEIClcblx0XHRcdFx0LnBhcmVudEVsZW1lbnQ7XG5cdFx0XHR0aGlzLmhpZGVFZGl0TGFiZWxJbnB1dCgpO1xuXHRcdFx0ZWRpdGVkQ2VsbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlZGl0ZWRDZWxsICk7XG5cdFx0XHR0aGlzLnNldFN1Ym1pdFN0YXR1cygpO1xuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbGFiZWwgPSB0aGlzLmVkaXRMYWJlbElucHV0LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvciggJ2xhYmVsJyApO1xuXHRcdGlmICggY2FuY2VsIHx8IG5ld1ZhbHVlID09PSBsYWJlbC5pbm5lckhUTUwgKSB7XG5cdFx0XHR0aGlzLmhpZGVFZGl0TGFiZWxJbnB1dCgpO1xuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCAhIHRoaXMuaXNVbmlxdWVMYWJlbCggbmV3VmFsdWUgKSApIHtcblx0XHRcdHRoaXMuZWRpdExhYmVsSW5wdXQuY2xhc3NMaXN0LmFkZCggdGhpcy5FRElUX0xBQkVMX0VSUk9SX0NMQVNTICk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBpbnB1dCA9IHRoaXMuZWRpdExhYmVsSW5wdXQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCAnaW5wdXQnICk7XG5cblx0XHR0aGlzLmhpZGVFZGl0TGFiZWxJbnB1dCgpO1xuXG5cdFx0bGFiZWwuaW5uZXJIVE1MID0gbmV3VmFsdWU7XG5cdFx0dGhpcy5yZXBsYWNlTmFtZSggaW5wdXQsIG5ld1ZhbHVlICk7XG5cblx0XHR0aGlzLnNldFN1Ym1pdFN0YXR1cygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlcGxhY2UgaW5wdXQgbmFtZSBhY2NvcmRpbmcgdG8gdGhlIG5ldyBsYWJlbCB2YWx1ZS5cblx0ICpcblx0ICogQHBhcmFtIHtFbGVtZW50fSBpbnB1dCBJbnB1dFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWUgTmV3IGxhYmVsIHZhbHVlXG5cdCAqL1xuXHRyZXBsYWNlTmFtZSggaW5wdXQsIG5ld1ZhbHVlICkge1xuXHRcdC8vIG5vaW5zcGVjdGlvbiBKU1VucmVzb2x2ZWRWYXJpYWJsZVxuXHRcdGlucHV0Lm5hbWUgPSBpbnB1dC5uYW1lLnJlcGxhY2UoXG5cdFx0XHQvKC4rXFxbLitdKVxcWy4qXS9nLFxuXHRcdFx0JyQxWycgKyBuZXdWYWx1ZSArICddJ1xuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYXIgbWVzc2FnZS5cblx0ICpcblx0ICogQHBhcmFtIHtIVE1MRGl2RWxlbWVudH0gbWVzc2FnZSBNZXNzYWdlLlxuXHQgKi9cblx0Y2xlYXJNZXNzYWdlKCBtZXNzYWdlICkge1xuXHRcdG1lc3NhZ2UuaW5uZXJIVE1MID0gJyc7XG5cdFx0bWVzc2FnZS5jbGFzc0xpc3QucmVtb3ZlKCAnYWN0aXZlJyApO1xuXHR9XG5cblx0LyoqXG5cdCAqIENsZWFyIG1lc3NhZ2VzLlxuXHQgKi9cblx0Y2xlYXJNZXNzYWdlcygpIHtcblx0XHR0aGlzLmNsZWFyTWVzc2FnZSggdGhpcy5zdWNjZXNzTWVzc2FnZSApO1xuXHRcdHRoaXMuY2xlYXJNZXNzYWdlKCB0aGlzLmVycm9yTWVzc2FnZSApO1xuXHRcdGNsZWFyVGltZW91dCggdGhpcy5tc2dUaW1lciApO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNob3cgbWVzc2FnZS5cblx0ICpcblx0ICogQHBhcmFtIHtIVE1MRGl2RWxlbWVudH0gZWwgRWxlbWVudC5cblx0ICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgTWVzc2FnZS5cblx0ICovXG5cdHNob3dNZXNzYWdlKCBlbCwgbWVzc2FnZSApIHtcblx0XHRlbC5pbm5lckhUTUwgPSBtZXNzYWdlO1xuXHRcdGVsLmNsYXNzTGlzdC5hZGQoICdhY3RpdmUnICk7XG5cblx0XHR0aGlzLm1zZ1RpbWVyID0gc2V0VGltZW91dCggKCkgPT4ge1xuXHRcdFx0dGhpcy5jbGVhck1lc3NhZ2VzKCk7XG5cdFx0fSwgNTAwMCApO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNldHRpbmdzO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
|
languages/cyr2lat-ru_RU.mo
CHANGED
Binary file
|
languages/cyr2lat-ru_RU.po
CHANGED
@@ -1,19 +1,19 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Cyr To Lat\n"
|
4 |
-
"POT-Creation-Date:
|
5 |
-
"PO-Revision-Date:
|
6 |
"Last-Translator: KAGG Design <info@kagg.eu>\n"
|
7 |
"Language-Team: KAGG Design\n"
|
8 |
"Language: ru_RU\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Poedit 2.
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
15 |
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
16 |
-
"X-Poedit-KeywordsList: __;esc_html__;esc_attr__\n"
|
17 |
"X-Poedit-Flags-xgettext: --add-comments\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPathExcluded-0: .git\n"
|
@@ -28,85 +28,85 @@ msgstr ""
|
|
28 |
"X-Poedit-SearchPathExcluded-9: tests\n"
|
29 |
"X-Poedit-SearchPathExcluded-10: vendor\n"
|
30 |
|
31 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
32 |
msgid "Post slug converted:"
|
33 |
msgstr "Ярлык поста сконвертирован:"
|
34 |
|
35 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
36 |
msgid "Attachment file converted:"
|
37 |
msgstr "Файл вложения сконвертирован:"
|
38 |
|
39 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
40 |
msgid "Cannot convert attachment file for attachment id:"
|
41 |
msgstr "Невозможно сконвертировать файл вложения для вложения с id:"
|
42 |
|
43 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
44 |
msgid "Thumbnail file renamed:"
|
45 |
msgstr "Файл миниатюры переименован:"
|
46 |
|
47 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
48 |
msgid "Cannot rename thumbnail file:"
|
49 |
msgstr "Невозможно переименовать файл миниатюры:"
|
50 |
|
51 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
52 |
msgid "Post slugs conversion completed."
|
53 |
msgstr "Конвертация ярлыков постов завершена."
|
54 |
|
55 |
-
#: classes/background-processes/class-term-conversion-process.php:
|
56 |
msgid "Term slug converted:"
|
57 |
msgstr "Ярлык термина сконвертирован:"
|
58 |
|
59 |
-
#: classes/background-processes/class-term-conversion-process.php:
|
60 |
msgid "Term slugs conversion completed."
|
61 |
msgstr "Конвертация ярлыков терминов завершена."
|
62 |
|
63 |
-
#: classes/class-converter.php:
|
64 |
msgid "Cyr To Lat converts existing post slugs in the background process."
|
65 |
msgstr "Cyr To Lat конвертирует существующие ярлыки постов в фоновом процессе."
|
66 |
|
67 |
-
#: classes/class-converter.php:
|
68 |
msgid "Cyr To Lat converts existing term slugs in the background process."
|
69 |
msgstr ""
|
70 |
"Cyr To Lat конвертирует существующие ярлыки терминов в фоновом процессе."
|
71 |
|
72 |
-
#: classes/class-converter.php:
|
73 |
msgid "Cyr To Lat completed conversion of existing post slugs."
|
74 |
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков постов."
|
75 |
|
76 |
-
#: classes/class-converter.php:
|
77 |
msgid "Cyr To Lat completed conversion of existing term slugs."
|
78 |
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков терминов."
|
79 |
|
80 |
-
#: classes/class-converter.php:
|
81 |
msgid "Cyr To Lat has not found existing post slugs for conversion."
|
82 |
msgstr "Cyr To Lat не нашёл существующих ярлыков постов для конвертации."
|
83 |
|
84 |
-
#: classes/class-converter.php:
|
85 |
msgid "Post slugs conversion started."
|
86 |
msgstr "Начата конвертация ярлыков постов."
|
87 |
|
88 |
-
#: classes/class-converter.php:
|
89 |
msgid "Cyr To Lat started conversion of existing post slugs."
|
90 |
msgstr "Cyr To Lat начал конвертацию существующих ярлыков постов."
|
91 |
|
92 |
-
#: classes/class-converter.php:
|
93 |
msgid "Cyr To Lat has not found existing term slugs for conversion."
|
94 |
msgstr "Cyr To Lat не нашёл существующих ярлыков терминов для конвертации."
|
95 |
|
96 |
-
#: classes/class-converter.php:
|
97 |
msgid "Term slugs conversion started."
|
98 |
msgstr "Начата конвертация ярлыков терминов."
|
99 |
|
100 |
-
#: classes/class-converter.php:
|
101 |
msgid "Cyr To Lat started conversion of existing term slugs."
|
102 |
msgstr "Cyr To Lat начал конвертацию существующих ярлыков терминов."
|
103 |
|
104 |
-
#: classes/class-requirements.php:
|
105 |
msgid "Cyr To Lat plugin has been deactivated."
|
106 |
msgstr "Плагин Cyr To Lat был деактивирован."
|
107 |
|
108 |
#. translators: 1: Current PHP version number, 2: Cyr To Lat version, 3: Minimum required PHP version number
|
109 |
-
#: classes/class-requirements.php:
|
110 |
#, php-format
|
111 |
msgid ""
|
112 |
"Your server is running PHP version %1$s but Cyr To Lat %2$s requires at "
|
@@ -115,12 +115,12 @@ msgstr ""
|
|
115 |
"На сервере установлен PHP версии %1$s, однако для Cyr To Lat %2$s требуется "
|
116 |
"хотя бы %3$s."
|
117 |
|
118 |
-
#: classes/class-requirements.php:
|
119 |
msgid "Unable to get filesystem access."
|
120 |
msgstr "Невозможно получить доступ к файловой системе."
|
121 |
|
122 |
#. translators: 1: max_input_vars value, 2: Cyr To Lat version, 3: Minimum required max_input_vars
|
123 |
-
#: classes/class-requirements.php:
|
124 |
#, php-format
|
125 |
msgid ""
|
126 |
"Your server is running PHP with max_input_vars=%1$d but Cyr To Lat %2$s "
|
@@ -130,22 +130,22 @@ msgstr ""
|
|
130 |
"требуется хотя бы %3$d."
|
131 |
|
132 |
#. translators: 1: .user.ini filename
|
133 |
-
#: classes/class-requirements.php:
|
134 |
#, php-format
|
135 |
msgid "We have updated settings in %s."
|
136 |
msgstr "Мы обновили настройки в %s."
|
137 |
|
138 |
#. translators: 1: Wait time in seconds
|
139 |
-
#: classes/class-requirements.php:
|
140 |
#, php-format
|
141 |
msgid "Please try again in %d s."
|
142 |
msgstr "Пожалуйста, попробуйте снова через %d сек."
|
143 |
|
144 |
-
#: classes/class-requirements.php:
|
145 |
msgid "Please increase max input vars limit up to 1500."
|
146 |
msgstr "Пожалуйста, увеличьте лимит max input vars до 1500."
|
147 |
|
148 |
-
#: classes/class-requirements.php:
|
149 |
msgid ""
|
150 |
"See: <a href=\"http://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" "
|
151 |
"target=\"_blank\">Increasing max input vars limit.</a>"
|
@@ -153,101 +153,131 @@ msgstr ""
|
|
153 |
"См.: <a href=\"http://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" "
|
154 |
"target=\"_blank\">Увеличение лимита max input vars.</a>"
|
155 |
|
156 |
-
#: classes/class-settings.php:
|
157 |
msgid "View Cyr To Lat settings"
|
158 |
msgstr "Посмотреть настройки Cyr To Lat"
|
159 |
|
160 |
-
#: classes/class-settings.php:
|
161 |
msgid "Settings"
|
162 |
msgstr "Настройки"
|
163 |
|
164 |
-
#: classes/class-settings.php:
|
165 |
msgid "ISO9 Table"
|
166 |
msgstr "Таблица ISO9"
|
167 |
|
168 |
-
#: classes/class-settings.php:
|
169 |
msgid "bel Table"
|
170 |
msgstr "Таблица bel"
|
171 |
|
172 |
-
#: classes/class-settings.php:
|
173 |
msgid "uk Table"
|
174 |
msgstr "Таблица uk"
|
175 |
|
176 |
-
#: classes/class-settings.php:
|
177 |
msgid "bg_BG Table"
|
178 |
msgstr "Таблица bg_BG"
|
179 |
|
180 |
-
#: classes/class-settings.php:
|
181 |
msgid "mk_MK Table"
|
182 |
msgstr "Таблица mk_MK"
|
183 |
|
184 |
-
#: classes/class-settings.php:
|
185 |
msgid "sr_RS Table"
|
186 |
msgstr "Таблица sr_RS"
|
187 |
|
188 |
-
#: classes/class-settings.php:
|
189 |
msgid "el Table"
|
190 |
msgstr "Таблица el"
|
191 |
|
192 |
-
#: classes/class-settings.php:
|
193 |
msgid "hy Table"
|
194 |
msgstr "Таблица hy"
|
195 |
|
196 |
-
#: classes/class-settings.php:
|
197 |
msgid "ka_GE Table"
|
198 |
msgstr "Таблица ka_GE"
|
199 |
|
200 |
-
#: classes/class-settings.php:
|
201 |
msgid "kk Table"
|
202 |
msgstr "Таблица kk"
|
203 |
|
204 |
-
#: classes/class-settings.php:
|
205 |
msgid "he_IL Table"
|
206 |
msgstr "Таблица he_IL"
|
207 |
|
208 |
-
#: classes/class-settings.php:
|
209 |
msgid "zh_CN Table"
|
210 |
msgstr "Таблица zh_CN"
|
211 |
|
212 |
-
#: classes/class-settings.php:
|
213 |
msgid "(current)"
|
214 |
msgstr "(текущая)"
|
215 |
|
216 |
-
#: classes/class-settings.php:
|
217 |
msgid "Cyr To Lat"
|
218 |
msgstr "Cyr To Lat"
|
219 |
|
220 |
#. Admin panel title.
|
221 |
-
#: classes/class-settings.php:
|
222 |
msgid "Cyr To Lat Plugin Options"
|
223 |
msgstr "Опции плагина Cyr To Lat"
|
224 |
|
225 |
-
#: classes/class-settings.php:
|
226 |
msgid "Convert Existing Slugs"
|
227 |
msgstr "Конвертировать существующие ярлыки"
|
228 |
|
229 |
-
#: classes/class-settings.php:
|
230 |
-
msgid "Donate"
|
231 |
-
msgstr "Пожертвовать"
|
232 |
-
|
233 |
-
#: classes/class-settings.php:318
|
234 |
-
msgid "Would you like to support the advancement of this plugin?"
|
235 |
-
msgstr "Хотите поддержать развитие этого плагина?"
|
236 |
-
|
237 |
-
#: classes/class-settings.php:332
|
238 |
msgid "Your appreciation"
|
239 |
msgstr "Ваша оценка"
|
240 |
|
241 |
-
#: classes/class-settings.php:
|
242 |
msgid "Leave a ★★★★★ plugin review on WordPress.org"
|
243 |
msgstr "Оставьте ★★★★★ обзор плагина на WordPress.org"
|
244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
#. translators: %d: cron interval
|
246 |
#: lib/wp-background-processing/class-wp-background-process.php:399
|
247 |
#, php-format
|
248 |
msgid "Every %d Minutes"
|
249 |
msgstr "Каждые %d минут"
|
250 |
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
#~ msgid "Please try again."
|
252 |
#~ msgstr "Пожалуйста, попробуйте снова."
|
253 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Cyr To Lat\n"
|
4 |
+
"POT-Creation-Date: 2021-02-10 14:55+0200\n"
|
5 |
+
"PO-Revision-Date: 2021-02-10 14:57+0200\n"
|
6 |
"Last-Translator: KAGG Design <info@kagg.eu>\n"
|
7 |
"Language-Team: KAGG Design\n"
|
8 |
"Language: ru_RU\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 2.4.2\n"
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
15 |
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
16 |
+
"X-Poedit-KeywordsList: __;esc_html__;esc_attr__;esc_html_e\n"
|
17 |
"X-Poedit-Flags-xgettext: --add-comments\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPathExcluded-0: .git\n"
|
28 |
"X-Poedit-SearchPathExcluded-9: tests\n"
|
29 |
"X-Poedit-SearchPathExcluded-10: vendor\n"
|
30 |
|
31 |
+
#: classes/background-processes/class-post-conversion-process.php:73
|
32 |
msgid "Post slug converted:"
|
33 |
msgstr "Ярлык поста сконвертирован:"
|
34 |
|
35 |
+
#: classes/background-processes/class-post-conversion-process.php:102
|
36 |
msgid "Attachment file converted:"
|
37 |
msgstr "Файл вложения сконвертирован:"
|
38 |
|
39 |
+
#: classes/background-processes/class-post-conversion-process.php:108
|
40 |
msgid "Cannot convert attachment file for attachment id:"
|
41 |
msgstr "Невозможно сконвертировать файл вложения для вложения с id:"
|
42 |
|
43 |
+
#: classes/background-processes/class-post-conversion-process.php:126
|
44 |
msgid "Thumbnail file renamed:"
|
45 |
msgstr "Файл миниатюры переименован:"
|
46 |
|
47 |
+
#: classes/background-processes/class-post-conversion-process.php:129
|
48 |
msgid "Cannot rename thumbnail file:"
|
49 |
msgstr "Невозможно переименовать файл миниатюры:"
|
50 |
|
51 |
+
#: classes/background-processes/class-post-conversion-process.php:198
|
52 |
msgid "Post slugs conversion completed."
|
53 |
msgstr "Конвертация ярлыков постов завершена."
|
54 |
|
55 |
+
#: classes/background-processes/class-term-conversion-process.php:72
|
56 |
msgid "Term slug converted:"
|
57 |
msgstr "Ярлык термина сконвертирован:"
|
58 |
|
59 |
+
#: classes/background-processes/class-term-conversion-process.php:84
|
60 |
msgid "Term slugs conversion completed."
|
61 |
msgstr "Конвертация ярлыков терминов завершена."
|
62 |
|
63 |
+
#: classes/class-converter.php:106
|
64 |
msgid "Cyr To Lat converts existing post slugs in the background process."
|
65 |
msgstr "Cyr To Lat конвертирует существующие ярлыки постов в фоновом процессе."
|
66 |
|
67 |
+
#: classes/class-converter.php:113
|
68 |
msgid "Cyr To Lat converts existing term slugs in the background process."
|
69 |
msgstr ""
|
70 |
"Cyr To Lat конвертирует существующие ярлыки терминов в фоновом процессе."
|
71 |
|
72 |
+
#: classes/class-converter.php:120
|
73 |
msgid "Cyr To Lat completed conversion of existing post slugs."
|
74 |
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков постов."
|
75 |
|
76 |
+
#: classes/class-converter.php:127
|
77 |
msgid "Cyr To Lat completed conversion of existing term slugs."
|
78 |
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков терминов."
|
79 |
|
80 |
+
#: classes/class-converter.php:205
|
81 |
msgid "Cyr To Lat has not found existing post slugs for conversion."
|
82 |
msgstr "Cyr To Lat не нашёл существующих ярлыков постов для конвертации."
|
83 |
|
84 |
+
#: classes/class-converter.php:216
|
85 |
msgid "Post slugs conversion started."
|
86 |
msgstr "Начата конвертация ярлыков постов."
|
87 |
|
88 |
+
#: classes/class-converter.php:218
|
89 |
msgid "Cyr To Lat started conversion of existing post slugs."
|
90 |
msgstr "Cyr To Lat начал конвертацию существующих ярлыков постов."
|
91 |
|
92 |
+
#: classes/class-converter.php:242
|
93 |
msgid "Cyr To Lat has not found existing term slugs for conversion."
|
94 |
msgstr "Cyr To Lat не нашёл существующих ярлыков терминов для конвертации."
|
95 |
|
96 |
+
#: classes/class-converter.php:253
|
97 |
msgid "Term slugs conversion started."
|
98 |
msgstr "Начата конвертация ярлыков терминов."
|
99 |
|
100 |
+
#: classes/class-converter.php:255
|
101 |
msgid "Cyr To Lat started conversion of existing term slugs."
|
102 |
msgstr "Cyr To Lat начал конвертацию существующих ярлыков терминов."
|
103 |
|
104 |
+
#: classes/class-requirements.php:101
|
105 |
msgid "Cyr To Lat plugin has been deactivated."
|
106 |
msgstr "Плагин Cyr To Lat был деактивирован."
|
107 |
|
108 |
#. translators: 1: Current PHP version number, 2: Cyr To Lat version, 3: Minimum required PHP version number
|
109 |
+
#: classes/class-requirements.php:116
|
110 |
#, php-format
|
111 |
msgid ""
|
112 |
"Your server is running PHP version %1$s but Cyr To Lat %2$s requires at "
|
115 |
"На сервере установлен PHP версии %1$s, однако для Cyr To Lat %2$s требуется "
|
116 |
"хотя бы %3$s."
|
117 |
|
118 |
+
#: classes/class-requirements.php:137
|
119 |
msgid "Unable to get filesystem access."
|
120 |
msgstr "Невозможно получить доступ к файловой системе."
|
121 |
|
122 |
#. translators: 1: max_input_vars value, 2: Cyr To Lat version, 3: Minimum required max_input_vars
|
123 |
+
#: classes/class-requirements.php:154
|
124 |
#, php-format
|
125 |
msgid ""
|
126 |
"Your server is running PHP with max_input_vars=%1$d but Cyr To Lat %2$s "
|
130 |
"требуется хотя бы %3$d."
|
131 |
|
132 |
#. translators: 1: .user.ini filename
|
133 |
+
#: classes/class-requirements.php:158
|
134 |
#, php-format
|
135 |
msgid "We have updated settings in %s."
|
136 |
msgstr "Мы обновили настройки в %s."
|
137 |
|
138 |
#. translators: 1: Wait time in seconds
|
139 |
+
#: classes/class-requirements.php:161
|
140 |
#, php-format
|
141 |
msgid "Please try again in %d s."
|
142 |
msgstr "Пожалуйста, попробуйте снова через %d сек."
|
143 |
|
144 |
+
#: classes/class-requirements.php:226
|
145 |
msgid "Please increase max input vars limit up to 1500."
|
146 |
msgstr "Пожалуйста, увеличьте лимит max input vars до 1500."
|
147 |
|
148 |
+
#: classes/class-requirements.php:229
|
149 |
msgid ""
|
150 |
"See: <a href=\"http://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" "
|
151 |
"target=\"_blank\">Increasing max input vars limit.</a>"
|
153 |
"См.: <a href=\"http://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" "
|
154 |
"target=\"_blank\">Увеличение лимита max input vars.</a>"
|
155 |
|
156 |
+
#: classes/class-settings.php:126
|
157 |
msgid "View Cyr To Lat settings"
|
158 |
msgstr "Посмотреть настройки Cyr To Lat"
|
159 |
|
160 |
+
#: classes/class-settings.php:127
|
161 |
msgid "Settings"
|
162 |
msgstr "Настройки"
|
163 |
|
164 |
+
#: classes/class-settings.php:143
|
165 |
msgid "ISO9 Table"
|
166 |
msgstr "Таблица ISO9"
|
167 |
|
168 |
+
#: classes/class-settings.php:146
|
169 |
msgid "bel Table"
|
170 |
msgstr "Таблица bel"
|
171 |
|
172 |
+
#: classes/class-settings.php:149
|
173 |
msgid "uk Table"
|
174 |
msgstr "Таблица uk"
|
175 |
|
176 |
+
#: classes/class-settings.php:152
|
177 |
msgid "bg_BG Table"
|
178 |
msgstr "Таблица bg_BG"
|
179 |
|
180 |
+
#: classes/class-settings.php:155
|
181 |
msgid "mk_MK Table"
|
182 |
msgstr "Таблица mk_MK"
|
183 |
|
184 |
+
#: classes/class-settings.php:158
|
185 |
msgid "sr_RS Table"
|
186 |
msgstr "Таблица sr_RS"
|
187 |
|
188 |
+
#: classes/class-settings.php:161
|
189 |
msgid "el Table"
|
190 |
msgstr "Таблица el"
|
191 |
|
192 |
+
#: classes/class-settings.php:164
|
193 |
msgid "hy Table"
|
194 |
msgstr "Таблица hy"
|
195 |
|
196 |
+
#: classes/class-settings.php:167
|
197 |
msgid "ka_GE Table"
|
198 |
msgstr "Таблица ka_GE"
|
199 |
|
200 |
+
#: classes/class-settings.php:170
|
201 |
msgid "kk Table"
|
202 |
msgstr "Таблица kk"
|
203 |
|
204 |
+
#: classes/class-settings.php:173
|
205 |
msgid "he_IL Table"
|
206 |
msgstr "Таблица he_IL"
|
207 |
|
208 |
+
#: classes/class-settings.php:176
|
209 |
msgid "zh_CN Table"
|
210 |
msgstr "Таблица zh_CN"
|
211 |
|
212 |
+
#: classes/class-settings.php:203
|
213 |
msgid "(current)"
|
214 |
msgstr "(текущая)"
|
215 |
|
216 |
+
#: classes/class-settings.php:270 classes/class-settings.php:271
|
217 |
msgid "Cyr To Lat"
|
218 |
msgstr "Cyr To Lat"
|
219 |
|
220 |
#. Admin panel title.
|
221 |
+
#: classes/class-settings.php:291
|
222 |
msgid "Cyr To Lat Plugin Options"
|
223 |
msgstr "Опции плагина Cyr To Lat"
|
224 |
|
225 |
+
#: classes/class-settings.php:307
|
226 |
msgid "Convert Existing Slugs"
|
227 |
msgstr "Конвертировать существующие ярлыки"
|
228 |
|
229 |
+
#: classes/class-settings.php:313
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
msgid "Your appreciation"
|
231 |
msgstr "Ваша оценка"
|
232 |
|
233 |
+
#: classes/class-settings.php:318
|
234 |
msgid "Leave a ★★★★★ plugin review on WordPress.org"
|
235 |
msgstr "Оставьте ★★★★★ обзор плагина на WordPress.org"
|
236 |
|
237 |
+
#: classes/class-settings.php:664
|
238 |
+
msgid "Options saved."
|
239 |
+
msgstr "Настройки сохранены."
|
240 |
+
|
241 |
+
#: classes/class-settings.php:665
|
242 |
+
msgid "Error saving options."
|
243 |
+
msgstr "Ошибка сохранения настроек."
|
244 |
+
|
245 |
+
#: classes/class-settings.php:689
|
246 |
+
msgid "Important:"
|
247 |
+
msgstr "Важно:"
|
248 |
+
|
249 |
+
#: classes/class-settings.php:692
|
250 |
+
msgid ""
|
251 |
+
"This operation is irreversible. Please make sure that you have made backup "
|
252 |
+
"copy of your database."
|
253 |
+
msgstr ""
|
254 |
+
"Эта операция необратима. Пожалуйста, убедитесь, что вы сделали копию базы "
|
255 |
+
"данных."
|
256 |
+
|
257 |
+
#: classes/class-settings.php:697
|
258 |
+
msgid "Are you sure to continue?"
|
259 |
+
msgstr "Вы уверены, что хотите продолжить?"
|
260 |
+
|
261 |
+
#: classes/class-settings.php:701
|
262 |
+
msgid "OK"
|
263 |
+
msgstr "OK"
|
264 |
+
|
265 |
+
#: classes/class-settings.php:704
|
266 |
+
msgid "Cancel"
|
267 |
+
msgstr "Отмена"
|
268 |
+
|
269 |
#. translators: %d: cron interval
|
270 |
#: lib/wp-background-processing/class-wp-background-process.php:399
|
271 |
#, php-format
|
272 |
msgid "Every %d Minutes"
|
273 |
msgstr "Каждые %d минут"
|
274 |
|
275 |
+
#~ msgid "Donate"
|
276 |
+
#~ msgstr "Пожертвовать"
|
277 |
+
|
278 |
+
#~ msgid "Would you like to support the advancement of this plugin?"
|
279 |
+
#~ msgstr "Хотите поддержать развитие этого плагина?"
|
280 |
+
|
281 |
#~ msgid "Please try again."
|
282 |
#~ msgstr "Пожалуйста, попробуйте снова."
|
283 |
|
languages/cyr2lat-sv.mo
CHANGED
Binary file
|
languages/cyr2lat-uk.mo
CHANGED
Binary file
|
languages/en_US.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Cyr To Lat\n"
|
5 |
-
"POT-Creation-Date:
|
6 |
"PO-Revision-Date: 2019-01-25 19:18+0200\n"
|
7 |
"Last-Translator: KAGG Design <info@kagg.eu>\n"
|
8 |
"Language-Team: KAGG Design\n"
|
@@ -10,7 +10,7 @@ msgstr ""
|
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
-
"X-Generator: Poedit 2.2
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
16 |
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
@@ -22,82 +22,96 @@ msgstr ""
|
|
22 |
"X-Poedit-SearchPathExcluded-1: dist\n"
|
23 |
"X-Poedit-SearchPathExcluded-2: src\n"
|
24 |
|
25 |
-
|
26 |
-
#: classes/background-processes/class-post-conversion-process.php:71
|
27 |
msgid "Post slug converted:"
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: classes/background-processes/class-post-conversion-process.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
msgid "Post slugs conversion completed."
|
32 |
msgstr ""
|
33 |
|
34 |
-
|
35 |
-
#: classes/background-processes/class-term-conversion-process.php:70
|
36 |
msgid "Term slug converted:"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: classes/background-processes/class-term-conversion-process.php:
|
40 |
msgid "Term slugs conversion completed."
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: classes/class-converter.php:
|
44 |
msgid "Cyr To Lat converts existing post slugs in the background process."
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: classes/class-converter.php:
|
48 |
msgid "Cyr To Lat converts existing term slugs in the background process."
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: classes/class-converter.php:
|
52 |
msgid "Cyr To Lat completed conversion of existing post slugs."
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: classes/class-converter.php:
|
56 |
msgid "Cyr To Lat completed conversion of existing term slugs."
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: classes/class-converter.php:
|
|
|
|
|
|
|
|
|
60 |
msgid "Post slugs conversion started."
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: classes/class-converter.php:
|
64 |
msgid "Cyr To Lat started conversion of existing post slugs."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: classes/class-converter.php:
|
68 |
-
msgid "Cyr To Lat has not found existing
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: classes/class-converter.php:
|
72 |
msgid "Term slugs conversion started."
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: classes/class-converter.php:
|
76 |
msgid "Cyr To Lat started conversion of existing term slugs."
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: classes/class-
|
80 |
-
msgid "Cyr To Lat has not found existing term slugs for conversion."
|
81 |
-
msgstr ""
|
82 |
-
|
83 |
-
#: classes/class-requirements.php:53
|
84 |
-
msgid "Unable to get filesystem access."
|
85 |
-
msgstr ""
|
86 |
-
|
87 |
-
#: classes/class-requirements.php:91
|
88 |
msgid "Cyr To Lat plugin has been deactivated."
|
89 |
msgstr ""
|
90 |
|
91 |
#. translators: 1: Current PHP version number, 2: Cyr To Lat version, 3: Minimum required PHP version number
|
92 |
-
#: classes/class-requirements.php:
|
93 |
#, php-format
|
94 |
msgid ""
|
95 |
"Your server is running PHP version %1$s but Cyr To Lat %2$s requires at "
|
96 |
"least %3$s."
|
97 |
msgstr ""
|
98 |
|
|
|
|
|
|
|
|
|
99 |
#. translators: 1: max_input_vars value, 2: Cyr To Lat version, 3: Minimum required max_input_vars
|
100 |
-
#: classes/class-requirements.php:
|
101 |
#, php-format
|
102 |
msgid ""
|
103 |
"Your server is running PHP with max_input_vars=%1$d but Cyr To Lat %2$s "
|
@@ -105,96 +119,126 @@ msgid ""
|
|
105 |
msgstr ""
|
106 |
|
107 |
#. translators: 1: .user.ini filename
|
108 |
-
#: classes/class-requirements.php:
|
109 |
#, php-format
|
110 |
msgid "We have updated settings in %s."
|
111 |
msgstr ""
|
112 |
|
113 |
#. translators: 1: Wait time in seconds
|
114 |
-
#: classes/class-requirements.php:
|
115 |
#, php-format
|
116 |
msgid "Please try again in %d s."
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: classes/class-requirements.php:
|
120 |
-
msgid "Please
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: classes/class-
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
msgid "View Cyr To Lat settings"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: classes/class-settings.php:
|
128 |
msgid "Settings"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: classes/class-settings.php:
|
|
|
132 |
msgid "ISO9 Table"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: classes/class-settings.php:
|
|
|
136 |
msgid "bel Table"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: classes/class-settings.php:
|
|
|
140 |
msgid "uk Table"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: classes/class-settings.php:
|
|
|
144 |
msgid "bg_BG Table"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: classes/class-settings.php:
|
|
|
148 |
msgid "mk_MK Table"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: classes/class-settings.php:
|
|
|
152 |
msgid "sr_RS Table"
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: classes/class-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
msgid "ka_GE Table"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: classes/class-settings.php:
|
|
|
160 |
msgid "kk Table"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: classes/class-settings.php:
|
|
|
164 |
msgid "he_IL Table"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: classes/class-settings.php:
|
|
|
168 |
msgid "zh_CN Table"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: classes/class-settings.php:
|
|
|
|
|
|
|
|
|
172 |
msgid "Cyr To Lat"
|
173 |
msgstr ""
|
174 |
|
175 |
#. Admin panel title.
|
176 |
-
#: classes/class-settings.php:
|
177 |
msgid "Cyr To Lat Plugin Options"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: classes/class-settings.php:
|
181 |
msgid "Convert Existing Slugs"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: classes/class-settings.php:
|
185 |
-
msgid "
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: classes/class-settings.php:
|
189 |
-
msgid "
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: classes/class-settings.php:
|
193 |
-
msgid "
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: classes/class-settings.php:
|
197 |
-
msgid "
|
198 |
msgstr ""
|
199 |
|
200 |
#. translators: %d: cron interval
|
@@ -202,3 +246,18 @@ msgstr ""
|
|
202 |
#, php-format
|
203 |
msgid "Every %d Minutes"
|
204 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Cyr To Lat\n"
|
5 |
+
"POT-Creation-Date: 2021-02-10 14:57+0200\n"
|
6 |
"PO-Revision-Date: 2019-01-25 19:18+0200\n"
|
7 |
"Last-Translator: KAGG Design <info@kagg.eu>\n"
|
8 |
"Language-Team: KAGG Design\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 2.4.2\n"
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
16 |
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
22 |
"X-Poedit-SearchPathExcluded-1: dist\n"
|
23 |
"X-Poedit-SearchPathExcluded-2: src\n"
|
24 |
|
25 |
+
#: classes/background-processes/class-post-conversion-process.php:73
|
|
|
26 |
msgid "Post slug converted:"
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: classes/background-processes/class-post-conversion-process.php:102
|
30 |
+
msgid "Attachment file converted:"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#: classes/background-processes/class-post-conversion-process.php:108
|
34 |
+
msgid "Cannot convert attachment file for attachment id:"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: classes/background-processes/class-post-conversion-process.php:126
|
38 |
+
msgid "Thumbnail file renamed:"
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
#: classes/background-processes/class-post-conversion-process.php:129
|
42 |
+
msgid "Cannot rename thumbnail file:"
|
43 |
+
msgstr ""
|
44 |
+
|
45 |
+
#: classes/background-processes/class-post-conversion-process.php:198
|
46 |
msgid "Post slugs conversion completed."
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/background-processes/class-term-conversion-process.php:72
|
|
|
50 |
msgid "Term slug converted:"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: classes/background-processes/class-term-conversion-process.php:84
|
54 |
msgid "Term slugs conversion completed."
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: classes/class-converter.php:106
|
58 |
msgid "Cyr To Lat converts existing post slugs in the background process."
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: classes/class-converter.php:113
|
62 |
msgid "Cyr To Lat converts existing term slugs in the background process."
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: classes/class-converter.php:120
|
66 |
msgid "Cyr To Lat completed conversion of existing post slugs."
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: classes/class-converter.php:127
|
70 |
msgid "Cyr To Lat completed conversion of existing term slugs."
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: classes/class-converter.php:205
|
74 |
+
msgid "Cyr To Lat has not found existing post slugs for conversion."
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: classes/class-converter.php:216
|
78 |
msgid "Post slugs conversion started."
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: classes/class-converter.php:218
|
82 |
msgid "Cyr To Lat started conversion of existing post slugs."
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: classes/class-converter.php:242
|
86 |
+
msgid "Cyr To Lat has not found existing term slugs for conversion."
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: classes/class-converter.php:253
|
90 |
msgid "Term slugs conversion started."
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: classes/class-converter.php:255
|
94 |
msgid "Cyr To Lat started conversion of existing term slugs."
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: classes/class-requirements.php:101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
msgid "Cyr To Lat plugin has been deactivated."
|
99 |
msgstr ""
|
100 |
|
101 |
#. translators: 1: Current PHP version number, 2: Cyr To Lat version, 3: Minimum required PHP version number
|
102 |
+
#: classes/class-requirements.php:116
|
103 |
#, php-format
|
104 |
msgid ""
|
105 |
"Your server is running PHP version %1$s but Cyr To Lat %2$s requires at "
|
106 |
"least %3$s."
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: classes/class-requirements.php:137
|
110 |
+
msgid "Unable to get filesystem access."
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
#. translators: 1: max_input_vars value, 2: Cyr To Lat version, 3: Minimum required max_input_vars
|
114 |
+
#: classes/class-requirements.php:154
|
115 |
#, php-format
|
116 |
msgid ""
|
117 |
"Your server is running PHP with max_input_vars=%1$d but Cyr To Lat %2$s "
|
119 |
msgstr ""
|
120 |
|
121 |
#. translators: 1: .user.ini filename
|
122 |
+
#: classes/class-requirements.php:158
|
123 |
#, php-format
|
124 |
msgid "We have updated settings in %s."
|
125 |
msgstr ""
|
126 |
|
127 |
#. translators: 1: Wait time in seconds
|
128 |
+
#: classes/class-requirements.php:161
|
129 |
#, php-format
|
130 |
msgid "Please try again in %d s."
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: classes/class-requirements.php:226
|
134 |
+
msgid "Please increase max input vars limit up to 1500."
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: classes/class-requirements.php:229
|
138 |
+
msgid ""
|
139 |
+
"See: <a href=\"http://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit"
|
140 |
+
"\" target=\"_blank\">Increasing max input vars limit.</a>"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: classes/class-settings.php:126
|
144 |
msgid "View Cyr To Lat settings"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: classes/class-settings.php:127
|
148 |
msgid "Settings"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: classes/class-settings.php:143
|
152 |
+
#: tests/phpunit/tests/class-test-settings.php:125
|
153 |
msgid "ISO9 Table"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: classes/class-settings.php:146
|
157 |
+
#: tests/phpunit/tests/class-test-settings.php:128
|
158 |
msgid "bel Table"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: classes/class-settings.php:149
|
162 |
+
#: tests/phpunit/tests/class-test-settings.php:131
|
163 |
msgid "uk Table"
|
164 |
msgstr ""
|
165 |
|
166 |
+
#: classes/class-settings.php:152
|
167 |
+
#: tests/phpunit/tests/class-test-settings.php:134
|
168 |
msgid "bg_BG Table"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: classes/class-settings.php:155
|
172 |
+
#: tests/phpunit/tests/class-test-settings.php:137
|
173 |
msgid "mk_MK Table"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: classes/class-settings.php:158
|
177 |
+
#: tests/phpunit/tests/class-test-settings.php:140
|
178 |
msgid "sr_RS Table"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: classes/class-settings.php:161
|
182 |
+
#: tests/phpunit/tests/class-test-settings.php:143
|
183 |
+
msgid "el Table"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: classes/class-settings.php:164
|
187 |
+
#: tests/phpunit/tests/class-test-settings.php:146
|
188 |
+
msgid "hy Table"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: classes/class-settings.php:167
|
192 |
+
#: tests/phpunit/tests/class-test-settings.php:149
|
193 |
msgid "ka_GE Table"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: classes/class-settings.php:170
|
197 |
+
#: tests/phpunit/tests/class-test-settings.php:152
|
198 |
msgid "kk Table"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: classes/class-settings.php:173
|
202 |
+
#: tests/phpunit/tests/class-test-settings.php:155
|
203 |
msgid "he_IL Table"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: classes/class-settings.php:176
|
207 |
+
#: tests/phpunit/tests/class-test-settings.php:158
|
208 |
msgid "zh_CN Table"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: classes/class-settings.php:203
|
212 |
+
msgid "(current)"
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: classes/class-settings.php:270 classes/class-settings.php:271
|
216 |
msgid "Cyr To Lat"
|
217 |
msgstr ""
|
218 |
|
219 |
#. Admin panel title.
|
220 |
+
#: classes/class-settings.php:291
|
221 |
msgid "Cyr To Lat Plugin Options"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: classes/class-settings.php:307
|
225 |
msgid "Convert Existing Slugs"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: classes/class-settings.php:313
|
229 |
+
msgid "Your appreciation"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: classes/class-settings.php:318
|
233 |
+
msgid "Leave a ★★★★★ plugin review on WordPress.org"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: classes/class-settings.php:664
|
237 |
+
msgid "Options saved."
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: classes/class-settings.php:665
|
241 |
+
msgid "Error saving options."
|
242 |
msgstr ""
|
243 |
|
244 |
#. translators: %d: cron interval
|
246 |
#, php-format
|
247 |
msgid "Every %d Minutes"
|
248 |
msgstr ""
|
249 |
+
|
250 |
+
#: tests/phpunit/tests/class-test-settings.php:476
|
251 |
+
#: tests/phpunit/tests/class-test-settings.php:490
|
252 |
+
#: tests/phpunit/tests/class-test-settings.php:499
|
253 |
+
#: tests/phpunit/tests/class-test-settings.php:508
|
254 |
+
#: tests/phpunit/tests/class-test-settings.php:517
|
255 |
+
#: tests/phpunit/tests/class-test-settings.php:526
|
256 |
+
#: tests/phpunit/tests/class-test-settings.php:535
|
257 |
+
#: tests/phpunit/tests/class-test-settings.php:544
|
258 |
+
#: tests/phpunit/tests/class-test-settings.php:553
|
259 |
+
#: tests/phpunit/tests/class-test-settings.php:562
|
260 |
+
#: tests/phpunit/tests/class-test-settings.php:571
|
261 |
+
#: tests/phpunit/tests/class-test-settings.php:580
|
262 |
+
msgid "<br>(current)"
|
263 |
+
msgstr ""
|
lib/polyfill-mbstring/README.md
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Symfony Polyfill / Mbstring
|
2 |
+
===========================
|
3 |
+
|
4 |
+
This component provides a partial, native PHP implementation for the
|
5 |
+
[Mbstring](http://php.net/mbstring) extension.
|
6 |
+
|
7 |
+
More information can be found in the
|
8 |
+
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
|
9 |
+
|
10 |
+
License
|
11 |
+
=======
|
12 |
+
|
13 |
+
This library is released under the [MIT license](LICENSE).
|
lib/polyfill-mbstring/composer.json
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "symfony/polyfill-mbstring",
|
3 |
+
"type": "library",
|
4 |
+
"description": "Symfony polyfill for the Mbstring extension",
|
5 |
+
"keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
|
6 |
+
"homepage": "https://symfony.com",
|
7 |
+
"license": "MIT",
|
8 |
+
"authors": [
|
9 |
+
{
|
10 |
+
"name": "Nicolas Grekas",
|
11 |
+
"email": "p@tchwork.com"
|
12 |
+
},
|
13 |
+
{
|
14 |
+
"name": "Symfony Community",
|
15 |
+
"homepage": "https://symfony.com/contributors"
|
16 |
+
}
|
17 |
+
],
|
18 |
+
"require": {
|
19 |
+
"php": ">=5.3.3"
|
20 |
+
},
|
21 |
+
"autoload": {
|
22 |
+
"psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
|
23 |
+
"files": [ "bootstrap.php" ]
|
24 |
+
},
|
25 |
+
"suggest": {
|
26 |
+
"ext-mbstring": "For best performance"
|
27 |
+
},
|
28 |
+
"minimum-stability": "dev",
|
29 |
+
"extra": {
|
30 |
+
"branch-alias": {
|
31 |
+
"dev-master": "1.13-dev"
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: SergeyBiryukov, mihdan, karevn, webvitaly, kaggdesign
|
|
3 |
Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
|
4 |
Requires at least: 5.1
|
5 |
Tested up to: 5.6
|
6 |
-
Stable tag: 4.
|
7 |
Requires PHP: 5.6.20
|
8 |
|
9 |
Converts Cyrillic characters in post, page and term slugs to Latin characters.
|
@@ -99,6 +99,16 @@ Yes you can!
|
|
99 |
|
100 |
== Changelog ==
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
= 4.5.1 (07.12.2020) =
|
103 |
* Tested up to WordPress 5.6
|
104 |
* Tested on PHP 5.6 - 8.0
|
3 |
Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
|
4 |
Requires at least: 5.1
|
5 |
Tested up to: 5.6
|
6 |
+
Stable tag: 4.6.0
|
7 |
Requires PHP: 5.6.20
|
8 |
|
9 |
Converts Cyrillic characters in post, page and term slugs to Latin characters.
|
99 |
|
100 |
== Changelog ==
|
101 |
|
102 |
+
= 4.6.0 (10.02.2020) =
|
103 |
+
* Add compatibility with Polylang
|
104 |
+
* Add confirmation popup before mass conversion of slugs
|
105 |
+
* Improve selection of posts and tags for conversion to avoid selection of excessive items for mass conversion
|
106 |
+
* Fix bug with redirection from the old slug to a new one after background slug conversion
|
107 |
+
* Fix js to run in old browsers like IE
|
108 |
+
|
109 |
+
= 4.5.2 (08.12.2020) =
|
110 |
+
* Fix bug with the deployment to wp.org
|
111 |
+
|
112 |
= 4.5.1 (07.12.2020) =
|
113 |
* Tested up to WordPress 5.6
|
114 |
* Tested on PHP 5.6 - 8.0
|
vendor/10up/wp_mock/.gitmodules
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
|
|
vendor/10up/wp_mock/CONTRIBUTING.md
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
# Contributing
|
2 |
-
|
3 |
-
Contributions are **welcome** and will be fully **credited**.
|
4 |
-
|
5 |
-
We accept contributions via Pull Requests on [Github](https://github.com/10up/wp_mock)
|
6 |
-
|
7 |
-
## Branches
|
8 |
-
|
9 |
-
* We try to follow [SemVer](http://semver.org/) in WP Mock
|
10 |
-
* The current minor version lives on the **master** branch. Until a new minor (or major) version is released, the master branch will be aliased to appear as the dev package of the current minor version in Packagist (e.g. if the current minor version is `1.0`, master will be aliased to `1.0.x-dev`).
|
11 |
-
* The development release lives on the **dev** branch. Until it is officially released, the dev branch will be aliased to appear as the dev package of the next minor version in Packagist (e.g. if the next minor version is `1.2`, the dev branch will be aliased to `1.2.x-dev`).
|
12 |
-
* Old minor versions will live in their own version branch (e.g. if the current minor version is `1.2`, the `1.1` major version will live in a `1.1` branch
|
13 |
-
|
14 |
-
## Pull Requests
|
15 |
-
|
16 |
-
* New features must be submitted against the **dev** branch
|
17 |
-
* Bug fixes should be submitted against the branch in which the bug exists. If the bug exists in multiple releases, please submit the Pull Request against the most recent branch and make a note of which other major versions need the fix (e.g. if the bug exists in all versions, submit against dev; if it no longer exists in dev, submit against master). Please do not open multiple pull requests for the same fix against different branches.
|
18 |
-
* If you're not sure whether a feature idea would be something we'd be interested in, please open an issue before you start working on it. We'd be happy to discuss your idea with you.
|
19 |
-
|
20 |
-
## Tests
|
21 |
-
|
22 |
-
We know. We're kind of working on it. Want to start writing them for us? :D
|
23 |
-
|
24 |
-
## Thanks
|
25 |
-
|
26 |
-
**You're awesome** - Thanks for being interested in contributing your time and code to this project!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/LICENSE.md
DELETED
@@ -1,368 +0,0 @@
|
|
1 |
-
WP_Mock - WordPress API Mocking Framework
|
2 |
-
|
3 |
-
Copyright 2013-2017 by the contributors
|
4 |
-
|
5 |
-
This program is free software; you can redistribute it and/or modify
|
6 |
-
it under the terms of the GNU General Public License as published by
|
7 |
-
the Free Software Foundation; either version 2 of the License, or
|
8 |
-
(at your option) any later version.
|
9 |
-
|
10 |
-
This program is distributed in the hope that it will be useful,
|
11 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
GNU General Public License for more details.
|
14 |
-
|
15 |
-
You should have received a copy of the GNU General Public License
|
16 |
-
along with this program; if not, write to the Free Software
|
17 |
-
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18 |
-
|
19 |
-
This program incorporates work covered by the following copyright and
|
20 |
-
permission notices:
|
21 |
-
|
22 |
-
WordPress - Web publishing software
|
23 |
-
|
24 |
-
Copyright 2003-2017 by the contributors
|
25 |
-
|
26 |
-
WordPress is released under the GPL
|
27 |
-
|
28 |
-
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
29 |
-
|
30 |
-
GNU GENERAL PUBLIC LICENSE
|
31 |
-
Version 2, June 1991
|
32 |
-
|
33 |
-
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
34 |
-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
35 |
-
Everyone is permitted to copy and distribute verbatim copies
|
36 |
-
of this license document, but changing it is not allowed.
|
37 |
-
|
38 |
-
Preamble
|
39 |
-
|
40 |
-
The licenses for most software are designed to take away your
|
41 |
-
freedom to share and change it. By contrast, the GNU General Public
|
42 |
-
License is intended to guarantee your freedom to share and change free
|
43 |
-
software--to make sure the software is free for all its users. This
|
44 |
-
General Public License applies to most of the Free Software
|
45 |
-
Foundation's software and to any other program whose authors commit to
|
46 |
-
using it. (Some other Free Software Foundation software is covered by
|
47 |
-
the GNU Lesser General Public License instead.) You can apply it to
|
48 |
-
your programs, too.
|
49 |
-
|
50 |
-
When we speak of free software, we are referring to freedom, not
|
51 |
-
price. Our General Public Licenses are designed to make sure that you
|
52 |
-
have the freedom to distribute copies of free software (and charge for
|
53 |
-
this service if you wish), that you receive source code or can get it
|
54 |
-
if you want it, that you can change the software or use pieces of it
|
55 |
-
in new free programs; and that you know you can do these things.
|
56 |
-
|
57 |
-
To protect your rights, we need to make restrictions that forbid
|
58 |
-
anyone to deny you these rights or to ask you to surrender the rights.
|
59 |
-
These restrictions translate to certain responsibilities for you if you
|
60 |
-
distribute copies of the software, or if you modify it.
|
61 |
-
|
62 |
-
For example, if you distribute copies of such a program, whether
|
63 |
-
gratis or for a fee, you must give the recipients all the rights that
|
64 |
-
you have. You must make sure that they, too, receive or can get the
|
65 |
-
source code. And you must show them these terms so they know their
|
66 |
-
rights.
|
67 |
-
|
68 |
-
We protect your rights with two steps: (1) copyright the software, and
|
69 |
-
(2) offer you this license which gives you legal permission to copy,
|
70 |
-
distribute and/or modify the software.
|
71 |
-
|
72 |
-
Also, for each author's protection and ours, we want to make certain
|
73 |
-
that everyone understands that there is no warranty for this free
|
74 |
-
software. If the software is modified by someone else and passed on, we
|
75 |
-
want its recipients to know that what they have is not the original, so
|
76 |
-
that any problems introduced by others will not reflect on the original
|
77 |
-
authors' reputations.
|
78 |
-
|
79 |
-
Finally, any free program is threatened constantly by software
|
80 |
-
patents. We wish to avoid the danger that redistributors of a free
|
81 |
-
program will individually obtain patent licenses, in effect making the
|
82 |
-
program proprietary. To prevent this, we have made it clear that any
|
83 |
-
patent must be licensed for everyone's free use or not licensed at all.
|
84 |
-
|
85 |
-
The precise terms and conditions for copying, distribution and
|
86 |
-
modification follow.
|
87 |
-
|
88 |
-
GNU GENERAL PUBLIC LICENSE
|
89 |
-
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
90 |
-
|
91 |
-
0. This License applies to any program or other work which contains
|
92 |
-
a notice placed by the copyright holder saying it may be distributed
|
93 |
-
under the terms of this General Public License. The "Program", below,
|
94 |
-
refers to any such program or work, and a "work based on the Program"
|
95 |
-
means either the Program or any derivative work under copyright law:
|
96 |
-
that is to say, a work containing the Program or a portion of it,
|
97 |
-
either verbatim or with modifications and/or translated into another
|
98 |
-
language. (Hereinafter, translation is included without limitation in
|
99 |
-
the term "modification".) Each licensee is addressed as "you".
|
100 |
-
|
101 |
-
Activities other than copying, distribution and modification are not
|
102 |
-
covered by this License; they are outside its scope. The act of
|
103 |
-
running the Program is not restricted, and the output from the Program
|
104 |
-
is covered only if its contents constitute a work based on the
|
105 |
-
Program (independent of having been made by running the Program).
|
106 |
-
Whether that is true depends on what the Program does.
|
107 |
-
|
108 |
-
1. You may copy and distribute verbatim copies of the Program's
|
109 |
-
source code as you receive it, in any medium, provided that you
|
110 |
-
conspicuously and appropriately publish on each copy an appropriate
|
111 |
-
copyright notice and disclaimer of warranty; keep intact all the
|
112 |
-
notices that refer to this License and to the absence of any warranty;
|
113 |
-
and give any other recipients of the Program a copy of this License
|
114 |
-
along with the Program.
|
115 |
-
|
116 |
-
You may charge a fee for the physical act of transferring a copy, and
|
117 |
-
you may at your option offer warranty protection in exchange for a fee.
|
118 |
-
|
119 |
-
2. You may modify your copy or copies of the Program or any portion
|
120 |
-
of it, thus forming a work based on the Program, and copy and
|
121 |
-
distribute such modifications or work under the terms of Section 1
|
122 |
-
above, provided that you also meet all of these conditions:
|
123 |
-
|
124 |
-
a) You must cause the modified files to carry prominent notices
|
125 |
-
stating that you changed the files and the date of any change.
|
126 |
-
|
127 |
-
b) You must cause any work that you distribute or publish, that in
|
128 |
-
whole or in part contains or is derived from the Program or any
|
129 |
-
part thereof, to be licensed as a whole at no charge to all third
|
130 |
-
parties under the terms of this License.
|
131 |
-
|
132 |
-
c) If the modified program normally reads commands interactively
|
133 |
-
when run, you must cause it, when started running for such
|
134 |
-
interactive use in the most ordinary way, to print or display an
|
135 |
-
announcement including an appropriate copyright notice and a
|
136 |
-
notice that there is no warranty (or else, saying that you provide
|
137 |
-
a warranty) and that users may redistribute the program under
|
138 |
-
these conditions, and telling the user how to view a copy of this
|
139 |
-
License. (Exception: if the Program itself is interactive but
|
140 |
-
does not normally print such an announcement, your work based on
|
141 |
-
the Program is not required to print an announcement.)
|
142 |
-
|
143 |
-
These requirements apply to the modified work as a whole. If
|
144 |
-
identifiable sections of that work are not derived from the Program,
|
145 |
-
and can be reasonably considered independent and separate works in
|
146 |
-
themselves, then this License, and its terms, do not apply to those
|
147 |
-
sections when you distribute them as separate works. But when you
|
148 |
-
distribute the same sections as part of a whole which is a work based
|
149 |
-
on the Program, the distribution of the whole must be on the terms of
|
150 |
-
this License, whose permissions for other licensees extend to the
|
151 |
-
entire whole, and thus to each and every part regardless of who wrote it.
|
152 |
-
|
153 |
-
Thus, it is not the intent of this section to claim rights or contest
|
154 |
-
your rights to work written entirely by you; rather, the intent is to
|
155 |
-
exercise the right to control the distribution of derivative or
|
156 |
-
collective works based on the Program.
|
157 |
-
|
158 |
-
In addition, mere aggregation of another work not based on the Program
|
159 |
-
with the Program (or with a work based on the Program) on a volume of
|
160 |
-
a storage or distribution medium does not bring the other work under
|
161 |
-
the scope of this License.
|
162 |
-
|
163 |
-
3. You may copy and distribute the Program (or a work based on it,
|
164 |
-
under Section 2) in object code or executable form under the terms of
|
165 |
-
Sections 1 and 2 above provided that you also do one of the following:
|
166 |
-
|
167 |
-
a) Accompany it with the complete corresponding machine-readable
|
168 |
-
source code, which must be distributed under the terms of Sections
|
169 |
-
1 and 2 above on a medium customarily used for software interchange; or,
|
170 |
-
|
171 |
-
b) Accompany it with a written offer, valid for at least three
|
172 |
-
years, to give any third party, for a charge no more than your
|
173 |
-
cost of physically performing source distribution, a complete
|
174 |
-
machine-readable copy of the corresponding source code, to be
|
175 |
-
distributed under the terms of Sections 1 and 2 above on a medium
|
176 |
-
customarily used for software interchange; or,
|
177 |
-
|
178 |
-
c) Accompany it with the information you received as to the offer
|
179 |
-
to distribute corresponding source code. (This alternative is
|
180 |
-
allowed only for noncommercial distribution and only if you
|
181 |
-
received the program in object code or executable form with such
|
182 |
-
an offer, in accord with Subsection b above.)
|
183 |
-
|
184 |
-
The source code for a work means the preferred form of the work for
|
185 |
-
making modifications to it. For an executable work, complete source
|
186 |
-
code means all the source code for all modules it contains, plus any
|
187 |
-
associated interface definition files, plus the scripts used to
|
188 |
-
control compilation and installation of the executable. However, as a
|
189 |
-
special exception, the source code distributed need not include
|
190 |
-
anything that is normally distributed (in either source or binary
|
191 |
-
form) with the major components (compiler, kernel, and so on) of the
|
192 |
-
operating system on which the executable runs, unless that component
|
193 |
-
itself accompanies the executable.
|
194 |
-
|
195 |
-
If distribution of executable or object code is made by offering
|
196 |
-
access to copy from a designated place, then offering equivalent
|
197 |
-
access to copy the source code from the same place counts as
|
198 |
-
distribution of the source code, even though third parties are not
|
199 |
-
compelled to copy the source along with the object code.
|
200 |
-
|
201 |
-
4. You may not copy, modify, sublicense, or distribute the Program
|
202 |
-
except as expressly provided under this License. Any attempt
|
203 |
-
otherwise to copy, modify, sublicense or distribute the Program is
|
204 |
-
void, and will automatically terminate your rights under this License.
|
205 |
-
However, parties who have received copies, or rights, from you under
|
206 |
-
this License will not have their licenses terminated so long as such
|
207 |
-
parties remain in full compliance.
|
208 |
-
|
209 |
-
5. You are not required to accept this License, since you have not
|
210 |
-
signed it. However, nothing else grants you permission to modify or
|
211 |
-
distribute the Program or its derivative works. These actions are
|
212 |
-
prohibited by law if you do not accept this License. Therefore, by
|
213 |
-
modifying or distributing the Program (or any work based on the
|
214 |
-
Program), you indicate your acceptance of this License to do so, and
|
215 |
-
all its terms and conditions for copying, distributing or modifying
|
216 |
-
the Program or works based on it.
|
217 |
-
|
218 |
-
6. Each time you redistribute the Program (or any work based on the
|
219 |
-
Program), the recipient automatically receives a license from the
|
220 |
-
original licensor to copy, distribute or modify the Program subject to
|
221 |
-
these terms and conditions. You may not impose any further
|
222 |
-
restrictions on the recipients' exercise of the rights granted herein.
|
223 |
-
You are not responsible for enforcing compliance by third parties to
|
224 |
-
this License.
|
225 |
-
|
226 |
-
7. If, as a consequence of a court judgment or allegation of patent
|
227 |
-
infringement or for any other reason (not limited to patent issues),
|
228 |
-
conditions are imposed on you (whether by court order, agreement or
|
229 |
-
otherwise) that contradict the conditions of this License, they do not
|
230 |
-
excuse you from the conditions of this License. If you cannot
|
231 |
-
distribute so as to satisfy simultaneously your obligations under this
|
232 |
-
License and any other pertinent obligations, then as a consequence you
|
233 |
-
may not distribute the Program at all. For example, if a patent
|
234 |
-
license would not permit royalty-free redistribution of the Program by
|
235 |
-
all those who receive copies directly or indirectly through you, then
|
236 |
-
the only way you could satisfy both it and this License would be to
|
237 |
-
refrain entirely from distribution of the Program.
|
238 |
-
|
239 |
-
If any portion of this section is held invalid or unenforceable under
|
240 |
-
any particular circumstance, the balance of the section is intended to
|
241 |
-
apply and the section as a whole is intended to apply in other
|
242 |
-
circumstances.
|
243 |
-
|
244 |
-
It is not the purpose of this section to induce you to infringe any
|
245 |
-
patents or other property right claims or to contest validity of any
|
246 |
-
such claims; this section has the sole purpose of protecting the
|
247 |
-
integrity of the free software distribution system, which is
|
248 |
-
implemented by public license practices. Many people have made
|
249 |
-
generous contributions to the wide range of software distributed
|
250 |
-
through that system in reliance on consistent application of that
|
251 |
-
system; it is up to the author/donor to decide if he or she is willing
|
252 |
-
to distribute software through any other system and a licensee cannot
|
253 |
-
impose that choice.
|
254 |
-
|
255 |
-
This section is intended to make thoroughly clear what is believed to
|
256 |
-
be a consequence of the rest of this License.
|
257 |
-
|
258 |
-
8. If the distribution and/or use of the Program is restricted in
|
259 |
-
certain countries either by patents or by copyrighted interfaces, the
|
260 |
-
original copyright holder who places the Program under this License
|
261 |
-
may add an explicit geographical distribution limitation excluding
|
262 |
-
those countries, so that distribution is permitted only in or among
|
263 |
-
countries not thus excluded. In such case, this License incorporates
|
264 |
-
the limitation as if written in the body of this License.
|
265 |
-
|
266 |
-
9. The Free Software Foundation may publish revised and/or new versions
|
267 |
-
of the General Public License from time to time. Such new versions will
|
268 |
-
be similar in spirit to the present version, but may differ in detail to
|
269 |
-
address new problems or concerns.
|
270 |
-
|
271 |
-
Each version is given a distinguishing version number. If the Program
|
272 |
-
specifies a version number of this License which applies to it and "any
|
273 |
-
later version", you have the option of following the terms and conditions
|
274 |
-
either of that version or of any later version published by the Free
|
275 |
-
Software Foundation. If the Program does not specify a version number of
|
276 |
-
this License, you may choose any version ever published by the Free Software
|
277 |
-
Foundation.
|
278 |
-
|
279 |
-
10. If you wish to incorporate parts of the Program into other free
|
280 |
-
programs whose distribution conditions are different, write to the author
|
281 |
-
to ask for permission. For software which is copyrighted by the Free
|
282 |
-
Software Foundation, write to the Free Software Foundation; we sometimes
|
283 |
-
make exceptions for this. Our decision will be guided by the two goals
|
284 |
-
of preserving the free status of all derivatives of our free software and
|
285 |
-
of promoting the sharing and reuse of software generally.
|
286 |
-
|
287 |
-
NO WARRANTY
|
288 |
-
|
289 |
-
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
290 |
-
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
291 |
-
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
292 |
-
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
293 |
-
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
294 |
-
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
295 |
-
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
296 |
-
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
297 |
-
REPAIR OR CORRECTION.
|
298 |
-
|
299 |
-
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
300 |
-
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
301 |
-
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
302 |
-
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
303 |
-
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
304 |
-
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
305 |
-
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
306 |
-
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
307 |
-
POSSIBILITY OF SUCH DAMAGES.
|
308 |
-
|
309 |
-
END OF TERMS AND CONDITIONS
|
310 |
-
|
311 |
-
How to Apply These Terms to Your New Programs
|
312 |
-
|
313 |
-
If you develop a new program, and you want it to be of the greatest
|
314 |
-
possible use to the public, the best way to achieve this is to make it
|
315 |
-
free software which everyone can redistribute and change under these terms.
|
316 |
-
|
317 |
-
To do so, attach the following notices to the program. It is safest
|
318 |
-
to attach them to the start of each source file to most effectively
|
319 |
-
convey the exclusion of warranty; and each file should have at least
|
320 |
-
the "copyright" line and a pointer to where the full notice is found.
|
321 |
-
|
322 |
-
<one line to give the program's name and a brief idea of what it does.>
|
323 |
-
Copyright (C) <year> <name of author>
|
324 |
-
|
325 |
-
This program is free software; you can redistribute it and/or modify
|
326 |
-
it under the terms of the GNU General Public License as published by
|
327 |
-
the Free Software Foundation; either version 2 of the License, or
|
328 |
-
(at your option) any later version.
|
329 |
-
|
330 |
-
This program is distributed in the hope that it will be useful,
|
331 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
332 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
333 |
-
GNU General Public License for more details.
|
334 |
-
|
335 |
-
You should have received a copy of the GNU General Public License along
|
336 |
-
with this program; if not, write to the Free Software Foundation, Inc.,
|
337 |
-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
338 |
-
|
339 |
-
Also add information on how to contact you by electronic and paper mail.
|
340 |
-
|
341 |
-
If the program is interactive, make it output a short notice like this
|
342 |
-
when it starts in an interactive mode:
|
343 |
-
|
344 |
-
Gnomovision version 69, Copyright (C) year name of author
|
345 |
-
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
346 |
-
This is free software, and you are welcome to redistribute it
|
347 |
-
under certain conditions; type `show c' for details.
|
348 |
-
|
349 |
-
The hypothetical commands `show w' and `show c' should show the appropriate
|
350 |
-
parts of the General Public License. Of course, the commands you use may
|
351 |
-
be called something other than `show w' and `show c'; they could even be
|
352 |
-
mouse-clicks or menu items--whatever suits your program.
|
353 |
-
|
354 |
-
You should also get your employer (if you work as a programmer) or your
|
355 |
-
school, if any, to sign a "copyright disclaimer" for the program, if
|
356 |
-
necessary. Here is a sample; alter the names:
|
357 |
-
|
358 |
-
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
359 |
-
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
360 |
-
|
361 |
-
<signature of Ty Coon>, 1 April 1989
|
362 |
-
Ty Coon, President of Vice
|
363 |
-
|
364 |
-
This General Public License does not permit incorporating your program into
|
365 |
-
proprietary programs. If your program is a subroutine library, you may
|
366 |
-
consider it more useful to permit linking proprietary applications with the
|
367 |
-
library. If this is what you want to do, use the GNU Lesser General
|
368 |
-
Public License instead of this License.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/behat.yml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
default:
|
2 |
-
suites:
|
3 |
-
default:
|
4 |
-
contexts:
|
5 |
-
- FeatureContext
|
6 |
-
- HooksContext
|
7 |
-
- FunctionsContext
|
8 |
-
formatters:
|
9 |
-
progress: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/bootstrap.php.dist
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once __DIR__ . '/vendor/autoload.php';
|
4 |
-
|
5 |
-
WP_Mock::setUsePatchwork( false );
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/features/bootstrap/FeatureContext.php
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
use Behat\Behat\Context\Context;
|
4 |
-
use Behat\Behat\Context\SnippetAcceptingContext;
|
5 |
-
use Behat\Behat\Hook\Scope\AfterScenarioScope;
|
6 |
-
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Defines application features from the specific context.
|
10 |
-
*/
|
11 |
-
class FeatureContext implements Context, SnippetAcceptingContext {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Initializes context.
|
15 |
-
*
|
16 |
-
* Every scenario gets its own context instance.
|
17 |
-
* You can also pass arbitrary arguments to the
|
18 |
-
* context constructor through behat.yml.
|
19 |
-
*/
|
20 |
-
public function __construct() {
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @BeforeScenario
|
25 |
-
*/
|
26 |
-
public function setUpWpMock( BeforeScenarioScope $scope ) {
|
27 |
-
WP_Mock::setUp();
|
28 |
-
}
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @AfterScenario
|
32 |
-
*/
|
33 |
-
public function tearDownWpMock( AfterScenarioScope $scope ) {
|
34 |
-
WP_Mock::tearDown();
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @BeforeScenario @strictmode
|
39 |
-
*/
|
40 |
-
public function ensureStrictModeOn() {
|
41 |
-
self::forceStrictModeOn();
|
42 |
-
}
|
43 |
-
|
44 |
-
public static function forceStrictModeOn() {
|
45 |
-
$property = new ReflectionProperty( 'WP_Mock', '__strict_mode' );
|
46 |
-
$property->setAccessible( true );
|
47 |
-
$property->setValue( true );
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @AfterScenario @strictmode
|
52 |
-
*/
|
53 |
-
public function ensureStrictModeOff() {
|
54 |
-
self::forceStrictModeOff();
|
55 |
-
}
|
56 |
-
|
57 |
-
public static function forceStrictModeOff() {
|
58 |
-
$property = new ReflectionProperty( 'WP_Mock', '__strict_mode' );
|
59 |
-
$property->setAccessible( true );
|
60 |
-
$property->setValue( false );
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* @Then tearDown should not fail
|
65 |
-
*/
|
66 |
-
public function teardownShouldNotFail() {
|
67 |
-
WP_Mock::tearDown();
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @When I do nothing
|
72 |
-
*/
|
73 |
-
public function iDoNothing() {
|
74 |
-
// Move along...
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* @Then tearDown should fail
|
79 |
-
*/
|
80 |
-
public function teardownShouldFail() {
|
81 |
-
try {
|
82 |
-
$this->teardownShouldNotFail();
|
83 |
-
throw new \PHPUnit\Framework\ExpectationFailedException( 'WP_Mock Teardown should have failed!' );
|
84 |
-
} catch ( \Mockery\Exception\InvalidCountException $e ) {
|
85 |
-
// Move along
|
86 |
-
}
|
87 |
-
}
|
88 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/features/bootstrap/FunctionsContext.php
DELETED
@@ -1,127 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
use Behat\Behat\Context\Context;
|
4 |
-
use Behat\Gherkin\Node\TableNode;
|
5 |
-
use Mockery\Exception\NoMatchingExpectationException;
|
6 |
-
|
7 |
-
class FunctionsContext implements Context {
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @Given function :function does not exist
|
11 |
-
*/
|
12 |
-
public function functionDoesNotExist( $function ) {
|
13 |
-
\PHPUnit\Framework\Assert::assertFalse( function_exists( $function ) );
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @Given I mock passthru function :function with args:
|
18 |
-
*/
|
19 |
-
public function iMockPassthruFunctionWithArgs( $function, TableNode $args ) {
|
20 |
-
WP_Mock::passthruFunction( $function, array(
|
21 |
-
'args' => $args->getRow( 0 ),
|
22 |
-
) );
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* @Given I mock function :function to return :value
|
27 |
-
*/
|
28 |
-
public function iMockFunctionToReturn( $function, $value ) {
|
29 |
-
WP_Mock::userFunction( $function, array( 'return' => $value ) );
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @Given I alias :alias to :function
|
34 |
-
*/
|
35 |
-
public function iAliasTo( $alias, $function ) {
|
36 |
-
WP_Mock::alias( $alias, $function );
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @Given I mock function :function to echo input
|
41 |
-
*/
|
42 |
-
public function iMockFunctionWpMockTestToEcho( $function ) {
|
43 |
-
WP_Mock::echoFunction( $function );
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @Given strict mode is on
|
48 |
-
*/
|
49 |
-
public function strictModeIsOn() {
|
50 |
-
FeatureContext::forceStrictModeOn();
|
51 |
-
\PHPUnit\Framework\Assert::assertTrue( WP_Mock::strictMode() );
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @Given strict mode is off
|
56 |
-
*/
|
57 |
-
public function strictModeIsOff() {
|
58 |
-
FeatureContext::forceStrictModeOff();
|
59 |
-
\PHPUnit\Framework\Assert::assertFalse( WP_Mock::strictMode() );
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @When I mock function :function
|
64 |
-
*/
|
65 |
-
public function iMockFunction( $function ) {
|
66 |
-
WP_Mock::userFunction( $function );
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* @When I tear down the test
|
71 |
-
*/
|
72 |
-
public function iTearDownTheTest() {
|
73 |
-
WP_Mock::tearDown();
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* @Then function :function should exist
|
78 |
-
*/
|
79 |
-
public function functionShouldExist( $function ) {
|
80 |
-
\PHPUnit\Framework\Assert::assertTrue( function_exists( $function ) );
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @Then I expect :return when I run :function with args:
|
85 |
-
*/
|
86 |
-
public function iExpectWhenIRunWithArgs( $return, $function, TableNode $args ) {
|
87 |
-
\PHPUnit\Framework\Assert::assertEquals( $return, call_user_func_array( $function, $args->getRow( 0 ) ) );
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* @Then I expect :return when I run :function
|
92 |
-
*/
|
93 |
-
public function iExcpectWhenIRun( $return, $function ) {
|
94 |
-
$this->iExpectWhenIRunWithArgs( $return, $function, new TableNode( array( array() ) ) );
|
95 |
-
}
|
96 |
-
|
97 |
-
/**
|
98 |
-
* @Then I expect an error when I run :function with args:
|
99 |
-
*/
|
100 |
-
public function iExpectAnErrorWhenIRunWithArgs( $function, TableNode $args ) {
|
101 |
-
try {
|
102 |
-
$this->iExpectWhenIRunWithArgs( null, $function, $args );
|
103 |
-
} catch ( NoMatchingExpectationException $e ) {
|
104 |
-
// Move along...
|
105 |
-
} catch ( \PHPUnit\Framework\ExpectationFailedException $e ) {
|
106 |
-
// Move along...
|
107 |
-
}
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* @Then I expect function :function to echo :input
|
112 |
-
*/
|
113 |
-
public function iExpectFunctionToEcho( $function, $input ) {
|
114 |
-
ob_start();
|
115 |
-
$function( $input );
|
116 |
-
$output = trim( ob_get_clean() );
|
117 |
-
\PHPUnit\Framework\Assert::assertEquals( trim( $input ), $output );
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* @Then Nothing happens when I run function :function
|
122 |
-
*/
|
123 |
-
public function iRunFunction( $function ) {
|
124 |
-
$function();
|
125 |
-
}
|
126 |
-
|
127 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/features/bootstrap/HooksContext.php
DELETED
@@ -1,235 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
use Behat\Behat\Context\Context;
|
4 |
-
use Behat\Behat\Hook\Scope\AfterScenarioScope;
|
5 |
-
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
|
6 |
-
use Behat\Gherkin\Node\TableNode;
|
7 |
-
|
8 |
-
class HooksContext implements Context {
|
9 |
-
|
10 |
-
private $filterResults = array();
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @BeforeScenario
|
14 |
-
*/
|
15 |
-
public function setUpWpMock( BeforeScenarioScope $scope ) {
|
16 |
-
$this->filterResults = array();
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @AfterScenario
|
21 |
-
*/
|
22 |
-
public function tearDownWpMock( AfterScenarioScope $scope ) {
|
23 |
-
$this->filterResults = array();
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @Given I expect the following actions added:
|
28 |
-
*/
|
29 |
-
public function iExpectTheFollowingActionsAdded( TableNode $table ) {
|
30 |
-
foreach ( $this->getActionsWithDefaults( $table ) as $action ) {
|
31 |
-
WP_Mock::expectActionAdded(
|
32 |
-
$action['action'],
|
33 |
-
$action['callback'],
|
34 |
-
$action['priority'],
|
35 |
-
$action['arguments']
|
36 |
-
);
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @Given I expect the following actions not to be added:
|
42 |
-
*/
|
43 |
-
public function iExpectTheFollowingActionsNotToBeAdded( TableNode $table ) {
|
44 |
-
foreach ( $this->getActionsWithDefaults( $table ) as $action ) {
|
45 |
-
WP_Mock::expectActionNotAdded( $action['action'], $action['callback'] );
|
46 |
-
}
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @Given I expect the :action action
|
51 |
-
*/
|
52 |
-
public function iExpectTheAction( $action ) {
|
53 |
-
$this->iExpectTheActionWith( $action, new TableNode( array() ) );
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @When I expect the :action action with:
|
58 |
-
*/
|
59 |
-
public function iExpectTheActionWith( $action, TableNode $table ) {
|
60 |
-
$args = array( $action );
|
61 |
-
$rows = $table->getRows();
|
62 |
-
if ( isset( $rows[0] ) && is_array( $rows[0] ) ) {
|
63 |
-
$args = array_merge( $args, $rows[0] );
|
64 |
-
}
|
65 |
-
call_user_func_array( array( 'WP_Mock', 'expectAction' ), $args );
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* @Given I expect the :filter filter with :value
|
70 |
-
*/
|
71 |
-
public function iExpectTheFilterWith( $filter, $value ) {
|
72 |
-
$this->iExpectTheFilterWithValues( $filter, new TableNode( array( array( $value ) ) ) );
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* @When I expect the :filter filter with:
|
77 |
-
*/
|
78 |
-
public function iExpectTheFilterWithValues( $filter, TableNode $table ) {
|
79 |
-
$args = array( $filter );
|
80 |
-
$rows = $table->getRows();
|
81 |
-
if ( isset( $rows[0] ) && is_array( $rows[0] ) ) {
|
82 |
-
$args = array_merge( $args, $rows[0] );
|
83 |
-
}
|
84 |
-
call_user_func_array( array( 'WP_Mock', 'expectFilter' ), $args );
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* @When I add the following actions:
|
89 |
-
*/
|
90 |
-
public function iAddTheFollowingActions( TableNode $table ) {
|
91 |
-
foreach ( $this->getActionsWithDefaults( $table ) as $action ) {
|
92 |
-
add_action(
|
93 |
-
$action['action'],
|
94 |
-
$action['callback'],
|
95 |
-
$action['priority'],
|
96 |
-
$action['arguments']
|
97 |
-
);
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
/**
|
102 |
-
* @When I do the :action action
|
103 |
-
*/
|
104 |
-
public function iDoTheAction( $action ) {
|
105 |
-
$this->iDoTheActionWith( $action, new TableNode( array() ) );
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* @When I do the :action action with:
|
110 |
-
*/
|
111 |
-
public function iDoTheActionWith( $action, TableNode $table ) {
|
112 |
-
$args = array( $action );
|
113 |
-
$rows = $table->getRows();
|
114 |
-
if ( isset( $rows[0] ) && is_array( $rows[0] ) ) {
|
115 |
-
$args = array_merge( $args, $rows[0] );
|
116 |
-
}
|
117 |
-
call_user_func_array( 'do_action', $args );
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* @Given I expect the following filters added:
|
122 |
-
*/
|
123 |
-
public function iExpectTheFollowingFiltersAdded( TableNode $table ) {
|
124 |
-
$filters = $table->getHash();
|
125 |
-
$defaults = array(
|
126 |
-
'filter' => '',
|
127 |
-
'callback' => '',
|
128 |
-
'priority' => 10,
|
129 |
-
'arguments' => 1,
|
130 |
-
);
|
131 |
-
foreach ( $filters as $filter ) {
|
132 |
-
$filter += $defaults;
|
133 |
-
WP_Mock::expectFilterAdded(
|
134 |
-
$filter['filter'],
|
135 |
-
$filter['callback'],
|
136 |
-
$filter['priority'],
|
137 |
-
$filter['arguments']
|
138 |
-
);
|
139 |
-
}
|
140 |
-
}
|
141 |
-
|
142 |
-
/**
|
143 |
-
* @Given I expect the following filters not to be added:
|
144 |
-
*/
|
145 |
-
public function iExpectTheFollowingFiltersNotToBeAdded( TableNode $table ) {
|
146 |
-
foreach ( $this->getFiltersWithDefaults( $table ) as $filter ) {
|
147 |
-
WP_Mock::expectFilterNotAdded( $filter['filter'], $filter['callback'] );
|
148 |
-
}
|
149 |
-
}
|
150 |
-
|
151 |
-
/**
|
152 |
-
* @When I add the following filters:
|
153 |
-
*/
|
154 |
-
public function iAddTheFollowingFilters( TableNode $table ) {
|
155 |
-
foreach ( $this->getFiltersWithDefaults( $table ) as $filter ) {
|
156 |
-
add_filter(
|
157 |
-
$filter['filter'],
|
158 |
-
$filter['callback'],
|
159 |
-
$filter['priority'],
|
160 |
-
$filter['arguments']
|
161 |
-
);
|
162 |
-
}
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* @Given I expect filter :filter to respond to :thing with :response
|
167 |
-
*/
|
168 |
-
public function iExpectFilterToRespondToWith( $filter, $thing, $response ) {
|
169 |
-
WP_Mock::onFilter( $filter )->with( $thing )->reply( $response );
|
170 |
-
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
* @Given I expect filter :filter to respond with :response
|
174 |
-
*/
|
175 |
-
public function iExpectFilterToRespondWith( $filter, $response ) {
|
176 |
-
$this->iExpectFilterToRespondToWith( $filter, null, $response );
|
177 |
-
}
|
178 |
-
|
179 |
-
/**
|
180 |
-
* @When I apply the filter :filter with :with
|
181 |
-
*/
|
182 |
-
public function iApplyFilterWith( $filter, $with ) {
|
183 |
-
$this->iApplyFilterWithData( $filter, new TableNode( array( array( $with ) ) ) );
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* @When I apply the filter :filter with:
|
188 |
-
*/
|
189 |
-
public function iApplyFilterWithData( $filter, TableNode $table ) {
|
190 |
-
$row = $table->getRow( 0 );
|
191 |
-
array_unshift( $row, $filter );
|
192 |
-
$this->filterResults[ $filter ] = call_user_func_array( 'apply_filters', $row );
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* @Then The filter :filter should return :value
|
197 |
-
*/
|
198 |
-
public function theFilterShouldReturn( $filter, $value ) {
|
199 |
-
\PHPUnit\Framework\Assert::assertArrayHasKey( $filter, $this->filterResults );
|
200 |
-
\PHPUnit\Framework\Assert::assertEquals( $this->filterResults[ $filter ], $value );
|
201 |
-
}
|
202 |
-
|
203 |
-
private function getActionsWithDefaults( TableNode $table ) {
|
204 |
-
$actions = $table->getHash();
|
205 |
-
$defaults = array(
|
206 |
-
'action' => '',
|
207 |
-
'callback' => '',
|
208 |
-
'priority' => 10,
|
209 |
-
'arguments' => 1,
|
210 |
-
);
|
211 |
-
foreach ( $actions as &$action ) {
|
212 |
-
$action += $defaults;
|
213 |
-
}
|
214 |
-
unset( $action );
|
215 |
-
|
216 |
-
return $actions;
|
217 |
-
}
|
218 |
-
|
219 |
-
private function getFiltersWithDefaults( TableNode $table ) {
|
220 |
-
$filters = $table->getHash();
|
221 |
-
$defaults = array(
|
222 |
-
'filter' => '',
|
223 |
-
'callback' => '',
|
224 |
-
'priority' => 10,
|
225 |
-
'arguments' => 1,
|
226 |
-
);
|
227 |
-
foreach ( $filters as &$filter ) {
|
228 |
-
$filter += $defaults;
|
229 |
-
}
|
230 |
-
unset( $filter );
|
231 |
-
|
232 |
-
return $filters;
|
233 |
-
}
|
234 |
-
|
235 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/features/function-mocks.feature
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
Feature: Function mocking
|
2 |
-
In order to simulate the WordPress functional API
|
3 |
-
As a developer
|
4 |
-
I need to be able to mock WordPress core functions
|
5 |
-
|
6 |
-
Scenario: userFunction creates functions that don't exist
|
7 |
-
Given function wpMockTest does not exist
|
8 |
-
When I mock function wpMockTest
|
9 |
-
Then function wpMockTest should exist
|
10 |
-
|
11 |
-
Scenario: Passthru function returns first argument
|
12 |
-
Given I mock passthru function wpMockPassthruTest with args:
|
13 |
-
| foobar | bazbat |
|
14 |
-
Then I expect foobar when I run wpMockPassthruTest with args:
|
15 |
-
| foobar | bazbat |
|
16 |
-
|
17 |
-
Scenario: return value works correctly
|
18 |
-
Given I mock function wpMockTest to return "test value"
|
19 |
-
Then I expect "test value" when I run wpMockTest
|
20 |
-
|
21 |
-
Scenario: expectations cause error on unexpected use
|
22 |
-
Given I mock passthru function wpMockTest with args:
|
23 |
-
| bazbat | foobar |
|
24 |
-
Then I expect an error when I run wpMockTest with args:
|
25 |
-
| bimbam | bobeep |
|
26 |
-
|
27 |
-
Scenario: alias uses the provided callback when called
|
28 |
-
Given I mock function wpMockTest to return "alias test"
|
29 |
-
And I alias wpAliasTest to wpMockTest
|
30 |
-
Then I expect "alias test" when I run wpAliasTest
|
31 |
-
|
32 |
-
Scenario: echoFunction echoes the correct output
|
33 |
-
Given I mock function wpMockTest to echo input
|
34 |
-
Then I expect function wpMockTest to echo "echo test"
|
35 |
-
|
36 |
-
Scenario: Previously defined functions do not cause failure when called without being expected
|
37 |
-
Given strict mode is off
|
38 |
-
And I mock function wpMockStrictTest
|
39 |
-
And I tear down the test
|
40 |
-
Then Nothing happens when I run function wpMockStrictTest
|
41 |
-
|
42 |
-
@strictmode
|
43 |
-
Scenario: Strict mode causes unexpected but previously defined functions to fail
|
44 |
-
Given strict mode is on
|
45 |
-
And I mock function wpMockTest
|
46 |
-
When I tear down the test
|
47 |
-
Then I expect an error when I run wpMockTest with args:
|
48 |
-
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/features/hooks.feature
DELETED
@@ -1,228 +0,0 @@
|
|
1 |
-
Feature: Hook mocking
|
2 |
-
In order to test common WordPress functionality
|
3 |
-
As a developer
|
4 |
-
I need to be able to mock actions and filters
|
5 |
-
|
6 |
-
Scenario: expectActionAdded sets up expectation
|
7 |
-
Given I expect the following actions added:
|
8 |
-
| action | callback | priority | arguments |
|
9 |
-
| foobar | bazbat | 10 | 2 |
|
10 |
-
When I add the following actions:
|
11 |
-
| action | callback | priority | arguments |
|
12 |
-
| foobar | bazbat | 10 | 2 |
|
13 |
-
Then tearDown should not fail
|
14 |
-
|
15 |
-
Scenario: expectActionAdded fails when not met
|
16 |
-
Given I expect the following actions added:
|
17 |
-
| action | callback |
|
18 |
-
| foobar | bazbat |
|
19 |
-
When I do nothing
|
20 |
-
Then tearDown should fail
|
21 |
-
|
22 |
-
Scenario: expectActionAdded fails when argument count is different
|
23 |
-
Given I expect the following actions added:
|
24 |
-
| action | callback | priority | arguments |
|
25 |
-
| foobar | bazbat | 10 | 2 |
|
26 |
-
When I add the following actions:
|
27 |
-
| action | callback | priority | arguments |
|
28 |
-
| foobar | bazbat | 10 | 3 |
|
29 |
-
Then tearDown should fail
|
30 |
-
|
31 |
-
Scenario: expectActionAdded fails when priority is different
|
32 |
-
Given I expect the following actions added:
|
33 |
-
| action | callback | priority |
|
34 |
-
| foobar | bazbat | 10 |
|
35 |
-
When I add the following actions:
|
36 |
-
| action | callback | priority |
|
37 |
-
| foobar | bazbat | 11 |
|
38 |
-
Then tearDown should fail
|
39 |
-
|
40 |
-
Scenario: expectActionNotAdded fails when action added
|
41 |
-
Given I expect the following actions not to be added:
|
42 |
-
| action | callback |
|
43 |
-
| foobar | bazbat |
|
44 |
-
When I add the following actions:
|
45 |
-
| action | callback |
|
46 |
-
| foobar | bazbat |
|
47 |
-
Then tearDown should fail
|
48 |
-
|
49 |
-
Scenario: expectActionNotAdded passes when action not added
|
50 |
-
Given I expect the following actions not to be added:
|
51 |
-
| action | callback |
|
52 |
-
| foobar | bazbat |
|
53 |
-
When I do nothing
|
54 |
-
Then tearDown should not fail
|
55 |
-
|
56 |
-
Scenario: expectFilterAdded sets up expectation
|
57 |
-
Given I expect the following filters added:
|
58 |
-
| filter | callback | priority | arguments |
|
59 |
-
| foobar | bazbat | 10 | 2 |
|
60 |
-
When I add the following filters:
|
61 |
-
| filter | callback | priority | arguments |
|
62 |
-
| foobar | bazbat | 10 | 2 |
|
63 |
-
Then tearDown should not fail
|
64 |
-
|
65 |
-
Scenario: expectFilterAdded fails when not met
|
66 |
-
Given I expect the following filters added:
|
67 |
-
| filter | callback |
|
68 |
-
| foobar | bazbat |
|
69 |
-
When I do nothing
|
70 |
-
Then tearDown should fail
|
71 |
-
|
72 |
-
Scenario: expectFilterAdded fails when argument count is different
|
73 |
-
Given I expect the following filters added:
|
74 |
-
| filter | callback | priority | arguments |
|
75 |
-
| foobar | bazbat | 10 | 2 |
|
76 |
-
When I add the following filters:
|
77 |
-
| filter | callback | priority | arguments |
|
78 |
-
| foobar | bazbat | 10 | 3 |
|
79 |
-
Then tearDown should fail
|
80 |
-
|
81 |
-
Scenario: expectFilterAdded fails when priority is different
|
82 |
-
Given I expect the following filters added:
|
83 |
-
| filter | callback | priority |
|
84 |
-
| foobar | bazbat | 10 |
|
85 |
-
When I add the following filters:
|
86 |
-
| filter | callback | priority |
|
87 |
-
| foobar | bazbat | 11 |
|
88 |
-
Then tearDown should fail
|
89 |
-
|
90 |
-
Scenario: expectAction sets up expectation
|
91 |
-
Given I expect the "foobar" action
|
92 |
-
When I do the "foobar" action
|
93 |
-
Then tearDown should not fail
|
94 |
-
|
95 |
-
Scenario: expectAction fails when unmet
|
96 |
-
Given I expect the "foobar" action
|
97 |
-
When I do nothing
|
98 |
-
Then tearDown should fail
|
99 |
-
|
100 |
-
Scenario: expectAction with extra arguments
|
101 |
-
Given I expect the "foobar" action with:
|
102 |
-
| some | extra | data |
|
103 |
-
When I do the "foobar" action with:
|
104 |
-
| some | extra | data |
|
105 |
-
Then tearDown should not fail
|
106 |
-
|
107 |
-
Scenario: action with the wrong arguments fails
|
108 |
-
Given I expect the "bazbat" action with:
|
109 |
-
| the correct data |
|
110 |
-
When I do the "bazbat" action with:
|
111 |
-
| Invalid information |
|
112 |
-
Then tearDown should fail
|
113 |
-
|
114 |
-
Scenario: action with extra arguments fails
|
115 |
-
Given I expect the "bazbat" action with:
|
116 |
-
| data |
|
117 |
-
When I do the "bazbat" action with:
|
118 |
-
| data | plus |
|
119 |
-
Then tearDown should fail
|
120 |
-
|
121 |
-
Scenario: expectFilter sets up expectation
|
122 |
-
Given I expect the "foobar" filter with "bazbat"
|
123 |
-
When I apply the filter "foobar" with "bazbat"
|
124 |
-
Then tearDown should not fail
|
125 |
-
|
126 |
-
Scenario: expectFilter fails when unmet
|
127 |
-
Given I expect the "foobar" filter with "bazbat"
|
128 |
-
When I do nothing
|
129 |
-
Then tearDown should fail
|
130 |
-
|
131 |
-
Scenario: expectFilter with extra arguments
|
132 |
-
Given I expect the "foobar" filter with:
|
133 |
-
| some | extra | data |
|
134 |
-
When I apply the filter "foobar" with:
|
135 |
-
| some | extra | data |
|
136 |
-
Then tearDown should not fail
|
137 |
-
|
138 |
-
Scenario: filter with the wrong arguments fails
|
139 |
-
Given I expect the "bazbat" filter with:
|
140 |
-
| the correct data |
|
141 |
-
When I apply the filter "bazbat" with:
|
142 |
-
| Invalid information |
|
143 |
-
Then tearDown should fail
|
144 |
-
|
145 |
-
Scenario: expectFilter fails when called with wrong argument
|
146 |
-
Given I expect the "foobar" filter with "bazbat"
|
147 |
-
When I apply the filter "foobar" with "bimbam"
|
148 |
-
Then tearDown should fail
|
149 |
-
|
150 |
-
Scenario: filter with extra arguments fails
|
151 |
-
Given I expect the "bazbat" filter with:
|
152 |
-
| data |
|
153 |
-
When I apply the filter "bazbat" with:
|
154 |
-
| data | plus |
|
155 |
-
Then tearDown should fail
|
156 |
-
|
157 |
-
@strictmode
|
158 |
-
Scenario: Unexpected action fails in strict mode
|
159 |
-
Given strict mode is on
|
160 |
-
When I do nothing
|
161 |
-
Then I expect an error when I run do_action with args:
|
162 |
-
| bimbam | bazbat |
|
163 |
-
|
164 |
-
Scenario: unexpected action does not fail tests
|
165 |
-
Given I do nothing
|
166 |
-
When I add the following actions:
|
167 |
-
| action | callback |
|
168 |
-
| foobar | bazbat |
|
169 |
-
Then tearDown should not fail
|
170 |
-
|
171 |
-
@strictmode
|
172 |
-
Scenario: Unexpected filter fails in strict mode
|
173 |
-
Given strict mode is on
|
174 |
-
When I do nothing
|
175 |
-
Then I expect an error when I run apply_filters with args:
|
176 |
-
| foobar | bazbat |
|
177 |
-
|
178 |
-
Scenario: unexpected filter does not fail tests
|
179 |
-
Given I do nothing
|
180 |
-
When I add the following filters:
|
181 |
-
| filter | callback |
|
182 |
-
| foobar | bazbat |
|
183 |
-
Then tearDown should not fail
|
184 |
-
|
185 |
-
@strictmode
|
186 |
-
Scenario: unexpected action fails in strict mode
|
187 |
-
Given strict mode is on
|
188 |
-
When I do nothing
|
189 |
-
Then I expect an error when I run add_action with args:
|
190 |
-
| foobar | bazbat |
|
191 |
-
|
192 |
-
@strictmode
|
193 |
-
Scenario: unexpected action fails in strict mode
|
194 |
-
Given strict mode is on
|
195 |
-
When I do nothing
|
196 |
-
Then I expect an error when I run add_filter with args:
|
197 |
-
| foobar | bazbat |
|
198 |
-
|
199 |
-
Scenario: filter responder works
|
200 |
-
Given I expect filter "the_content" to respond to "Test content" with "Responder works"
|
201 |
-
When I apply the filter "the_content" with "Test content"
|
202 |
-
Then The filter "the_content" should return "Responder works"
|
203 |
-
|
204 |
-
Scenario: filter returns default value when no filter defined
|
205 |
-
Given I do nothing
|
206 |
-
When I apply the filter "the_content" with "Apple"
|
207 |
-
Then The filter "the_content" should return "Apple"
|
208 |
-
|
209 |
-
Scenario: filter returns default value when unexpected value used
|
210 |
-
Given I expect filter "the_content" to respond to "Windows" with "OS X"
|
211 |
-
When I apply the filter "the_content" with "Linux"
|
212 |
-
Then The filter "the_content" should return "Linux"
|
213 |
-
|
214 |
-
Scenario: expectFilterNotAdded fails when filter added
|
215 |
-
Given I expect the following filters not to be added:
|
216 |
-
| filter | callback |
|
217 |
-
| foobar | bazbat |
|
218 |
-
When I add the following filters:
|
219 |
-
| filter | callback |
|
220 |
-
| foobar | bazbat |
|
221 |
-
Then tearDown should fail
|
222 |
-
|
223 |
-
Scenario: expectFilterNotAdded passes when filter not added
|
224 |
-
Given I expect the following filters not to be added:
|
225 |
-
| filter | callback |
|
226 |
-
| foobar | bazbat |
|
227 |
-
When I do nothing
|
228 |
-
Then tearDown should not fail
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock.php
DELETED
@@ -1,543 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WP_Mock
|
4 |
-
*
|
5 |
-
* LICENSE
|
6 |
-
*
|
7 |
-
* Copyright 2013 10up and other contributors
|
8 |
-
* http://10up.com
|
9 |
-
*
|
10 |
-
* Permission is hereby granted, free of charge, to any person obtaining
|
11 |
-
* a copy of this software and associated documentation files (the
|
12 |
-
* "Software"), to deal in the Software without restriction, including
|
13 |
-
* without limitation the rights to use, copy, modify, merge, publish,
|
14 |
-
* distribute, sublicense, and/or sell copies of the Software, and to
|
15 |
-
* permit persons to whom the Software is furnished to do so, subject to
|
16 |
-
* the following conditions:
|
17 |
-
*
|
18 |
-
* The above copyright notice and this permission notice shall be
|
19 |
-
* included in all copies or substantial portions of the Software.
|
20 |
-
*
|
21 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
22 |
-
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
23 |
-
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
24 |
-
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
25 |
-
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
26 |
-
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
27 |
-
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
28 |
-
*
|
29 |
-
* @package WP_Mock
|
30 |
-
* @copyright Copyright (c) 2013 10up (http://10up.com)
|
31 |
-
* @license MIT License
|
32 |
-
*/
|
33 |
-
|
34 |
-
use WP_Mock\Matcher\FuzzyObject;
|
35 |
-
|
36 |
-
class WP_Mock {
|
37 |
-
/**
|
38 |
-
* @var \WP_Mock\EventManager
|
39 |
-
*/
|
40 |
-
protected static $event_manager;
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @var \WP_Mock\Functions
|
44 |
-
*/
|
45 |
-
protected static $function_manager;
|
46 |
-
|
47 |
-
protected static $__bootstrapped = false;
|
48 |
-
|
49 |
-
protected static $__use_patchwork = false;
|
50 |
-
|
51 |
-
protected static $__strict_mode = false;
|
52 |
-
|
53 |
-
protected static $deprecated_listener;
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @param boolean $use_patchwork
|
57 |
-
*/
|
58 |
-
public static function setUsePatchwork( $use_patchwork ) {
|
59 |
-
if ( ! self::$__bootstrapped ) {
|
60 |
-
self::$__use_patchwork = (bool) $use_patchwork;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
public static function usingPatchwork() {
|
65 |
-
return (bool) self::$__use_patchwork;
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Check whether strict mode is turned on
|
70 |
-
*
|
71 |
-
* @return bool
|
72 |
-
*/
|
73 |
-
public static function strictMode() {
|
74 |
-
return (bool) self::$__strict_mode;
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* Turns on strict mode
|
79 |
-
*/
|
80 |
-
public static function activateStrictMode() {
|
81 |
-
if ( ! self::$__bootstrapped ) {
|
82 |
-
self::$__strict_mode = true;
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Bootstrap WP_Mock
|
88 |
-
*/
|
89 |
-
public static function bootstrap() {
|
90 |
-
if ( ! self::$__bootstrapped ) {
|
91 |
-
self::$__bootstrapped = true;
|
92 |
-
static::$deprecated_listener = new \WP_Mock\DeprecatedListener();
|
93 |
-
require_once __DIR__ . '/WP_Mock/API/function-mocks.php';
|
94 |
-
require_once __DIR__ . '/WP_Mock/API/constant-mocks.php';
|
95 |
-
if ( self::usingPatchwork() ) {
|
96 |
-
$possible_locations = array(
|
97 |
-
'vendor',
|
98 |
-
'../..',
|
99 |
-
);
|
100 |
-
$patchwork_path = 'antecedent/patchwork/Patchwork.php';
|
101 |
-
foreach ( $possible_locations as $loc ) {
|
102 |
-
$path = __DIR__ . "/../$loc/$patchwork_path";
|
103 |
-
if ( file_exists( $path ) ) {
|
104 |
-
break;
|
105 |
-
}
|
106 |
-
}
|
107 |
-
// Will cause a fatal error if patchwork can't be found
|
108 |
-
require_once( $path );
|
109 |
-
}
|
110 |
-
self::setUp();
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Make sure Mockery doesn't have anything set up already.
|
116 |
-
*/
|
117 |
-
public static function setUp() {
|
118 |
-
if ( self::$__bootstrapped ) {
|
119 |
-
\Mockery::close();
|
120 |
-
|
121 |
-
self::$event_manager = new \WP_Mock\EventManager();
|
122 |
-
self::$function_manager = new \WP_Mock\Functions();
|
123 |
-
} else {
|
124 |
-
self::bootstrap();
|
125 |
-
}
|
126 |
-
}
|
127 |
-
|
128 |
-
/**
|
129 |
-
* Tear down anything built up inside Mockery when we're ready to do so.
|
130 |
-
*/
|
131 |
-
public static function tearDown() {
|
132 |
-
self::$event_manager->flush();
|
133 |
-
self::$function_manager->flush();
|
134 |
-
|
135 |
-
\Mockery::close();
|
136 |
-
\WP_Mock\Handler::cleanup();
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* Fire a specific (mocked) callback when an apply_filters() call is used.
|
141 |
-
*
|
142 |
-
* @param string $filter
|
143 |
-
*
|
144 |
-
* @return \WP_Mock\Filter
|
145 |
-
*/
|
146 |
-
public static function onFilter( $filter ) {
|
147 |
-
return self::$event_manager->filter( $filter );
|
148 |
-
}
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Fire a specific (mocked) callback when a do_action() call is used.
|
152 |
-
*
|
153 |
-
* @param string $action
|
154 |
-
*
|
155 |
-
* @return \WP_Mock\Action
|
156 |
-
*/
|
157 |
-
public static function onAction( $action ) {
|
158 |
-
return self::$event_manager->action( $action );
|
159 |
-
}
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Get a filter or action added callback object
|
163 |
-
*
|
164 |
-
* @param string $hook
|
165 |
-
* @param string $type
|
166 |
-
*
|
167 |
-
* @return \WP_Mock\HookedCallback
|
168 |
-
*/
|
169 |
-
public static function onHookAdded( $hook, $type = 'filter' ) {
|
170 |
-
return self::$event_manager->callback( $hook, $type );
|
171 |
-
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* Get a filter added callback object
|
175 |
-
*
|
176 |
-
* @param string $hook
|
177 |
-
*
|
178 |
-
* @return \WP_Mock\HookedCallback
|
179 |
-
*/
|
180 |
-
public static function onFilterAdded( $hook ) {
|
181 |
-
return self::onHookAdded( $hook, 'filter' );
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* Get an action added callback object
|
186 |
-
*
|
187 |
-
* @param string $hook
|
188 |
-
*
|
189 |
-
* @return \WP_Mock\HookedCallback
|
190 |
-
*/
|
191 |
-
public static function onActionAdded( $hook ) {
|
192 |
-
return self::onHookAdded( $hook, 'action' );
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Alert the Event Manager that an action has been invoked.
|
197 |
-
*
|
198 |
-
* @param string $action
|
199 |
-
*/
|
200 |
-
public static function invokeAction( $action ) {
|
201 |
-
self::$event_manager->called( $action );
|
202 |
-
}
|
203 |
-
|
204 |
-
public static function addFilter( $hook ) {
|
205 |
-
self::addHook( $hook, 'filter' );
|
206 |
-
}
|
207 |
-
|
208 |
-
public static function addAction( $hook ) {
|
209 |
-
self::addHook( $hook, 'action' );
|
210 |
-
}
|
211 |
-
|
212 |
-
public static function addHook( $hook, $type = 'filter' ) {
|
213 |
-
$type_name = "$type::$hook";
|
214 |
-
self::$event_manager->called( $type_name, 'callback' );
|
215 |
-
}
|
216 |
-
|
217 |
-
/**
|
218 |
-
* Set up the expectation that an action will be called during the test.
|
219 |
-
*
|
220 |
-
* Mock a WordPress action, regardless of the parameters used. This call merely
|
221 |
-
* verifies that the action is invoked by the tested method.
|
222 |
-
*
|
223 |
-
* @param string $action Action we expect the method to call
|
224 |
-
*/
|
225 |
-
public static function expectAction( $action ) {
|
226 |
-
$intercept = \Mockery::mock( 'intercept' );
|
227 |
-
$intercept->shouldReceive( 'intercepted' )->atLeast()->once();
|
228 |
-
$args = func_get_args();
|
229 |
-
$args = count( $args ) > 1 ? array_slice( $args, 1 ) : array( null );
|
230 |
-
|
231 |
-
$mocked_action = self::onAction( $action );
|
232 |
-
$responder = call_user_func_array( array( $mocked_action, 'with' ), $args );
|
233 |
-
$responder->perform( array( $intercept, 'intercepted' ) );
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Set up the expectation that a filter will be applied during the test.
|
238 |
-
*
|
239 |
-
* Mock a WordPress filter with specific arguments. You need all arguments that you expect
|
240 |
-
* in order to fulfill the expectation.
|
241 |
-
*
|
242 |
-
* @param string $filter
|
243 |
-
*/
|
244 |
-
public static function expectFilter( $filter ) {
|
245 |
-
$intercept = \Mockery::mock( 'intercept' );
|
246 |
-
$intercept->shouldReceive( 'intercepted' )->atLeast()->once()->andReturnUsing( function( $value ) {
|
247 |
-
return $value;
|
248 |
-
} );
|
249 |
-
$args = func_num_args() > 1 ? array_slice( func_get_args(), 1 ) : array( null );
|
250 |
-
|
251 |
-
$mocked_filter = self::onFilter( $filter );
|
252 |
-
$responder = call_user_func_array( array( $mocked_filter, 'with' ), $args );
|
253 |
-
$responder->reply( new \WP_Mock\InvokedFilterValue( array( $intercept, 'intercepted' ) ) );
|
254 |
-
}
|
255 |
-
|
256 |
-
public static function assertActionsCalled() {
|
257 |
-
if ( ! self::$event_manager->allActionsCalled() ) {
|
258 |
-
$failed = implode( ', ', self::$event_manager->expectedActions() );
|
259 |
-
throw new \PHPUnit\Framework\ExpectationFailedException( 'Method failed to invoke actions: ' . $failed, null );
|
260 |
-
}
|
261 |
-
}
|
262 |
-
|
263 |
-
/**
|
264 |
-
* Add an expectation that an action should be added
|
265 |
-
*
|
266 |
-
* Really just a wrapper function for expectHookAdded()
|
267 |
-
*
|
268 |
-
* @param string $action The action name
|
269 |
-
* @param callable $callback The callback that should be registered
|
270 |
-
* @param int $priority The priority it should be registered at
|
271 |
-
* @param int $args The number of arguments that should be allowed
|
272 |
-
*/
|
273 |
-
public static function expectActionAdded( $action, $callback, $priority = 10, $args = 1 ) {
|
274 |
-
self::expectHookAdded( 'action', $action, $callback, $priority, $args );
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Add an expection that an action should not be added. A wrapper
|
279 |
-
* around the expectHookNotAdded function.
|
280 |
-
*
|
281 |
-
* @param string $action The action hook name
|
282 |
-
* @param callable $callback The action callback
|
283 |
-
*/
|
284 |
-
public static function expectActionNotAdded( $action, $callback ) {
|
285 |
-
self::expectHookNotAdded( 'action', $action, $callback );
|
286 |
-
}
|
287 |
-
|
288 |
-
/**
|
289 |
-
* Add an expectation that a filter should be added
|
290 |
-
*
|
291 |
-
* Really just a wrapper function for expectHookAdded()
|
292 |
-
*
|
293 |
-
* @param string $filter The action name
|
294 |
-
* @param callable $callback The callback that should be registered
|
295 |
-
* @param int $priority The priority it should be registered at
|
296 |
-
* @param int $args The number of arguments that should be allowed
|
297 |
-
*/
|
298 |
-
public static function expectFilterAdded( $filter, $callback, $priority = 10, $args = 1 ) {
|
299 |
-
self::expectHookAdded( 'filter', $filter, $callback, $priority, $args );
|
300 |
-
}
|
301 |
-
|
302 |
-
/**
|
303 |
-
* Adds an expectation that a filter will not be added. A wrapper
|
304 |
-
* around the expectHookNotAdded function.
|
305 |
-
*
|
306 |
-
* @param string $filter The filter hook name
|
307 |
-
* @param callable $callback The filter callback
|
308 |
-
*/
|
309 |
-
public static function expectFilterNotAdded( $filter, $callback ) {
|
310 |
-
self::expectHookNotAdded( 'filter', $filter, $callback );
|
311 |
-
}
|
312 |
-
|
313 |
-
/**
|
314 |
-
* Add an expectation that a hook should be added
|
315 |
-
*
|
316 |
-
* @param string $type The type of hook being added
|
317 |
-
* @param string $action The action name
|
318 |
-
* @param callable $callback The callback that should be registered
|
319 |
-
* @param int $priority The priority it should be registered at
|
320 |
-
* @param int $args The number of arguments that should be allowed
|
321 |
-
*/
|
322 |
-
public static function expectHookAdded( $type, $action, $callback, $priority = 10, $args = 1 ) {
|
323 |
-
$intercept = \Mockery::mock( 'intercept' );
|
324 |
-
$intercept->shouldReceive( 'intercepted' )->atLeast()->once();
|
325 |
-
|
326 |
-
/** @var WP_Mock\HookedCallbackResponder $responder */
|
327 |
-
$responder = self::onHookAdded( $action, $type )
|
328 |
-
->with( $callback, $priority, $args );
|
329 |
-
$responder->perform( array( $intercept, 'intercepted' ) );
|
330 |
-
}
|
331 |
-
|
332 |
-
/**
|
333 |
-
* Adds an expectation that a hook should not be added. Based on the
|
334 |
-
* shouldNotReceive API of Mocker.
|
335 |
-
*
|
336 |
-
* @param string $type The hook type, 'action' or 'filter'
|
337 |
-
* @param string $action The name of the hook
|
338 |
-
* @param callable $callback The hooks callback handler.
|
339 |
-
*/
|
340 |
-
public static function expectHookNotAdded( $type, $action, $callback ) {
|
341 |
-
$intercept = \Mockery::mock( 'intercept' );
|
342 |
-
$intercept->shouldNotReceive( 'intercepted' );
|
343 |
-
|
344 |
-
/** @var WP_Mock\HookedCallbackResponder $responder */
|
345 |
-
$responder = self::onHookAdded( $action, $type )
|
346 |
-
->with( $callback, 10, 1 );
|
347 |
-
$responder->perform( array( $intercept, 'intercepted' ) );
|
348 |
-
}
|
349 |
-
|
350 |
-
public static function assertHooksAdded() {
|
351 |
-
if ( ! self:: $event_manager->allHooksAdded() ) {
|
352 |
-
$failed = implode( ', ', self::$event_manager->expectedHooks() );
|
353 |
-
throw new \PHPUnit\Framework\ExpectationFailedException( 'Method failed to add hooks: ' . $failed, null );
|
354 |
-
}
|
355 |
-
}
|
356 |
-
|
357 |
-
/**
|
358 |
-
* Mock a WordPress API function
|
359 |
-
*
|
360 |
-
* This function registers a mock object for a WordPress function and, if
|
361 |
-
* necessary, dynamically defines the function. Pass the function name as
|
362 |
-
* the first argument (e.g. wp_remote_get) and pass in details about the
|
363 |
-
* expectations in the $arguments array. The arguments array has a few
|
364 |
-
* options for defining expectations about how the WordPress function should
|
365 |
-
* be used during a test. Currently, it accepts the following settings:
|
366 |
-
*
|
367 |
-
* - times: Defines expectations for the number of times a function should
|
368 |
-
* be called. The default is 0 or more times. To expect the function to be
|
369 |
-
* called an exact amount of times, set times to a non-negative numeric
|
370 |
-
* value. To specify that the function should be called a minimum number
|
371 |
-
* of times, use a string with the minimum followed by '+' (e.g. '3+'
|
372 |
-
* means 3 or more times). Append a '-' to indicate a maximum number of
|
373 |
-
* times a function should be called (e.g. '3-' means no more than 3 times)
|
374 |
-
* To indicate a range, use '-' between two numbers (e.g. '2-5' means at
|
375 |
-
* least 2 times and no more than 5 times)
|
376 |
-
* - return: Defines the value (if any) that the function should return. If
|
377 |
-
* you pass a Closure as the return value, the function will return
|
378 |
-
* whatever the Closure's return value.
|
379 |
-
* - return_in_order: Use this if your function will be called multiple
|
380 |
-
* times in the test but needs to have different return values. Set this to
|
381 |
-
* an array of return values. Each time the function is called, it will
|
382 |
-
* return the next value in the sequence until it reaches the last value,
|
383 |
-
* which will become the return value for all subsequent calls. For
|
384 |
-
* example, if I am mocking is_single(), I can set return_in_order to
|
385 |
-
* array( false, true ). The first time is_single() is called it will
|
386 |
-
* return false. The second and all subsequent times it will return true.
|
387 |
-
* Setting this value overrides return, so if you set both, return will be
|
388 |
-
* ignored.
|
389 |
-
* - return_arg: Use this to specify that the function should return one of
|
390 |
-
* its arguments. return_arg should be the position of the argument in the
|
391 |
-
* arguments array, so 0 for the first argument, 1 for the second, etc.
|
392 |
-
* You can also set this to true, which is equivalent to 0. This will
|
393 |
-
* override both return and return_in_order.
|
394 |
-
* - args: Use this to set expectations about what the arguments passed to
|
395 |
-
* the function should be. This value should always be an array with the
|
396 |
-
* arguments in order. Like with return, if you use a Closure, its return
|
397 |
-
* value will be used to validate the argument expectations. WP_Mock has
|
398 |
-
* several helper functions to make this feature more flexible. The are
|
399 |
-
* static methods on the \WP_Mock\Functions class. They are:
|
400 |
-
* - Functions::type( $type ) Expects an argument of a certain type. This
|
401 |
-
* can be any core PHP data type (string, int, resource, callable, etc.)
|
402 |
-
* or any class or interface name.
|
403 |
-
* - Functions::anyOf( $values ) Expects the argument to be any value in
|
404 |
-
* the $values array
|
405 |
-
* In addition to these helper functions, you can indicate that the
|
406 |
-
* argument can be any value of any type by using '*'. So, for example, if
|
407 |
-
* I am expecting get_post_meta to be called, the args array might look
|
408 |
-
* something like this:
|
409 |
-
* array( $post->ID, 'some_meta_key', true )
|
410 |
-
*
|
411 |
-
* Returns the Mockery\Expectation object with the function expectations
|
412 |
-
* added. It is possible to use Mockery methods to add expectations to the
|
413 |
-
* object returned, which will then be combined with any expectations that
|
414 |
-
* may have been passed as arguments.
|
415 |
-
*
|
416 |
-
* @param string $function_name
|
417 |
-
* @param array $arguments
|
418 |
-
*
|
419 |
-
* @return Mockery\Expectation
|
420 |
-
*/
|
421 |
-
public static function userFunction( $function_name, $arguments = array() ) {
|
422 |
-
return self::$function_manager->register( $function_name, $arguments );
|
423 |
-
}
|
424 |
-
|
425 |
-
/**
|
426 |
-
* Alias for userFunction
|
427 |
-
*
|
428 |
-
* @deprecated since 1.0
|
429 |
-
*
|
430 |
-
* @param string $function_name
|
431 |
-
* @param array $arguments
|
432 |
-
*
|
433 |
-
* @return Mockery\Expectation
|
434 |
-
*/
|
435 |
-
public static function wpFunction( $function_name, $arguments = array() ) {
|
436 |
-
static::getDeprecatedListener()->logDeprecatedCall( __METHOD__, array( $function_name, $arguments ) );
|
437 |
-
return self::userFunction( $function_name, $arguments );
|
438 |
-
}
|
439 |
-
|
440 |
-
/**
|
441 |
-
* A wrapper for userFunction that will simply set/override the return to be
|
442 |
-
* a function that echoes the value that its passed. For example, esc_attr_e
|
443 |
-
* may need to be mocked, and it must echo some value. echoFunction will set
|
444 |
-
* esc_attr_e to echo the value its passed.
|
445 |
-
*
|
446 |
-
* \WP_Mock::echoFunction( 'esc_attr_e' );
|
447 |
-
* esc_attr_e( 'some_value' ); // echoes (translated) "some_value"
|
448 |
-
*
|
449 |
-
* @param string $function_name Function name.
|
450 |
-
* @param array $arguments Optional. Arguments. Defaults to array().
|
451 |
-
*
|
452 |
-
* @return Mockery\Expectation
|
453 |
-
*/
|
454 |
-
public static function echoFunction( $function_name, $arguments = array() ) {
|
455 |
-
$arguments = (array) $arguments;
|
456 |
-
$arguments['return'] = function ( $param ) {
|
457 |
-
echo $param;
|
458 |
-
};
|
459 |
-
return self::$function_manager->register( $function_name, $arguments );
|
460 |
-
}
|
461 |
-
|
462 |
-
/**
|
463 |
-
* A wrapper for userFunction that will simply set/override the return to be
|
464 |
-
* a function that returns the value that its passed. For example, esc_attr
|
465 |
-
* may need to be mocked, and it must return some value. passthruFunction
|
466 |
-
* will set esc_attr to return the value its passed.
|
467 |
-
*
|
468 |
-
* \WP_Mock::passthruFunction( 'esc_attr' );
|
469 |
-
* echo esc_attr( 'some_value' ); // echoes "some_value"
|
470 |
-
*
|
471 |
-
* @param string $function_name
|
472 |
-
* @param array $arguments
|
473 |
-
*
|
474 |
-
* @return Mockery\Expectation
|
475 |
-
*/
|
476 |
-
public static function passthruFunction( $function_name, $arguments = array() ) {
|
477 |
-
$arguments = (array) $arguments;
|
478 |
-
$arguments['return'] = function ( $param ) {
|
479 |
-
return $param;
|
480 |
-
};
|
481 |
-
return self::$function_manager->register( $function_name, $arguments );
|
482 |
-
}
|
483 |
-
|
484 |
-
/**
|
485 |
-
* Alias for passthruFunction
|
486 |
-
*
|
487 |
-
* @deprecated since 1.0
|
488 |
-
*
|
489 |
-
* @param string $function_name
|
490 |
-
* @param array $arguments
|
491 |
-
*
|
492 |
-
* @return Mockery\Expectation
|
493 |
-
*/
|
494 |
-
public static function wpPassthruFunction( $function_name, $arguments = array() ) {
|
495 |
-
static::getDeprecatedListener()->logDeprecatedCall( __METHOD__, array( $function_name, $arguments ) );
|
496 |
-
return self::passthruFunction( $function_name, $arguments );
|
497 |
-
}
|
498 |
-
|
499 |
-
/**
|
500 |
-
* Add a function mock that aliases another callable.
|
501 |
-
*
|
502 |
-
* e.g.: WP_Mock::alias( 'wp_hash', 'md5' );
|
503 |
-
*
|
504 |
-
* @param string $function_name
|
505 |
-
* @param callable $alias
|
506 |
-
* @param array $arguments
|
507 |
-
*
|
508 |
-
* @return Mockery\Expectation
|
509 |
-
*/
|
510 |
-
public static function alias( $function_name, $alias, $arguments = array() ) {
|
511 |
-
$arguments = (array) $arguments;
|
512 |
-
if ( is_callable( $alias ) ) {
|
513 |
-
$arguments['return'] = function () use ( $alias ) {
|
514 |
-
return call_user_func_array( $alias, func_get_args() );
|
515 |
-
};
|
516 |
-
}
|
517 |
-
return self::$function_manager->register( $function_name, $arguments );
|
518 |
-
}
|
519 |
-
|
520 |
-
/**
|
521 |
-
* Generate a fuzzy object match expectation
|
522 |
-
*
|
523 |
-
* This will let you fuzzy match objects based on their properties without
|
524 |
-
* needing to use the identical (===) operator. This is helpful when the
|
525 |
-
* object being passed to a function is constructed inside the scope of the
|
526 |
-
* function being tested but where you want to make assertions on more than
|
527 |
-
* just the type of the object.
|
528 |
-
*
|
529 |
-
* @param $thing
|
530 |
-
*
|
531 |
-
* @return FuzzyObject
|
532 |
-
*/
|
533 |
-
public static function fuzzyObject( $thing ) {
|
534 |
-
return new FuzzyObject( $thing );
|
535 |
-
}
|
536 |
-
|
537 |
-
/**
|
538 |
-
* @return \WP_Mock\DeprecatedListener
|
539 |
-
*/
|
540 |
-
public static function getDeprecatedListener() {
|
541 |
-
return static::$deprecated_listener;
|
542 |
-
}
|
543 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/API/constant-mocks.php
DELETED
@@ -1,72 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Certain constants need to be mocked otherwise various WordPress functions will attempt
|
4 |
-
* to include files that just don't exist.
|
5 |
-
*
|
6 |
-
* For example, nearly all uses of the WP_Http API require first including:
|
7 |
-
* ABSPATH . WPINC . '/class-http.php'
|
8 |
-
*
|
9 |
-
* If these constants are not set, and files do not exist at the location they specify,
|
10 |
-
* functions referencing them will fatally err.
|
11 |
-
*
|
12 |
-
* The `! defined` check is used here so that individual test environments can override
|
13 |
-
* the normal default by setting constants in a bootstrap configuration file.
|
14 |
-
*/
|
15 |
-
|
16 |
-
if ( ! defined( 'WP_CONTENT_DIR' ) ) {
|
17 |
-
define( 'WP_CONTENT_DIR', __DIR__ . '/dummy-files' );
|
18 |
-
}
|
19 |
-
|
20 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
21 |
-
define( 'ABSPATH', '' );
|
22 |
-
}
|
23 |
-
|
24 |
-
if ( ! defined( 'WPINC' ) ) {
|
25 |
-
define( 'WPINC', __DIR__ . '/dummy-files/wp-includes' );
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @since 0.71
|
30 |
-
*/
|
31 |
-
if ( ! defined( 'EZSQL_VERSION' ) ) {
|
32 |
-
define( 'EZSQL_VERSION', 'WP1.25' );
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* HHVM does not support case-insensitive constants.
|
37 |
-
*
|
38 |
-
* @since 0.71
|
39 |
-
* @see http://hhvm.com/blog/3095/getting-wordpress-running-on-hhvm
|
40 |
-
*/
|
41 |
-
if ( ! defined( 'OBJECT' ) ) {
|
42 |
-
define( 'OBJECT', 'OBJECT' );
|
43 |
-
}
|
44 |
-
|
45 |
-
if ( ! defined( 'Object' ) ) {
|
46 |
-
define( 'Object', 'OBJECT' );
|
47 |
-
}
|
48 |
-
|
49 |
-
if ( ! defined( 'object' ) ) {
|
50 |
-
define( 'object', 'OBJECT' );
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @since 2.5.0
|
55 |
-
*/
|
56 |
-
if ( ! defined( 'OBJECT_K' ) ) {
|
57 |
-
define( 'OBJECT_K', 'OBJECT_K' );
|
58 |
-
}
|
59 |
-
|
60 |
-
/**
|
61 |
-
* @since 0.71
|
62 |
-
*/
|
63 |
-
if ( ! defined( 'ARRAY_A' ) ) {
|
64 |
-
define( 'ARRAY_A', 'ARRAY_A' );
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* @since 0.71
|
69 |
-
*/
|
70 |
-
if ( ! defined( 'ARRAY_N' ) ) {
|
71 |
-
define( 'ARRAY_N', 'ARRAY_N' );
|
72 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/API/dummy-files/themes/vip/plugins/vip-init.php
DELETED
File without changes
|
vendor/10up/wp_mock/php/WP_Mock/API/dummy-files/wp-includes/class-http.php
DELETED
File without changes
|
vendor/10up/wp_mock/php/WP_Mock/API/function-mocks.php
DELETED
@@ -1,161 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! function_exists( 'add_action' ) ) {
|
4 |
-
/**
|
5 |
-
* Hooks a function on to a specific action.
|
6 |
-
*
|
7 |
-
* Actions are the hooks that the WordPress core launches at specific points
|
8 |
-
* during execution, or when specific events occur. Plugins can specify that
|
9 |
-
* one or more of its PHP functions are executed at these points, using the
|
10 |
-
* Action API.
|
11 |
-
*
|
12 |
-
* @param string $tag The name of the action to which the $function_to_add is hooked.
|
13 |
-
* @param callback $function_to_add The name of the function you wish to be called.
|
14 |
-
* @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
|
15 |
-
* @param int $accepted_args optional. The number of arguments the function accept (default 1).
|
16 |
-
*/
|
17 |
-
function add_action( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
|
18 |
-
\WP_Mock::onActionAdded( $tag )->react( $function_to_add, (int) $priority, (int) $accepted_args );
|
19 |
-
}
|
20 |
-
}
|
21 |
-
|
22 |
-
if ( ! function_exists( 'do_action' ) ) {
|
23 |
-
/**
|
24 |
-
* Execute functions hooked on a specific action hook.
|
25 |
-
*
|
26 |
-
* @param string $tag The name of the action to be executed.
|
27 |
-
* @param mixed $arg,... Optional additional arguments which are passed on to the functions hooked to the action.
|
28 |
-
*
|
29 |
-
* @return null Will return null if $tag does not exist in $wp_filter array
|
30 |
-
*/
|
31 |
-
function do_action( $tag, $arg = '' ) {
|
32 |
-
$args = func_get_args();
|
33 |
-
$args = array_slice( $args, 1 );
|
34 |
-
|
35 |
-
return \WP_Mock::onAction( $tag )->react( $args );
|
36 |
-
}
|
37 |
-
}
|
38 |
-
|
39 |
-
if ( ! function_exists( 'add_filter' ) ) {
|
40 |
-
/**
|
41 |
-
* Dummy method to prevent filter hooks in constructor from failing.
|
42 |
-
*/
|
43 |
-
function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
|
44 |
-
\WP_Mock::onFilterAdded( $tag )->react( $function_to_add, (int) $priority, (int) $accepted_args );
|
45 |
-
}
|
46 |
-
}
|
47 |
-
|
48 |
-
if ( ! function_exists( 'apply_filters' ) ) {
|
49 |
-
/**
|
50 |
-
* Call the functions added to a filter hook.
|
51 |
-
*
|
52 |
-
* @param string $tag The name of the filter hook.
|
53 |
-
* @param mixed $value The value on which the filters hooked to <tt>$tag</tt> are applied on.
|
54 |
-
* @param mixed $var,... Additional variables passed to the functions hooked to <tt>$tag</tt>.
|
55 |
-
*
|
56 |
-
* @return mixed The filtered value after all hooked functions are applied to it.
|
57 |
-
*/
|
58 |
-
function apply_filters( $tag, $value ) {
|
59 |
-
$args = func_get_args();
|
60 |
-
$args = array_slice( $args, 1 );
|
61 |
-
$args[0] = $value;
|
62 |
-
|
63 |
-
return \WP_Mock::onFilter( $tag )->apply( $args );
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
if ( ! function_exists( 'esc_html' ) ) {
|
68 |
-
function esc_html() {
|
69 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
70 |
-
}
|
71 |
-
}
|
72 |
-
|
73 |
-
if ( ! function_exists( 'esc_attr' ) ) {
|
74 |
-
function esc_attr() {
|
75 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
if ( ! function_exists( 'esc_url' ) ) {
|
80 |
-
function esc_url() {
|
81 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
82 |
-
}
|
83 |
-
}
|
84 |
-
|
85 |
-
if ( ! function_exists( 'esc_url_raw' ) ) {
|
86 |
-
function esc_url_raw() {
|
87 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
if ( ! function_exists( 'esc_js' ) ) {
|
92 |
-
function esc_js() {
|
93 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
-
if ( ! function_exists( 'esc_textarea' ) ) {
|
98 |
-
function esc_textarea() {
|
99 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
100 |
-
}
|
101 |
-
}
|
102 |
-
|
103 |
-
if ( ! function_exists( '__' ) ) {
|
104 |
-
function __() {
|
105 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
106 |
-
}
|
107 |
-
}
|
108 |
-
|
109 |
-
if ( ! function_exists( '_e' ) ) {
|
110 |
-
function _e() {
|
111 |
-
\WP_Mock\Handler::predefined_echo_function_helper( __FUNCTION__, func_get_args() );
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
if ( ! function_exists( '_x' ) ) {
|
116 |
-
function _x() {
|
117 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
if ( ! function_exists( 'esc_html__' ) ) {
|
122 |
-
function esc_html__() {
|
123 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
124 |
-
}
|
125 |
-
}
|
126 |
-
|
127 |
-
if ( ! function_exists( 'esc_html_e' ) ) {
|
128 |
-
function esc_html_e() {
|
129 |
-
\WP_Mock\Handler::predefined_echo_function_helper( __FUNCTION__, func_get_args() );
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
-
if ( ! function_exists( 'esc_html_x' ) ) {
|
134 |
-
function esc_html_x() {
|
135 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
136 |
-
}
|
137 |
-
}
|
138 |
-
|
139 |
-
if ( ! function_exists( 'esc_attr__' ) ) {
|
140 |
-
function esc_attr__() {
|
141 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
142 |
-
}
|
143 |
-
}
|
144 |
-
|
145 |
-
if ( ! function_exists( 'esc_attr_e' ) ) {
|
146 |
-
function esc_attr_e() {
|
147 |
-
\WP_Mock\Handler::predefined_echo_function_helper( __FUNCTION__, func_get_args() );
|
148 |
-
}
|
149 |
-
}
|
150 |
-
|
151 |
-
if ( ! function_exists( 'esc_attr_x' ) ) {
|
152 |
-
function esc_attr_x() {
|
153 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
if ( ! function_exists( '_n' ) ) {
|
158 |
-
function _n() {
|
159 |
-
return \WP_Mock\Handler::predefined_return_function_helper( __FUNCTION__, func_get_args() );
|
160 |
-
}
|
161 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Action.php
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Mock WordPress actions by substituting each action with an advanced object
|
4 |
-
* capable of intercepting calls and returning predictable behavior.
|
5 |
-
*
|
6 |
-
* @package WP_Mock
|
7 |
-
* @subpackage Hooks
|
8 |
-
*/
|
9 |
-
|
10 |
-
namespace WP_Mock;
|
11 |
-
|
12 |
-
|
13 |
-
class Action extends Hook {
|
14 |
-
public function react( $args ) {
|
15 |
-
\WP_Mock::invokeAction( $this->name );
|
16 |
-
|
17 |
-
$arg_num = count( $args );
|
18 |
-
|
19 |
-
if ( 0 === $arg_num ) {
|
20 |
-
if ( ! isset( $this->processors['argsnull'] ) ) {
|
21 |
-
$this->strict_check();
|
22 |
-
|
23 |
-
return;
|
24 |
-
}
|
25 |
-
|
26 |
-
$this->processors['argsnull']->react();
|
27 |
-
} else {
|
28 |
-
$processors = $this->processors;
|
29 |
-
for ( $i = 0; $i < $arg_num - 1; $i ++ ) {
|
30 |
-
$arg = $this->safe_offset( $args[ $i ] );
|
31 |
-
|
32 |
-
if ( ! isset( $processors[ $arg ] ) ) {
|
33 |
-
$this->strict_check();
|
34 |
-
|
35 |
-
return;
|
36 |
-
}
|
37 |
-
|
38 |
-
$processors = $processors[ $arg ];
|
39 |
-
}
|
40 |
-
|
41 |
-
$arg = $this->safe_offset( $args[ $arg_num - 1 ] );
|
42 |
-
if ( ! is_array( $processors ) || ! isset( $processors[ $arg ] ) ) {
|
43 |
-
$this->strict_check();
|
44 |
-
|
45 |
-
return;
|
46 |
-
}
|
47 |
-
|
48 |
-
$processors[ $arg ]->react();
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
protected function new_responder() {
|
53 |
-
return new Action_Responder();
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @return string
|
58 |
-
*/
|
59 |
-
protected function get_strict_mode_message() {
|
60 |
-
return sprintf( 'Unexpected use of do_action for action %s', $this->name );
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
class Action_Responder {
|
65 |
-
/**
|
66 |
-
* @var mixed
|
67 |
-
*/
|
68 |
-
protected $callable;
|
69 |
-
|
70 |
-
public function perform( $callable ) {
|
71 |
-
$this->callable = $callable;
|
72 |
-
}
|
73 |
-
|
74 |
-
public function react() {
|
75 |
-
call_user_func( $this->callable );
|
76 |
-
}
|
77 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/DeprecatedListener.php
DELETED
@@ -1,119 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
use \PHPUnit\Framework\TestCase;
|
6 |
-
|
7 |
-
class DeprecatedListener {
|
8 |
-
|
9 |
-
protected $calls = array();
|
10 |
-
|
11 |
-
/** @var \PHPUnit\Framework\TestCase */
|
12 |
-
protected $testResult;
|
13 |
-
|
14 |
-
protected $testName;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var \PHPUnit\Framework\TestCase
|
18 |
-
*/
|
19 |
-
protected $testCase;
|
20 |
-
|
21 |
-
public function logDeprecatedCall( $method, array $args = array() ) {
|
22 |
-
$this->calls[] = array( $method, $args );
|
23 |
-
}
|
24 |
-
|
25 |
-
public function reset() {
|
26 |
-
$this->calls = array();
|
27 |
-
}
|
28 |
-
|
29 |
-
public function checkCalls() {
|
30 |
-
if ( empty( $this->calls ) ) {
|
31 |
-
return;
|
32 |
-
}
|
33 |
-
$e = new \PHPUnit\Framework\RiskyTestError( $this->getMessage() );
|
34 |
-
$this->testResult->addFailure( $this->testCase, $e, 0 );
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @param \PHPUnit\Framework\TestResult $testResult
|
39 |
-
*/
|
40 |
-
public function setTestResult( $testResult ) {
|
41 |
-
$this->testResult = $testResult;
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @param mixed $testName
|
46 |
-
*/
|
47 |
-
public function setTestName( $testName ) {
|
48 |
-
$this->testName = $testName;
|
49 |
-
}
|
50 |
-
|
51 |
-
public function setTestCase( \PHPUnit\Framework\TestCase $testCase ) {
|
52 |
-
$this->testCase = $testCase;
|
53 |
-
}
|
54 |
-
|
55 |
-
protected function getMessage() {
|
56 |
-
$maxLength = array_reduce( $this->getDeprecatedMethods(), function ( $carry, $item ) {
|
57 |
-
return max( $carry, strlen( $item ) );
|
58 |
-
}, 0 ) + 1;
|
59 |
-
$message = 'Deprecated WP Mock calls inside ' . $this->testName . ":";
|
60 |
-
foreach ( $this->getDeprecatedMethodsWithArgs() as $method => $args ) {
|
61 |
-
$firstRun = true;
|
62 |
-
$extra = $maxLength - strlen( $method );
|
63 |
-
foreach ( $args as $arg ) {
|
64 |
-
$message .= "\n ";
|
65 |
-
if ( $firstRun ) {
|
66 |
-
$message .= $method . str_repeat( ' ', $extra );
|
67 |
-
$firstRun = false;
|
68 |
-
$extra = $maxLength;
|
69 |
-
} else {
|
70 |
-
$message .= str_repeat( ' ', $extra );
|
71 |
-
}
|
72 |
-
$message .= $arg;
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
return $message;
|
77 |
-
}
|
78 |
-
|
79 |
-
protected function getDeprecatedMethods() {
|
80 |
-
$methods = array();
|
81 |
-
foreach ( $this->calls as $call ) {
|
82 |
-
$methods[] = $call[0];
|
83 |
-
}
|
84 |
-
|
85 |
-
return array_unique( $methods );
|
86 |
-
}
|
87 |
-
|
88 |
-
protected function getDeprecatedMethodsWithArgs() {
|
89 |
-
$collection = array();
|
90 |
-
foreach ( $this->calls as $call ) {
|
91 |
-
$method = $call[0];
|
92 |
-
$args = json_encode( array_map( array( $this, 'scalarizeArg' ), $call[1] ) );
|
93 |
-
if ( empty( $collection[ $method ] ) ) {
|
94 |
-
$collection[ $method ] = array();
|
95 |
-
}
|
96 |
-
$collection[ $method ][] = $args;
|
97 |
-
}
|
98 |
-
|
99 |
-
return array_map( 'array_unique', $collection );
|
100 |
-
}
|
101 |
-
|
102 |
-
protected function scalarizeArg( $value ) {
|
103 |
-
if ( is_scalar( $value ) ) {
|
104 |
-
return $value;
|
105 |
-
} elseif ( is_object( $value ) ) {
|
106 |
-
return '<' . get_class( $value ) . ':' . spl_object_hash( $value ) . '>';
|
107 |
-
} elseif ( is_array( $value ) ) {
|
108 |
-
if ( is_callable( $value ) ) {
|
109 |
-
return '[' . implode( ',', array_map( array( $this, 'scalarizeArg' ), $value ) ) . ']';
|
110 |
-
} else {
|
111 |
-
return 'Array([' . count( $value ) . '] ...)';
|
112 |
-
}
|
113 |
-
} elseif ( is_resource( $value ) ) {
|
114 |
-
return 'Resource';
|
115 |
-
} else {
|
116 |
-
return 'Unknown Value';
|
117 |
-
}
|
118 |
-
}
|
119 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/EventManager.php
DELETED
@@ -1,124 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
class EventManager {
|
6 |
-
/**
|
7 |
-
* @var array
|
8 |
-
*/
|
9 |
-
protected $filters;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @var array
|
13 |
-
*/
|
14 |
-
protected $actions;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var array
|
18 |
-
*/
|
19 |
-
protected $expected;
|
20 |
-
|
21 |
-
protected $callbacks;
|
22 |
-
|
23 |
-
public function __construct() {
|
24 |
-
$this->flush();
|
25 |
-
}
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Clear internal storage.
|
29 |
-
*/
|
30 |
-
public function flush() {
|
31 |
-
$this->filters = array();
|
32 |
-
$this->actions = array();
|
33 |
-
$this->expected = array();
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @param string $name Action handler to retrieve
|
38 |
-
*
|
39 |
-
* @return Action
|
40 |
-
*/
|
41 |
-
public function action( $name ) {
|
42 |
-
if ( ! isset( $this->actions[ $name ] ) ) {
|
43 |
-
$this->actions[ $name ] = new Action( $name );
|
44 |
-
$this->expected[] = 'action::' . $name;
|
45 |
-
}
|
46 |
-
|
47 |
-
return $this->actions[ $name ];
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param string $name Filter handler to retrieve
|
52 |
-
*
|
53 |
-
* @return Filter
|
54 |
-
*/
|
55 |
-
public function filter( $name ) {
|
56 |
-
if ( ! isset( $this->filters[ $name ] ) ) {
|
57 |
-
$this->filters[ $name ] = new Filter( $name );
|
58 |
-
$this->expected[] = 'filter::' . $name;
|
59 |
-
}
|
60 |
-
|
61 |
-
return $this->filters[ $name ];
|
62 |
-
}
|
63 |
-
|
64 |
-
public function callback( $name, $type = 'filter' ) {
|
65 |
-
$type_name = "$type::$name";
|
66 |
-
if ( ! isset( $this->callbacks[ $type_name ] ) ) {
|
67 |
-
$hookedCallback = new HookedCallback( $name );
|
68 |
-
$hookedCallback->setType( $type );
|
69 |
-
$this->callbacks[ $type_name ] = $hookedCallback;
|
70 |
-
$this->expected[] = "callback::$type_name";
|
71 |
-
}
|
72 |
-
|
73 |
-
return $this->callbacks[ $type_name ];
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Remember that a particular hook has been invoked during operation.
|
78 |
-
*
|
79 |
-
* @param string $hook
|
80 |
-
* @param string $type
|
81 |
-
*/
|
82 |
-
public function called( $hook, $type = 'action' ) {
|
83 |
-
$position = array_search( $type . '::' . $hook, $this->expected );
|
84 |
-
array_splice( $this->expected, $position, 1 );
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Return a list of all the actions we're expecting a test to invoke.
|
89 |
-
*
|
90 |
-
* @return array
|
91 |
-
*/
|
92 |
-
public function expectedActions() {
|
93 |
-
return array_keys( $this->actions );
|
94 |
-
}
|
95 |
-
|
96 |
-
public function expectedHooks() {
|
97 |
-
return array_keys( $this->callbacks );
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Check whether or not all actions have been invoked at least once.
|
102 |
-
*
|
103 |
-
* @return bool
|
104 |
-
*/
|
105 |
-
public function allActionsCalled() {
|
106 |
-
foreach( $this->expected as $hook ) {
|
107 |
-
if ( 0 === strpos( $hook, 'action::' ) ) {
|
108 |
-
return false;
|
109 |
-
}
|
110 |
-
}
|
111 |
-
|
112 |
-
return true;
|
113 |
-
}
|
114 |
-
|
115 |
-
public function allHooksAdded() {
|
116 |
-
foreach( $this->expected as $hook ) {
|
117 |
-
if ( 0 === strpos( $hook, 'callback::' ) ) {
|
118 |
-
return false;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
return true;
|
123 |
-
}
|
124 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Filter.php
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Mock WordPress filters by substituting each filter with an advanced object
|
4 |
-
* capable of intercepting calls and returning predictable data.
|
5 |
-
*
|
6 |
-
* @package WP_Mock
|
7 |
-
* @subpackage Hooks
|
8 |
-
*/
|
9 |
-
|
10 |
-
namespace WP_Mock;
|
11 |
-
|
12 |
-
|
13 |
-
class Filter extends Hook {
|
14 |
-
/**
|
15 |
-
* Apply the stored filter.
|
16 |
-
*
|
17 |
-
* @param array $args Arguments passed to apply_filters()
|
18 |
-
*
|
19 |
-
* @return mixed
|
20 |
-
*/
|
21 |
-
public function apply( $args ) {
|
22 |
-
if ( $args[0] === null && count( $args ) === 1 ) {
|
23 |
-
if ( isset( $this->processors['argsnull'] ) ) {
|
24 |
-
return $this->processors['argsnull']->send();
|
25 |
-
}
|
26 |
-
$this->strict_check();
|
27 |
-
|
28 |
-
return null;
|
29 |
-
}
|
30 |
-
|
31 |
-
$processors = $this->processors;
|
32 |
-
foreach ( $args as $arg ) {
|
33 |
-
$key = $this->safe_offset( $arg );
|
34 |
-
if ( ! is_array( $processors ) || ! isset( $processors[ $key ] ) ) {
|
35 |
-
$this->strict_check();
|
36 |
-
|
37 |
-
return $arg;
|
38 |
-
}
|
39 |
-
|
40 |
-
$processors = $processors[ $key ];
|
41 |
-
}
|
42 |
-
|
43 |
-
return call_user_func_array( array($processors, 'send'), $args );
|
44 |
-
}
|
45 |
-
|
46 |
-
protected function new_responder() {
|
47 |
-
return new Filter_Responder();
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @return string
|
52 |
-
*/
|
53 |
-
protected function get_strict_mode_message() {
|
54 |
-
return sprintf( 'Unexpected use of apply_filters for filter %s', $this->name );
|
55 |
-
}
|
56 |
-
}
|
57 |
-
|
58 |
-
class Filter_Responder {
|
59 |
-
/**
|
60 |
-
* @var mixed
|
61 |
-
*/
|
62 |
-
protected $value;
|
63 |
-
|
64 |
-
public function reply( $value ) {
|
65 |
-
$this->value = $value;
|
66 |
-
}
|
67 |
-
|
68 |
-
public function send() {
|
69 |
-
if ( $this->value instanceof InvokedFilterValue ) {
|
70 |
-
return call_user_func_array( $this->value, func_get_args() );
|
71 |
-
}
|
72 |
-
|
73 |
-
return $this->value;
|
74 |
-
}
|
75 |
-
}
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Functions.php
DELETED
@@ -1,295 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
use Mockery;
|
6 |
-
|
7 |
-
class Functions {
|
8 |
-
|
9 |
-
private $mocked_functions = array();
|
10 |
-
|
11 |
-
private $internal_functions = array();
|
12 |
-
|
13 |
-
private static $wp_mocked_functions = array();
|
14 |
-
|
15 |
-
private $patchwork_functions = array();
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Constructor for the Functions object
|
19 |
-
*/
|
20 |
-
public function __construct() {
|
21 |
-
Handler::cleanup();
|
22 |
-
$this->flush();
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Emptys the mocked_functions array
|
27 |
-
*/
|
28 |
-
public function flush() {
|
29 |
-
$this->mocked_functions = array();
|
30 |
-
Handler::cleanup();
|
31 |
-
$this->patchwork_functions = array();
|
32 |
-
if ( function_exists( 'Patchwork\undoAll' ) ) {
|
33 |
-
\Patchwork\restoreAll();
|
34 |
-
}
|
35 |
-
if ( empty( self::$wp_mocked_functions ) ) {
|
36 |
-
self::$wp_mocked_functions = array(
|
37 |
-
'add_action',
|
38 |
-
'do_action',
|
39 |
-
'add_filter',
|
40 |
-
'apply_filters',
|
41 |
-
'esc_attr',
|
42 |
-
'esc_html',
|
43 |
-
'esc_js',
|
44 |
-
'esc_textarea',
|
45 |
-
'esc_url',
|
46 |
-
'esc_url_raw',
|
47 |
-
'__',
|
48 |
-
'_e',
|
49 |
-
'_x',
|
50 |
-
'esc_attr__',
|
51 |
-
'esc_attr_e',
|
52 |
-
'esc_attr_x',
|
53 |
-
'esc_html__',
|
54 |
-
'esc_html_e',
|
55 |
-
'esc_html_x',
|
56 |
-
'_n',
|
57 |
-
);
|
58 |
-
}
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Registers the function to be mocked and sets up its expectations
|
63 |
-
*
|
64 |
-
* @param string $function
|
65 |
-
* @param array $arguments
|
66 |
-
*
|
67 |
-
* @throws \Exception If the function name is invalid
|
68 |
-
*
|
69 |
-
* @return Mockery\Expectation
|
70 |
-
*/
|
71 |
-
public function register( $function, $arguments ) {
|
72 |
-
$expectation = null;
|
73 |
-
try {
|
74 |
-
$this->generate_function( $function );
|
75 |
-
if ( empty( $this->mocked_functions[$function] ) ) {
|
76 |
-
$this->mocked_functions[$function] = Mockery::mock( 'wp_api' );
|
77 |
-
}
|
78 |
-
$mock = $this->mocked_functions[$function];
|
79 |
-
|
80 |
-
$method = preg_replace( '/\\\\+/', '_', $function );
|
81 |
-
$expectation = $this->set_up_mock( $mock, $method, $arguments );
|
82 |
-
Handler::register_handler( $function, array( $mock, $method ) );
|
83 |
-
} catch ( \Exception $e ) {
|
84 |
-
throw $e;
|
85 |
-
}
|
86 |
-
return $expectation;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Sets up an argument placeholder that allows it to be any of an enumerated
|
91 |
-
* list of possibilities
|
92 |
-
*
|
93 |
-
* @return \Mockery\Matcher\anyOf
|
94 |
-
*/
|
95 |
-
public static function anyOf() {
|
96 |
-
return call_user_func_array( array( '\\Mockery', 'anyOf' ), func_get_args() );
|
97 |
-
}
|
98 |
-
|
99 |
-
/**
|
100 |
-
* Sets up an argument placeholder that requires the argument to be of a
|
101 |
-
* certain type
|
102 |
-
*
|
103 |
-
* This may be any type for which there is a "is_*" function, or any class or
|
104 |
-
* interface.
|
105 |
-
*
|
106 |
-
* @param string $expected
|
107 |
-
*
|
108 |
-
* @return Mockery\Matcher\Type
|
109 |
-
*/
|
110 |
-
public static function type( $expected ) {
|
111 |
-
return Mockery::type( $expected );
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Set up the mock object with an expectation for this test.
|
116 |
-
*
|
117 |
-
* @param \Mockery\Mock $mock
|
118 |
-
* @param string $function
|
119 |
-
* @param array $arguments
|
120 |
-
*
|
121 |
-
* @return Mockery\Expectation
|
122 |
-
*/
|
123 |
-
protected function set_up_mock( $mock, $function, $arguments ) {
|
124 |
-
$expectation = $mock->shouldReceive( $function );
|
125 |
-
|
126 |
-
if ( isset( $arguments['times'] ) ) {
|
127 |
-
$times = $arguments['times'];
|
128 |
-
if ( is_int( $times ) || preg_match( '/^\d+$/', $times ) ) {
|
129 |
-
$expectation->times( (int) $times );
|
130 |
-
} elseif ( preg_match( '/^(\d+)([\-+])$/', $times, $matches ) ) {
|
131 |
-
$method = '+' === $matches[2] ? 'atLeast' : 'atMost';
|
132 |
-
$expectation->$method()->times( (int) $matches[1] );
|
133 |
-
} elseif ( preg_match( '/^(\d+)-(\d+)$/', $times, $matches ) ) {
|
134 |
-
$num1 = (int) $matches[1];
|
135 |
-
$num2 = (int) $matches[2];
|
136 |
-
if ( $num1 === $num2 ) {
|
137 |
-
$expectation->times( $num1 );
|
138 |
-
} else {
|
139 |
-
$expectation->between( min( $num1, $num2 ), max( $num1, $num2 ) );
|
140 |
-
}
|
141 |
-
}
|
142 |
-
}
|
143 |
-
if ( isset( $arguments['args'] ) ) {
|
144 |
-
$arguments['args'] = array_map( function ( $argument ) {
|
145 |
-
if ( $argument instanceof \Closure ) {
|
146 |
-
return Mockery::on( $argument );
|
147 |
-
}
|
148 |
-
if ( $argument === '*' ) {
|
149 |
-
return Mockery::any();
|
150 |
-
}
|
151 |
-
return $argument;
|
152 |
-
}, (array) $arguments['args'] );
|
153 |
-
call_user_func_array( array( $expectation, 'with' ), $arguments['args'] );
|
154 |
-
}
|
155 |
-
if ( isset( $arguments['return_arg'] ) ) {
|
156 |
-
$argument_position = true === $arguments['return_arg'] ? 0 : (int) $arguments['return_arg'];
|
157 |
-
$arguments['return'] = function () use ( $argument_position ) {
|
158 |
-
if ( $argument_position >= func_num_args() ) {
|
159 |
-
return null;
|
160 |
-
}
|
161 |
-
return func_get_arg( $argument_position );
|
162 |
-
};
|
163 |
-
} elseif ( isset( $arguments['return_in_order'] ) ) {
|
164 |
-
$arguments['return'] = new ReturnSequence();
|
165 |
-
$arguments['return']->setReturnValues( (array) $arguments['return_in_order'] );
|
166 |
-
}
|
167 |
-
if ( isset( $arguments['return'] ) ) {
|
168 |
-
$return = $arguments['return'];
|
169 |
-
if ( $return instanceof ReturnSequence ) {
|
170 |
-
$expectation->andReturnValues( $return->getReturnValues() );
|
171 |
-
} elseif ( $return instanceof \Closure ) {
|
172 |
-
$expectation->andReturnUsing( $return );
|
173 |
-
} else {
|
174 |
-
$expectation->andReturn( $return );
|
175 |
-
}
|
176 |
-
}
|
177 |
-
return $expectation;
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Dynamically declares a function if it doesn't already exist
|
182 |
-
*
|
183 |
-
* This function is namespace-aware.
|
184 |
-
*
|
185 |
-
* @param $function_name
|
186 |
-
*/
|
187 |
-
private function generate_function( $function_name ) {
|
188 |
-
$function_name = $this->sanitize_function_name( $function_name );
|
189 |
-
|
190 |
-
$this->validate_function_name( $function_name );
|
191 |
-
|
192 |
-
$this->create_function( $function_name ) OR $this->replace_function( $function_name );
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Create a function with WP_Mock
|
197 |
-
*
|
198 |
-
* @param string $function_name
|
199 |
-
*
|
200 |
-
* @return bool True if this function created the mock, false otherwise
|
201 |
-
*/
|
202 |
-
private function create_function( $function_name ) {
|
203 |
-
if ( in_array( $function_name, self::$wp_mocked_functions ) ) {
|
204 |
-
return true;
|
205 |
-
}
|
206 |
-
if ( function_exists( $function_name ) ) {
|
207 |
-
return false;
|
208 |
-
}
|
209 |
-
|
210 |
-
$parts = explode( '\\', $function_name );
|
211 |
-
$name = array_pop( $parts );
|
212 |
-
$namespace = empty( $parts ) ? '' : 'namespace ' . implode( '\\', $parts ) . ';' . PHP_EOL;
|
213 |
-
|
214 |
-
$declaration = <<<EOF
|
215 |
-
$namespace
|
216 |
-
function $name() {
|
217 |
-
return \\WP_Mock\\Handler::handle_function( '$function_name', func_get_args() );
|
218 |
-
}
|
219 |
-
EOF;
|
220 |
-
eval( $declaration );
|
221 |
-
|
222 |
-
self::$wp_mocked_functions[] = $function_name;
|
223 |
-
|
224 |
-
return true;
|
225 |
-
}
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Replace a function with patchwork
|
229 |
-
*
|
230 |
-
* @param string $function_name
|
231 |
-
*
|
232 |
-
* @return bool
|
233 |
-
*/
|
234 |
-
private function replace_function( $function_name ) {
|
235 |
-
if ( in_array( $function_name, $this->patchwork_functions ) ) {
|
236 |
-
return true;
|
237 |
-
}
|
238 |
-
if ( ! function_exists( 'Patchwork\\replace' ) ) {
|
239 |
-
return true;
|
240 |
-
}
|
241 |
-
$this->patchwork_functions[] = $function_name;
|
242 |
-
\Patchwork\redefine( $function_name, function () use ( $function_name ) {
|
243 |
-
return Handler::handle_function( $function_name, func_get_args() );
|
244 |
-
} );
|
245 |
-
return true;
|
246 |
-
}
|
247 |
-
|
248 |
-
/**
|
249 |
-
* Clean the function name to be of a standard shape
|
250 |
-
*
|
251 |
-
* @param string $function_name
|
252 |
-
*
|
253 |
-
* @return string
|
254 |
-
*/
|
255 |
-
private function sanitize_function_name( $function_name ) {
|
256 |
-
$function_name = trim( $function_name, '\\' );
|
257 |
-
return $function_name;
|
258 |
-
}
|
259 |
-
|
260 |
-
/**
|
261 |
-
* Validate the function name for format and other considerations
|
262 |
-
*
|
263 |
-
* Validation will fail if the string doesn't match the regex, if it's an
|
264 |
-
* internal function, or if it is a reserved word in PHP.
|
265 |
-
*
|
266 |
-
* @param string $function_name
|
267 |
-
*
|
268 |
-
* @throws \InvalidArgumentException
|
269 |
-
*/
|
270 |
-
private function validate_function_name( $function_name ) {
|
271 |
-
if ( function_exists( $function_name ) ) {
|
272 |
-
if ( empty( $this->internal_functions ) ) {
|
273 |
-
$defined_functions = get_defined_functions();
|
274 |
-
$this->internal_functions = $defined_functions['internal'];
|
275 |
-
}
|
276 |
-
if ( in_array( $function_name, $this->internal_functions ) ) {
|
277 |
-
throw new \InvalidArgumentException;
|
278 |
-
}
|
279 |
-
}
|
280 |
-
|
281 |
-
$parts = explode( '\\', $function_name );
|
282 |
-
$name = array_pop( $parts );
|
283 |
-
|
284 |
-
if ( ! preg_match( '/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $function_name ) ) {
|
285 |
-
throw new \InvalidArgumentException( 'Function name not properly formatted!' );
|
286 |
-
}
|
287 |
-
|
288 |
-
$reserved_words = ' __halt_compiler abstract and array as break callable case catch class clone const continue declare default die do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final for foreach function global goto if implements include include_once instanceof insteadof interface isset list namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor __CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ ';
|
289 |
-
if ( false !== strpos( $reserved_words, " $name " ) ) {
|
290 |
-
throw new \InvalidArgumentException( 'Function name can not be a reserved word!' );
|
291 |
-
}
|
292 |
-
}
|
293 |
-
|
294 |
-
}
|
295 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Handler.php
DELETED
@@ -1,110 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Created by JetBrains PhpStorm.
|
4 |
-
* User: Eric
|
5 |
-
* Date: 3/26/13
|
6 |
-
* Time: 8:56 AM
|
7 |
-
* To change this template use File | Settings | File Templates.
|
8 |
-
*/
|
9 |
-
|
10 |
-
namespace WP_Mock;
|
11 |
-
|
12 |
-
|
13 |
-
class Handler {
|
14 |
-
/**
|
15 |
-
* Mocked method handlers registered by the test class.
|
16 |
-
*
|
17 |
-
* @var array
|
18 |
-
*/
|
19 |
-
private static $handlers = array();
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Overrides any existing handlers to set a new callback.
|
23 |
-
*
|
24 |
-
* @param string $function_name
|
25 |
-
* @param string $callback
|
26 |
-
*/
|
27 |
-
public static function register_handler( $function_name, $callback ) {
|
28 |
-
self::$handlers[ $function_name ] = $callback;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Handle a mocked function call.
|
33 |
-
*
|
34 |
-
* @param string $function_name
|
35 |
-
* @param array $args
|
36 |
-
*
|
37 |
-
* @return mixed
|
38 |
-
*/
|
39 |
-
public static function handle_function( $function_name, $args = array() ) {
|
40 |
-
if ( self::handler_exists( $function_name ) ) {
|
41 |
-
$callback = self::$handlers[ $function_name ];
|
42 |
-
|
43 |
-
return call_user_func_array( $callback, $args );
|
44 |
-
} elseif ( \WP_Mock::strictMode() ) {
|
45 |
-
throw new \PHPUnit\Framework\ExpectationFailedException(
|
46 |
-
sprintf( 'No handler found for %s', $function_name )
|
47 |
-
);
|
48 |
-
}
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Check if a handler exists
|
53 |
-
*
|
54 |
-
* @param string $function_name
|
55 |
-
*
|
56 |
-
* @return bool
|
57 |
-
*/
|
58 |
-
public static function handler_exists( $function_name ) {
|
59 |
-
return isset( self::$handlers[ $function_name ] );
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Clear all registered handlers.
|
64 |
-
*/
|
65 |
-
public static function cleanup() {
|
66 |
-
self::$handlers = array();
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Helper function for common passthru return functions
|
71 |
-
*
|
72 |
-
* @param string $function_name
|
73 |
-
* @param array $args
|
74 |
-
*
|
75 |
-
* @return mixed
|
76 |
-
*/
|
77 |
-
public static function predefined_return_function_helper( $function_name, array $args ) {
|
78 |
-
$result = self::handle_function( $function_name, $args );
|
79 |
-
if ( ! self::handler_exists( $function_name ) ) {
|
80 |
-
$result = isset( $args[0] ) ? $args[0] : $result;
|
81 |
-
}
|
82 |
-
|
83 |
-
return $result;
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Helper function for common echo functions
|
88 |
-
*
|
89 |
-
* @param string $function_name
|
90 |
-
* @param array $args
|
91 |
-
*
|
92 |
-
* @throws \Exception
|
93 |
-
*/
|
94 |
-
public static function predefined_echo_function_helper( $function_name, array $args ) {
|
95 |
-
ob_start();
|
96 |
-
try {
|
97 |
-
self::handle_function( $function_name, $args );
|
98 |
-
} catch ( \Exception $exception ) {
|
99 |
-
ob_end_clean();
|
100 |
-
throw $exception;
|
101 |
-
}
|
102 |
-
$result = ob_get_clean();
|
103 |
-
if ( ! self::handler_exists( $function_name ) ) {
|
104 |
-
$result = isset( $args[0] ) ? $args[0] : $result;
|
105 |
-
}
|
106 |
-
|
107 |
-
echo $result;
|
108 |
-
}
|
109 |
-
|
110 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Hook.php
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Abstract Hook interface for both actions and filters.
|
4 |
-
*
|
5 |
-
* @package WP_Mock
|
6 |
-
* @subpackage Hooks
|
7 |
-
*/
|
8 |
-
|
9 |
-
namespace WP_Mock;
|
10 |
-
|
11 |
-
|
12 |
-
abstract class Hook {
|
13 |
-
/** @var string Hook name */
|
14 |
-
protected $name;
|
15 |
-
|
16 |
-
/** @var array Collection of processors */
|
17 |
-
protected $processors = array();
|
18 |
-
|
19 |
-
public function __construct( $name ) {
|
20 |
-
$this->name = $name;
|
21 |
-
}
|
22 |
-
|
23 |
-
protected function safe_offset( $value ) {
|
24 |
-
if ( is_null( $value ) ) {
|
25 |
-
return 'null';
|
26 |
-
} elseif ( is_scalar( $value ) ) {
|
27 |
-
return $value;
|
28 |
-
} elseif ( is_object( $value ) ) {
|
29 |
-
return spl_object_hash( $value );
|
30 |
-
} elseif ( is_array( $value ) ) {
|
31 |
-
$return = '';
|
32 |
-
foreach ( $value as $k => $v ) {
|
33 |
-
$k = is_numeric( $k ) ? '' : $k;
|
34 |
-
$return .= $k . $this->safe_offset( $v );
|
35 |
-
}
|
36 |
-
|
37 |
-
return $return;
|
38 |
-
}
|
39 |
-
|
40 |
-
return '';
|
41 |
-
}
|
42 |
-
|
43 |
-
/** @return Action_Responder|Filter_Responder */
|
44 |
-
public function with() {
|
45 |
-
$args = func_get_args();
|
46 |
-
$responder = $this->new_responder();
|
47 |
-
|
48 |
-
if ( $args === array( null ) ) {
|
49 |
-
$this->processors['argsnull'] = $responder;
|
50 |
-
} else {
|
51 |
-
$num_args = count( $args );
|
52 |
-
|
53 |
-
$processors = &$this->processors;
|
54 |
-
for ( $i = 0; $i < $num_args - 1; $i ++ ) {
|
55 |
-
$arg = $this->safe_offset( $args[ $i ] );
|
56 |
-
|
57 |
-
if ( ! isset( $processors[ $arg ] ) ) {
|
58 |
-
$processors[ $arg ] = array();
|
59 |
-
}
|
60 |
-
|
61 |
-
$processors = &$processors[ $arg ];
|
62 |
-
}
|
63 |
-
|
64 |
-
$processors[ $this->safe_offset( $args[ $num_args - 1 ] ) ] = $responder;
|
65 |
-
}
|
66 |
-
|
67 |
-
return $responder;
|
68 |
-
}
|
69 |
-
|
70 |
-
protected abstract function new_responder();
|
71 |
-
|
72 |
-
/**
|
73 |
-
* Throw an exception if strict mode is on
|
74 |
-
*
|
75 |
-
* @throws \PHPUnit\Framework\ExpectationFailedException
|
76 |
-
*/
|
77 |
-
protected function strict_check() {
|
78 |
-
if ( \WP_Mock::strictMode() ) {
|
79 |
-
throw new \PHPUnit\Framework\ExpectationFailedException( $this->get_strict_mode_message() );
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @return string
|
85 |
-
*/
|
86 |
-
abstract protected function get_strict_mode_message();
|
87 |
-
|
88 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/HookedCallback.php
DELETED
@@ -1,107 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
class HookedCallback extends Hook {
|
6 |
-
|
7 |
-
protected $type = 'filter';
|
8 |
-
protected $callback;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @param string $type
|
12 |
-
*/
|
13 |
-
public function setType( $type ) {
|
14 |
-
$this->type = $type;
|
15 |
-
}
|
16 |
-
|
17 |
-
public function react( $callback, $priority, $argument_count ) {
|
18 |
-
\WP_Mock::addHook( $this->name );
|
19 |
-
|
20 |
-
$safe_callback = $this->safe_offset( $callback );
|
21 |
-
if (
|
22 |
-
empty( $this->processors[ $safe_callback ] ) ||
|
23 |
-
empty( $this->processors[ $safe_callback ][ $priority ] ) ||
|
24 |
-
empty( $this->processors[ $safe_callback ][ $priority ][ $argument_count ] )
|
25 |
-
) {
|
26 |
-
$this->callback = $callback;
|
27 |
-
$this->strict_check();
|
28 |
-
|
29 |
-
return null;
|
30 |
-
}
|
31 |
-
|
32 |
-
return $this->processors[ $this->safe_offset( $callback ) ][ $priority ][ $argument_count ]->react();
|
33 |
-
}
|
34 |
-
|
35 |
-
protected function new_responder() {
|
36 |
-
return new HookedCallbackResponder();
|
37 |
-
}
|
38 |
-
|
39 |
-
protected function safe_offset( $value ) {
|
40 |
-
if ( $value instanceof \Closure ) {
|
41 |
-
$value = '__CLOSURE__';
|
42 |
-
}
|
43 |
-
|
44 |
-
return parent::safe_offset( $value );
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Converts a callable to a string
|
49 |
-
*
|
50 |
-
* Closures get returned as 'Closure', objects (those with an __invoke() method get turned into <Class>::__invoke,
|
51 |
-
* and arrays get turned into <Class>::<method>
|
52 |
-
*
|
53 |
-
* @param callable $callback
|
54 |
-
*
|
55 |
-
* @return string
|
56 |
-
*/
|
57 |
-
protected function callback_to_string( $callback ) {
|
58 |
-
if ( ! is_string( $callback ) ) {
|
59 |
-
if ( $callback instanceof \Closure ) {
|
60 |
-
$callback = 'Closure';
|
61 |
-
} elseif ( is_object( $callback ) ) {
|
62 |
-
$callback = get_class( $callback ) . '::__invoke';
|
63 |
-
} else {
|
64 |
-
$class = $callback[0];
|
65 |
-
$method = $callback[1];
|
66 |
-
if ( ! is_string( $class ) ) {
|
67 |
-
$class = get_class( $class );
|
68 |
-
}
|
69 |
-
$callback = "{$class}::$method";
|
70 |
-
}
|
71 |
-
}
|
72 |
-
|
73 |
-
return $callback;
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* @param $callback
|
78 |
-
*
|
79 |
-
* @return string
|
80 |
-
*/
|
81 |
-
protected function get_strict_mode_message() {
|
82 |
-
return sprintf(
|
83 |
-
'Unexpected use of add_%s for action %s with callback %s',
|
84 |
-
$this->type,
|
85 |
-
$this->name,
|
86 |
-
$this->callback_to_string( $this->callback )
|
87 |
-
);
|
88 |
-
}
|
89 |
-
|
90 |
-
}
|
91 |
-
|
92 |
-
class HookedCallbackResponder {
|
93 |
-
|
94 |
-
/**
|
95 |
-
* @var callable
|
96 |
-
*/
|
97 |
-
protected $callable;
|
98 |
-
|
99 |
-
public function perform( $callable ) {
|
100 |
-
$this->callable = $callable;
|
101 |
-
}
|
102 |
-
|
103 |
-
public function react() {
|
104 |
-
call_user_func( $this->callable );
|
105 |
-
}
|
106 |
-
|
107 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/InvokedFilterValue.php
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
class InvokedFilterValue {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* @var callable
|
9 |
-
*/
|
10 |
-
protected $callback;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* InvokedFilterValue constructor.
|
14 |
-
*
|
15 |
-
* @param callable $callable
|
16 |
-
*/
|
17 |
-
public function __construct( $callable ) {
|
18 |
-
$this->callback = $callable;
|
19 |
-
}
|
20 |
-
|
21 |
-
public function __invoke() {
|
22 |
-
return call_user_func_array( $this->callback, func_get_args() );
|
23 |
-
}
|
24 |
-
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Loader.php
DELETED
@@ -1,149 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* SplClassLoader implementation that implements the technical interoperability
|
4 |
-
* standards for PHP 5.3 namespaces and class names.
|
5 |
-
*
|
6 |
-
* http://groups.google.com/group/php-standards/web/final-proposal
|
7 |
-
*
|
8 |
-
* // Example which loads classes for the Doctrine Common package in the
|
9 |
-
* // Doctrine\Common namespace.
|
10 |
-
* $classLoader = new SplClassLoader('Doctrine\Common', '/path/to/doctrine');
|
11 |
-
* $classLoader->register();
|
12 |
-
*
|
13 |
-
* @author Jonathan H. Wage <jonwage@gmail.com>
|
14 |
-
* @author Roman S. Borschel <roman@code-factory.org>
|
15 |
-
* @author Matthew Weier O'Phinney <matthew@zend.com>
|
16 |
-
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
|
17 |
-
* @author Fabien Potencier <fabien.potencier@symfony-project.org>
|
18 |
-
*/
|
19 |
-
|
20 |
-
namespace WP_Mock;
|
21 |
-
|
22 |
-
|
23 |
-
class Loader {
|
24 |
-
private $_fileExtension = '.php';
|
25 |
-
private $_namespace;
|
26 |
-
private $_includePath;
|
27 |
-
private $_namespaceSeparator = '\\';
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Creates a new <tt>Loader</tt> that loads classes of the
|
31 |
-
* specified namespace.
|
32 |
-
*
|
33 |
-
* @param string $ns The namespace to use.
|
34 |
-
*/
|
35 |
-
public function __construct( $ns = 'WP_Mock', $includePath = null ) {
|
36 |
-
$this->_namespace = $ns;
|
37 |
-
$this->_includePath = $includePath;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Sets the namespace separator used by classes in the namespace of this class loader.
|
42 |
-
*
|
43 |
-
* @param string $sep The separator to use.
|
44 |
-
*/
|
45 |
-
public function setNamespaceSeparator( $sep ) {
|
46 |
-
$this->_namespaceSeparator = $sep;
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Gets the namespace seperator used by classes in the namespace of this class loader.
|
51 |
-
*
|
52 |
-
* @return void
|
53 |
-
*/
|
54 |
-
public function getNamespaceSeparator() {
|
55 |
-
return $this->_namespaceSeparator;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Sets the base include path for all class files in the namespace of this class loader.
|
60 |
-
*
|
61 |
-
* @param string $includePath
|
62 |
-
*/
|
63 |
-
public function setIncludePath( $includePath ) {
|
64 |
-
$this->_includePath = $includePath;
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Gets the base include path for all class files in the namespace of this class loader.
|
69 |
-
*
|
70 |
-
* @return string $includePath
|
71 |
-
*/
|
72 |
-
public function getIncludePath() {
|
73 |
-
return $this->_includePath;
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Sets the file extension of class files in the namespace of this class loader.
|
78 |
-
*
|
79 |
-
* @param string $fileExtension
|
80 |
-
*/
|
81 |
-
public function setFileExtension( $fileExtension ) {
|
82 |
-
$this->_fileExtension = $fileExtension;
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Gets the file extension of class files in the namespace of this class loader.
|
87 |
-
*
|
88 |
-
* @return string $fileExtension
|
89 |
-
*/
|
90 |
-
public function getFileExtension() {
|
91 |
-
return $this->_fileExtension;
|
92 |
-
}
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Installs this class loader on the SPL autoload stack.
|
96 |
-
*
|
97 |
-
* @param bool $prepend If true, prepend autoloader on the autoload stack
|
98 |
-
*/
|
99 |
-
public function register( $prepend = false ) {
|
100 |
-
//spl_autoload_register( array( $this, 'loadClass' ), true, $prepend );
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Uninstalls this class loader from the SPL autoloader stack.
|
105 |
-
*/
|
106 |
-
public function unregister() {
|
107 |
-
//spl_autoload_unregister( array( $this, 'loadClass' ) );
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Loads the given class or interface.
|
112 |
-
*
|
113 |
-
* @param string $className The name of the class to load.
|
114 |
-
*
|
115 |
-
* @return void
|
116 |
-
*/
|
117 |
-
public function loadClass( $className ) {
|
118 |
-
return;
|
119 |
-
if ( $className === 'WP_Mock' ) {
|
120 |
-
require $this->getFullPath( 'WP_Mock.php' );
|
121 |
-
|
122 |
-
return;
|
123 |
-
}
|
124 |
-
if ( null === $this->_namespace
|
125 |
-
|| $this->_namespace . $this->_namespaceSeparator === substr( $className, 0, strlen( $this->_namespace . $this->_namespaceSeparator ) )
|
126 |
-
) {
|
127 |
-
$fileName = '';
|
128 |
-
$namespace = '';
|
129 |
-
if ( false !== ( $lastNsPos = strripos( $className, $this->_namespaceSeparator ) ) ) {
|
130 |
-
$namespace = substr( $className, 0, $lastNsPos );
|
131 |
-
$className = substr( $className, $lastNsPos + 1 );
|
132 |
-
$fileName = str_replace( $this->_namespaceSeparator, DIRECTORY_SEPARATOR, $namespace ) . DIRECTORY_SEPARATOR;
|
133 |
-
}
|
134 |
-
$fileName .= str_replace( '_', DIRECTORY_SEPARATOR, $className ) . $this->_fileExtension;
|
135 |
-
require $this->getFullPath( $fileName );
|
136 |
-
}
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* Returns full path for $fileName if _includePath is set, or leaves as-is for PHP's internal search in 'require'.
|
141 |
-
*
|
142 |
-
* @param string $fileName relative to include path.
|
143 |
-
*
|
144 |
-
* @return string
|
145 |
-
*/
|
146 |
-
private function getFullPath( $fileName ) {
|
147 |
-
return ($this->_includePath !== null ? $this->_includePath . DIRECTORY_SEPARATOR : '') . $fileName;
|
148 |
-
}
|
149 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Matcher/FuzzyObject.php
DELETED
@@ -1,101 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock\Matcher;
|
4 |
-
|
5 |
-
use Mockery\Exception;
|
6 |
-
use Mockery\Matcher\MatcherAbstract;
|
7 |
-
|
8 |
-
class FuzzyObject extends MatcherAbstract {
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @param object|array $expected
|
12 |
-
*
|
13 |
-
* @throws \Mockery\Exception If a non-object non-array expectation is provided
|
14 |
-
*/
|
15 |
-
public function __construct( $expected = null ) {
|
16 |
-
if ( ! is_object( $expected ) ) {
|
17 |
-
if ( is_array( $expected ) ) {
|
18 |
-
$expected = (object) $expected;
|
19 |
-
} else {
|
20 |
-
throw new Exception( 'FuzzyObject matcher can only match objects!' );
|
21 |
-
}
|
22 |
-
}
|
23 |
-
parent::__construct( $expected );
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Check if the actual value matches the expected.
|
28 |
-
* Actual passed by reference to preserve reference trail (where applicable)
|
29 |
-
* back to the original method parameter.
|
30 |
-
*
|
31 |
-
* @param mixed $actual
|
32 |
-
*
|
33 |
-
* @return bool
|
34 |
-
*/
|
35 |
-
public function match( &$actual ) {
|
36 |
-
if ( ! is_object( $actual ) ) {
|
37 |
-
return false;
|
38 |
-
}
|
39 |
-
|
40 |
-
if ( ! $this->haveCommonAncestor( $actual, $this->_expected ) ) {
|
41 |
-
return false;
|
42 |
-
}
|
43 |
-
|
44 |
-
$expected_properties = get_object_vars( $this->_expected );
|
45 |
-
|
46 |
-
foreach ( $expected_properties as $prop => $value ) {
|
47 |
-
if ( ! isset( $actual->$prop ) || $value !== $actual->$prop ) {
|
48 |
-
return false;
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
$actual_keys = array_keys( get_object_vars( $actual ) );
|
53 |
-
$extra_actual = array_diff( $actual_keys, array_keys( $expected_properties ) );
|
54 |
-
if ( ! empty( $extra_actual ) ) {
|
55 |
-
return false;
|
56 |
-
}
|
57 |
-
|
58 |
-
return true;
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Return a string representation of this Matcher
|
63 |
-
*
|
64 |
-
* @return string
|
65 |
-
*/
|
66 |
-
public function __toString() {
|
67 |
-
$values = array_values( get_object_vars( $this->_expected ) );
|
68 |
-
$values = array_map( function ( $value ) {
|
69 |
-
if ( ! is_scalar( $value ) ) {
|
70 |
-
if ( is_array( $value ) ) {
|
71 |
-
$value = 'Array';
|
72 |
-
} elseif ( is_object( $value ) ) {
|
73 |
-
$value = get_class( $value );
|
74 |
-
} elseif ( is_resource( $value ) ) {
|
75 |
-
$value = get_resource_type( $value );
|
76 |
-
} else {
|
77 |
-
$value = 'unknown';
|
78 |
-
}
|
79 |
-
}
|
80 |
-
return $value;
|
81 |
-
}, $values );
|
82 |
-
return '<FuzzyObject[' . implode( ', ', $values ) . ']>';
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* @param object $object1
|
87 |
-
* @param object $object2
|
88 |
-
*
|
89 |
-
* @return bool
|
90 |
-
*/
|
91 |
-
protected function haveCommonAncestor( $object1, $object2 ) {
|
92 |
-
$class1 = get_class( $object1 );
|
93 |
-
$class2 = get_class( $object2 );
|
94 |
-
if ( $class1 === $class2 ) {
|
95 |
-
return true;
|
96 |
-
}
|
97 |
-
$inheritance1 = class_parents( $class1 );
|
98 |
-
$inheritance2 = class_parents( $class2 );
|
99 |
-
return (bool) array_intersect_assoc( $inheritance1, $inheritance2 );
|
100 |
-
}
|
101 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/ReturnSequence.php
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock;
|
4 |
-
|
5 |
-
class ReturnSequence {
|
6 |
-
|
7 |
-
private $return_values = array();
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Constructor to set up the return sequence object
|
11 |
-
*
|
12 |
-
* You can pass arbitrary arguments to the constructor to set to the internal
|
13 |
-
* $return_values array
|
14 |
-
*/
|
15 |
-
public function __construct() {
|
16 |
-
$this->return_values = func_get_args();
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Retrieve the $return_values array
|
21 |
-
*
|
22 |
-
* @return array
|
23 |
-
*/
|
24 |
-
public function getReturnValues() {
|
25 |
-
return $this->return_values;
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Set the return_values array
|
30 |
-
*
|
31 |
-
* Values should be passed in as one array. Keys will be discarded.
|
32 |
-
*
|
33 |
-
* @param array $return_values
|
34 |
-
*/
|
35 |
-
public function setReturnValues( $return_values ) {
|
36 |
-
$this->return_values = array_values( (array) $return_values );
|
37 |
-
}
|
38 |
-
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Tools/Constraints/ExpectationsMet.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock\Tools\Constraints;
|
4 |
-
|
5 |
-
use PHPUnit\Framework\Constraint\Constraint;
|
6 |
-
use Mockery;
|
7 |
-
use Exception;
|
8 |
-
|
9 |
-
class ExpectationsMet extends \PHPUnit\Framework\Constraint\Constraint {
|
10 |
-
|
11 |
-
private $_mockery_message;
|
12 |
-
|
13 |
-
public function matches( $other ) {
|
14 |
-
try {
|
15 |
-
Mockery::getContainer()->mockery_verify();
|
16 |
-
} catch ( Exception $e ) {
|
17 |
-
$this->_mockery_message = $e->getMessage();
|
18 |
-
return false;
|
19 |
-
}
|
20 |
-
return true;
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Returns a string representation of the object.
|
25 |
-
*
|
26 |
-
* @return string
|
27 |
-
*/
|
28 |
-
public function toString() {
|
29 |
-
return 'WP Mock expectations are met';
|
30 |
-
}
|
31 |
-
|
32 |
-
protected function additionalFailureDescription( $other ) {
|
33 |
-
return str_replace( array( "\r", "\n" ), '', (string) $this->_mockery_message );
|
34 |
-
}
|
35 |
-
|
36 |
-
protected function failureDescription( $other ) {
|
37 |
-
return $this->toString();
|
38 |
-
}
|
39 |
-
|
40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Tools/Constraints/IsEqualHtml.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock\Tools\Constraints;
|
4 |
-
|
5 |
-
use PHPUnit\Framework\Constraint\IsEqual;
|
6 |
-
|
7 |
-
class IsEqualHtml extends \PHPUnit\Framework\Constraint\IsEqual {
|
8 |
-
|
9 |
-
private function clean( $thing ) {
|
10 |
-
$thing = preg_replace( '/\n\s+/', '', $thing );
|
11 |
-
$thing = preg_replace( '/\s\s+/', ' ', $thing );
|
12 |
-
return str_replace( array( "\r", "\n", "\t" ), '', $thing );
|
13 |
-
}
|
14 |
-
|
15 |
-
public function evaluate( $other, $description = '', $returnResult = FALSE ) {
|
16 |
-
$other = $this->clean( $other );
|
17 |
-
$this->value = $this->clean( $this->value );
|
18 |
-
return parent::evaluate( $other, $description, $returnResult );
|
19 |
-
}
|
20 |
-
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/php/WP_Mock/Tools/TestCase.php
DELETED
@@ -1,319 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace WP_Mock\Tools;
|
4 |
-
|
5 |
-
use PHPUnit\Framework\TestResult;
|
6 |
-
use Exception;
|
7 |
-
use Mockery;
|
8 |
-
use ReflectionMethod;
|
9 |
-
use Text_Template;
|
10 |
-
use WP_Mock;
|
11 |
-
use WP_Mock\Tools\Constraints\ExpectationsMet;
|
12 |
-
use WP_Mock\Tools\Constraints\IsEqualHtml;
|
13 |
-
|
14 |
-
abstract class TestCase extends \PHPUnit\Framework\TestCase {
|
15 |
-
|
16 |
-
protected $mockedStaticMethods = array();
|
17 |
-
|
18 |
-
/**
|
19 |
-
* @var array
|
20 |
-
*/
|
21 |
-
protected $__default_post = array();
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @var array
|
25 |
-
*/
|
26 |
-
protected $__default_get = array();
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @var array
|
30 |
-
*/
|
31 |
-
protected $__default_request = array();
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @var bool|callable
|
35 |
-
*/
|
36 |
-
protected $__contentFilterCallback = false;
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @var array
|
40 |
-
*/
|
41 |
-
protected $testFiles = array();
|
42 |
-
|
43 |
-
public function setUp() {
|
44 |
-
$this->requireFileDependencies();
|
45 |
-
|
46 |
-
WP_Mock::setUp();
|
47 |
-
|
48 |
-
$_GET = (array) $this->__default_get;
|
49 |
-
$_POST = (array) $this->__default_post;
|
50 |
-
$_REQUEST = (array) $this->__default_request;
|
51 |
-
|
52 |
-
$this->setUpContentFiltering();
|
53 |
-
|
54 |
-
$this->cleanGlobals();
|
55 |
-
}
|
56 |
-
|
57 |
-
public function tearDown() {
|
58 |
-
WP_Mock::tearDown();
|
59 |
-
|
60 |
-
$this->cleanGlobals();
|
61 |
-
|
62 |
-
$this->mockedStaticMethods = array();
|
63 |
-
|
64 |
-
$_GET = array();
|
65 |
-
$_POST = array();
|
66 |
-
$_REQUEST = array();
|
67 |
-
}
|
68 |
-
|
69 |
-
public function assertActionsCalled() {
|
70 |
-
$actions_not_added = $expected_actions = 0;
|
71 |
-
try {
|
72 |
-
WP_Mock::assertActionsCalled();
|
73 |
-
} catch ( Exception $e ) {
|
74 |
-
$actions_not_added = 1;
|
75 |
-
$expected_actions = $e->getMessage();
|
76 |
-
}
|
77 |
-
$this->assertEmpty( $actions_not_added, $expected_actions );
|
78 |
-
}
|
79 |
-
|
80 |
-
public function assertHooksAdded() {
|
81 |
-
$hooks_not_added = $expected_hooks = 0;
|
82 |
-
try {
|
83 |
-
WP_Mock::assertHooksAdded();
|
84 |
-
} catch ( Exception $e ) {
|
85 |
-
$hooks_not_added = 1;
|
86 |
-
$expected_hooks = $e->getMessage();
|
87 |
-
}
|
88 |
-
$this->assertEmpty( $hooks_not_added, $expected_hooks );
|
89 |
-
}
|
90 |
-
|
91 |
-
public function ns( $function ) {
|
92 |
-
if ( ! is_string( $function ) || false !== strpos( $function, '\\' ) ) {
|
93 |
-
return $function;
|
94 |
-
}
|
95 |
-
|
96 |
-
$thisClassName = trim( get_class( $this ), '\\' );
|
97 |
-
|
98 |
-
if ( ! strpos( $thisClassName, '\\' ) ) {
|
99 |
-
return $function;
|
100 |
-
}
|
101 |
-
|
102 |
-
// $thisNamespace is constructed by exploding the current class name on
|
103 |
-
// namespace separators, running array_slice on that array starting at 0
|
104 |
-
// and ending one element from the end (chops the class name off) and
|
105 |
-
// imploding that using namespace separators as the glue.
|
106 |
-
$thisNamespace = implode( '\\', array_slice( explode( '\\', $thisClassName ), 0, - 1 ) );
|
107 |
-
|
108 |
-
return "$thisNamespace\\$function";
|
109 |
-
}
|
110 |
-
|
111 |
-
public function stripTabsAndNewlines( $content ) {
|
112 |
-
return str_replace( array( "\t", "\r", "\n" ), '', $content );
|
113 |
-
}
|
114 |
-
|
115 |
-
public function expectOutputString( $expectedString ) {
|
116 |
-
if ( is_callable( $this->__contentFilterCallback ) ) {
|
117 |
-
$expectedString = call_user_func( $this->__contentFilterCallback, $expectedString );
|
118 |
-
}
|
119 |
-
parent::expectOutputString( $expectedString );
|
120 |
-
}
|
121 |
-
|
122 |
-
public function assertCurrentConditionsMet( $message = '' ) {
|
123 |
-
$this->assertThat( null, new ExpectationsMet, $message );
|
124 |
-
}
|
125 |
-
|
126 |
-
public function assertConditionsMet( $message = '' ) {
|
127 |
-
$this->assertCurrentConditionsMet( $message );
|
128 |
-
}
|
129 |
-
|
130 |
-
public function assertEqualsHTML( $expected, $actual, $message = '' ) {
|
131 |
-
$constraint = new IsEqualHtml( $expected );
|
132 |
-
$this->assertThat( $actual, $constraint, $message );
|
133 |
-
}
|
134 |
-
|
135 |
-
/**
|
136 |
-
* Nuke the globals from orbit for process isolation
|
137 |
-
*
|
138 |
-
* See http://kpayne.me/2012/07/02/phpunit-process-isolation-and-constant-already-defined/
|
139 |
-
* for more details
|
140 |
-
*
|
141 |
-
* {@inheritdoc}
|
142 |
-
*/
|
143 |
-
protected function prepareTemplate( Text_Template $template ) {
|
144 |
-
$template->setVar( array(
|
145 |
-
'globals' => '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = \'' . $GLOBALS['__PHPUNIT_BOOTSTRAP'] . '\';',
|
146 |
-
) );
|
147 |
-
parent::prepareTemplate( $template );
|
148 |
-
}
|
149 |
-
|
150 |
-
|
151 |
-
/**
|
152 |
-
* Mock a static method of a class
|
153 |
-
*
|
154 |
-
* @param string $class The classname or class::method name
|
155 |
-
* @param null|string $method The method name. Optional if class::method used for $class
|
156 |
-
*
|
157 |
-
* @return \Mockery\Expectation
|
158 |
-
* @throws Exception
|
159 |
-
*/
|
160 |
-
protected function mockStaticMethod( $class, $method = null ) {
|
161 |
-
if ( ! $method ) {
|
162 |
-
list( $class, $method ) = ( explode( '::', $class ) + array( null, null ) );
|
163 |
-
}
|
164 |
-
if ( ! $method ) {
|
165 |
-
throw new Exception( sprintf( 'Could not mock %s::%s', $class, $method ) );
|
166 |
-
}
|
167 |
-
if ( ! WP_Mock::usingPatchwork() || ! function_exists( 'Patchwork\Interceptor\patch' ) ) {
|
168 |
-
throw new Exception( 'Patchwork is not loaded! Please load patchwork before mocking static methods!' );
|
169 |
-
}
|
170 |
-
|
171 |
-
$safe_method = "wp_mock_safe_$method";
|
172 |
-
$signature = md5( "$class::$method" );
|
173 |
-
if ( ! empty( $this->mockedStaticMethods[ $signature ] ) ) {
|
174 |
-
$mock = $this->mockedStaticMethods[ $signature ];
|
175 |
-
} else {
|
176 |
-
|
177 |
-
$rMethod = false;
|
178 |
-
if ( class_exists( $class ) ) {
|
179 |
-
$rMethod = new ReflectionMethod( $class, $method );
|
180 |
-
}
|
181 |
-
if (
|
182 |
-
$rMethod &&
|
183 |
-
(
|
184 |
-
! $rMethod->isUserDefined() ||
|
185 |
-
! $rMethod->isStatic() ||
|
186 |
-
$rMethod->isPrivate()
|
187 |
-
)
|
188 |
-
) {
|
189 |
-
throw new Exception( sprintf( '%s::%s is not a user-defined non-private static method!', $class, $method ) );
|
190 |
-
}
|
191 |
-
|
192 |
-
/** @var \Mockery\Mock $mock */
|
193 |
-
$mock = Mockery::mock( $class );
|
194 |
-
$mock->shouldAllowMockingProtectedMethods();
|
195 |
-
$this->mockedStaticMethods[ $signature ] = $mock;
|
196 |
-
|
197 |
-
\Patchwork\redefine( "$class::$method", function () use ( $mock, $safe_method ) {
|
198 |
-
return call_user_func_array( array( $mock, $safe_method ), func_get_args() );
|
199 |
-
}, ! ( $rMethod ) );
|
200 |
-
}
|
201 |
-
$expectation = $mock->shouldReceive( $safe_method );
|
202 |
-
|
203 |
-
return $expectation;
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* @param array|object $data The post data to add to the post
|
208 |
-
*
|
209 |
-
* @return \WP_Post
|
210 |
-
*/
|
211 |
-
protected function mockPost( $data ) {
|
212 |
-
/** @var \WP_Post $post */
|
213 |
-
$post = \Mockery::mock( 'WP_Post' );
|
214 |
-
$data = array_merge( array(
|
215 |
-
'ID' => 0,
|
216 |
-
'post_author' => 0,
|
217 |
-
'post_type' => '',
|
218 |
-
'post_title' => '',
|
219 |
-
'post_date' => '',
|
220 |
-
'post_date_gmt' => '',
|
221 |
-
'post_content' => '',
|
222 |
-
'post_excerpt' => '',
|
223 |
-
'post_status' => '',
|
224 |
-
'comment_status' => '',
|
225 |
-
'ping_status' => '',
|
226 |
-
'post_password' => '',
|
227 |
-
'post_parent' => 0,
|
228 |
-
'post_modified' => '',
|
229 |
-
'post_modified_gmt' => '',
|
230 |
-
'comment_count' => 0,
|
231 |
-
'menu_order' => 0,
|
232 |
-
), (array) $data );
|
233 |
-
array_walk( $data, function ( $value, $prop ) use ( $post ) {
|
234 |
-
$post->$prop = $value;
|
235 |
-
} );
|
236 |
-
|
237 |
-
return $post;
|
238 |
-
}
|
239 |
-
|
240 |
-
/**
|
241 |
-
* @param array $query_vars
|
242 |
-
*
|
243 |
-
* @return \WP
|
244 |
-
*/
|
245 |
-
protected function mockWp( array $query_vars = array() ) {
|
246 |
-
/** @var \WP $wp */
|
247 |
-
$wp = \Mockery::mock( 'WP' );
|
248 |
-
$wp->query_vars = $query_vars;
|
249 |
-
|
250 |
-
return $wp;
|
251 |
-
}
|
252 |
-
|
253 |
-
protected function cleanGlobals() {
|
254 |
-
$common_globals = array(
|
255 |
-
'post',
|
256 |
-
'wp_query',
|
257 |
-
);
|
258 |
-
foreach ( $common_globals as $var ) {
|
259 |
-
if ( isset( $GLOBALS[ $var ] ) ) {
|
260 |
-
unset( $GLOBALS[ $var ] );
|
261 |
-
}
|
262 |
-
}
|
263 |
-
|
264 |
-
}
|
265 |
-
|
266 |
-
/**
|
267 |
-
* Require any testFiles that are defined in a subclass
|
268 |
-
*
|
269 |
-
* This will only work if the WP_MOCK_INCLUDE_DIR is defined to point to the root directory you want to include
|
270 |
-
* files from.
|
271 |
-
*/
|
272 |
-
protected function requireFileDependencies() {
|
273 |
-
if ( ! empty( $this->testFiles ) && defined( 'WP_MOCK_INCLUDE_DIR' ) ) {
|
274 |
-
foreach ( $this->testFiles as $file ) {
|
275 |
-
if ( file_exists( WP_MOCK_INCLUDE_DIR . $file ) ) {
|
276 |
-
require_once( WP_MOCK_INCLUDE_DIR . $file );
|
277 |
-
}
|
278 |
-
}
|
279 |
-
}
|
280 |
-
}
|
281 |
-
|
282 |
-
protected function setUpContentFiltering() {
|
283 |
-
$this->__contentFilterCallback = false;
|
284 |
-
|
285 |
-
$annotations = $this->getAnnotations();
|
286 |
-
if (
|
287 |
-
! isset( $annotations['stripTabsAndNewlinesFromOutput'] ) ||
|
288 |
-
$annotations['stripTabsAndNewlinesFromOutput'][0] !== 'disabled' ||
|
289 |
-
(
|
290 |
-
is_numeric( $annotations['stripTabsAndNewlinesFromOutput'][0] ) &&
|
291 |
-
(int) $annotations['stripTabsAndNewlinesFromOutput'][0] !== 0
|
292 |
-
)
|
293 |
-
) {
|
294 |
-
$this->__contentFilterCallback = array( $this, 'stripTabsAndNewlines' );
|
295 |
-
$this->setOutputCallback( $this->__contentFilterCallback );
|
296 |
-
}
|
297 |
-
}
|
298 |
-
|
299 |
-
public function run( \PHPUnit\Framework\TestResult $result = null ) {
|
300 |
-
if ( $result === null ) {
|
301 |
-
$result = $this->createResult();
|
302 |
-
}
|
303 |
-
|
304 |
-
WP_Mock::getDeprecatedListener()->setTestResult( $result );
|
305 |
-
WP_Mock::getDeprecatedListener()->setTestCase($this);
|
306 |
-
|
307 |
-
return parent::run( $result );
|
308 |
-
}
|
309 |
-
|
310 |
-
/**
|
311 |
-
* @after
|
312 |
-
*/
|
313 |
-
public function checkDeprecatedCalls() {
|
314 |
-
WP_Mock::getDeprecatedListener()->checkCalls();
|
315 |
-
WP_Mock::getDeprecatedListener()->reset();
|
316 |
-
}
|
317 |
-
|
318 |
-
}
|
319 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/phpdoc.xml
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
-
<phpdoc>
|
3 |
-
<parser>
|
4 |
-
<package>WP_Mock</package>
|
5 |
-
<target>docs</target>
|
6 |
-
<encoding>utf-8</encoding>
|
7 |
-
</parser>
|
8 |
-
<transformer>
|
9 |
-
<target>docs</target>
|
10 |
-
</transformer>
|
11 |
-
<files>
|
12 |
-
<directory>WP_Mock</directory>
|
13 |
-
<ignore>tests/*</ignore>
|
14 |
-
<ignore>vendor/*</ignore>
|
15 |
-
</files>
|
16 |
-
</phpdoc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/10up/wp_mock/phpunit.xml.dist
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2 |
-
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/5.6/phpunit.xsd"
|
3 |
-
bootstrap="./bootstrap.php.dist"
|
4 |
-
backupGlobals="false"
|
5 |
-
beStrictAboutCoversAnnotation="true"
|
6 |
-
beStrictAboutOutputDuringTests="true"
|
7 |
-
beStrictAboutTestsThatDoNotTestAnything="true"
|
8 |
-
beStrictAboutTodoAnnotatedTests="true"
|
9 |
-
colors="true"
|
10 |
-
verbose="true">
|
11 |
-
<testsuites>
|
12 |
-
<testsuite>
|
13 |
-
<directory suffix="Test.php">./tests/</directory>
|
14 |
-
</testsuite>
|
15 |
-
</testsuites>
|
16 |
-
|
17 |
-
<filter>
|
18 |
-
<whitelist processUncoveredFilesFromWhitelist="true">
|
19 |
-
<directory suffix=".php">php</directory>
|
20 |
-
</whitelist>
|
21 |
-
</filter>
|
22 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/antecedent/patchwork/.scrutinizer.yml
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
---
|
2 |
-
checks:
|
3 |
-
php:
|
4 |
-
code_rating: true
|
5 |
-
duplication: true
|
6 |
-
filter:
|
7 |
-
excluded_paths:
|
8 |
-
- "tests/"
|
9 |
-
- "vendor/"
|
10 |
-
coding_style:
|
11 |
-
php:
|
12 |
-
indentation:
|
13 |
-
general:
|
14 |
-
use_tabs: false
|
15 |
-
spaces:
|
16 |
-
around_operators:
|
17 |
-
concatenation: true
|
18 |
-
negation: false
|
19 |
-
build:
|
20 |
-
cache:
|
21 |
-
directories:
|
22 |
-
- vendor/
|
23 |
-
nodes:
|
24 |
-
php54:
|
25 |
-
environment:
|
26 |
-
php: 5.4
|
27 |
-
php55:
|
28 |
-
environment:
|
29 |
-
php: 5.5
|
30 |
-
php56:
|
31 |
-
environment:
|
32 |
-
php: 5.6
|
33 |
-
php70:
|
34 |
-
environment:
|
35 |
-
php: 7.0
|
36 |
-
php71:
|
37 |
-
environment:
|
38 |
-
php: 7.1
|
39 |
-
php72:
|
40 |
-
environment:
|
41 |
-
php: 7.2
|
42 |
-
php73:
|
43 |
-
environment:
|
44 |
-
php: 7.3
|
45 |
-
tests:
|
46 |
-
override:
|
47 |
-
- idle_timeout: 4800
|
48 |
-
command: "./vendor/bin/phpunit tests"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/antecedent/patchwork/LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
The MIT License
|
2 |
-
|
3 |
-
Copyright (c) 2010-2018 Ignas Rudaitis
|
4 |
-
|
5 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
-
of this software and associated documentation files (the "Software"), to deal
|
7 |
-
in the Software without restriction, including without limitation the rights
|
8 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
-
copies of the Software, and to permit persons to whom the Software is
|
10 |
-
furnished to do so, subject to the following conditions:
|
11 |
-
|
12 |
-
The above copyright notice and this permission notice shall be included in
|
13 |
-
all copies or substantial portions of the Software.
|
14 |
-
|
15 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
-
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/antecedent/patchwork/Patchwork.php
DELETED
@@ -1,149 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* @author Ignas Rudaitis <ignas.rudaitis@gmail.com>
|
5 |
-
* @copyright 2010-2018 Ignas Rudaitis
|
6 |
-
* @license http://www.opensource.org/licenses/mit-license.html
|
7 |
-
*/
|
8 |
-
namespace Patchwork;
|
9 |
-
|
10 |
-
if (function_exists('Patchwork\replace')) {
|
11 |
-
return;
|
12 |
-
}
|
13 |
-
|
14 |
-
require_once __DIR__ . '/src/Exceptions.php';
|
15 |
-
require_once __DIR__ . '/src/CallRerouting.php';
|
16 |
-
require_once __DIR__ . '/src/CodeManipulation.php';
|
17 |
-
require_once __DIR__ . '/src/Utils.php';
|
18 |
-
require_once __DIR__ . '/src/Stack.php';
|
19 |
-
require_once __DIR__ . '/src/Config.php';
|
20 |
-
|
21 |
-
function redefine($subject, callable $content)
|
22 |
-
{
|
23 |
-
$handle = null;
|
24 |
-
foreach (array_slice(func_get_args(), 1) as $content) {
|
25 |
-
$handle = CallRerouting\connect($subject, $content, $handle);
|
26 |
-
}
|
27 |
-
$handle->silence();
|
28 |
-
return $handle;
|
29 |
-
}
|
30 |
-
|
31 |
-
function relay(array $args = null)
|
32 |
-
{
|
33 |
-
return CallRerouting\relay($args);
|
34 |
-
}
|
35 |
-
|
36 |
-
function fallBack()
|
37 |
-
{
|
38 |
-
throw new Exceptions\NoResult;
|
39 |
-
}
|
40 |
-
|
41 |
-
function restore(CallRerouting\Handle $handle)
|
42 |
-
{
|
43 |
-
$handle->expire();
|
44 |
-
}
|
45 |
-
|
46 |
-
function restoreAll()
|
47 |
-
{
|
48 |
-
CallRerouting\disconnectAll();
|
49 |
-
}
|
50 |
-
|
51 |
-
function silence(CallRerouting\Handle $handle)
|
52 |
-
{
|
53 |
-
$handle->silence();
|
54 |
-
}
|
55 |
-
|
56 |
-
function assertEventuallyDefined(CallRerouting\Handle $handle)
|
57 |
-
{
|
58 |
-
$handle->unsilence();
|
59 |
-
}
|
60 |
-
|
61 |
-
function getClass()
|
62 |
-
{
|
63 |
-
return Stack\top('class');
|
64 |
-
}
|
65 |
-
|
66 |
-
function getCalledClass()
|
67 |
-
{
|
68 |
-
return Stack\topCalledClass();
|
69 |
-
}
|
70 |
-
|
71 |
-
function getFunction()
|
72 |
-
{
|
73 |
-
return Stack\top('function');
|
74 |
-
}
|
75 |
-
|
76 |
-
function getMethod()
|
77 |
-
{
|
78 |
-
return getClass() . '::' . getFunction();
|
79 |
-
}
|
80 |
-
|
81 |
-
function configure()
|
82 |
-
{
|
83 |
-
Config\locate();
|
84 |
-
}
|
85 |
-
|
86 |
-
function hasMissed($callable)
|
87 |
-
{
|
88 |
-
return Utils\callableWasMissed($callable);
|
89 |
-
}
|
90 |
-
|
91 |
-
function always($value)
|
92 |
-
{
|
93 |
-
return function() use ($value) {
|
94 |
-
return $value;
|
95 |
-
};
|
96 |
-
}
|
97 |
-
|
98 |
-
Utils\alias('Patchwork', [
|
99 |
-
'redefine' => ['replace', 'replaceLater'],
|
100 |
-
'relay' => 'callOriginal',
|
101 |
-
'fallBack' => 'pass',
|
102 |
-
'restore' => 'undo',
|
103 |
-
'restoreAll' => 'undoAll',
|
104 |
-
]);
|
105 |
-
|
106 |
-
configure();
|
107 |
-
|
108 |
-
Utils\markMissedCallables();
|
109 |
-
|
110 |
-
if (Utils\runningOnHHVM()) {
|
111 |
-
# no preprocessor needed on HHVM;
|
112 |
-
# just let Patchwork become a wrapper for fb_intercept()
|
113 |
-
spl_autoload_register('Patchwork\CallRerouting\deployQueue');
|
114 |
-
return;
|
115 |
-
}
|
116 |
-
|
117 |
-
CodeManipulation\Stream::wrap();
|
118 |
-
|
119 |
-
CodeManipulation\register([
|
120 |
-
CodeManipulation\Actions\CodeManipulation\propagateThroughEval(),
|
121 |
-
CodeManipulation\Actions\CallRerouting\injectCallInterceptionCode(),
|
122 |
-
CodeManipulation\Actions\RedefinitionOfInternals\spliceNamedFunctionCalls(),
|
123 |
-
CodeManipulation\Actions\RedefinitionOfInternals\spliceDynamicCalls(),
|
124 |
-
CodeManipulation\Actions\RedefinitionOfNew\spliceAllInstantiations,
|
125 |
-
CodeManipulation\Actions\RedefinitionOfNew\publicizeConstructors,
|
126 |
-
CodeManipulation\Actions\ConflictPrevention\preventImportingOtherCopiesOfPatchwork(),
|
127 |
-
]);
|
128 |
-
|
129 |
-
CodeManipulation\onImport([
|
130 |
-
CodeManipulation\Actions\CallRerouting\markPreprocessedFiles(),
|
131 |
-
]);
|
132 |
-
|
133 |
-
Utils\clearOpcodeCaches();
|
134 |
-
|
135 |
-
register_shutdown_function('Patchwork\Utils\clearOpcodeCaches');
|
136 |
-
|
137 |
-
CallRerouting\createStubsForInternals();
|
138 |
-
CallRerouting\connectDefaultInternals();
|
139 |
-
|
140 |
-
require __DIR__ . '/src/Redefinitions/LanguageConstructs.php';
|
141 |
-
|
142 |
-
CodeManipulation\register([
|
143 |
-
CodeManipulation\Actions\RedefinitionOfLanguageConstructs\spliceAllConfiguredLanguageConstructs(),
|
144 |
-
CodeManipulation\Actions\CallRerouting\injectQueueDeploymentCode(),
|
145 |
-
]);
|
146 |
-
|
147 |
-
if (Utils\wasRunAsConsoleApp()) {
|
148 |
-
require __DIR__ . '/src/Console.php';
|
149 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit754f340405ab0e2a93b757c18525c113::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -42,6 +42,8 @@ namespace Composer\Autoload;
|
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
|
|
45 |
// PSR-4
|
46 |
private $prefixLengthsPsr4 = array();
|
47 |
private $prefixDirsPsr4 = array();
|
@@ -57,6 +59,13 @@ class ClassLoader
|
|
57 |
private $missingClasses = array();
|
58 |
private $apcuPrefix;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
public function getPrefixes()
|
61 |
{
|
62 |
if (!empty($this->prefixesPsr0)) {
|
@@ -300,6 +309,15 @@ class ClassLoader
|
|
300 |
public function register($prepend = false)
|
301 |
{
|
302 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
@@ -308,6 +326,10 @@ class ClassLoader
|
|
308 |
public function unregister()
|
309 |
{
|
310 |
spl_autoload_unregister(array($this, 'loadClass'));
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
/**
|
@@ -367,6 +389,16 @@ class ClassLoader
|
|
367 |
return $file;
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
private function findFileWithExtension($class, $ext)
|
371 |
{
|
372 |
// PSR-4 lookup
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
private $vendorDir;
|
46 |
+
|
47 |
// PSR-4
|
48 |
private $prefixLengthsPsr4 = array();
|
49 |
private $prefixDirsPsr4 = array();
|
59 |
private $missingClasses = array();
|
60 |
private $apcuPrefix;
|
61 |
|
62 |
+
private static $registeredLoaders = array();
|
63 |
+
|
64 |
+
public function __construct($vendorDir = null)
|
65 |
+
{
|
66 |
+
$this->vendorDir = $vendorDir;
|
67 |
+
}
|
68 |
+
|
69 |
public function getPrefixes()
|
70 |
{
|
71 |
if (!empty($this->prefixesPsr0)) {
|
309 |
public function register($prepend = false)
|
310 |
{
|
311 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
312 |
+
|
313 |
+
if (null === $this->vendorDir) {
|
314 |
+
//no-op
|
315 |
+
} elseif ($prepend) {
|
316 |
+
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
317 |
+
} else {
|
318 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
319 |
+
self::$registeredLoaders[$this->vendorDir] = $this;
|
320 |
+
}
|
321 |
}
|
322 |
|
323 |
/**
|
326 |
public function unregister()
|
327 |
{
|
328 |
spl_autoload_unregister(array($this, 'loadClass'));
|
329 |
+
|
330 |
+
if (null !== $this->vendorDir) {
|
331 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
332 |
+
}
|
333 |
}
|
334 |
|
335 |
/**
|
389 |
return $file;
|
390 |
}
|
391 |
|
392 |
+
/**
|
393 |
+
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
394 |
+
*
|
395 |
+
* @return self[]
|
396 |
+
*/
|
397 |
+
public static function getRegisteredLoaders()
|
398 |
+
{
|
399 |
+
return self::$registeredLoaders;
|
400 |
+
}
|
401 |
+
|
402 |
private function findFileWithExtension($class, $ext)
|
403 |
{
|
404 |
// PSR-4 lookup
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
|
13 |
namespace Composer;
|
14 |
|
|
|
15 |
use Composer\Semver\VersionParser;
|
16 |
|
17 |
|
@@ -24,34 +25,16 @@ class InstalledVersions
|
|
24 |
private static $installed = array (
|
25 |
'root' =>
|
26 |
array (
|
27 |
-
'pretty_version' => '4.
|
28 |
-
'version' => '4.
|
29 |
'aliases' =>
|
30 |
array (
|
31 |
),
|
32 |
-
'reference' => '
|
33 |
'name' => 'mihdan/cyr2lat',
|
34 |
),
|
35 |
'versions' =>
|
36 |
array (
|
37 |
-
'10up/wp_mock' =>
|
38 |
-
array (
|
39 |
-
'pretty_version' => '0.3.0',
|
40 |
-
'version' => '0.3.0.0',
|
41 |
-
'aliases' =>
|
42 |
-
array (
|
43 |
-
),
|
44 |
-
'reference' => '64956557e98ee4c8c56cd1e396e822adb4673714',
|
45 |
-
),
|
46 |
-
'antecedent/patchwork' =>
|
47 |
-
array (
|
48 |
-
'pretty_version' => '2.1.12',
|
49 |
-
'version' => '2.1.12.0',
|
50 |
-
'aliases' =>
|
51 |
-
array (
|
52 |
-
),
|
53 |
-
'reference' => 'b98e046dd4c0acc34a0846604f06f6111654d9ea',
|
54 |
-
),
|
55 |
'composer/installers' =>
|
56 |
array (
|
57 |
'pretty_version' => 'v1.9.0',
|
@@ -61,321 +44,14 @@ private static $installed = array (
|
|
61 |
),
|
62 |
'reference' => 'b93bcf0fa1fccb0b7d176b0967d969691cd74cca',
|
63 |
),
|
64 |
-
'cordoval/hamcrest-php' =>
|
65 |
-
array (
|
66 |
-
'replaced' =>
|
67 |
-
array (
|
68 |
-
0 => '*',
|
69 |
-
),
|
70 |
-
),
|
71 |
-
'davedevelopment/hamcrest-php' =>
|
72 |
-
array (
|
73 |
-
'replaced' =>
|
74 |
-
array (
|
75 |
-
0 => '*',
|
76 |
-
),
|
77 |
-
),
|
78 |
-
'doctrine/instantiator' =>
|
79 |
-
array (
|
80 |
-
'pretty_version' => '1.0.5',
|
81 |
-
'version' => '1.0.5.0',
|
82 |
-
'aliases' =>
|
83 |
-
array (
|
84 |
-
),
|
85 |
-
'reference' => '8e884e78f9f0eb1329e445619e04456e64d8051d',
|
86 |
-
),
|
87 |
-
'guzzlehttp/guzzle' =>
|
88 |
-
array (
|
89 |
-
'pretty_version' => '6.5.5',
|
90 |
-
'version' => '6.5.5.0',
|
91 |
-
'aliases' =>
|
92 |
-
array (
|
93 |
-
),
|
94 |
-
'reference' => '9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
|
95 |
-
),
|
96 |
-
'guzzlehttp/promises' =>
|
97 |
-
array (
|
98 |
-
'pretty_version' => '1.4.0',
|
99 |
-
'version' => '1.4.0.0',
|
100 |
-
'aliases' =>
|
101 |
-
array (
|
102 |
-
),
|
103 |
-
'reference' => '60d379c243457e073cff02bc323a2a86cb355631',
|
104 |
-
),
|
105 |
-
'guzzlehttp/psr7' =>
|
106 |
-
array (
|
107 |
-
'pretty_version' => '1.7.0',
|
108 |
-
'version' => '1.7.0.0',
|
109 |
-
'aliases' =>
|
110 |
-
array (
|
111 |
-
),
|
112 |
-
'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3',
|
113 |
-
),
|
114 |
-
'hamcrest/hamcrest-php' =>
|
115 |
-
array (
|
116 |
-
'pretty_version' => 'v2.0.1',
|
117 |
-
'version' => '2.0.1.0',
|
118 |
-
'aliases' =>
|
119 |
-
array (
|
120 |
-
),
|
121 |
-
'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3',
|
122 |
-
),
|
123 |
-
'kodova/hamcrest-php' =>
|
124 |
-
array (
|
125 |
-
'replaced' =>
|
126 |
-
array (
|
127 |
-
0 => '*',
|
128 |
-
),
|
129 |
-
),
|
130 |
-
'lucatume/args' =>
|
131 |
-
array (
|
132 |
-
'pretty_version' => '1.0.1.1',
|
133 |
-
'version' => '1.0.1.1',
|
134 |
-
'aliases' =>
|
135 |
-
array (
|
136 |
-
),
|
137 |
-
'reference' => '9ab69f5c995813b2dfbb067100ada500ee2893e8',
|
138 |
-
),
|
139 |
-
'lucatume/function-mocker' =>
|
140 |
-
array (
|
141 |
-
'pretty_version' => 'dev-test-on-windows',
|
142 |
-
'version' => 'dev-test-on-windows',
|
143 |
-
'aliases' =>
|
144 |
-
array (
|
145 |
-
),
|
146 |
-
'reference' => '0383729be9af2f1dba5e553b29c899f10aba8932',
|
147 |
-
),
|
148 |
'mihdan/cyr2lat' =>
|
149 |
array (
|
150 |
-
'pretty_version' => '4.
|
151 |
-
'version' => '4.
|
152 |
-
'aliases' =>
|
153 |
-
array (
|
154 |
-
),
|
155 |
-
'reference' => 'dcdc4ea6ae257051707db82563043d9d32bfff65',
|
156 |
-
),
|
157 |
-
'mockery/mockery' =>
|
158 |
-
array (
|
159 |
-
'pretty_version' => '1.3.3',
|
160 |
-
'version' => '1.3.3.0',
|
161 |
-
'aliases' =>
|
162 |
-
array (
|
163 |
-
),
|
164 |
-
'reference' => '60fa2f67f6e4d3634bb4a45ff3171fa52215800d',
|
165 |
-
),
|
166 |
-
'myclabs/deep-copy' =>
|
167 |
-
array (
|
168 |
-
'pretty_version' => '1.7.0',
|
169 |
-
'version' => '1.7.0.0',
|
170 |
-
'aliases' =>
|
171 |
-
array (
|
172 |
-
),
|
173 |
-
'reference' => '3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e',
|
174 |
-
),
|
175 |
-
'paragonie/random_compat' =>
|
176 |
-
array (
|
177 |
-
'pretty_version' => 'v9.99.100',
|
178 |
-
'version' => '9.99.100.0',
|
179 |
-
'aliases' =>
|
180 |
-
array (
|
181 |
-
),
|
182 |
-
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
|
183 |
-
),
|
184 |
-
'phar-io/manifest' =>
|
185 |
-
array (
|
186 |
-
'pretty_version' => '1.0.1',
|
187 |
-
'version' => '1.0.1.0',
|
188 |
-
'aliases' =>
|
189 |
-
array (
|
190 |
-
),
|
191 |
-
'reference' => '2df402786ab5368a0169091f61a7c1e0eb6852d0',
|
192 |
-
),
|
193 |
-
'phar-io/version' =>
|
194 |
-
array (
|
195 |
-
'pretty_version' => '1.0.1',
|
196 |
-
'version' => '1.0.1.0',
|
197 |
-
'aliases' =>
|
198 |
-
array (
|
199 |
-
),
|
200 |
-
'reference' => 'a70c0ced4be299a63d32fa96d9281d03e94041df',
|
201 |
-
),
|
202 |
-
'php-coveralls/php-coveralls' =>
|
203 |
-
array (
|
204 |
-
'pretty_version' => 'v2.4.2',
|
205 |
-
'version' => '2.4.2.0',
|
206 |
-
'aliases' =>
|
207 |
-
array (
|
208 |
-
),
|
209 |
-
'reference' => '8a33ae229da63a0bd22dadae1512af663ce5e559',
|
210 |
-
),
|
211 |
-
'phpcompatibility/php-compatibility' =>
|
212 |
-
array (
|
213 |
-
'pretty_version' => '9.3.5',
|
214 |
-
'version' => '9.3.5.0',
|
215 |
-
'aliases' =>
|
216 |
-
array (
|
217 |
-
),
|
218 |
-
'reference' => '9fb324479acf6f39452e0655d2429cc0d3914243',
|
219 |
-
),
|
220 |
-
'phpcompatibility/phpcompatibility-paragonie' =>
|
221 |
-
array (
|
222 |
-
'pretty_version' => '1.3.0',
|
223 |
-
'version' => '1.3.0.0',
|
224 |
-
'aliases' =>
|
225 |
-
array (
|
226 |
-
),
|
227 |
-
'reference' => 'b862bc32f7e860d0b164b199bd995e690b4b191c',
|
228 |
-
),
|
229 |
-
'phpcompatibility/phpcompatibility-wp' =>
|
230 |
-
array (
|
231 |
-
'pretty_version' => '2.1.0',
|
232 |
-
'version' => '2.1.0.0',
|
233 |
-
'aliases' =>
|
234 |
-
array (
|
235 |
-
),
|
236 |
-
'reference' => '41bef18ba688af638b7310666db28e1ea9158b2f',
|
237 |
-
),
|
238 |
-
'phpdocumentor/reflection-common' =>
|
239 |
-
array (
|
240 |
-
'pretty_version' => '1.0.1',
|
241 |
-
'version' => '1.0.1.0',
|
242 |
-
'aliases' =>
|
243 |
-
array (
|
244 |
-
),
|
245 |
-
'reference' => '21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6',
|
246 |
-
),
|
247 |
-
'phpdocumentor/reflection-docblock' =>
|
248 |
-
array (
|
249 |
-
'pretty_version' => '4.3.4',
|
250 |
-
'version' => '4.3.4.0',
|
251 |
-
'aliases' =>
|
252 |
-
array (
|
253 |
-
),
|
254 |
-
'reference' => 'da3fd972d6bafd628114f7e7e036f45944b62e9c',
|
255 |
-
),
|
256 |
-
'phpdocumentor/type-resolver' =>
|
257 |
-
array (
|
258 |
-
'pretty_version' => '0.5.1',
|
259 |
-
'version' => '0.5.1.0',
|
260 |
-
'aliases' =>
|
261 |
-
array (
|
262 |
-
),
|
263 |
-
'reference' => 'cf842904952e64e703800d094cdf34e715a8a3ae',
|
264 |
-
),
|
265 |
-
'phpspec/prophecy' =>
|
266 |
-
array (
|
267 |
-
'pretty_version' => 'v1.10.3',
|
268 |
-
'version' => '1.10.3.0',
|
269 |
-
'aliases' =>
|
270 |
-
array (
|
271 |
-
),
|
272 |
-
'reference' => '451c3cd1418cf640de218914901e51b064abb093',
|
273 |
-
),
|
274 |
-
'phpunit/php-code-coverage' =>
|
275 |
-
array (
|
276 |
-
'pretty_version' => '5.3.2',
|
277 |
-
'version' => '5.3.2.0',
|
278 |
-
'aliases' =>
|
279 |
-
array (
|
280 |
-
),
|
281 |
-
'reference' => 'c89677919c5dd6d3b3852f230a663118762218ac',
|
282 |
-
),
|
283 |
-
'phpunit/php-file-iterator' =>
|
284 |
-
array (
|
285 |
-
'pretty_version' => '1.4.5',
|
286 |
-
'version' => '1.4.5.0',
|
287 |
'aliases' =>
|
288 |
array (
|
289 |
),
|
290 |
-
'reference' => '
|
291 |
-
),
|
292 |
-
'phpunit/php-text-template' =>
|
293 |
-
array (
|
294 |
-
'pretty_version' => '1.2.1',
|
295 |
-
'version' => '1.2.1.0',
|
296 |
-
'aliases' =>
|
297 |
-
array (
|
298 |
-
),
|
299 |
-
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
300 |
-
),
|
301 |
-
'phpunit/php-timer' =>
|
302 |
-
array (
|
303 |
-
'pretty_version' => '1.0.9',
|
304 |
-
'version' => '1.0.9.0',
|
305 |
-
'aliases' =>
|
306 |
-
array (
|
307 |
-
),
|
308 |
-
'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
|
309 |
-
),
|
310 |
-
'phpunit/php-token-stream' =>
|
311 |
-
array (
|
312 |
-
'pretty_version' => '2.0.2',
|
313 |
-
'version' => '2.0.2.0',
|
314 |
-
'aliases' =>
|
315 |
-
array (
|
316 |
-
),
|
317 |
-
'reference' => '791198a2c6254db10131eecfe8c06670700904db',
|
318 |
-
),
|
319 |
-
'phpunit/phpunit' =>
|
320 |
-
array (
|
321 |
-
'pretty_version' => '6.5.14',
|
322 |
-
'version' => '6.5.14.0',
|
323 |
-
'aliases' =>
|
324 |
-
array (
|
325 |
-
),
|
326 |
-
'reference' => 'bac23fe7ff13dbdb461481f706f0e9fe746334b7',
|
327 |
-
),
|
328 |
-
'phpunit/phpunit-mock-objects' =>
|
329 |
-
array (
|
330 |
-
'pretty_version' => '5.0.10',
|
331 |
-
'version' => '5.0.10.0',
|
332 |
-
'aliases' =>
|
333 |
-
array (
|
334 |
-
),
|
335 |
-
'reference' => 'cd1cf05c553ecfec36b170070573e540b67d3f1f',
|
336 |
-
),
|
337 |
-
'psr/http-message' =>
|
338 |
-
array (
|
339 |
-
'pretty_version' => '1.0.1',
|
340 |
-
'version' => '1.0.1.0',
|
341 |
-
'aliases' =>
|
342 |
-
array (
|
343 |
-
),
|
344 |
-
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
345 |
-
),
|
346 |
-
'psr/http-message-implementation' =>
|
347 |
-
array (
|
348 |
-
'provided' =>
|
349 |
-
array (
|
350 |
-
0 => '1.0',
|
351 |
-
),
|
352 |
-
),
|
353 |
-
'psr/log' =>
|
354 |
-
array (
|
355 |
-
'pretty_version' => '1.1.3',
|
356 |
-
'version' => '1.1.3.0',
|
357 |
-
'aliases' =>
|
358 |
-
array (
|
359 |
-
),
|
360 |
-
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
|
361 |
-
),
|
362 |
-
'ralouphie/getallheaders' =>
|
363 |
-
array (
|
364 |
-
'pretty_version' => '3.0.3',
|
365 |
-
'version' => '3.0.3.0',
|
366 |
-
'aliases' =>
|
367 |
-
array (
|
368 |
-
),
|
369 |
-
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
370 |
-
),
|
371 |
-
'roave/security-advisories' =>
|
372 |
-
array (
|
373 |
-
'pretty_version' => 'dev-master',
|
374 |
-
'version' => 'dev-master',
|
375 |
-
'aliases' =>
|
376 |
-
array (
|
377 |
-
),
|
378 |
-
'reference' => '676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6',
|
379 |
),
|
380 |
'roundcube/plugin-installer' =>
|
381 |
array (
|
@@ -384,105 +60,6 @@ private static $installed = array (
|
|
384 |
0 => '*',
|
385 |
),
|
386 |
),
|
387 |
-
'sebastian/code-unit-reverse-lookup' =>
|
388 |
-
array (
|
389 |
-
'pretty_version' => '1.0.2',
|
390 |
-
'version' => '1.0.2.0',
|
391 |
-
'aliases' =>
|
392 |
-
array (
|
393 |
-
),
|
394 |
-
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
395 |
-
),
|
396 |
-
'sebastian/comparator' =>
|
397 |
-
array (
|
398 |
-
'pretty_version' => '2.1.3',
|
399 |
-
'version' => '2.1.3.0',
|
400 |
-
'aliases' =>
|
401 |
-
array (
|
402 |
-
),
|
403 |
-
'reference' => '34369daee48eafb2651bea869b4b15d75ccc35f9',
|
404 |
-
),
|
405 |
-
'sebastian/diff' =>
|
406 |
-
array (
|
407 |
-
'pretty_version' => '2.0.1',
|
408 |
-
'version' => '2.0.1.0',
|
409 |
-
'aliases' =>
|
410 |
-
array (
|
411 |
-
),
|
412 |
-
'reference' => '347c1d8b49c5c3ee30c7040ea6fc446790e6bddd',
|
413 |
-
),
|
414 |
-
'sebastian/environment' =>
|
415 |
-
array (
|
416 |
-
'pretty_version' => '3.1.0',
|
417 |
-
'version' => '3.1.0.0',
|
418 |
-
'aliases' =>
|
419 |
-
array (
|
420 |
-
),
|
421 |
-
'reference' => 'cd0871b3975fb7fc44d11314fd1ee20925fce4f5',
|
422 |
-
),
|
423 |
-
'sebastian/exporter' =>
|
424 |
-
array (
|
425 |
-
'pretty_version' => '3.1.3',
|
426 |
-
'version' => '3.1.3.0',
|
427 |
-
'aliases' =>
|
428 |
-
array (
|
429 |
-
),
|
430 |
-
'reference' => '6b853149eab67d4da22291d36f5b0631c0fd856e',
|
431 |
-
),
|
432 |
-
'sebastian/global-state' =>
|
433 |
-
array (
|
434 |
-
'pretty_version' => '2.0.0',
|
435 |
-
'version' => '2.0.0.0',
|
436 |
-
'aliases' =>
|
437 |
-
array (
|
438 |
-
),
|
439 |
-
'reference' => 'e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4',
|
440 |
-
),
|
441 |
-
'sebastian/object-enumerator' =>
|
442 |
-
array (
|
443 |
-
'pretty_version' => '3.0.4',
|
444 |
-
'version' => '3.0.4.0',
|
445 |
-
'aliases' =>
|
446 |
-
array (
|
447 |
-
),
|
448 |
-
'reference' => 'e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2',
|
449 |
-
),
|
450 |
-
'sebastian/object-reflector' =>
|
451 |
-
array (
|
452 |
-
'pretty_version' => '1.1.2',
|
453 |
-
'version' => '1.1.2.0',
|
454 |
-
'aliases' =>
|
455 |
-
array (
|
456 |
-
),
|
457 |
-
'reference' => '9b8772b9cbd456ab45d4a598d2dd1a1bced6363d',
|
458 |
-
),
|
459 |
-
'sebastian/recursion-context' =>
|
460 |
-
array (
|
461 |
-
'pretty_version' => '3.0.1',
|
462 |
-
'version' => '3.0.1.0',
|
463 |
-
'aliases' =>
|
464 |
-
array (
|
465 |
-
),
|
466 |
-
'reference' => '367dcba38d6e1977be014dc4b22f47a484dac7fb',
|
467 |
-
),
|
468 |
-
'sebastian/resource-operations' =>
|
469 |
-
array (
|
470 |
-
'pretty_version' => '1.0.0',
|
471 |
-
'version' => '1.0.0.0',
|
472 |
-
'aliases' =>
|
473 |
-
array (
|
474 |
-
),
|
475 |
-
'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
|
476 |
-
),
|
477 |
-
'sebastian/version' =>
|
478 |
-
array (
|
479 |
-
'pretty_version' => '2.0.1',
|
480 |
-
'version' => '2.0.1.0',
|
481 |
-
'aliases' =>
|
482 |
-
array (
|
483 |
-
),
|
484 |
-
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
485 |
-
),
|
486 |
'shama/baton' =>
|
487 |
array (
|
488 |
'replaced' =>
|
@@ -490,161 +67,10 @@ private static $installed = array (
|
|
490 |
0 => '*',
|
491 |
),
|
492 |
),
|
493 |
-
'squizlabs/php_codesniffer' =>
|
494 |
-
array (
|
495 |
-
'pretty_version' => '3.5.8',
|
496 |
-
'version' => '3.5.8.0',
|
497 |
-
'aliases' =>
|
498 |
-
array (
|
499 |
-
),
|
500 |
-
'reference' => '9d583721a7157ee997f235f327de038e7ea6dac4',
|
501 |
-
),
|
502 |
-
'symfony/config' =>
|
503 |
-
array (
|
504 |
-
'pretty_version' => 'v3.3.6',
|
505 |
-
'version' => '3.3.6.0',
|
506 |
-
'aliases' =>
|
507 |
-
array (
|
508 |
-
),
|
509 |
-
'reference' => '54ee12b0dd60f294132cabae6f5da9573d2e5297',
|
510 |
-
),
|
511 |
-
'symfony/console' =>
|
512 |
-
array (
|
513 |
-
'pretty_version' => 'v3.3.6',
|
514 |
-
'version' => '3.3.6.0',
|
515 |
-
'aliases' =>
|
516 |
-
array (
|
517 |
-
),
|
518 |
-
'reference' => 'b0878233cb5c4391347e5495089c7af11b8e6201',
|
519 |
-
),
|
520 |
-
'symfony/debug' =>
|
521 |
-
array (
|
522 |
-
'pretty_version' => 'v3.3.6',
|
523 |
-
'version' => '3.3.6.0',
|
524 |
-
'aliases' =>
|
525 |
-
array (
|
526 |
-
),
|
527 |
-
'reference' => '7c13ae8ce1e2adbbd574fc39de7be498e1284e13',
|
528 |
-
),
|
529 |
-
'symfony/filesystem' =>
|
530 |
-
array (
|
531 |
-
'pretty_version' => 'v3.3.6',
|
532 |
-
'version' => '3.3.6.0',
|
533 |
-
'aliases' =>
|
534 |
-
array (
|
535 |
-
),
|
536 |
-
'reference' => '427987eb4eed764c3b6e38d52a0f87989e010676',
|
537 |
-
),
|
538 |
-
'symfony/polyfill-ctype' =>
|
539 |
-
array (
|
540 |
-
'pretty_version' => 'v1.19.0',
|
541 |
-
'version' => '1.19.0.0',
|
542 |
-
'aliases' =>
|
543 |
-
array (
|
544 |
-
),
|
545 |
-
'reference' => 'aed596913b70fae57be53d86faa2e9ef85a2297b',
|
546 |
-
),
|
547 |
-
'symfony/polyfill-intl-idn' =>
|
548 |
-
array (
|
549 |
-
'pretty_version' => 'v1.19.0',
|
550 |
-
'version' => '1.19.0.0',
|
551 |
-
'aliases' =>
|
552 |
-
array (
|
553 |
-
),
|
554 |
-
'reference' => '4ad5115c0f5d5172a9fe8147675ec6de266d8826',
|
555 |
-
),
|
556 |
-
'symfony/polyfill-intl-normalizer' =>
|
557 |
-
array (
|
558 |
-
'pretty_version' => 'v1.19.0',
|
559 |
-
'version' => '1.19.0.0',
|
560 |
-
'aliases' =>
|
561 |
-
array (
|
562 |
-
),
|
563 |
-
'reference' => '8db0ae7936b42feb370840cf24de1a144fb0ef27',
|
564 |
-
),
|
565 |
-
'symfony/polyfill-mbstring' =>
|
566 |
-
array (
|
567 |
-
'pretty_version' => 'v1.13.1',
|
568 |
-
'version' => '1.13.1.0',
|
569 |
-
'aliases' =>
|
570 |
-
array (
|
571 |
-
),
|
572 |
-
'reference' => '7b4aab9743c30be783b73de055d24a39cf4b954f',
|
573 |
-
),
|
574 |
-
'symfony/polyfill-php70' =>
|
575 |
-
array (
|
576 |
-
'pretty_version' => 'v1.19.0',
|
577 |
-
'version' => '1.19.0.0',
|
578 |
-
'aliases' =>
|
579 |
-
array (
|
580 |
-
),
|
581 |
-
'reference' => '3fe414077251a81a1b15b1c709faf5c2fbae3d4e',
|
582 |
-
),
|
583 |
-
'symfony/polyfill-php72' =>
|
584 |
-
array (
|
585 |
-
'pretty_version' => 'v1.19.0',
|
586 |
-
'version' => '1.19.0.0',
|
587 |
-
'aliases' =>
|
588 |
-
array (
|
589 |
-
),
|
590 |
-
'reference' => 'beecef6b463b06954638f02378f52496cb84bacc',
|
591 |
-
),
|
592 |
-
'symfony/stopwatch' =>
|
593 |
-
array (
|
594 |
-
'pretty_version' => 'v3.3.6',
|
595 |
-
'version' => '3.3.6.0',
|
596 |
-
'aliases' =>
|
597 |
-
array (
|
598 |
-
),
|
599 |
-
'reference' => '602a15299dc01556013b07167d4f5d3a60e90d15',
|
600 |
-
),
|
601 |
-
'symfony/yaml' =>
|
602 |
-
array (
|
603 |
-
'pretty_version' => 'v3.3.6',
|
604 |
-
'version' => '3.3.6.0',
|
605 |
-
'aliases' =>
|
606 |
-
array (
|
607 |
-
),
|
608 |
-
'reference' => 'ddc23324e6cfe066f3dd34a37ff494fa80b617ed',
|
609 |
-
),
|
610 |
-
'theseer/tokenizer' =>
|
611 |
-
array (
|
612 |
-
'pretty_version' => '1.1.3',
|
613 |
-
'version' => '1.1.3.0',
|
614 |
-
'aliases' =>
|
615 |
-
array (
|
616 |
-
),
|
617 |
-
'reference' => '11336f6f84e16a720dae9d8e6ed5019efa85a0f9',
|
618 |
-
),
|
619 |
-
'webmozart/assert' =>
|
620 |
-
array (
|
621 |
-
'pretty_version' => '1.9.1',
|
622 |
-
'version' => '1.9.1.0',
|
623 |
-
'aliases' =>
|
624 |
-
array (
|
625 |
-
),
|
626 |
-
'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
|
627 |
-
),
|
628 |
-
'wp-coding-standards/wpcs' =>
|
629 |
-
array (
|
630 |
-
'pretty_version' => '2.3.0',
|
631 |
-
'version' => '2.3.0.0',
|
632 |
-
'aliases' =>
|
633 |
-
array (
|
634 |
-
),
|
635 |
-
'reference' => '7da1894633f168fe244afc6de00d141f27517b62',
|
636 |
-
),
|
637 |
-
'xrstf/composer-php52' =>
|
638 |
-
array (
|
639 |
-
'pretty_version' => 'v1.0.20',
|
640 |
-
'version' => '1.0.20.0',
|
641 |
-
'aliases' =>
|
642 |
-
array (
|
643 |
-
),
|
644 |
-
'reference' => 'bd41459d5e27df8d33057842b32377c39e97a5a8',
|
645 |
-
),
|
646 |
),
|
647 |
);
|
|
|
|
|
648 |
|
649 |
|
650 |
|
@@ -654,7 +80,17 @@ private static $installed = array (
|
|
654 |
|
655 |
public static function getInstalledPackages()
|
656 |
{
|
657 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
}
|
659 |
|
660 |
|
@@ -667,7 +103,13 @@ return array_keys(self::$installed['versions']);
|
|
667 |
|
668 |
public static function isInstalled($packageName)
|
669 |
{
|
670 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
671 |
}
|
672 |
|
673 |
|
@@ -702,42 +144,50 @@ return $provided->matches($constraint);
|
|
702 |
|
703 |
public static function getVersionRanges($packageName)
|
704 |
{
|
705 |
-
|
706 |
-
|
|
|
707 |
}
|
708 |
|
709 |
$ranges = array();
|
710 |
-
if (isset(
|
711 |
-
$ranges[] =
|
712 |
}
|
713 |
-
if (array_key_exists('aliases',
|
714 |
-
$ranges = array_merge($ranges,
|
715 |
}
|
716 |
-
if (array_key_exists('replaced',
|
717 |
-
$ranges = array_merge($ranges,
|
718 |
}
|
719 |
-
if (array_key_exists('provided',
|
720 |
-
$ranges = array_merge($ranges,
|
721 |
}
|
722 |
|
723 |
return implode(' || ', $ranges);
|
724 |
}
|
725 |
|
|
|
|
|
|
|
726 |
|
727 |
|
728 |
|
729 |
|
730 |
public static function getVersion($packageName)
|
731 |
{
|
732 |
-
|
733 |
-
|
|
|
734 |
}
|
735 |
|
736 |
-
if (!isset(
|
737 |
return null;
|
738 |
}
|
739 |
|
740 |
-
return
|
|
|
|
|
|
|
741 |
}
|
742 |
|
743 |
|
@@ -746,15 +196,19 @@ return self::$installed['versions'][$packageName]['version'];
|
|
746 |
|
747 |
public static function getPrettyVersion($packageName)
|
748 |
{
|
749 |
-
|
750 |
-
|
|
|
751 |
}
|
752 |
|
753 |
-
if (!isset(
|
754 |
return null;
|
755 |
}
|
756 |
|
757 |
-
return
|
|
|
|
|
|
|
758 |
}
|
759 |
|
760 |
|
@@ -763,15 +217,19 @@ return self::$installed['versions'][$packageName]['pretty_version'];
|
|
763 |
|
764 |
public static function getReference($packageName)
|
765 |
{
|
766 |
-
|
767 |
-
|
|
|
768 |
}
|
769 |
|
770 |
-
if (!isset(
|
771 |
return null;
|
772 |
}
|
773 |
|
774 |
-
return
|
|
|
|
|
|
|
775 |
}
|
776 |
|
777 |
|
@@ -780,7 +238,9 @@ return self::$installed['versions'][$packageName]['reference'];
|
|
780 |
|
781 |
public static function getRootPackage()
|
782 |
{
|
783 |
-
|
|
|
|
|
784 |
}
|
785 |
|
786 |
|
@@ -815,5 +275,33 @@ return self::$installed;
|
|
815 |
public static function reload($data)
|
816 |
{
|
817 |
self::$installed = $data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
818 |
}
|
819 |
}
|
12 |
|
13 |
namespace Composer;
|
14 |
|
15 |
+
use Composer\Autoload\ClassLoader;
|
16 |
use Composer\Semver\VersionParser;
|
17 |
|
18 |
|
25 |
private static $installed = array (
|
26 |
'root' =>
|
27 |
array (
|
28 |
+
'pretty_version' => '4.6.0',
|
29 |
+
'version' => '4.6.0.0',
|
30 |
'aliases' =>
|
31 |
array (
|
32 |
),
|
33 |
+
'reference' => 'ca38d58218d3a657bace3ae74192ad7ef28de1ff',
|
34 |
'name' => 'mihdan/cyr2lat',
|
35 |
),
|
36 |
'versions' =>
|
37 |
array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
'composer/installers' =>
|
39 |
array (
|
40 |
'pretty_version' => 'v1.9.0',
|
44 |
),
|
45 |
'reference' => 'b93bcf0fa1fccb0b7d176b0967d969691cd74cca',
|
46 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
'mihdan/cyr2lat' =>
|
48 |
array (
|
49 |
+
'pretty_version' => '4.6.0',
|
50 |
+
'version' => '4.6.0.0',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
'aliases' =>
|
52 |
array (
|
53 |
),
|
54 |
+
'reference' => 'ca38d58218d3a657bace3ae74192ad7ef28de1ff',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
),
|
56 |
'roundcube/plugin-installer' =>
|
57 |
array (
|
60 |
0 => '*',
|
61 |
),
|
62 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
'shama/baton' =>
|
64 |
array (
|
65 |
'replaced' =>
|
67 |
0 => '*',
|
68 |
),
|
69 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
),
|
71 |
);
|
72 |
+
private static $canGetVendors;
|
73 |
+
private static $installedByVendor = array();
|
74 |
|
75 |
|
76 |
|
80 |
|
81 |
public static function getInstalledPackages()
|
82 |
{
|
83 |
+
$packages = array();
|
84 |
+
foreach (self::getInstalled() as $installed) {
|
85 |
+
$packages[] = array_keys($installed['versions']);
|
86 |
+
}
|
87 |
+
|
88 |
+
|
89 |
+
if (1 === \count($packages)) {
|
90 |
+
return $packages[0];
|
91 |
+
}
|
92 |
+
|
93 |
+
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
94 |
}
|
95 |
|
96 |
|
103 |
|
104 |
public static function isInstalled($packageName)
|
105 |
{
|
106 |
+
foreach (self::getInstalled() as $installed) {
|
107 |
+
if (isset($installed['versions'][$packageName])) {
|
108 |
+
return true;
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
return false;
|
113 |
}
|
114 |
|
115 |
|
144 |
|
145 |
public static function getVersionRanges($packageName)
|
146 |
{
|
147 |
+
foreach (self::getInstalled() as $installed) {
|
148 |
+
if (!isset($installed['versions'][$packageName])) {
|
149 |
+
continue;
|
150 |
}
|
151 |
|
152 |
$ranges = array();
|
153 |
+
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
154 |
+
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
155 |
}
|
156 |
+
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
157 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
158 |
}
|
159 |
+
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
160 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
161 |
}
|
162 |
+
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
163 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
164 |
}
|
165 |
|
166 |
return implode(' || ', $ranges);
|
167 |
}
|
168 |
|
169 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
170 |
+
}
|
171 |
+
|
172 |
|
173 |
|
174 |
|
175 |
|
176 |
public static function getVersion($packageName)
|
177 |
{
|
178 |
+
foreach (self::getInstalled() as $installed) {
|
179 |
+
if (!isset($installed['versions'][$packageName])) {
|
180 |
+
continue;
|
181 |
}
|
182 |
|
183 |
+
if (!isset($installed['versions'][$packageName]['version'])) {
|
184 |
return null;
|
185 |
}
|
186 |
|
187 |
+
return $installed['versions'][$packageName]['version'];
|
188 |
+
}
|
189 |
+
|
190 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
191 |
}
|
192 |
|
193 |
|
196 |
|
197 |
public static function getPrettyVersion($packageName)
|
198 |
{
|
199 |
+
foreach (self::getInstalled() as $installed) {
|
200 |
+
if (!isset($installed['versions'][$packageName])) {
|
201 |
+
continue;
|
202 |
}
|
203 |
|
204 |
+
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
205 |
return null;
|
206 |
}
|
207 |
|
208 |
+
return $installed['versions'][$packageName]['pretty_version'];
|
209 |
+
}
|
210 |
+
|
211 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
212 |
}
|
213 |
|
214 |
|
217 |
|
218 |
public static function getReference($packageName)
|
219 |
{
|
220 |
+
foreach (self::getInstalled() as $installed) {
|
221 |
+
if (!isset($installed['versions'][$packageName])) {
|
222 |
+
continue;
|
223 |
}
|
224 |
|
225 |
+
if (!isset($installed['versions'][$packageName]['reference'])) {
|
226 |
return null;
|
227 |
}
|
228 |
|
229 |
+
return $installed['versions'][$packageName]['reference'];
|
230 |
+
}
|
231 |
+
|
232 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
233 |
}
|
234 |
|
235 |
|
238 |
|
239 |
public static function getRootPackage()
|
240 |
{
|
241 |
+
$installed = self::getInstalled();
|
242 |
+
|
243 |
+
return $installed[0]['root'];
|
244 |
}
|
245 |
|
246 |
|
275 |
public static function reload($data)
|
276 |
{
|
277 |
self::$installed = $data;
|
278 |
+
self::$installedByVendor = array();
|
279 |
+
}
|
280 |
+
|
281 |
+
|
282 |
+
|
283 |
+
|
284 |
+
private static function getInstalled()
|
285 |
+
{
|
286 |
+
if (null === self::$canGetVendors) {
|
287 |
+
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
288 |
+
}
|
289 |
+
|
290 |
+
$installed = array();
|
291 |
+
|
292 |
+
if (self::$canGetVendors) {
|
293 |
+
|
294 |
+
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
295 |
+
if (isset(self::$installedByVendor[$vendorDir])) {
|
296 |
+
$installed[] = self::$installedByVendor[$vendorDir];
|
297 |
+
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
298 |
+
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
299 |
+
}
|
300 |
+
}
|
301 |
+
}
|
302 |
+
|
303 |
+
$installed[] = self::$installed;
|
304 |
+
|
305 |
+
return $installed;
|
306 |
}
|
307 |
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -6,15 +6,12 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
|
10 |
-
'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
|
11 |
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
12 |
'Cyr_To_Lat\\ACF' => $baseDir . '/classes/class-acf.php',
|
13 |
'Cyr_To_Lat\\Admin_Notices' => $baseDir . '/classes/class-admin-notices.php',
|
14 |
'Cyr_To_Lat\\Conversion_Process' => $baseDir . '/classes/background-processes/class-conversion-process.php',
|
15 |
'Cyr_To_Lat\\Conversion_Tables' => $baseDir . '/classes/class-conversion-tables.php',
|
16 |
'Cyr_To_Lat\\Converter' => $baseDir . '/classes/class-converter.php',
|
17 |
-
'Cyr_To_Lat\\Cyr_To_Lat_TestCase' => $baseDir . '/tests/phpunit/classes/class-cyr-to-lat-testcase.php',
|
18 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Async_Request' => $baseDir . '/lib/wp-background-processing/class-wp-async-request.php',
|
19 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Background_Process' => $baseDir . '/lib/wp-background-processing/class-wp-background-process.php',
|
20 |
'Cyr_To_Lat\\Main' => $baseDir . '/classes/class-main.php',
|
@@ -24,624 +21,4 @@ return array(
|
|
24 |
'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => $baseDir . '/lib/polyfill-mbstring/Mbstring.php',
|
25 |
'Cyr_To_Lat\\Term_Conversion_Process' => $baseDir . '/classes/background-processes/class-term-conversion-process.php',
|
26 |
'Cyr_To_Lat\\WP_CLI' => $baseDir . '/classes/class-wp-cli.php',
|
27 |
-
'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
|
28 |
-
'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php',
|
29 |
-
'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
|
30 |
-
'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
|
31 |
-
'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
|
32 |
-
'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
|
33 |
-
'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
|
34 |
-
'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
|
35 |
-
'Hamcrest\\Arrays\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
|
36 |
-
'Hamcrest\\Arrays\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
|
37 |
-
'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
|
38 |
-
'Hamcrest\\Arrays\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
|
39 |
-
'Hamcrest\\Arrays\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
|
40 |
-
'Hamcrest\\Arrays\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
|
41 |
-
'Hamcrest\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
|
42 |
-
'Hamcrest\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
|
43 |
-
'Hamcrest\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
|
44 |
-
'Hamcrest\\Collection\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
|
45 |
-
'Hamcrest\\Collection\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
|
46 |
-
'Hamcrest\\Core\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
|
47 |
-
'Hamcrest\\Core\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
|
48 |
-
'Hamcrest\\Core\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
|
49 |
-
'Hamcrest\\Core\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
|
50 |
-
'Hamcrest\\Core\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
|
51 |
-
'Hamcrest\\Core\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
|
52 |
-
'Hamcrest\\Core\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
|
53 |
-
'Hamcrest\\Core\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
|
54 |
-
'Hamcrest\\Core\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
|
55 |
-
'Hamcrest\\Core\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
|
56 |
-
'Hamcrest\\Core\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
|
57 |
-
'Hamcrest\\Core\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
|
58 |
-
'Hamcrest\\Core\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
|
59 |
-
'Hamcrest\\Core\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
|
60 |
-
'Hamcrest\\Core\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
|
61 |
-
'Hamcrest\\Core\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
|
62 |
-
'Hamcrest\\Core\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
|
63 |
-
'Hamcrest\\Core\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
|
64 |
-
'Hamcrest\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
|
65 |
-
'Hamcrest\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
|
66 |
-
'Hamcrest\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
|
67 |
-
'Hamcrest\\Internal\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
|
68 |
-
'Hamcrest\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
|
69 |
-
'Hamcrest\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
|
70 |
-
'Hamcrest\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
|
71 |
-
'Hamcrest\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
|
72 |
-
'Hamcrest\\Number\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
|
73 |
-
'Hamcrest\\Number\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
|
74 |
-
'Hamcrest\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
|
75 |
-
'Hamcrest\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
|
76 |
-
'Hamcrest\\Text\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
|
77 |
-
'Hamcrest\\Text\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
|
78 |
-
'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
|
79 |
-
'Hamcrest\\Text\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
|
80 |
-
'Hamcrest\\Text\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
|
81 |
-
'Hamcrest\\Text\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
|
82 |
-
'Hamcrest\\Text\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
|
83 |
-
'Hamcrest\\Text\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
|
84 |
-
'Hamcrest\\Text\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
|
85 |
-
'Hamcrest\\Text\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
|
86 |
-
'Hamcrest\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
|
87 |
-
'Hamcrest\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
|
88 |
-
'Hamcrest\\Type\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
|
89 |
-
'Hamcrest\\Type\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
|
90 |
-
'Hamcrest\\Type\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
|
91 |
-
'Hamcrest\\Type\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
|
92 |
-
'Hamcrest\\Type\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
|
93 |
-
'Hamcrest\\Type\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
|
94 |
-
'Hamcrest\\Type\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
|
95 |
-
'Hamcrest\\Type\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
|
96 |
-
'Hamcrest\\Type\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
|
97 |
-
'Hamcrest\\Type\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
|
98 |
-
'Hamcrest\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
|
99 |
-
'Hamcrest\\Xml\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
|
100 |
-
'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
|
101 |
-
'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
|
102 |
-
'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
|
103 |
-
'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
|
104 |
-
'PHPUnit\\Framework\\BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
|
105 |
-
'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
|
106 |
-
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
107 |
-
'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
108 |
-
'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
109 |
-
'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
110 |
-
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
111 |
-
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
112 |
-
'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
113 |
-
'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
114 |
-
'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
115 |
-
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
116 |
-
'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
117 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
118 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
119 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',
|
120 |
-
'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
121 |
-
'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
122 |
-
'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
123 |
-
'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
124 |
-
'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
125 |
-
'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
126 |
-
'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
127 |
-
'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
128 |
-
'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
129 |
-
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
130 |
-
'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
131 |
-
'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
132 |
-
'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
133 |
-
'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
134 |
-
'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
135 |
-
'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
136 |
-
'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
137 |
-
'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
138 |
-
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
139 |
-
'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
140 |
-
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',
|
141 |
-
'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',
|
142 |
-
'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',
|
143 |
-
'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',
|
144 |
-
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
145 |
-
'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',
|
146 |
-
'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
147 |
-
'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
148 |
-
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
149 |
-
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',
|
150 |
-
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
151 |
-
'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
152 |
-
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
153 |
-
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
|
154 |
-
'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
155 |
-
'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
156 |
-
'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
157 |
-
'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
158 |
-
'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
159 |
-
'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',
|
160 |
-
'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
161 |
-
'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
|
162 |
-
'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
163 |
-
'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
164 |
-
'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
|
165 |
-
'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
|
166 |
-
'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
|
167 |
-
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php',
|
168 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php',
|
169 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php',
|
170 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Match.php',
|
171 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php',
|
172 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php',
|
173 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php',
|
174 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php',
|
175 |
-
'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php',
|
176 |
-
'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Generator.php',
|
177 |
-
'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php',
|
178 |
-
'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php',
|
179 |
-
'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php',
|
180 |
-
'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php',
|
181 |
-
'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invokable.php',
|
182 |
-
'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher.php',
|
183 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php',
|
184 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php',
|
185 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php',
|
186 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php',
|
187 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php',
|
188 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php',
|
189 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php',
|
190 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php',
|
191 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php',
|
192 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php',
|
193 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php',
|
194 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php',
|
195 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php',
|
196 |
-
'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockBuilder.php',
|
197 |
-
'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php',
|
198 |
-
'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php',
|
199 |
-
'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub.php',
|
200 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php',
|
201 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php',
|
202 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php',
|
203 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php',
|
204 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php',
|
205 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php',
|
206 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php',
|
207 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php',
|
208 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php',
|
209 |
-
'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Verifiable.php',
|
210 |
-
'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',
|
211 |
-
'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',
|
212 |
-
'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
|
213 |
-
'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
214 |
-
'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
215 |
-
'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
216 |
-
'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
|
217 |
-
'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
|
218 |
-
'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',
|
219 |
-
'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
|
220 |
-
'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
|
221 |
-
'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
222 |
-
'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
|
223 |
-
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
224 |
-
'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
|
225 |
-
'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
226 |
-
'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
227 |
-
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
|
228 |
-
'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',
|
229 |
-
'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
230 |
-
'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
231 |
-
'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
|
232 |
-
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
233 |
-
'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
234 |
-
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
235 |
-
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
236 |
-
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
237 |
-
'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
238 |
-
'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
239 |
-
'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
240 |
-
'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
|
241 |
-
'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
|
242 |
-
'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
243 |
-
'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
244 |
-
'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
|
245 |
-
'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
|
246 |
-
'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
247 |
-
'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
248 |
-
'PHPUnit\\Util\\Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
|
249 |
-
'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
|
250 |
-
'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
|
251 |
-
'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
|
252 |
-
'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
|
253 |
-
'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
|
254 |
-
'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php',
|
255 |
-
'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
256 |
-
'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
257 |
-
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
258 |
-
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
259 |
-
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
260 |
-
'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
|
261 |
-
'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
262 |
-
'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
|
263 |
-
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
264 |
-
'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
265 |
-
'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
266 |
-
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
267 |
-
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
268 |
-
'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
269 |
-
'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
|
270 |
-
'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php',
|
271 |
-
'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
272 |
-
'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockObject.php',
|
273 |
-
'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
|
274 |
-
'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
275 |
-
'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
276 |
-
'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
277 |
-
'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
278 |
-
'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
279 |
-
'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
280 |
-
'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
281 |
-
'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
282 |
-
'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
283 |
-
'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
284 |
-
'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
285 |
-
'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
286 |
-
'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
287 |
-
'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
288 |
-
'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
289 |
-
'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
290 |
-
'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
291 |
-
'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
292 |
-
'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
293 |
-
'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
294 |
-
'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
295 |
-
'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
296 |
-
'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
297 |
-
'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
298 |
-
'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
299 |
-
'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
300 |
-
'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
301 |
-
'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
302 |
-
'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
303 |
-
'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
304 |
-
'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
305 |
-
'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
306 |
-
'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
307 |
-
'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
308 |
-
'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
309 |
-
'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
310 |
-
'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
311 |
-
'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
312 |
-
'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
313 |
-
'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
314 |
-
'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
315 |
-
'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
316 |
-
'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
317 |
-
'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
318 |
-
'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
319 |
-
'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
320 |
-
'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
321 |
-
'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
322 |
-
'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
323 |
-
'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
324 |
-
'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
325 |
-
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
326 |
-
'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
327 |
-
'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
328 |
-
'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
329 |
-
'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
330 |
-
'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
331 |
-
'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
332 |
-
'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
333 |
-
'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
334 |
-
'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
335 |
-
'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
336 |
-
'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
337 |
-
'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
338 |
-
'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
339 |
-
'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
340 |
-
'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
341 |
-
'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
342 |
-
'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
343 |
-
'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
344 |
-
'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
345 |
-
'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
346 |
-
'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
347 |
-
'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
348 |
-
'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
349 |
-
'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
350 |
-
'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
351 |
-
'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
352 |
-
'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
353 |
-
'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
354 |
-
'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
355 |
-
'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
356 |
-
'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
357 |
-
'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
358 |
-
'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
359 |
-
'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
360 |
-
'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
361 |
-
'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
362 |
-
'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
363 |
-
'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
364 |
-
'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
365 |
-
'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
366 |
-
'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
367 |
-
'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
368 |
-
'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
369 |
-
'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
370 |
-
'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
371 |
-
'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
372 |
-
'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
373 |
-
'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
374 |
-
'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
375 |
-
'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
376 |
-
'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
377 |
-
'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
378 |
-
'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
379 |
-
'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
380 |
-
'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
381 |
-
'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
382 |
-
'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
383 |
-
'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
384 |
-
'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
385 |
-
'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
386 |
-
'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
387 |
-
'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
388 |
-
'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
389 |
-
'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
390 |
-
'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
391 |
-
'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
392 |
-
'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
393 |
-
'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
394 |
-
'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
395 |
-
'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
396 |
-
'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
397 |
-
'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
398 |
-
'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
399 |
-
'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
400 |
-
'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
401 |
-
'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
402 |
-
'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
403 |
-
'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
404 |
-
'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
405 |
-
'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
406 |
-
'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
407 |
-
'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
408 |
-
'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
409 |
-
'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
410 |
-
'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
411 |
-
'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
412 |
-
'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
413 |
-
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
414 |
-
'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
415 |
-
'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
416 |
-
'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
417 |
-
'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
418 |
-
'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
419 |
-
'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
420 |
-
'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
421 |
-
'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
422 |
-
'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
423 |
-
'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
424 |
-
'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
425 |
-
'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
426 |
-
'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
427 |
-
'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
428 |
-
'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
429 |
-
'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
430 |
-
'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
431 |
-
'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
432 |
-
'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
433 |
-
'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
434 |
-
'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
435 |
-
'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
436 |
-
'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
437 |
-
'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
438 |
-
'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
439 |
-
'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
440 |
-
'PHP_Token_SUPER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
441 |
-
'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
442 |
-
'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',
|
443 |
-
'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
|
444 |
-
'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
445 |
-
'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
446 |
-
'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
447 |
-
'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
448 |
-
'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
449 |
-
'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
450 |
-
'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
451 |
-
'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
452 |
-
'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
453 |
-
'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
454 |
-
'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
455 |
-
'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
456 |
-
'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
457 |
-
'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
458 |
-
'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
459 |
-
'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
460 |
-
'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
461 |
-
'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
462 |
-
'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
463 |
-
'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
464 |
-
'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
465 |
-
'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
466 |
-
'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
467 |
-
'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
468 |
-
'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
469 |
-
'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
470 |
-
'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
471 |
-
'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
472 |
-
'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
|
473 |
-
'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
|
474 |
-
'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',
|
475 |
-
'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',
|
476 |
-
'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php',
|
477 |
-
'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php',
|
478 |
-
'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
479 |
-
'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php',
|
480 |
-
'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
481 |
-
'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php',
|
482 |
-
'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
483 |
-
'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
484 |
-
'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php',
|
485 |
-
'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php',
|
486 |
-
'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
487 |
-
'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php',
|
488 |
-
'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
489 |
-
'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
490 |
-
'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php',
|
491 |
-
'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php',
|
492 |
-
'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php',
|
493 |
-
'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php',
|
494 |
-
'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
495 |
-
'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php',
|
496 |
-
'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
497 |
-
'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
498 |
-
'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
499 |
-
'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
500 |
-
'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php',
|
501 |
-
'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php',
|
502 |
-
'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php',
|
503 |
-
'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php',
|
504 |
-
'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
505 |
-
'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
506 |
-
'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php',
|
507 |
-
'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
508 |
-
'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
509 |
-
'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php',
|
510 |
-
'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
511 |
-
'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',
|
512 |
-
'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
513 |
-
'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',
|
514 |
-
'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',
|
515 |
-
'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
516 |
-
'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
517 |
-
'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php',
|
518 |
-
'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php',
|
519 |
-
'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
520 |
-
'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php',
|
521 |
-
'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php',
|
522 |
-
'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php',
|
523 |
-
'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/AbstractVersionConstraint.php',
|
524 |
-
'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/AndVersionConstraintGroup.php',
|
525 |
-
'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/AnyVersionConstraint.php',
|
526 |
-
'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/ExactVersionConstraint.php',
|
527 |
-
'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/Exception.php',
|
528 |
-
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php',
|
529 |
-
'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/InvalidVersionException.php',
|
530 |
-
'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/OrVersionConstraintGroup.php',
|
531 |
-
'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',
|
532 |
-
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php',
|
533 |
-
'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorVersionConstraint.php',
|
534 |
-
'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/UnsupportedVersionConstraintException.php',
|
535 |
-
'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php',
|
536 |
-
'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/VersionConstraint.php',
|
537 |
-
'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',
|
538 |
-
'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',
|
539 |
-
'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',
|
540 |
-
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
541 |
-
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
542 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
543 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
|
544 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
545 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
546 |
-
'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
547 |
-
'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',
|
548 |
-
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
549 |
-
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
550 |
-
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
551 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
552 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
553 |
-
'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
|
554 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
555 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
556 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
557 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
558 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
559 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
560 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
561 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
562 |
-
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
563 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',
|
564 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
565 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
566 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
567 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
568 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
569 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
570 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
571 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
572 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
573 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
574 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
575 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
576 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
577 |
-
'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
578 |
-
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
579 |
-
'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',
|
580 |
-
'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',
|
581 |
-
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
582 |
-
'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
|
583 |
-
'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
|
584 |
-
'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
|
585 |
-
'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
|
586 |
-
'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
|
587 |
-
'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
|
588 |
-
'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
|
589 |
-
'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
|
590 |
-
'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
|
591 |
-
'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
|
592 |
-
'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
|
593 |
-
'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
|
594 |
-
'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
|
595 |
-
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
596 |
-
'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
|
597 |
-
'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
|
598 |
-
'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
|
599 |
-
'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
|
600 |
-
'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php',
|
601 |
-
'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
602 |
-
'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
|
603 |
-
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
604 |
-
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
605 |
-
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
606 |
-
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
607 |
-
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
608 |
-
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
609 |
-
'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
|
610 |
-
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
611 |
-
'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
|
612 |
-
'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php',
|
613 |
-
'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
|
614 |
-
'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
|
615 |
-
'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
|
616 |
-
'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
|
617 |
-
'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php',
|
618 |
-
'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
|
619 |
-
'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
620 |
-
'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
|
621 |
-
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',
|
622 |
-
'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',
|
623 |
-
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
624 |
-
'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php',
|
625 |
-
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
626 |
-
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php',
|
627 |
-
'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
|
628 |
-
'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
|
629 |
-
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
630 |
-
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
|
631 |
-
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
|
632 |
-
'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
|
633 |
-
'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
|
634 |
-
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
|
635 |
-
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',
|
636 |
-
'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',
|
637 |
-
'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php',
|
638 |
-
'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php',
|
639 |
-
'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php',
|
640 |
-
'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php',
|
641 |
-
'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php',
|
642 |
-
'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
|
643 |
-
'WP_CLI' => $baseDir . '/tests/phpunit/stubs/class-wp-cli.php',
|
644 |
-
'WP_CLI_Command' => $baseDir . '/tests/phpunit/stubs/class-wp-cli-command.php',
|
645 |
-
'WP_Mock' => $vendorDir . '/10up/wp_mock/php/WP_Mock.php',
|
646 |
-
'cli\\progress\\Bar' => $baseDir . '/tests/phpunit/stubs/class-bar.php',
|
647 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
9 |
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
10 |
'Cyr_To_Lat\\ACF' => $baseDir . '/classes/class-acf.php',
|
11 |
'Cyr_To_Lat\\Admin_Notices' => $baseDir . '/classes/class-admin-notices.php',
|
12 |
'Cyr_To_Lat\\Conversion_Process' => $baseDir . '/classes/background-processes/class-conversion-process.php',
|
13 |
'Cyr_To_Lat\\Conversion_Tables' => $baseDir . '/classes/class-conversion-tables.php',
|
14 |
'Cyr_To_Lat\\Converter' => $baseDir . '/classes/class-converter.php',
|
|
|
15 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Async_Request' => $baseDir . '/lib/wp-background-processing/class-wp-async-request.php',
|
16 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Background_Process' => $baseDir . '/lib/wp-background-processing/class-wp-background-process.php',
|
17 |
'Cyr_To_Lat\\Main' => $baseDir . '/classes/class-main.php',
|
21 |
'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => $baseDir . '/lib/polyfill-mbstring/Mbstring.php',
|
22 |
'Cyr_To_Lat\\Term_Conversion_Process' => $baseDir . '/classes/background-processes/class-term-conversion-process.php',
|
23 |
'Cyr_To_Lat\\WP_CLI' => $baseDir . '/classes/class-wp-cli.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
);
|
vendor/composer/autoload_files.php
CHANGED
@@ -6,18 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
10 |
-
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
11 |
-
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
12 |
-
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
13 |
-
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
14 |
-
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
15 |
-
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
|
16 |
-
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
17 |
-
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
18 |
-
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
19 |
-
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
20 |
-
'c9c849c9bb3823996cf7bfc9113fa087' => $vendorDir . '/lucatume/function-mocker/src/shims.php',
|
21 |
-
'c9175f6b4293b67ed66f5797215938f2' => $vendorDir . '/lucatume/function-mocker/src/functions.php',
|
22 |
'344a0f93a05b8ca362c22e39586db500' => $baseDir . '/lib/polyfill-mbstring/bootstrap.php',
|
23 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
'344a0f93a05b8ca362c22e39586db500' => $baseDir . '/lib/polyfill-mbstring/bootstrap.php',
|
10 |
);
|
vendor/composer/autoload_namespaces.php
CHANGED
@@ -6,9 +6,4 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
|
10 |
-
'tad_' => array($vendorDir . '/lucatume/args/src'),
|
11 |
-
'tad\\FunctionMocker' => array($vendorDir . '/lucatume/function-mocker/src'),
|
12 |
-
'Mockery' => array($vendorDir . '/mockery/mockery/library'),
|
13 |
-
'Arg' => array($vendorDir . '/lucatume/args/src'),
|
14 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
|
|
|
|
|
|
9 |
);
|
vendor/composer/autoload_psr4.php
CHANGED
@@ -6,29 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
|
10 |
-
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
11 |
-
'WP_Mock\\' => array($vendorDir . '/10up/wp_mock/php/WP_Mock'),
|
12 |
-
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
|
13 |
-
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
|
14 |
-
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
15 |
-
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
|
16 |
-
'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
|
17 |
-
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
|
18 |
-
'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
|
19 |
-
'Symfony\\Component\\Stopwatch\\' => array($vendorDir . '/symfony/stopwatch'),
|
20 |
-
'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'),
|
21 |
-
'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'),
|
22 |
-
'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
|
23 |
-
'Symfony\\Component\\Config\\' => array($vendorDir . '/symfony/config'),
|
24 |
-
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
|
25 |
-
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
|
26 |
-
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
|
27 |
-
'PhpCoveralls\\' => array($vendorDir . '/php-coveralls/php-coveralls/src'),
|
28 |
-
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
|
29 |
-
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
|
30 |
-
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
|
31 |
-
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
32 |
-
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
|
33 |
'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
|
34 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
|
10 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit7b83804bec66524f8ede823838ffb903
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
spl_autoload_register(array('
|
26 |
-
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
-
call_user_func(\Composer\Autoload\
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit7b83804bec66524f8ede823838ffb903
|
|
51 |
$loader->register(true);
|
52 |
|
53 |
if ($useStaticLoader) {
|
54 |
-
$includeFiles = Composer\Autoload\
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
-
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
-
function
|
67 |
{
|
68 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
69 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit754f340405ab0e2a93b757c18525c113
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
spl_autoload_register(array('ComposerAutoloaderInit754f340405ab0e2a93b757c18525c113', 'loadClassLoader'), true, true);
|
26 |
+
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit754f340405ab0e2a93b757c18525c113', 'loadClassLoader'));
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit754f340405ab0e2a93b757c18525c113::getInitializer($loader));
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
51 |
$loader->register(true);
|
52 |
|
53 |
if ($useStaticLoader) {
|
54 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit754f340405ab0e2a93b757c18525c113::$files;
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
+
composerRequire754f340405ab0e2a93b757c18525c113($fileIdentifier, $file);
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
+
function composerRequire754f340405ab0e2a93b757c18525c113($fileIdentifier, $file)
|
67 |
{
|
68 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
69 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,68 +4,13 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
-
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
11 |
-
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
12 |
-
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
13 |
-
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
14 |
-
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
|
15 |
-
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
16 |
-
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
|
17 |
-
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
18 |
-
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
19 |
-
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
20 |
-
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
21 |
-
'c9c849c9bb3823996cf7bfc9113fa087' => __DIR__ . '/..' . '/lucatume/function-mocker/src/shims.php',
|
22 |
-
'c9175f6b4293b67ed66f5797215938f2' => __DIR__ . '/..' . '/lucatume/function-mocker/src/functions.php',
|
23 |
'344a0f93a05b8ca362c22e39586db500' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/bootstrap.php',
|
24 |
);
|
25 |
|
26 |
public static $prefixLengthsPsr4 = array (
|
27 |
-
'p' =>
|
28 |
-
array (
|
29 |
-
'phpDocumentor\\Reflection\\' => 25,
|
30 |
-
),
|
31 |
-
'W' =>
|
32 |
-
array (
|
33 |
-
'Webmozart\\Assert\\' => 17,
|
34 |
-
'WP_Mock\\' => 8,
|
35 |
-
),
|
36 |
-
'S' =>
|
37 |
-
array (
|
38 |
-
'Symfony\\Polyfill\\Php72\\' => 23,
|
39 |
-
'Symfony\\Polyfill\\Php70\\' => 23,
|
40 |
-
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
41 |
-
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
|
42 |
-
'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
|
43 |
-
'Symfony\\Polyfill\\Ctype\\' => 23,
|
44 |
-
'Symfony\\Component\\Yaml\\' => 23,
|
45 |
-
'Symfony\\Component\\Stopwatch\\' => 28,
|
46 |
-
'Symfony\\Component\\Filesystem\\' => 29,
|
47 |
-
'Symfony\\Component\\Debug\\' => 24,
|
48 |
-
'Symfony\\Component\\Console\\' => 26,
|
49 |
-
'Symfony\\Component\\Config\\' => 25,
|
50 |
-
),
|
51 |
-
'P' =>
|
52 |
-
array (
|
53 |
-
'Psr\\Log\\' => 8,
|
54 |
-
'Psr\\Http\\Message\\' => 17,
|
55 |
-
'Prophecy\\' => 9,
|
56 |
-
'PhpCoveralls\\' => 13,
|
57 |
-
),
|
58 |
-
'G' =>
|
59 |
-
array (
|
60 |
-
'GuzzleHttp\\Psr7\\' => 16,
|
61 |
-
'GuzzleHttp\\Promise\\' => 19,
|
62 |
-
'GuzzleHttp\\' => 11,
|
63 |
-
),
|
64 |
-
'D' =>
|
65 |
-
array (
|
66 |
-
'Doctrine\\Instantiator\\' => 22,
|
67 |
-
'DeepCopy\\' => 9,
|
68 |
-
),
|
69 |
'C' =>
|
70 |
array (
|
71 |
'Composer\\Installers\\' => 20,
|
@@ -73,155 +18,19 @@ class ComposerStaticInit7b83804bec66524f8ede823838ffb903
|
|
73 |
);
|
74 |
|
75 |
public static $prefixDirsPsr4 = array (
|
76 |
-
'phpDocumentor\\Reflection\\' =>
|
77 |
-
array (
|
78 |
-
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
|
79 |
-
1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
|
80 |
-
2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
|
81 |
-
),
|
82 |
-
'Webmozart\\Assert\\' =>
|
83 |
-
array (
|
84 |
-
0 => __DIR__ . '/..' . '/webmozart/assert/src',
|
85 |
-
),
|
86 |
-
'WP_Mock\\' =>
|
87 |
-
array (
|
88 |
-
0 => __DIR__ . '/..' . '/10up/wp_mock/php/WP_Mock',
|
89 |
-
),
|
90 |
-
'Symfony\\Polyfill\\Php72\\' =>
|
91 |
-
array (
|
92 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
|
93 |
-
),
|
94 |
-
'Symfony\\Polyfill\\Php70\\' =>
|
95 |
-
array (
|
96 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-php70',
|
97 |
-
),
|
98 |
-
'Symfony\\Polyfill\\Mbstring\\' =>
|
99 |
-
array (
|
100 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
101 |
-
),
|
102 |
-
'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
|
103 |
-
array (
|
104 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer',
|
105 |
-
),
|
106 |
-
'Symfony\\Polyfill\\Intl\\Idn\\' =>
|
107 |
-
array (
|
108 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn',
|
109 |
-
),
|
110 |
-
'Symfony\\Polyfill\\Ctype\\' =>
|
111 |
-
array (
|
112 |
-
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
|
113 |
-
),
|
114 |
-
'Symfony\\Component\\Yaml\\' =>
|
115 |
-
array (
|
116 |
-
0 => __DIR__ . '/..' . '/symfony/yaml',
|
117 |
-
),
|
118 |
-
'Symfony\\Component\\Stopwatch\\' =>
|
119 |
-
array (
|
120 |
-
0 => __DIR__ . '/..' . '/symfony/stopwatch',
|
121 |
-
),
|
122 |
-
'Symfony\\Component\\Filesystem\\' =>
|
123 |
-
array (
|
124 |
-
0 => __DIR__ . '/..' . '/symfony/filesystem',
|
125 |
-
),
|
126 |
-
'Symfony\\Component\\Debug\\' =>
|
127 |
-
array (
|
128 |
-
0 => __DIR__ . '/..' . '/symfony/debug',
|
129 |
-
),
|
130 |
-
'Symfony\\Component\\Console\\' =>
|
131 |
-
array (
|
132 |
-
0 => __DIR__ . '/..' . '/symfony/console',
|
133 |
-
),
|
134 |
-
'Symfony\\Component\\Config\\' =>
|
135 |
-
array (
|
136 |
-
0 => __DIR__ . '/..' . '/symfony/config',
|
137 |
-
),
|
138 |
-
'Psr\\Log\\' =>
|
139 |
-
array (
|
140 |
-
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
|
141 |
-
),
|
142 |
-
'Psr\\Http\\Message\\' =>
|
143 |
-
array (
|
144 |
-
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
145 |
-
),
|
146 |
-
'Prophecy\\' =>
|
147 |
-
array (
|
148 |
-
0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
|
149 |
-
),
|
150 |
-
'PhpCoveralls\\' =>
|
151 |
-
array (
|
152 |
-
0 => __DIR__ . '/..' . '/php-coveralls/php-coveralls/src',
|
153 |
-
),
|
154 |
-
'GuzzleHttp\\Psr7\\' =>
|
155 |
-
array (
|
156 |
-
0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
|
157 |
-
),
|
158 |
-
'GuzzleHttp\\Promise\\' =>
|
159 |
-
array (
|
160 |
-
0 => __DIR__ . '/..' . '/guzzlehttp/promises/src',
|
161 |
-
),
|
162 |
-
'GuzzleHttp\\' =>
|
163 |
-
array (
|
164 |
-
0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
|
165 |
-
),
|
166 |
-
'Doctrine\\Instantiator\\' =>
|
167 |
-
array (
|
168 |
-
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
|
169 |
-
),
|
170 |
-
'DeepCopy\\' =>
|
171 |
-
array (
|
172 |
-
0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
|
173 |
-
),
|
174 |
'Composer\\Installers\\' =>
|
175 |
array (
|
176 |
0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
|
177 |
),
|
178 |
);
|
179 |
|
180 |
-
public static $prefixesPsr0 = array (
|
181 |
-
'x' =>
|
182 |
-
array (
|
183 |
-
'xrstf\\Composer52' =>
|
184 |
-
array (
|
185 |
-
0 => __DIR__ . '/..' . '/xrstf/composer-php52/lib',
|
186 |
-
),
|
187 |
-
),
|
188 |
-
't' =>
|
189 |
-
array (
|
190 |
-
'tad_' =>
|
191 |
-
array (
|
192 |
-
0 => __DIR__ . '/..' . '/lucatume/args/src',
|
193 |
-
),
|
194 |
-
'tad\\FunctionMocker' =>
|
195 |
-
array (
|
196 |
-
0 => __DIR__ . '/..' . '/lucatume/function-mocker/src',
|
197 |
-
),
|
198 |
-
),
|
199 |
-
'M' =>
|
200 |
-
array (
|
201 |
-
'Mockery' =>
|
202 |
-
array (
|
203 |
-
0 => __DIR__ . '/..' . '/mockery/mockery/library',
|
204 |
-
),
|
205 |
-
),
|
206 |
-
'A' =>
|
207 |
-
array (
|
208 |
-
'Arg' =>
|
209 |
-
array (
|
210 |
-
0 => __DIR__ . '/..' . '/lucatume/args/src',
|
211 |
-
),
|
212 |
-
),
|
213 |
-
);
|
214 |
-
|
215 |
public static $classMap = array (
|
216 |
-
'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
|
217 |
-
'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
|
218 |
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
219 |
'Cyr_To_Lat\\ACF' => __DIR__ . '/../..' . '/classes/class-acf.php',
|
220 |
'Cyr_To_Lat\\Admin_Notices' => __DIR__ . '/../..' . '/classes/class-admin-notices.php',
|
221 |
'Cyr_To_Lat\\Conversion_Process' => __DIR__ . '/../..' . '/classes/background-processes/class-conversion-process.php',
|
222 |
'Cyr_To_Lat\\Conversion_Tables' => __DIR__ . '/../..' . '/classes/class-conversion-tables.php',
|
223 |
'Cyr_To_Lat\\Converter' => __DIR__ . '/../..' . '/classes/class-converter.php',
|
224 |
-
'Cyr_To_Lat\\Cyr_To_Lat_TestCase' => __DIR__ . '/../..' . '/tests/phpunit/classes/class-cyr-to-lat-testcase.php',
|
225 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Async_Request' => __DIR__ . '/../..' . '/lib/wp-background-processing/class-wp-async-request.php',
|
226 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Background_Process' => __DIR__ . '/../..' . '/lib/wp-background-processing/class-wp-background-process.php',
|
227 |
'Cyr_To_Lat\\Main' => __DIR__ . '/../..' . '/classes/class-main.php',
|
@@ -231,635 +40,14 @@ class ComposerStaticInit7b83804bec66524f8ede823838ffb903
|
|
231 |
'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/Mbstring.php',
|
232 |
'Cyr_To_Lat\\Term_Conversion_Process' => __DIR__ . '/../..' . '/classes/background-processes/class-term-conversion-process.php',
|
233 |
'Cyr_To_Lat\\WP_CLI' => __DIR__ . '/../..' . '/classes/class-wp-cli.php',
|
234 |
-
'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
|
235 |
-
'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php',
|
236 |
-
'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
|
237 |
-
'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
|
238 |
-
'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
|
239 |
-
'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
|
240 |
-
'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
|
241 |
-
'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
|
242 |
-
'Hamcrest\\Arrays\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
|
243 |
-
'Hamcrest\\Arrays\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
|
244 |
-
'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
|
245 |
-
'Hamcrest\\Arrays\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
|
246 |
-
'Hamcrest\\Arrays\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
|
247 |
-
'Hamcrest\\Arrays\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
|
248 |
-
'Hamcrest\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
|
249 |
-
'Hamcrest\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
|
250 |
-
'Hamcrest\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
|
251 |
-
'Hamcrest\\Collection\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
|
252 |
-
'Hamcrest\\Collection\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
|
253 |
-
'Hamcrest\\Core\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
|
254 |
-
'Hamcrest\\Core\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
|
255 |
-
'Hamcrest\\Core\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
|
256 |
-
'Hamcrest\\Core\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
|
257 |
-
'Hamcrest\\Core\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
|
258 |
-
'Hamcrest\\Core\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
|
259 |
-
'Hamcrest\\Core\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
|
260 |
-
'Hamcrest\\Core\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
|
261 |
-
'Hamcrest\\Core\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
|
262 |
-
'Hamcrest\\Core\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
|
263 |
-
'Hamcrest\\Core\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
|
264 |
-
'Hamcrest\\Core\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
|
265 |
-
'Hamcrest\\Core\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
|
266 |
-
'Hamcrest\\Core\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
|
267 |
-
'Hamcrest\\Core\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
|
268 |
-
'Hamcrest\\Core\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
|
269 |
-
'Hamcrest\\Core\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
|
270 |
-
'Hamcrest\\Core\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
|
271 |
-
'Hamcrest\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
|
272 |
-
'Hamcrest\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
|
273 |
-
'Hamcrest\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
|
274 |
-
'Hamcrest\\Internal\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
|
275 |
-
'Hamcrest\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
|
276 |
-
'Hamcrest\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
|
277 |
-
'Hamcrest\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
|
278 |
-
'Hamcrest\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
|
279 |
-
'Hamcrest\\Number\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
|
280 |
-
'Hamcrest\\Number\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
|
281 |
-
'Hamcrest\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
|
282 |
-
'Hamcrest\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
|
283 |
-
'Hamcrest\\Text\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
|
284 |
-
'Hamcrest\\Text\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
|
285 |
-
'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
|
286 |
-
'Hamcrest\\Text\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
|
287 |
-
'Hamcrest\\Text\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
|
288 |
-
'Hamcrest\\Text\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
|
289 |
-
'Hamcrest\\Text\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
|
290 |
-
'Hamcrest\\Text\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
|
291 |
-
'Hamcrest\\Text\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
|
292 |
-
'Hamcrest\\Text\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
|
293 |
-
'Hamcrest\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
|
294 |
-
'Hamcrest\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
|
295 |
-
'Hamcrest\\Type\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
|
296 |
-
'Hamcrest\\Type\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
|
297 |
-
'Hamcrest\\Type\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
|
298 |
-
'Hamcrest\\Type\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
|
299 |
-
'Hamcrest\\Type\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
|
300 |
-
'Hamcrest\\Type\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
|
301 |
-
'Hamcrest\\Type\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
|
302 |
-
'Hamcrest\\Type\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
|
303 |
-
'Hamcrest\\Type\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
|
304 |
-
'Hamcrest\\Type\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
|
305 |
-
'Hamcrest\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
|
306 |
-
'Hamcrest\\Xml\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
|
307 |
-
'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
|
308 |
-
'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
|
309 |
-
'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
|
310 |
-
'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
|
311 |
-
'PHPUnit\\Framework\\BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
|
312 |
-
'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
|
313 |
-
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
|
314 |
-
'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
|
315 |
-
'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
|
316 |
-
'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
317 |
-
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
|
318 |
-
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
|
319 |
-
'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
|
320 |
-
'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
321 |
-
'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
|
322 |
-
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
|
323 |
-
'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
|
324 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
|
325 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
|
326 |
-
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',
|
327 |
-
'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
|
328 |
-
'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
|
329 |
-
'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
330 |
-
'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
|
331 |
-
'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
|
332 |
-
'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
|
333 |
-
'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
|
334 |
-
'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
335 |
-
'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
|
336 |
-
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
|
337 |
-
'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
|
338 |
-
'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
|
339 |
-
'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
|
340 |
-
'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
|
341 |
-
'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
|
342 |
-
'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
|
343 |
-
'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
|
344 |
-
'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
345 |
-
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
346 |
-
'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
|
347 |
-
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',
|
348 |
-
'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',
|
349 |
-
'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',
|
350 |
-
'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',
|
351 |
-
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
|
352 |
-
'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',
|
353 |
-
'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
|
354 |
-
'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
|
355 |
-
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
|
356 |
-
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',
|
357 |
-
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
|
358 |
-
'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
|
359 |
-
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
|
360 |
-
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
|
361 |
-
'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
362 |
-
'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
363 |
-
'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
364 |
-
'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
365 |
-
'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
366 |
-
'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php',
|
367 |
-
'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
368 |
-
'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
|
369 |
-
'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
370 |
-
'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
371 |
-
'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
|
372 |
-
'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
|
373 |
-
'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
|
374 |
-
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php',
|
375 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php',
|
376 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php',
|
377 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Match.php',
|
378 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php',
|
379 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php',
|
380 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php',
|
381 |
-
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php',
|
382 |
-
'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php',
|
383 |
-
'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Generator.php',
|
384 |
-
'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php',
|
385 |
-
'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php',
|
386 |
-
'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php',
|
387 |
-
'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php',
|
388 |
-
'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invokable.php',
|
389 |
-
'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher.php',
|
390 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php',
|
391 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php',
|
392 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php',
|
393 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php',
|
394 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php',
|
395 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php',
|
396 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php',
|
397 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php',
|
398 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php',
|
399 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php',
|
400 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php',
|
401 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php',
|
402 |
-
'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php',
|
403 |
-
'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockBuilder.php',
|
404 |
-
'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php',
|
405 |
-
'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php',
|
406 |
-
'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub.php',
|
407 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php',
|
408 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php',
|
409 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php',
|
410 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php',
|
411 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php',
|
412 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php',
|
413 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php',
|
414 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php',
|
415 |
-
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php',
|
416 |
-
'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Verifiable.php',
|
417 |
-
'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php',
|
418 |
-
'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php',
|
419 |
-
'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
|
420 |
-
'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
421 |
-
'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
422 |
-
'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
423 |
-
'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
|
424 |
-
'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
|
425 |
-
'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php',
|
426 |
-
'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
|
427 |
-
'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
|
428 |
-
'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
429 |
-
'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
|
430 |
-
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
431 |
-
'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
|
432 |
-
'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
433 |
-
'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
434 |
-
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
|
435 |
-
'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php',
|
436 |
-
'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
437 |
-
'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
438 |
-
'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
|
439 |
-
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
440 |
-
'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
441 |
-
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
442 |
-
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
443 |
-
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
444 |
-
'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
445 |
-
'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
446 |
-
'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
447 |
-
'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
|
448 |
-
'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
|
449 |
-
'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
450 |
-
'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
451 |
-
'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
|
452 |
-
'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',
|
453 |
-
'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
|
454 |
-
'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
455 |
-
'PHPUnit\\Util\\Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php',
|
456 |
-
'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
|
457 |
-
'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
|
458 |
-
'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',
|
459 |
-
'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
|
460 |
-
'PHPUnit\\Util\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
|
461 |
-
'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php',
|
462 |
-
'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
463 |
-
'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
464 |
-
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
465 |
-
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
466 |
-
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
467 |
-
'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
|
468 |
-
'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
469 |
-
'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
|
470 |
-
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
471 |
-
'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
472 |
-
'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
473 |
-
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
474 |
-
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
475 |
-
'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
476 |
-
'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
|
477 |
-
'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php',
|
478 |
-
'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
479 |
-
'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockObject.php',
|
480 |
-
'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
|
481 |
-
'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
482 |
-
'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
483 |
-
'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
484 |
-
'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
485 |
-
'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
486 |
-
'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
487 |
-
'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
488 |
-
'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
489 |
-
'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
490 |
-
'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
491 |
-
'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
492 |
-
'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
493 |
-
'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
494 |
-
'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
495 |
-
'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
496 |
-
'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
497 |
-
'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
498 |
-
'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
499 |
-
'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
500 |
-
'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
501 |
-
'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
502 |
-
'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
503 |
-
'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
504 |
-
'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
505 |
-
'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
506 |
-
'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
507 |
-
'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
508 |
-
'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
509 |
-
'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
510 |
-
'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
511 |
-
'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
512 |
-
'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
513 |
-
'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
514 |
-
'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
515 |
-
'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
516 |
-
'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
517 |
-
'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
518 |
-
'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
519 |
-
'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
520 |
-
'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
521 |
-
'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
522 |
-
'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
523 |
-
'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
524 |
-
'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
525 |
-
'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
526 |
-
'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
527 |
-
'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
528 |
-
'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
529 |
-
'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
530 |
-
'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
531 |
-
'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
532 |
-
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
533 |
-
'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
534 |
-
'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
535 |
-
'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
536 |
-
'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
537 |
-
'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
538 |
-
'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
539 |
-
'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
540 |
-
'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
541 |
-
'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
542 |
-
'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
543 |
-
'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
544 |
-
'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
545 |
-
'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
546 |
-
'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
547 |
-
'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
548 |
-
'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
549 |
-
'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
550 |
-
'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
551 |
-
'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
552 |
-
'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
553 |
-
'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
554 |
-
'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
555 |
-
'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
556 |
-
'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
557 |
-
'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
558 |
-
'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
559 |
-
'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
560 |
-
'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
561 |
-
'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
562 |
-
'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
563 |
-
'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
564 |
-
'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
565 |
-
'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
566 |
-
'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
567 |
-
'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
568 |
-
'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
569 |
-
'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
570 |
-
'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
571 |
-
'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
572 |
-
'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
573 |
-
'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
574 |
-
'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
575 |
-
'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
576 |
-
'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
577 |
-
'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
578 |
-
'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
579 |
-
'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
580 |
-
'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
581 |
-
'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
582 |
-
'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
583 |
-
'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
584 |
-
'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
585 |
-
'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
586 |
-
'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
587 |
-
'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
588 |
-
'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
589 |
-
'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
590 |
-
'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
591 |
-
'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
592 |
-
'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
593 |
-
'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
594 |
-
'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
595 |
-
'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
596 |
-
'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
597 |
-
'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
598 |
-
'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
599 |
-
'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
600 |
-
'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
601 |
-
'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
602 |
-
'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
603 |
-
'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
604 |
-
'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
605 |
-
'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
606 |
-
'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
607 |
-
'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
608 |
-
'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
609 |
-
'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
610 |
-
'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
611 |
-
'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
612 |
-
'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
613 |
-
'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
614 |
-
'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
615 |
-
'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
616 |
-
'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
617 |
-
'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
618 |
-
'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
619 |
-
'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
620 |
-
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
621 |
-
'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
622 |
-
'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
623 |
-
'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
624 |
-
'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
625 |
-
'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
626 |
-
'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
627 |
-
'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
628 |
-
'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
629 |
-
'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
630 |
-
'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
631 |
-
'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
632 |
-
'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
633 |
-
'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
634 |
-
'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
635 |
-
'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
636 |
-
'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
637 |
-
'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
638 |
-
'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
639 |
-
'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
640 |
-
'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
641 |
-
'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
642 |
-
'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
643 |
-
'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
644 |
-
'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
645 |
-
'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
646 |
-
'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
647 |
-
'PHP_Token_SUPER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
648 |
-
'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
649 |
-
'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php',
|
650 |
-
'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
|
651 |
-
'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
652 |
-
'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
653 |
-
'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
654 |
-
'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
655 |
-
'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
656 |
-
'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
657 |
-
'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
658 |
-
'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
659 |
-
'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
660 |
-
'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
661 |
-
'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
662 |
-
'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
663 |
-
'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
664 |
-
'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
665 |
-
'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
666 |
-
'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
667 |
-
'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
668 |
-
'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
669 |
-
'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
670 |
-
'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
671 |
-
'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
672 |
-
'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
673 |
-
'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
674 |
-
'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
675 |
-
'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
676 |
-
'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
677 |
-
'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
678 |
-
'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
679 |
-
'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
|
680 |
-
'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
|
681 |
-
'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php',
|
682 |
-
'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php',
|
683 |
-
'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php',
|
684 |
-
'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php',
|
685 |
-
'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
686 |
-
'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php',
|
687 |
-
'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
688 |
-
'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php',
|
689 |
-
'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
690 |
-
'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
691 |
-
'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php',
|
692 |
-
'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php',
|
693 |
-
'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
694 |
-
'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php',
|
695 |
-
'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
696 |
-
'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
697 |
-
'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php',
|
698 |
-
'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php',
|
699 |
-
'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php',
|
700 |
-
'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php',
|
701 |
-
'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
702 |
-
'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php',
|
703 |
-
'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
704 |
-
'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
705 |
-
'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
706 |
-
'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
707 |
-
'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php',
|
708 |
-
'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php',
|
709 |
-
'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php',
|
710 |
-
'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php',
|
711 |
-
'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
712 |
-
'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
713 |
-
'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php',
|
714 |
-
'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
715 |
-
'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
716 |
-
'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php',
|
717 |
-
'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
718 |
-
'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php',
|
719 |
-
'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
720 |
-
'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php',
|
721 |
-
'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php',
|
722 |
-
'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
723 |
-
'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
724 |
-
'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php',
|
725 |
-
'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php',
|
726 |
-
'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
727 |
-
'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php',
|
728 |
-
'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php',
|
729 |
-
'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php',
|
730 |
-
'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AbstractVersionConstraint.php',
|
731 |
-
'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/AndVersionConstraintGroup.php',
|
732 |
-
'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AnyVersionConstraint.php',
|
733 |
-
'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/ExactVersionConstraint.php',
|
734 |
-
'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/Exception.php',
|
735 |
-
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php',
|
736 |
-
'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/InvalidVersionException.php',
|
737 |
-
'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/OrVersionConstraintGroup.php',
|
738 |
-
'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',
|
739 |
-
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php',
|
740 |
-
'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorVersionConstraint.php',
|
741 |
-
'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/UnsupportedVersionConstraintException.php',
|
742 |
-
'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php',
|
743 |
-
'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraint.php',
|
744 |
-
'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php',
|
745 |
-
'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php',
|
746 |
-
'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php',
|
747 |
-
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
748 |
-
'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
|
749 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
750 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
|
751 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
|
752 |
-
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
|
753 |
-
'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
754 |
-
'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',
|
755 |
-
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
756 |
-
'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
|
757 |
-
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
758 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
759 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
760 |
-
'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
|
761 |
-
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
762 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
763 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
764 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
765 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
766 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
767 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
768 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
769 |
-
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
770 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',
|
771 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
772 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
773 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
774 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
775 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
776 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
777 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
778 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
779 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
780 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
781 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
782 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
783 |
-
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
784 |
-
'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
|
785 |
-
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
786 |
-
'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php',
|
787 |
-
'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php',
|
788 |
-
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
789 |
-
'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
|
790 |
-
'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
|
791 |
-
'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
|
792 |
-
'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
|
793 |
-
'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
|
794 |
-
'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
|
795 |
-
'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
|
796 |
-
'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
|
797 |
-
'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
|
798 |
-
'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
|
799 |
-
'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
|
800 |
-
'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
|
801 |
-
'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
|
802 |
-
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
803 |
-
'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
|
804 |
-
'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
|
805 |
-
'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
|
806 |
-
'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
|
807 |
-
'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php',
|
808 |
-
'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
809 |
-
'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
|
810 |
-
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
811 |
-
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
812 |
-
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
813 |
-
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
814 |
-
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
815 |
-
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
816 |
-
'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
|
817 |
-
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
818 |
-
'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
|
819 |
-
'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php',
|
820 |
-
'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
|
821 |
-
'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
|
822 |
-
'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',
|
823 |
-
'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
|
824 |
-
'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php',
|
825 |
-
'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
|
826 |
-
'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
827 |
-
'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
|
828 |
-
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',
|
829 |
-
'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',
|
830 |
-
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
831 |
-
'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php',
|
832 |
-
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
833 |
-
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php',
|
834 |
-
'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
|
835 |
-
'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
|
836 |
-
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
837 |
-
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
|
838 |
-
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
|
839 |
-
'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
|
840 |
-
'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
|
841 |
-
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
|
842 |
-
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',
|
843 |
-
'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php',
|
844 |
-
'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php',
|
845 |
-
'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php',
|
846 |
-
'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php',
|
847 |
-
'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php',
|
848 |
-
'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php',
|
849 |
-
'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
|
850 |
-
'WP_CLI' => __DIR__ . '/../..' . '/tests/phpunit/stubs/class-wp-cli.php',
|
851 |
-
'WP_CLI_Command' => __DIR__ . '/../..' . '/tests/phpunit/stubs/class-wp-cli-command.php',
|
852 |
-
'WP_Mock' => __DIR__ . '/..' . '/10up/wp_mock/php/WP_Mock.php',
|
853 |
-
'cli\\progress\\Bar' => __DIR__ . '/../..' . '/tests/phpunit/stubs/class-bar.php',
|
854 |
);
|
855 |
|
856 |
public static function getInitializer(ClassLoader $loader)
|
857 |
{
|
858 |
return \Closure::bind(function () use ($loader) {
|
859 |
-
$loader->prefixLengthsPsr4 =
|
860 |
-
$loader->prefixDirsPsr4 =
|
861 |
-
$loader->
|
862 |
-
$loader->classMap = ComposerStaticInit7b83804bec66524f8ede823838ffb903::$classMap;
|
863 |
|
864 |
}, null, ClassLoader::class);
|
865 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit754f340405ab0e2a93b757c18525c113
|
8 |
{
|
9 |
public static $files = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
'344a0f93a05b8ca362c22e39586db500' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/bootstrap.php',
|
11 |
);
|
12 |
|
13 |
public static $prefixLengthsPsr4 = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
'C' =>
|
15 |
array (
|
16 |
'Composer\\Installers\\' => 20,
|
18 |
);
|
19 |
|
20 |
public static $prefixDirsPsr4 = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
'Composer\\Installers\\' =>
|
22 |
array (
|
23 |
0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
|
24 |
),
|
25 |
);
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
public static $classMap = array (
|
|
|
|
|
28 |
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
29 |
'Cyr_To_Lat\\ACF' => __DIR__ . '/../..' . '/classes/class-acf.php',
|
30 |
'Cyr_To_Lat\\Admin_Notices' => __DIR__ . '/../..' . '/classes/class-admin-notices.php',
|
31 |
'Cyr_To_Lat\\Conversion_Process' => __DIR__ . '/../..' . '/classes/background-processes/class-conversion-process.php',
|
32 |
'Cyr_To_Lat\\Conversion_Tables' => __DIR__ . '/../..' . '/classes/class-conversion-tables.php',
|
33 |
'Cyr_To_Lat\\Converter' => __DIR__ . '/../..' . '/classes/class-converter.php',
|
|
|
34 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Async_Request' => __DIR__ . '/../..' . '/lib/wp-background-processing/class-wp-async-request.php',
|
35 |
'Cyr_To_Lat\\KAGG\\WP_Background_Processing\\WP_Background_Process' => __DIR__ . '/../..' . '/lib/wp-background-processing/class-wp-background-process.php',
|
36 |
'Cyr_To_Lat\\Main' => __DIR__ . '/../..' . '/classes/class-main.php',
|
40 |
'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/Mbstring.php',
|
41 |
'Cyr_To_Lat\\Term_Conversion_Process' => __DIR__ . '/../..' . '/classes/background-processes/class-term-conversion-process.php',
|
42 |
'Cyr_To_Lat\\WP_CLI' => __DIR__ . '/../..' . '/classes/class-wp-cli.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
);
|
44 |
|
45 |
public static function getInitializer(ClassLoader $loader)
|
46 |
{
|
47 |
return \Closure::bind(function () use ($loader) {
|
48 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit754f340405ab0e2a93b757c18525c113::$prefixLengthsPsr4;
|
49 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit754f340405ab0e2a93b757c18525c113::$prefixDirsPsr4;
|
50 |
+
$loader->classMap = ComposerStaticInit754f340405ab0e2a93b757c18525c113::$classMap;
|
|
|
51 |
|
52 |
}, null, ClassLoader::class);
|
53 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,104 +1,5 @@
|
|
1 |
{
|
2 |
"packages": [
|
3 |
-
{
|
4 |
-
"name": "10up/wp_mock",
|
5 |
-
"version": "0.3.0",
|
6 |
-
"version_normalized": "0.3.0.0",
|
7 |
-
"source": {
|
8 |
-
"type": "git",
|
9 |
-
"url": "https://github.com/10up/wp_mock.git",
|
10 |
-
"reference": "64956557e98ee4c8c56cd1e396e822adb4673714"
|
11 |
-
},
|
12 |
-
"dist": {
|
13 |
-
"type": "zip",
|
14 |
-
"url": "https://api.github.com/repos/10up/wp_mock/zipball/64956557e98ee4c8c56cd1e396e822adb4673714",
|
15 |
-
"reference": "64956557e98ee4c8c56cd1e396e822adb4673714",
|
16 |
-
"shasum": ""
|
17 |
-
},
|
18 |
-
"require": {
|
19 |
-
"antecedent/patchwork": "^2.1",
|
20 |
-
"mockery/mockery": "^1.0",
|
21 |
-
"php": ">=7.0",
|
22 |
-
"phpunit/phpunit": ">=6.0"
|
23 |
-
},
|
24 |
-
"require-dev": {
|
25 |
-
"behat/behat": "^3.0",
|
26 |
-
"satooshi/php-coveralls": "^1.0",
|
27 |
-
"sebastian/comparator": ">=1.2.3"
|
28 |
-
},
|
29 |
-
"time": "2017-12-03T19:28:28+00:00",
|
30 |
-
"type": "library",
|
31 |
-
"installation-source": "dist",
|
32 |
-
"autoload": {
|
33 |
-
"psr-4": {
|
34 |
-
"WP_Mock\\": "./php/WP_Mock"
|
35 |
-
},
|
36 |
-
"classmap": [
|
37 |
-
"php/WP_Mock.php"
|
38 |
-
]
|
39 |
-
},
|
40 |
-
"notification-url": "https://packagist.org/downloads/",
|
41 |
-
"license": [
|
42 |
-
"GPL-2.0+"
|
43 |
-
],
|
44 |
-
"description": "A mocking library to take the pain out of unit testing for WordPress",
|
45 |
-
"support": {
|
46 |
-
"issues": "https://github.com/10up/wp_mock/issues",
|
47 |
-
"source": "https://github.com/10up/wp_mock/tree/master"
|
48 |
-
},
|
49 |
-
"install-path": "../10up/wp_mock"
|
50 |
-
},
|
51 |
-
{
|
52 |
-
"name": "antecedent/patchwork",
|
53 |
-
"version": "2.1.12",
|
54 |
-
"version_normalized": "2.1.12.0",
|
55 |
-
"source": {
|
56 |
-
"type": "git",
|
57 |
-
"url": "https://github.com/antecedent/patchwork.git",
|
58 |
-
"reference": "b98e046dd4c0acc34a0846604f06f6111654d9ea"
|
59 |
-
},
|
60 |
-
"dist": {
|
61 |
-
"type": "zip",
|
62 |
-
"url": "https://api.github.com/repos/antecedent/patchwork/zipball/b98e046dd4c0acc34a0846604f06f6111654d9ea",
|
63 |
-
"reference": "b98e046dd4c0acc34a0846604f06f6111654d9ea",
|
64 |
-
"shasum": ""
|
65 |
-
},
|
66 |
-
"require": {
|
67 |
-
"php": ">=5.4.0"
|
68 |
-
},
|
69 |
-
"require-dev": {
|
70 |
-
"phpunit/phpunit": ">=4"
|
71 |
-
},
|
72 |
-
"time": "2019-12-22T17:52:09+00:00",
|
73 |
-
"type": "library",
|
74 |
-
"installation-source": "dist",
|
75 |
-
"notification-url": "https://packagist.org/downloads/",
|
76 |
-
"license": [
|
77 |
-
"MIT"
|
78 |
-
],
|
79 |
-
"authors": [
|
80 |
-
{
|
81 |
-
"name": "Ignas Rudaitis",
|
82 |
-
"email": "ignas.rudaitis@gmail.com"
|
83 |
-
}
|
84 |
-
],
|
85 |
-
"description": "Method redefinition (monkey-patching) functionality for PHP.",
|
86 |
-
"homepage": "http://patchwork2.org/",
|
87 |
-
"keywords": [
|
88 |
-
"aop",
|
89 |
-
"aspect",
|
90 |
-
"interception",
|
91 |
-
"monkeypatching",
|
92 |
-
"redefinition",
|
93 |
-
"runkit",
|
94 |
-
"testing"
|
95 |
-
],
|
96 |
-
"support": {
|
97 |
-
"issues": "https://github.com/antecedent/patchwork/issues",
|
98 |
-
"source": "https://github.com/antecedent/patchwork/tree/2.1.12"
|
99 |
-
},
|
100 |
-
"install-path": "../antecedent/patchwork"
|
101 |
-
},
|
102 |
{
|
103 |
"name": "composer/installers",
|
104 |
"version": "v1.9.0",
|
@@ -242,3991 +143,8 @@
|
|
242 |
}
|
243 |
],
|
244 |
"install-path": "./installers"
|
245 |
-
},
|
246 |
-
{
|
247 |
-
"name": "doctrine/instantiator",
|
248 |
-
"version": "1.0.5",
|
249 |
-
"version_normalized": "1.0.5.0",
|
250 |
-
"source": {
|
251 |
-
"type": "git",
|
252 |
-
"url": "https://github.com/doctrine/instantiator.git",
|
253 |
-
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
|
254 |
-
},
|
255 |
-
"dist": {
|
256 |
-
"type": "zip",
|
257 |
-
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
|
258 |
-
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
|
259 |
-
"shasum": ""
|
260 |
-
},
|
261 |
-
"require": {
|
262 |
-
"php": ">=5.3,<8.0-DEV"
|
263 |
-
},
|
264 |
-
"require-dev": {
|
265 |
-
"athletic/athletic": "~0.1.8",
|
266 |
-
"ext-pdo": "*",
|
267 |
-
"ext-phar": "*",
|
268 |
-
"phpunit/phpunit": "~4.0",
|
269 |
-
"squizlabs/php_codesniffer": "~2.0"
|
270 |
-
},
|
271 |
-
"time": "2015-06-14T21:17:01+00:00",
|
272 |
-
"type": "library",
|
273 |
-
"extra": {
|
274 |
-
"branch-alias": {
|
275 |
-
"dev-master": "1.0.x-dev"
|
276 |
-
}
|
277 |
-
},
|
278 |
-
"installation-source": "dist",
|
279 |
-
"autoload": {
|
280 |
-
"psr-4": {
|
281 |
-
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
282 |
-
}
|
283 |
-
},
|
284 |
-
"notification-url": "https://packagist.org/downloads/",
|
285 |
-
"license": [
|
286 |
-
"MIT"
|
287 |
-
],
|
288 |
-
"authors": [
|
289 |
-
{
|
290 |
-
"name": "Marco Pivetta",
|
291 |
-
"email": "ocramius@gmail.com",
|
292 |
-
"homepage": "http://ocramius.github.com/"
|
293 |
-
}
|
294 |
-
],
|
295 |
-
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
296 |
-
"homepage": "https://github.com/doctrine/instantiator",
|
297 |
-
"keywords": [
|
298 |
-
"constructor",
|
299 |
-
"instantiate"
|
300 |
-
],
|
301 |
-
"support": {
|
302 |
-
"issues": "https://github.com/doctrine/instantiator/issues",
|
303 |
-
"source": "https://github.com/doctrine/instantiator/tree/master"
|
304 |
-
},
|
305 |
-
"install-path": "../doctrine/instantiator"
|
306 |
-
},
|
307 |
-
{
|
308 |
-
"name": "guzzlehttp/guzzle",
|
309 |
-
"version": "6.5.5",
|
310 |
-
"version_normalized": "6.5.5.0",
|
311 |
-
"source": {
|
312 |
-
"type": "git",
|
313 |
-
"url": "https://github.com/guzzle/guzzle.git",
|
314 |
-
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
|
315 |
-
},
|
316 |
-
"dist": {
|
317 |
-
"type": "zip",
|
318 |
-
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
319 |
-
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
320 |
-
"shasum": ""
|
321 |
-
},
|
322 |
-
"require": {
|
323 |
-
"ext-json": "*",
|
324 |
-
"guzzlehttp/promises": "^1.0",
|
325 |
-
"guzzlehttp/psr7": "^1.6.1",
|
326 |
-
"php": ">=5.5",
|
327 |
-
"symfony/polyfill-intl-idn": "^1.17.0"
|
328 |
-
},
|
329 |
-
"require-dev": {
|
330 |
-
"ext-curl": "*",
|
331 |
-
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
332 |
-
"psr/log": "^1.1"
|
333 |
-
},
|
334 |
-
"suggest": {
|
335 |
-
"psr/log": "Required for using the Log middleware"
|
336 |
-
},
|
337 |
-
"time": "2020-06-16T21:01:06+00:00",
|
338 |
-
"type": "library",
|
339 |
-
"extra": {
|
340 |
-
"branch-alias": {
|
341 |
-
"dev-master": "6.5-dev"
|
342 |
-
}
|
343 |
-
},
|
344 |
-
"installation-source": "dist",
|
345 |
-
"autoload": {
|
346 |
-
"psr-4": {
|
347 |
-
"GuzzleHttp\\": "src/"
|
348 |
-
},
|
349 |
-
"files": [
|
350 |
-
"src/functions_include.php"
|
351 |
-
]
|
352 |
-
},
|
353 |
-
"notification-url": "https://packagist.org/downloads/",
|
354 |
-
"license": [
|
355 |
-
"MIT"
|
356 |
-
],
|
357 |
-
"authors": [
|
358 |
-
{
|
359 |
-
"name": "Michael Dowling",
|
360 |
-
"email": "mtdowling@gmail.com",
|
361 |
-
"homepage": "https://github.com/mtdowling"
|
362 |
-
}
|
363 |
-
],
|
364 |
-
"description": "Guzzle is a PHP HTTP client library",
|
365 |
-
"homepage": "http://guzzlephp.org/",
|
366 |
-
"keywords": [
|
367 |
-
"client",
|
368 |
-
"curl",
|
369 |
-
"framework",
|
370 |
-
"http",
|
371 |
-
"http client",
|
372 |
-
"rest",
|
373 |
-
"web service"
|
374 |
-
],
|
375 |
-
"support": {
|
376 |
-
"issues": "https://github.com/guzzle/guzzle/issues",
|
377 |
-
"source": "https://github.com/guzzle/guzzle/tree/6.5"
|
378 |
-
},
|
379 |
-
"install-path": "../guzzlehttp/guzzle"
|
380 |
-
},
|
381 |
-
{
|
382 |
-
"name": "guzzlehttp/promises",
|
383 |
-
"version": "1.4.0",
|
384 |
-
"version_normalized": "1.4.0.0",
|
385 |
-
"source": {
|
386 |
-
"type": "git",
|
387 |
-
"url": "https://github.com/guzzle/promises.git",
|
388 |
-
"reference": "60d379c243457e073cff02bc323a2a86cb355631"
|
389 |
-
},
|
390 |
-
"dist": {
|
391 |
-
"type": "zip",
|
392 |
-
"url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
|
393 |
-
"reference": "60d379c243457e073cff02bc323a2a86cb355631",
|
394 |
-
"shasum": ""
|
395 |
-
},
|
396 |
-
"require": {
|
397 |
-
"php": ">=5.5"
|
398 |
-
},
|
399 |
-
"require-dev": {
|
400 |
-
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
401 |
-
},
|
402 |
-
"time": "2020-09-30T07:37:28+00:00",
|
403 |
-
"type": "library",
|
404 |
-
"extra": {
|
405 |
-
"branch-alias": {
|
406 |
-
"dev-master": "1.4-dev"
|
407 |
-
}
|
408 |
-
},
|
409 |
-
"installation-source": "dist",
|
410 |
-
"autoload": {
|
411 |
-
"psr-4": {
|
412 |
-
"GuzzleHttp\\Promise\\": "src/"
|
413 |
-
},
|
414 |
-
"files": [
|
415 |
-
"src/functions_include.php"
|
416 |
-
]
|
417 |
-
},
|
418 |
-
"notification-url": "https://packagist.org/downloads/",
|
419 |
-
"license": [
|
420 |
-
"MIT"
|
421 |
-
],
|
422 |
-
"authors": [
|
423 |
-
{
|
424 |
-
"name": "Michael Dowling",
|
425 |
-
"email": "mtdowling@gmail.com",
|
426 |
-
"homepage": "https://github.com/mtdowling"
|
427 |
-
}
|
428 |
-
],
|
429 |
-
"description": "Guzzle promises library",
|
430 |
-
"keywords": [
|
431 |
-
"promise"
|
432 |
-
],
|
433 |
-
"support": {
|
434 |
-
"issues": "https://github.com/guzzle/promises/issues",
|
435 |
-
"source": "https://github.com/guzzle/promises/tree/1.4.0"
|
436 |
-
},
|
437 |
-
"install-path": "../guzzlehttp/promises"
|
438 |
-
},
|
439 |
-
{
|
440 |
-
"name": "guzzlehttp/psr7",
|
441 |
-
"version": "1.7.0",
|
442 |
-
"version_normalized": "1.7.0.0",
|
443 |
-
"source": {
|
444 |
-
"type": "git",
|
445 |
-
"url": "https://github.com/guzzle/psr7.git",
|
446 |
-
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
|
447 |
-
},
|
448 |
-
"dist": {
|
449 |
-
"type": "zip",
|
450 |
-
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
451 |
-
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
452 |
-
"shasum": ""
|
453 |
-
},
|
454 |
-
"require": {
|
455 |
-
"php": ">=5.4.0",
|
456 |
-
"psr/http-message": "~1.0",
|
457 |
-
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
|
458 |
-
},
|
459 |
-
"provide": {
|
460 |
-
"psr/http-message-implementation": "1.0"
|
461 |
-
},
|
462 |
-
"require-dev": {
|
463 |
-
"ext-zlib": "*",
|
464 |
-
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
|
465 |
-
},
|
466 |
-
"suggest": {
|
467 |
-
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
468 |
-
},
|
469 |
-
"time": "2020-09-30T07:37:11+00:00",
|
470 |
-
"type": "library",
|
471 |
-
"extra": {
|
472 |
-
"branch-alias": {
|
473 |
-
"dev-master": "1.7-dev"
|
474 |
-
}
|
475 |
-
},
|
476 |
-
"installation-source": "dist",
|
477 |
-
"autoload": {
|
478 |
-
"psr-4": {
|
479 |
-
"GuzzleHttp\\Psr7\\": "src/"
|
480 |
-
},
|
481 |
-
"files": [
|
482 |
-
"src/functions_include.php"
|
483 |
-
]
|
484 |
-
},
|
485 |
-
"notification-url": "https://packagist.org/downloads/",
|
486 |
-
"license": [
|
487 |
-
"MIT"
|
488 |
-
],
|
489 |
-
"authors": [
|
490 |
-
{
|
491 |
-
"name": "Michael Dowling",
|
492 |
-
"email": "mtdowling@gmail.com",
|
493 |
-
"homepage": "https://github.com/mtdowling"
|
494 |
-
},
|
495 |
-
{
|
496 |
-
"name": "Tobias Schultze",
|
497 |
-
"homepage": "https://github.com/Tobion"
|
498 |
-
}
|
499 |
-
],
|
500 |
-
"description": "PSR-7 message implementation that also provides common utility methods",
|
501 |
-
"keywords": [
|
502 |
-
"http",
|
503 |
-
"message",
|
504 |
-
"psr-7",
|
505 |
-
"request",
|
506 |
-
"response",
|
507 |
-
"stream",
|
508 |
-
"uri",
|
509 |
-
"url"
|
510 |
-
],
|
511 |
-
"support": {
|
512 |
-
"issues": "https://github.com/guzzle/psr7/issues",
|
513 |
-
"source": "https://github.com/guzzle/psr7/tree/1.7.0"
|
514 |
-
},
|
515 |
-
"install-path": "../guzzlehttp/psr7"
|
516 |
-
},
|
517 |
-
{
|
518 |
-
"name": "hamcrest/hamcrest-php",
|
519 |
-
"version": "v2.0.1",
|
520 |
-
"version_normalized": "2.0.1.0",
|
521 |
-
"source": {
|
522 |
-
"type": "git",
|
523 |
-
"url": "https://github.com/hamcrest/hamcrest-php.git",
|
524 |
-
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
|
525 |
-
},
|
526 |
-
"dist": {
|
527 |
-
"type": "zip",
|
528 |
-
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
|
529 |
-
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
|
530 |
-
"shasum": ""
|
531 |
-
},
|
532 |
-
"require": {
|
533 |
-
"php": "^5.3|^7.0|^8.0"
|
534 |
-
},
|
535 |
-
"replace": {
|
536 |
-
"cordoval/hamcrest-php": "*",
|
537 |
-
"davedevelopment/hamcrest-php": "*",
|
538 |
-
"kodova/hamcrest-php": "*"
|
539 |
-
},
|
540 |
-
"require-dev": {
|
541 |
-
"phpunit/php-file-iterator": "^1.4 || ^2.0",
|
542 |
-
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
|
543 |
-
},
|
544 |
-
"time": "2020-07-09T08:09:16+00:00",
|
545 |
-
"type": "library",
|
546 |
-
"extra": {
|
547 |
-
"branch-alias": {
|
548 |
-
"dev-master": "2.1-dev"
|
549 |
-
}
|
550 |
-
},
|
551 |
-
"installation-source": "dist",
|
552 |
-
"autoload": {
|
553 |
-
"classmap": [
|
554 |
-
"hamcrest"
|
555 |
-
]
|
556 |
-
},
|
557 |
-
"notification-url": "https://packagist.org/downloads/",
|
558 |
-
"license": [
|
559 |
-
"BSD-3-Clause"
|
560 |
-
],
|
561 |
-
"description": "This is the PHP port of Hamcrest Matchers",
|
562 |
-
"keywords": [
|
563 |
-
"test"
|
564 |
-
],
|
565 |
-
"support": {
|
566 |
-
"issues": "https://github.com/hamcrest/hamcrest-php/issues",
|
567 |
-
"source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
|
568 |
-
},
|
569 |
-
"install-path": "../hamcrest/hamcrest-php"
|
570 |
-
},
|
571 |
-
{
|
572 |
-
"name": "lucatume/args",
|
573 |
-
"version": "1.0.1.1",
|
574 |
-
"version_normalized": "1.0.1.1",
|
575 |
-
"source": {
|
576 |
-
"type": "git",
|
577 |
-
"url": "https://github.com/lucatume/args.git",
|
578 |
-
"reference": "9ab69f5c995813b2dfbb067100ada500ee2893e8"
|
579 |
-
},
|
580 |
-
"dist": {
|
581 |
-
"type": "zip",
|
582 |
-
"url": "https://api.github.com/repos/lucatume/args/zipball/9ab69f5c995813b2dfbb067100ada500ee2893e8",
|
583 |
-
"reference": "9ab69f5c995813b2dfbb067100ada500ee2893e8",
|
584 |
-
"shasum": ""
|
585 |
-
},
|
586 |
-
"require": {
|
587 |
-
"xrstf/composer-php52": "1.*"
|
588 |
-
},
|
589 |
-
"require-dev": {
|
590 |
-
"codeception/codeception": "*"
|
591 |
-
},
|
592 |
-
"time": "2018-02-11T12:20:29+00:00",
|
593 |
-
"type": "library",
|
594 |
-
"installation-source": "dist",
|
595 |
-
"autoload": {
|
596 |
-
"psr-0": {
|
597 |
-
"Arg": "src/",
|
598 |
-
"tad_": "src/"
|
599 |
-
}
|
600 |
-
},
|
601 |
-
"notification-url": "https://packagist.org/downloads/",
|
602 |
-
"license": [
|
603 |
-
"GPL-2.0"
|
604 |
-
],
|
605 |
-
"authors": [
|
606 |
-
{
|
607 |
-
"name": "Luca Tumedei",
|
608 |
-
"email": "luca@theaveragedev.com"
|
609 |
-
}
|
610 |
-
],
|
611 |
-
"description": "A PHP 5.2 compatible arguments handling library.",
|
612 |
-
"support": {
|
613 |
-
"issues": "https://github.com/lucatume/args/issues",
|
614 |
-
"source": "https://github.com/lucatume/args/tree/master"
|
615 |
-
},
|
616 |
-
"install-path": "../lucatume/args"
|
617 |
-
},
|
618 |
-
{
|
619 |
-
"name": "lucatume/function-mocker",
|
620 |
-
"version": "dev-test-on-windows",
|
621 |
-
"version_normalized": "dev-test-on-windows",
|
622 |
-
"source": {
|
623 |
-
"type": "git",
|
624 |
-
"url": "git@github.com:kagg-design/function-mocker.git",
|
625 |
-
"reference": "0383729be9af2f1dba5e553b29c899f10aba8932"
|
626 |
-
},
|
627 |
-
"dist": {
|
628 |
-
"type": "zip",
|
629 |
-
"url": "https://api.github.com/repos/kagg-design/function-mocker/zipball/0383729be9af2f1dba5e553b29c899f10aba8932",
|
630 |
-
"reference": "0383729be9af2f1dba5e553b29c899f10aba8932",
|
631 |
-
"shasum": ""
|
632 |
-
},
|
633 |
-
"require": {
|
634 |
-
"antecedent/patchwork": "^2.0",
|
635 |
-
"lucatume/args": "^1.0",
|
636 |
-
"php": ">=5.6.0",
|
637 |
-
"phpunit/phpunit": ">=5.7"
|
638 |
-
},
|
639 |
-
"require-dev": {
|
640 |
-
"phpunit/phpunit": "^5.7"
|
641 |
-
},
|
642 |
-
"time": "2020-12-02T13:38:06+00:00",
|
643 |
-
"type": "library",
|
644 |
-
"installation-source": "source",
|
645 |
-
"autoload": {
|
646 |
-
"psr-0": {
|
647 |
-
"tad\\FunctionMocker": "src"
|
648 |
-
},
|
649 |
-
"files": [
|
650 |
-
"src/shims.php",
|
651 |
-
"src/functions.php"
|
652 |
-
]
|
653 |
-
},
|
654 |
-
"license": [
|
655 |
-
"GPL-2.0+"
|
656 |
-
],
|
657 |
-
"authors": [
|
658 |
-
{
|
659 |
-
"name": "theAverageDev",
|
660 |
-
"email": "luca@theaveragedev.com"
|
661 |
-
}
|
662 |
-
],
|
663 |
-
"description": "Function mocking with Patchwork",
|
664 |
-
"install-path": "../lucatume/function-mocker"
|
665 |
-
},
|
666 |
-
{
|
667 |
-
"name": "mockery/mockery",
|
668 |
-
"version": "1.3.3",
|
669 |
-
"version_normalized": "1.3.3.0",
|
670 |
-
"source": {
|
671 |
-
"type": "git",
|
672 |
-
"url": "https://github.com/mockery/mockery.git",
|
673 |
-
"reference": "60fa2f67f6e4d3634bb4a45ff3171fa52215800d"
|
674 |
-
},
|
675 |
-
"dist": {
|
676 |
-
"type": "zip",
|
677 |
-
"url": "https://api.github.com/repos/mockery/mockery/zipball/60fa2f67f6e4d3634bb4a45ff3171fa52215800d",
|
678 |
-
"reference": "60fa2f67f6e4d3634bb4a45ff3171fa52215800d",
|
679 |
-
"shasum": ""
|
680 |
-
},
|
681 |
-
"require": {
|
682 |
-
"hamcrest/hamcrest-php": "^2.0.1",
|
683 |
-
"lib-pcre": ">=7.0",
|
684 |
-
"php": ">=5.6.0"
|
685 |
-
},
|
686 |
-
"require-dev": {
|
687 |
-
"phpunit/phpunit": "^5.7.10|^6.5|^7.5|^8.5|^9.3"
|
688 |
-
},
|
689 |
-
"time": "2020-08-11T18:10:21+00:00",
|
690 |
-
"type": "library",
|
691 |
-
"extra": {
|
692 |
-
"branch-alias": {
|
693 |
-
"dev-master": "1.3.x-dev"
|
694 |
-
}
|
695 |
-
},
|
696 |
-
"installation-source": "dist",
|
697 |
-
"autoload": {
|
698 |
-
"psr-0": {
|
699 |
-
"Mockery": "library/"
|
700 |
-
}
|
701 |
-
},
|
702 |
-
"notification-url": "https://packagist.org/downloads/",
|
703 |
-
"license": [
|
704 |
-
"BSD-3-Clause"
|
705 |
-
],
|
706 |
-
"authors": [
|
707 |
-
{
|
708 |
-
"name": "Pádraic Brady",
|
709 |
-
"email": "padraic.brady@gmail.com",
|
710 |
-
"homepage": "http://blog.astrumfutura.com"
|
711 |
-
},
|
712 |
-
{
|
713 |
-
"name": "Dave Marshall",
|
714 |
-
"email": "dave.marshall@atstsolutions.co.uk",
|
715 |
-
"homepage": "http://davedevelopment.co.uk"
|
716 |
-
}
|
717 |
-
],
|
718 |
-
"description": "Mockery is a simple yet flexible PHP mock object framework",
|
719 |
-
"homepage": "https://github.com/mockery/mockery",
|
720 |
-
"keywords": [
|
721 |
-
"BDD",
|
722 |
-
"TDD",
|
723 |
-
"library",
|
724 |
-
"mock",
|
725 |
-
"mock objects",
|
726 |
-
"mockery",
|
727 |
-
"stub",
|
728 |
-
"test",
|
729 |
-
"test double",
|
730 |
-
"testing"
|
731 |
-
],
|
732 |
-
"support": {
|
733 |
-
"issues": "https://github.com/mockery/mockery/issues",
|
734 |
-
"source": "https://github.com/mockery/mockery/tree/1.3.3"
|
735 |
-
},
|
736 |
-
"install-path": "../mockery/mockery"
|
737 |
-
},
|
738 |
-
{
|
739 |
-
"name": "myclabs/deep-copy",
|
740 |
-
"version": "1.7.0",
|
741 |
-
"version_normalized": "1.7.0.0",
|
742 |
-
"source": {
|
743 |
-
"type": "git",
|
744 |
-
"url": "https://github.com/myclabs/DeepCopy.git",
|
745 |
-
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
|
746 |
-
},
|
747 |
-
"dist": {
|
748 |
-
"type": "zip",
|
749 |
-
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
750 |
-
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
751 |
-
"shasum": ""
|
752 |
-
},
|
753 |
-
"require": {
|
754 |
-
"php": "^5.6 || ^7.0"
|
755 |
-
},
|
756 |
-
"require-dev": {
|
757 |
-
"doctrine/collections": "^1.0",
|
758 |
-
"doctrine/common": "^2.6",
|
759 |
-
"phpunit/phpunit": "^4.1"
|
760 |
-
},
|
761 |
-
"time": "2017-10-19T19:58:43+00:00",
|
762 |
-
"type": "library",
|
763 |
-
"installation-source": "dist",
|
764 |
-
"autoload": {
|
765 |
-
"psr-4": {
|
766 |
-
"DeepCopy\\": "src/DeepCopy/"
|
767 |
-
},
|
768 |
-
"files": [
|
769 |
-
"src/DeepCopy/deep_copy.php"
|
770 |
-
]
|
771 |
-
},
|
772 |
-
"notification-url": "https://packagist.org/downloads/",
|
773 |
-
"license": [
|
774 |
-
"MIT"
|
775 |
-
],
|
776 |
-
"description": "Create deep copies (clones) of your objects",
|
777 |
-
"keywords": [
|
778 |
-
"clone",
|
779 |
-
"copy",
|
780 |
-
"duplicate",
|
781 |
-
"object",
|
782 |
-
"object graph"
|
783 |
-
],
|
784 |
-
"support": {
|
785 |
-
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
786 |
-
"source": "https://github.com/myclabs/DeepCopy/tree/1.x"
|
787 |
-
},
|
788 |
-
"install-path": "../myclabs/deep-copy"
|
789 |
-
},
|
790 |
-
{
|
791 |
-
"name": "paragonie/random_compat",
|
792 |
-
"version": "v9.99.100",
|
793 |
-
"version_normalized": "9.99.100.0",
|
794 |
-
"source": {
|
795 |
-
"type": "git",
|
796 |
-
"url": "https://github.com/paragonie/random_compat.git",
|
797 |
-
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
|
798 |
-
},
|
799 |
-
"dist": {
|
800 |
-
"type": "zip",
|
801 |
-
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
802 |
-
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
803 |
-
"shasum": ""
|
804 |
-
},
|
805 |
-
"require": {
|
806 |
-
"php": ">= 7"
|
807 |
-
},
|
808 |
-
"require-dev": {
|
809 |
-
"phpunit/phpunit": "4.*|5.*",
|
810 |
-
"vimeo/psalm": "^1"
|
811 |
-
},
|
812 |
-
"suggest": {
|
813 |
-
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
814 |
-
},
|
815 |
-
"time": "2020-10-15T08:29:30+00:00",
|
816 |
-
"type": "library",
|
817 |
-
"installation-source": "dist",
|
818 |
-
"notification-url": "https://packagist.org/downloads/",
|
819 |
-
"license": [
|
820 |
-
"MIT"
|
821 |
-
],
|
822 |
-
"authors": [
|
823 |
-
{
|
824 |
-
"name": "Paragon Initiative Enterprises",
|
825 |
-
"email": "security@paragonie.com",
|
826 |
-
"homepage": "https://paragonie.com"
|
827 |
-
}
|
828 |
-
],
|
829 |
-
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
|
830 |
-
"keywords": [
|
831 |
-
"csprng",
|
832 |
-
"polyfill",
|
833 |
-
"pseudorandom",
|
834 |
-
"random"
|
835 |
-
],
|
836 |
-
"support": {
|
837 |
-
"email": "info@paragonie.com",
|
838 |
-
"issues": "https://github.com/paragonie/random_compat/issues",
|
839 |
-
"source": "https://github.com/paragonie/random_compat"
|
840 |
-
},
|
841 |
-
"install-path": "../paragonie/random_compat"
|
842 |
-
},
|
843 |
-
{
|
844 |
-
"name": "phar-io/manifest",
|
845 |
-
"version": "1.0.1",
|
846 |
-
"version_normalized": "1.0.1.0",
|
847 |
-
"source": {
|
848 |
-
"type": "git",
|
849 |
-
"url": "https://github.com/phar-io/manifest.git",
|
850 |
-
"reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
|
851 |
-
},
|
852 |
-
"dist": {
|
853 |
-
"type": "zip",
|
854 |
-
"url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
|
855 |
-
"reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
|
856 |
-
"shasum": ""
|
857 |
-
},
|
858 |
-
"require": {
|
859 |
-
"ext-dom": "*",
|
860 |
-
"ext-phar": "*",
|
861 |
-
"phar-io/version": "^1.0.1",
|
862 |
-
"php": "^5.6 || ^7.0"
|
863 |
-
},
|
864 |
-
"time": "2017-03-05T18:14:27+00:00",
|
865 |
-
"type": "library",
|
866 |
-
"extra": {
|
867 |
-
"branch-alias": {
|
868 |
-
"dev-master": "1.0.x-dev"
|
869 |
-
}
|
870 |
-
},
|
871 |
-
"installation-source": "dist",
|
872 |
-
"autoload": {
|
873 |
-
"classmap": [
|
874 |
-
"src/"
|
875 |
-
]
|
876 |
-
},
|
877 |
-
"notification-url": "https://packagist.org/downloads/",
|
878 |
-
"license": [
|
879 |
-
"BSD-3-Clause"
|
880 |
-
],
|
881 |
-
"authors": [
|
882 |
-
{
|
883 |
-
"name": "Arne Blankerts",
|
884 |
-
"email": "arne@blankerts.de",
|
885 |
-
"role": "Developer"
|
886 |
-
},
|
887 |
-
{
|
888 |
-
"name": "Sebastian Heuer",
|
889 |
-
"email": "sebastian@phpeople.de",
|
890 |
-
"role": "Developer"
|
891 |
-
},
|
892 |
-
{
|
893 |
-
"name": "Sebastian Bergmann",
|
894 |
-
"email": "sebastian@phpunit.de",
|
895 |
-
"role": "Developer"
|
896 |
-
}
|
897 |
-
],
|
898 |
-
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
|
899 |
-
"support": {
|
900 |
-
"issues": "https://github.com/phar-io/manifest/issues",
|
901 |
-
"source": "https://github.com/phar-io/manifest/tree/master"
|
902 |
-
},
|
903 |
-
"install-path": "../phar-io/manifest"
|
904 |
-
},
|
905 |
-
{
|
906 |
-
"name": "phar-io/version",
|
907 |
-
"version": "1.0.1",
|
908 |
-
"version_normalized": "1.0.1.0",
|
909 |
-
"source": {
|
910 |
-
"type": "git",
|
911 |
-
"url": "https://github.com/phar-io/version.git",
|
912 |
-
"reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
|
913 |
-
},
|
914 |
-
"dist": {
|
915 |
-
"type": "zip",
|
916 |
-
"url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
|
917 |
-
"reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
|
918 |
-
"shasum": ""
|
919 |
-
},
|
920 |
-
"require": {
|
921 |
-
"php": "^5.6 || ^7.0"
|
922 |
-
},
|
923 |
-
"time": "2017-03-05T17:38:23+00:00",
|
924 |
-
"type": "library",
|
925 |
-
"installation-source": "dist",
|
926 |
-
"autoload": {
|
927 |
-
"classmap": [
|
928 |
-
"src/"
|
929 |
-
]
|
930 |
-
},
|
931 |
-
"notification-url": "https://packagist.org/downloads/",
|
932 |
-
"license": [
|
933 |
-
"BSD-3-Clause"
|
934 |
-
],
|
935 |
-
"authors": [
|
936 |
-
{
|
937 |
-
"name": "Arne Blankerts",
|
938 |
-
"email": "arne@blankerts.de",
|
939 |
-
"role": "Developer"
|
940 |
-
},
|
941 |
-
{
|
942 |
-
"name": "Sebastian Heuer",
|
943 |
-
"email": "sebastian@phpeople.de",
|
944 |
-
"role": "Developer"
|
945 |
-
},
|
946 |
-
{
|
947 |
-
"name": "Sebastian Bergmann",
|
948 |
-
"email": "sebastian@phpunit.de",
|
949 |
-
"role": "Developer"
|
950 |
-
}
|
951 |
-
],
|
952 |
-
"description": "Library for handling version information and constraints",
|
953 |
-
"support": {
|
954 |
-
"issues": "https://github.com/phar-io/version/issues",
|
955 |
-
"source": "https://github.com/phar-io/version/tree/master"
|
956 |
-
},
|
957 |
-
"install-path": "../phar-io/version"
|
958 |
-
},
|
959 |
-
{
|
960 |
-
"name": "php-coveralls/php-coveralls",
|
961 |
-
"version": "v2.4.2",
|
962 |
-
"version_normalized": "2.4.2.0",
|
963 |
-
"source": {
|
964 |
-
"type": "git",
|
965 |
-
"url": "https://github.com/php-coveralls/php-coveralls.git",
|
966 |
-
"reference": "8a33ae229da63a0bd22dadae1512af663ce5e559"
|
967 |
-
},
|
968 |
-
"dist": {
|
969 |
-
"type": "zip",
|
970 |
-
"url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/8a33ae229da63a0bd22dadae1512af663ce5e559",
|
971 |
-
"reference": "8a33ae229da63a0bd22dadae1512af663ce5e559",
|
972 |
-
"shasum": ""
|
973 |
-
},
|
974 |
-
"require": {
|
975 |
-
"ext-json": "*",
|
976 |
-
"ext-simplexml": "*",
|
977 |
-
"guzzlehttp/guzzle": "^6.0 || ^7.0",
|
978 |
-
"php": "^5.5 || ^7.0 || ^8.0",
|
979 |
-
"psr/log": "^1.0",
|
980 |
-
"symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0",
|
981 |
-
"symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0",
|
982 |
-
"symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0",
|
983 |
-
"symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0"
|
984 |
-
},
|
985 |
-
"require-dev": {
|
986 |
-
"phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0",
|
987 |
-
"sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0"
|
988 |
-
},
|
989 |
-
"suggest": {
|
990 |
-
"symfony/http-kernel": "Allows Symfony integration"
|
991 |
-
},
|
992 |
-
"time": "2020-10-23T16:34:35+00:00",
|
993 |
-
"bin": [
|
994 |
-
"bin/php-coveralls"
|
995 |
-
],
|
996 |
-
"type": "library",
|
997 |
-
"installation-source": "dist",
|
998 |
-
"autoload": {
|
999 |
-
"psr-4": {
|
1000 |
-
"PhpCoveralls\\": "src/"
|
1001 |
-
}
|
1002 |
-
},
|
1003 |
-
"notification-url": "https://packagist.org/downloads/",
|
1004 |
-
"license": [
|
1005 |
-
"MIT"
|
1006 |
-
],
|
1007 |
-
"authors": [
|
1008 |
-
{
|
1009 |
-
"name": "Kitamura Satoshi",
|
1010 |
-
"email": "with.no.parachute@gmail.com",
|
1011 |
-
"homepage": "https://www.facebook.com/satooshi.jp",
|
1012 |
-
"role": "Original creator"
|
1013 |
-
},
|
1014 |
-
{
|
1015 |
-
"name": "Takashi Matsuo",
|
1016 |
-
"email": "tmatsuo@google.com"
|
1017 |
-
},
|
1018 |
-
{
|
1019 |
-
"name": "Google Inc"
|
1020 |
-
},
|
1021 |
-
{
|
1022 |
-
"name": "Dariusz Ruminski",
|
1023 |
-
"email": "dariusz.ruminski@gmail.com",
|
1024 |
-
"homepage": "https://github.com/keradus"
|
1025 |
-
},
|
1026 |
-
{
|
1027 |
-
"name": "Contributors",
|
1028 |
-
"homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors"
|
1029 |
-
}
|
1030 |
-
],
|
1031 |
-
"description": "PHP client library for Coveralls API",
|
1032 |
-
"homepage": "https://github.com/php-coveralls/php-coveralls",
|
1033 |
-
"keywords": [
|
1034 |
-
"ci",
|
1035 |
-
"coverage",
|
1036 |
-
"github",
|
1037 |
-
"test"
|
1038 |
-
],
|
1039 |
-
"support": {
|
1040 |
-
"issues": "https://github.com/php-coveralls/php-coveralls/issues",
|
1041 |
-
"source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.2"
|
1042 |
-
},
|
1043 |
-
"install-path": "../php-coveralls/php-coveralls"
|
1044 |
-
},
|
1045 |
-
{
|
1046 |
-
"name": "phpcompatibility/php-compatibility",
|
1047 |
-
"version": "9.3.5",
|
1048 |
-
"version_normalized": "9.3.5.0",
|
1049 |
-
"source": {
|
1050 |
-
"type": "git",
|
1051 |
-
"url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
|
1052 |
-
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
|
1053 |
-
},
|
1054 |
-
"dist": {
|
1055 |
-
"type": "zip",
|
1056 |
-
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
|
1057 |
-
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
|
1058 |
-
"shasum": ""
|
1059 |
-
},
|
1060 |
-
"require": {
|
1061 |
-
"php": ">=5.3",
|
1062 |
-
"squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
|
1063 |
-
},
|
1064 |
-
"conflict": {
|
1065 |
-
"squizlabs/php_codesniffer": "2.6.2"
|
1066 |
-
},
|
1067 |
-
"require-dev": {
|
1068 |
-
"phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
|
1069 |
-
},
|
1070 |
-
"suggest": {
|
1071 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
|
1072 |
-
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
1073 |
-
},
|
1074 |
-
"time": "2019-12-27T09:44:58+00:00",
|
1075 |
-
"type": "phpcodesniffer-standard",
|
1076 |
-
"installation-source": "dist",
|
1077 |
-
"notification-url": "https://packagist.org/downloads/",
|
1078 |
-
"license": [
|
1079 |
-
"LGPL-3.0-or-later"
|
1080 |
-
],
|
1081 |
-
"authors": [
|
1082 |
-
{
|
1083 |
-
"name": "Wim Godden",
|
1084 |
-
"homepage": "https://github.com/wimg",
|
1085 |
-
"role": "lead"
|
1086 |
-
},
|
1087 |
-
{
|
1088 |
-
"name": "Juliette Reinders Folmer",
|
1089 |
-
"homepage": "https://github.com/jrfnl",
|
1090 |
-
"role": "lead"
|
1091 |
-
},
|
1092 |
-
{
|
1093 |
-
"name": "Contributors",
|
1094 |
-
"homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
|
1095 |
-
}
|
1096 |
-
],
|
1097 |
-
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
|
1098 |
-
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
|
1099 |
-
"keywords": [
|
1100 |
-
"compatibility",
|
1101 |
-
"phpcs",
|
1102 |
-
"standards"
|
1103 |
-
],
|
1104 |
-
"support": {
|
1105 |
-
"issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
|
1106 |
-
"source": "https://github.com/PHPCompatibility/PHPCompatibility"
|
1107 |
-
},
|
1108 |
-
"install-path": "../phpcompatibility/php-compatibility"
|
1109 |
-
},
|
1110 |
-
{
|
1111 |
-
"name": "phpcompatibility/phpcompatibility-paragonie",
|
1112 |
-
"version": "1.3.0",
|
1113 |
-
"version_normalized": "1.3.0.0",
|
1114 |
-
"source": {
|
1115 |
-
"type": "git",
|
1116 |
-
"url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
|
1117 |
-
"reference": "b862bc32f7e860d0b164b199bd995e690b4b191c"
|
1118 |
-
},
|
1119 |
-
"dist": {
|
1120 |
-
"type": "zip",
|
1121 |
-
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c",
|
1122 |
-
"reference": "b862bc32f7e860d0b164b199bd995e690b4b191c",
|
1123 |
-
"shasum": ""
|
1124 |
-
},
|
1125 |
-
"require": {
|
1126 |
-
"phpcompatibility/php-compatibility": "^9.0"
|
1127 |
-
},
|
1128 |
-
"require-dev": {
|
1129 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5",
|
1130 |
-
"paragonie/random_compat": "dev-master",
|
1131 |
-
"paragonie/sodium_compat": "dev-master"
|
1132 |
-
},
|
1133 |
-
"suggest": {
|
1134 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
1135 |
-
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
1136 |
-
},
|
1137 |
-
"time": "2019-11-04T15:17:54+00:00",
|
1138 |
-
"type": "phpcodesniffer-standard",
|
1139 |
-
"installation-source": "dist",
|
1140 |
-
"notification-url": "https://packagist.org/downloads/",
|
1141 |
-
"license": [
|
1142 |
-
"LGPL-3.0-or-later"
|
1143 |
-
],
|
1144 |
-
"authors": [
|
1145 |
-
{
|
1146 |
-
"name": "Wim Godden",
|
1147 |
-
"role": "lead"
|
1148 |
-
},
|
1149 |
-
{
|
1150 |
-
"name": "Juliette Reinders Folmer",
|
1151 |
-
"role": "lead"
|
1152 |
-
}
|
1153 |
-
],
|
1154 |
-
"description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
|
1155 |
-
"homepage": "http://phpcompatibility.com/",
|
1156 |
-
"keywords": [
|
1157 |
-
"compatibility",
|
1158 |
-
"paragonie",
|
1159 |
-
"phpcs",
|
1160 |
-
"polyfill",
|
1161 |
-
"standards"
|
1162 |
-
],
|
1163 |
-
"support": {
|
1164 |
-
"issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues",
|
1165 |
-
"source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie"
|
1166 |
-
},
|
1167 |
-
"install-path": "../phpcompatibility/phpcompatibility-paragonie"
|
1168 |
-
},
|
1169 |
-
{
|
1170 |
-
"name": "phpcompatibility/phpcompatibility-wp",
|
1171 |
-
"version": "2.1.0",
|
1172 |
-
"version_normalized": "2.1.0.0",
|
1173 |
-
"source": {
|
1174 |
-
"type": "git",
|
1175 |
-
"url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
|
1176 |
-
"reference": "41bef18ba688af638b7310666db28e1ea9158b2f"
|
1177 |
-
},
|
1178 |
-
"dist": {
|
1179 |
-
"type": "zip",
|
1180 |
-
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f",
|
1181 |
-
"reference": "41bef18ba688af638b7310666db28e1ea9158b2f",
|
1182 |
-
"shasum": ""
|
1183 |
-
},
|
1184 |
-
"require": {
|
1185 |
-
"phpcompatibility/php-compatibility": "^9.0",
|
1186 |
-
"phpcompatibility/phpcompatibility-paragonie": "^1.0"
|
1187 |
-
},
|
1188 |
-
"require-dev": {
|
1189 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5"
|
1190 |
-
},
|
1191 |
-
"suggest": {
|
1192 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
1193 |
-
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
1194 |
-
},
|
1195 |
-
"time": "2019-08-28T14:22:28+00:00",
|
1196 |
-
"type": "phpcodesniffer-standard",
|
1197 |
-
"installation-source": "dist",
|
1198 |
-
"license": [
|
1199 |
-
"LGPL-3.0-or-later"
|
1200 |
-
],
|
1201 |
-
"authors": [
|
1202 |
-
{
|
1203 |
-
"name": "Wim Godden",
|
1204 |
-
"role": "lead"
|
1205 |
-
},
|
1206 |
-
{
|
1207 |
-
"name": "Juliette Reinders Folmer",
|
1208 |
-
"role": "lead"
|
1209 |
-
}
|
1210 |
-
],
|
1211 |
-
"description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
|
1212 |
-
"homepage": "http://phpcompatibility.com/",
|
1213 |
-
"keywords": [
|
1214 |
-
"compatibility",
|
1215 |
-
"phpcs",
|
1216 |
-
"standards",
|
1217 |
-
"wordpress"
|
1218 |
-
],
|
1219 |
-
"support": {
|
1220 |
-
"issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues",
|
1221 |
-
"source": "https://github.com/PHPCompatibility/PHPCompatibilityWP"
|
1222 |
-
},
|
1223 |
-
"install-path": "../phpcompatibility/phpcompatibility-wp"
|
1224 |
-
},
|
1225 |
-
{
|
1226 |
-
"name": "phpdocumentor/reflection-common",
|
1227 |
-
"version": "1.0.1",
|
1228 |
-
"version_normalized": "1.0.1.0",
|
1229 |
-
"source": {
|
1230 |
-
"type": "git",
|
1231 |
-
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
1232 |
-
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
|
1233 |
-
},
|
1234 |
-
"dist": {
|
1235 |
-
"type": "zip",
|
1236 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
1237 |
-
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
1238 |
-
"shasum": ""
|
1239 |
-
},
|
1240 |
-
"require": {
|
1241 |
-
"php": ">=5.5"
|
1242 |
-
},
|
1243 |
-
"require-dev": {
|
1244 |
-
"phpunit/phpunit": "^4.6"
|
1245 |
-
},
|
1246 |
-
"time": "2017-09-11T18:02:19+00:00",
|
1247 |
-
"type": "library",
|
1248 |
-
"extra": {
|
1249 |
-
"branch-alias": {
|
1250 |
-
"dev-master": "1.0.x-dev"
|
1251 |
-
}
|
1252 |
-
},
|
1253 |
-
"installation-source": "dist",
|
1254 |
-
"autoload": {
|
1255 |
-
"psr-4": {
|
1256 |
-
"phpDocumentor\\Reflection\\": [
|
1257 |
-
"src"
|
1258 |
-
]
|
1259 |
-
}
|
1260 |
-
},
|
1261 |
-
"notification-url": "https://packagist.org/downloads/",
|
1262 |
-
"license": [
|
1263 |
-
"MIT"
|
1264 |
-
],
|
1265 |
-
"authors": [
|
1266 |
-
{
|
1267 |
-
"name": "Jaap van Otterdijk",
|
1268 |
-
"email": "opensource@ijaap.nl"
|
1269 |
-
}
|
1270 |
-
],
|
1271 |
-
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
1272 |
-
"homepage": "http://www.phpdoc.org",
|
1273 |
-
"keywords": [
|
1274 |
-
"FQSEN",
|
1275 |
-
"phpDocumentor",
|
1276 |
-
"phpdoc",
|
1277 |
-
"reflection",
|
1278 |
-
"static analysis"
|
1279 |
-
],
|
1280 |
-
"support": {
|
1281 |
-
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
|
1282 |
-
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/master"
|
1283 |
-
},
|
1284 |
-
"install-path": "../phpdocumentor/reflection-common"
|
1285 |
-
},
|
1286 |
-
{
|
1287 |
-
"name": "phpdocumentor/reflection-docblock",
|
1288 |
-
"version": "4.3.4",
|
1289 |
-
"version_normalized": "4.3.4.0",
|
1290 |
-
"source": {
|
1291 |
-
"type": "git",
|
1292 |
-
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
1293 |
-
"reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c"
|
1294 |
-
},
|
1295 |
-
"dist": {
|
1296 |
-
"type": "zip",
|
1297 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c",
|
1298 |
-
"reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c",
|
1299 |
-
"shasum": ""
|
1300 |
-
},
|
1301 |
-
"require": {
|
1302 |
-
"php": "^7.0",
|
1303 |
-
"phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0",
|
1304 |
-
"phpdocumentor/type-resolver": "~0.4 || ^1.0.0",
|
1305 |
-
"webmozart/assert": "^1.0"
|
1306 |
-
},
|
1307 |
-
"require-dev": {
|
1308 |
-
"doctrine/instantiator": "^1.0.5",
|
1309 |
-
"mockery/mockery": "^1.0",
|
1310 |
-
"phpdocumentor/type-resolver": "0.4.*",
|
1311 |
-
"phpunit/phpunit": "^6.4"
|
1312 |
-
},
|
1313 |
-
"time": "2019-12-28T18:55:12+00:00",
|
1314 |
-
"type": "library",
|
1315 |
-
"extra": {
|
1316 |
-
"branch-alias": {
|
1317 |
-
"dev-master": "4.x-dev"
|
1318 |
-
}
|
1319 |
-
},
|
1320 |
-
"installation-source": "dist",
|
1321 |
-
"autoload": {
|
1322 |
-
"psr-4": {
|
1323 |
-
"phpDocumentor\\Reflection\\": [
|
1324 |
-
"src/"
|
1325 |
-
]
|
1326 |
-
}
|
1327 |
-
},
|
1328 |
-
"notification-url": "https://packagist.org/downloads/",
|
1329 |
-
"license": [
|
1330 |
-
"MIT"
|
1331 |
-
],
|
1332 |
-
"authors": [
|
1333 |
-
{
|
1334 |
-
"name": "Mike van Riel",
|
1335 |
-
"email": "me@mikevanriel.com"
|
1336 |
-
}
|
1337 |
-
],
|
1338 |
-
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
1339 |
-
"support": {
|
1340 |
-
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
|
1341 |
-
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/4.x"
|
1342 |
-
},
|
1343 |
-
"install-path": "../phpdocumentor/reflection-docblock"
|
1344 |
-
},
|
1345 |
-
{
|
1346 |
-
"name": "phpdocumentor/type-resolver",
|
1347 |
-
"version": "0.5.1",
|
1348 |
-
"version_normalized": "0.5.1.0",
|
1349 |
-
"source": {
|
1350 |
-
"type": "git",
|
1351 |
-
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
1352 |
-
"reference": "cf842904952e64e703800d094cdf34e715a8a3ae"
|
1353 |
-
},
|
1354 |
-
"dist": {
|
1355 |
-
"type": "zip",
|
1356 |
-
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/cf842904952e64e703800d094cdf34e715a8a3ae",
|
1357 |
-
"reference": "cf842904952e64e703800d094cdf34e715a8a3ae",
|
1358 |
-
"shasum": ""
|
1359 |
-
},
|
1360 |
-
"require": {
|
1361 |
-
"php": "^7.0",
|
1362 |
-
"phpdocumentor/reflection-common": "^1.0"
|
1363 |
-
},
|
1364 |
-
"require-dev": {
|
1365 |
-
"mockery/mockery": "^1.0",
|
1366 |
-
"phpunit/phpunit": "^6.4"
|
1367 |
-
},
|
1368 |
-
"time": "2017-12-30T13:23:38+00:00",
|
1369 |
-
"type": "library",
|
1370 |
-
"extra": {
|
1371 |
-
"branch-alias": {
|
1372 |
-
"dev-master": "1.0.x-dev"
|
1373 |
-
}
|
1374 |
-
},
|
1375 |
-
"installation-source": "dist",
|
1376 |
-
"autoload": {
|
1377 |
-
"psr-4": {
|
1378 |
-
"phpDocumentor\\Reflection\\": "src"
|
1379 |
-
}
|
1380 |
-
},
|
1381 |
-
"notification-url": "https://packagist.org/downloads/",
|
1382 |
-
"license": [
|
1383 |
-
"MIT"
|
1384 |
-
],
|
1385 |
-
"authors": [
|
1386 |
-
{
|
1387 |
-
"name": "Mike van Riel",
|
1388 |
-
"email": "me@mikevanriel.com"
|
1389 |
-
}
|
1390 |
-
],
|
1391 |
-
"support": {
|
1392 |
-
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
1393 |
-
"source": "https://github.com/phpDocumentor/TypeResolver/tree/master"
|
1394 |
-
},
|
1395 |
-
"install-path": "../phpdocumentor/type-resolver"
|
1396 |
-
},
|
1397 |
-
{
|
1398 |
-
"name": "phpspec/prophecy",
|
1399 |
-
"version": "v1.10.3",
|
1400 |
-
"version_normalized": "1.10.3.0",
|
1401 |
-
"source": {
|
1402 |
-
"type": "git",
|
1403 |
-
"url": "https://github.com/phpspec/prophecy.git",
|
1404 |
-
"reference": "451c3cd1418cf640de218914901e51b064abb093"
|
1405 |
-
},
|
1406 |
-
"dist": {
|
1407 |
-
"type": "zip",
|
1408 |
-
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
|
1409 |
-
"reference": "451c3cd1418cf640de218914901e51b064abb093",
|
1410 |
-
"shasum": ""
|
1411 |
-
},
|
1412 |
-
"require": {
|
1413 |
-
"doctrine/instantiator": "^1.0.2",
|
1414 |
-
"php": "^5.3|^7.0",
|
1415 |
-
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
|
1416 |
-
"sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
|
1417 |
-
"sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
|
1418 |
-
},
|
1419 |
-
"require-dev": {
|
1420 |
-
"phpspec/phpspec": "^2.5 || ^3.2",
|
1421 |
-
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
|
1422 |
-
},
|
1423 |
-
"time": "2020-03-05T15:02:03+00:00",
|
1424 |
-
"type": "library",
|
1425 |
-
"extra": {
|
1426 |
-
"branch-alias": {
|
1427 |
-
"dev-master": "1.10.x-dev"
|
1428 |
-
}
|
1429 |
-
},
|
1430 |
-
"installation-source": "dist",
|
1431 |
-
"autoload": {
|
1432 |
-
"psr-4": {
|
1433 |
-
"Prophecy\\": "src/Prophecy"
|
1434 |
-
}
|
1435 |
-
},
|
1436 |
-
"notification-url": "https://packagist.org/downloads/",
|
1437 |
-
"license": [
|
1438 |
-
"MIT"
|
1439 |
-
],
|
1440 |
-
"authors": [
|
1441 |
-
{
|
1442 |
-
"name": "Konstantin Kudryashov",
|
1443 |
-
"email": "ever.zet@gmail.com",
|
1444 |
-
"homepage": "http://everzet.com"
|
1445 |
-
},
|
1446 |
-
{
|
1447 |
-
"name": "Marcello Duarte",
|
1448 |
-
"email": "marcello.duarte@gmail.com"
|
1449 |
-
}
|
1450 |
-
],
|
1451 |
-
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
1452 |
-
"homepage": "https://github.com/phpspec/prophecy",
|
1453 |
-
"keywords": [
|
1454 |
-
"Double",
|
1455 |
-
"Dummy",
|
1456 |
-
"fake",
|
1457 |
-
"mock",
|
1458 |
-
"spy",
|
1459 |
-
"stub"
|
1460 |
-
],
|
1461 |
-
"support": {
|
1462 |
-
"issues": "https://github.com/phpspec/prophecy/issues",
|
1463 |
-
"source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
|
1464 |
-
},
|
1465 |
-
"install-path": "../phpspec/prophecy"
|
1466 |
-
},
|
1467 |
-
{
|
1468 |
-
"name": "phpunit/php-code-coverage",
|
1469 |
-
"version": "5.3.2",
|
1470 |
-
"version_normalized": "5.3.2.0",
|
1471 |
-
"source": {
|
1472 |
-
"type": "git",
|
1473 |
-
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
1474 |
-
"reference": "c89677919c5dd6d3b3852f230a663118762218ac"
|
1475 |
-
},
|
1476 |
-
"dist": {
|
1477 |
-
"type": "zip",
|
1478 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
|
1479 |
-
"reference": "c89677919c5dd6d3b3852f230a663118762218ac",
|
1480 |
-
"shasum": ""
|
1481 |
-
},
|
1482 |
-
"require": {
|
1483 |
-
"ext-dom": "*",
|
1484 |
-
"ext-xmlwriter": "*",
|
1485 |
-
"php": "^7.0",
|
1486 |
-
"phpunit/php-file-iterator": "^1.4.2",
|
1487 |
-
"phpunit/php-text-template": "^1.2.1",
|
1488 |
-
"phpunit/php-token-stream": "^2.0.1",
|
1489 |
-
"sebastian/code-unit-reverse-lookup": "^1.0.1",
|
1490 |
-
"sebastian/environment": "^3.0",
|
1491 |
-
"sebastian/version": "^2.0.1",
|
1492 |
-
"theseer/tokenizer": "^1.1"
|
1493 |
-
},
|
1494 |
-
"require-dev": {
|
1495 |
-
"phpunit/phpunit": "^6.0"
|
1496 |
-
},
|
1497 |
-
"suggest": {
|
1498 |
-
"ext-xdebug": "^2.5.5"
|
1499 |
-
},
|
1500 |
-
"time": "2018-04-06T15:36:58+00:00",
|
1501 |
-
"type": "library",
|
1502 |
-
"extra": {
|
1503 |
-
"branch-alias": {
|
1504 |
-
"dev-master": "5.3.x-dev"
|
1505 |
-
}
|
1506 |
-
},
|
1507 |
-
"installation-source": "dist",
|
1508 |
-
"autoload": {
|
1509 |
-
"classmap": [
|
1510 |
-
"src/"
|
1511 |
-
]
|
1512 |
-
},
|
1513 |
-
"notification-url": "https://packagist.org/downloads/",
|
1514 |
-
"license": [
|
1515 |
-
"BSD-3-Clause"
|
1516 |
-
],
|
1517 |
-
"authors": [
|
1518 |
-
{
|
1519 |
-
"name": "Sebastian Bergmann",
|
1520 |
-
"email": "sebastian@phpunit.de",
|
1521 |
-
"role": "lead"
|
1522 |
-
}
|
1523 |
-
],
|
1524 |
-
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
1525 |
-
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
1526 |
-
"keywords": [
|
1527 |
-
"coverage",
|
1528 |
-
"testing",
|
1529 |
-
"xunit"
|
1530 |
-
],
|
1531 |
-
"support": {
|
1532 |
-
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
1533 |
-
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/5.3"
|
1534 |
-
},
|
1535 |
-
"install-path": "../phpunit/php-code-coverage"
|
1536 |
-
},
|
1537 |
-
{
|
1538 |
-
"name": "phpunit/php-file-iterator",
|
1539 |
-
"version": "1.4.5",
|
1540 |
-
"version_normalized": "1.4.5.0",
|
1541 |
-
"source": {
|
1542 |
-
"type": "git",
|
1543 |
-
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
1544 |
-
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
|
1545 |
-
},
|
1546 |
-
"dist": {
|
1547 |
-
"type": "zip",
|
1548 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
1549 |
-
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
1550 |
-
"shasum": ""
|
1551 |
-
},
|
1552 |
-
"require": {
|
1553 |
-
"php": ">=5.3.3"
|
1554 |
-
},
|
1555 |
-
"time": "2017-11-27T13:52:08+00:00",
|
1556 |
-
"type": "library",
|
1557 |
-
"extra": {
|
1558 |
-
"branch-alias": {
|
1559 |
-
"dev-master": "1.4.x-dev"
|
1560 |
-
}
|
1561 |
-
},
|
1562 |
-
"installation-source": "dist",
|
1563 |
-
"autoload": {
|
1564 |
-
"classmap": [
|
1565 |
-
"src/"
|
1566 |
-
]
|
1567 |
-
},
|
1568 |
-
"notification-url": "https://packagist.org/downloads/",
|
1569 |
-
"license": [
|
1570 |
-
"BSD-3-Clause"
|
1571 |
-
],
|
1572 |
-
"authors": [
|
1573 |
-
{
|
1574 |
-
"name": "Sebastian Bergmann",
|
1575 |
-
"email": "sb@sebastian-bergmann.de",
|
1576 |
-
"role": "lead"
|
1577 |
-
}
|
1578 |
-
],
|
1579 |
-
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
1580 |
-
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
1581 |
-
"keywords": [
|
1582 |
-
"filesystem",
|
1583 |
-
"iterator"
|
1584 |
-
],
|
1585 |
-
"support": {
|
1586 |
-
"irc": "irc://irc.freenode.net/phpunit",
|
1587 |
-
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
|
1588 |
-
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5"
|
1589 |
-
},
|
1590 |
-
"install-path": "../phpunit/php-file-iterator"
|
1591 |
-
},
|
1592 |
-
{
|
1593 |
-
"name": "phpunit/php-text-template",
|
1594 |
-
"version": "1.2.1",
|
1595 |
-
"version_normalized": "1.2.1.0",
|
1596 |
-
"source": {
|
1597 |
-
"type": "git",
|
1598 |
-
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
1599 |
-
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
|
1600 |
-
},
|
1601 |
-
"dist": {
|
1602 |
-
"type": "zip",
|
1603 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
1604 |
-
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
1605 |
-
"shasum": ""
|
1606 |
-
},
|
1607 |
-
"require": {
|
1608 |
-
"php": ">=5.3.3"
|
1609 |
-
},
|
1610 |
-
"time": "2015-06-21T13:50:34+00:00",
|
1611 |
-
"type": "library",
|
1612 |
-
"installation-source": "dist",
|
1613 |
-
"autoload": {
|
1614 |
-
"classmap": [
|
1615 |
-
"src/"
|
1616 |
-
]
|
1617 |
-
},
|
1618 |
-
"notification-url": "https://packagist.org/downloads/",
|
1619 |
-
"license": [
|
1620 |
-
"BSD-3-Clause"
|
1621 |
-
],
|
1622 |
-
"authors": [
|
1623 |
-
{
|
1624 |
-
"name": "Sebastian Bergmann",
|
1625 |
-
"email": "sebastian@phpunit.de",
|
1626 |
-
"role": "lead"
|
1627 |
-
}
|
1628 |
-
],
|
1629 |
-
"description": "Simple template engine.",
|
1630 |
-
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
1631 |
-
"keywords": [
|
1632 |
-
"template"
|
1633 |
-
],
|
1634 |
-
"support": {
|
1635 |
-
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
|
1636 |
-
"source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
|
1637 |
-
},
|
1638 |
-
"install-path": "../phpunit/php-text-template"
|
1639 |
-
},
|
1640 |
-
{
|
1641 |
-
"name": "phpunit/php-timer",
|
1642 |
-
"version": "1.0.9",
|
1643 |
-
"version_normalized": "1.0.9.0",
|
1644 |
-
"source": {
|
1645 |
-
"type": "git",
|
1646 |
-
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
1647 |
-
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
|
1648 |
-
},
|
1649 |
-
"dist": {
|
1650 |
-
"type": "zip",
|
1651 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
1652 |
-
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
1653 |
-
"shasum": ""
|
1654 |
-
},
|
1655 |
-
"require": {
|
1656 |
-
"php": "^5.3.3 || ^7.0"
|
1657 |
-
},
|
1658 |
-
"require-dev": {
|
1659 |
-
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
1660 |
-
},
|
1661 |
-
"time": "2017-02-26T11:10:40+00:00",
|
1662 |
-
"type": "library",
|
1663 |
-
"extra": {
|
1664 |
-
"branch-alias": {
|
1665 |
-
"dev-master": "1.0-dev"
|
1666 |
-
}
|
1667 |
-
},
|
1668 |
-
"installation-source": "dist",
|
1669 |
-
"autoload": {
|
1670 |
-
"classmap": [
|
1671 |
-
"src/"
|
1672 |
-
]
|
1673 |
-
},
|
1674 |
-
"notification-url": "https://packagist.org/downloads/",
|
1675 |
-
"license": [
|
1676 |
-
"BSD-3-Clause"
|
1677 |
-
],
|
1678 |
-
"authors": [
|
1679 |
-
{
|
1680 |
-
"name": "Sebastian Bergmann",
|
1681 |
-
"email": "sb@sebastian-bergmann.de",
|
1682 |
-
"role": "lead"
|
1683 |
-
}
|
1684 |
-
],
|
1685 |
-
"description": "Utility class for timing",
|
1686 |
-
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
1687 |
-
"keywords": [
|
1688 |
-
"timer"
|
1689 |
-
],
|
1690 |
-
"support": {
|
1691 |
-
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
|
1692 |
-
"source": "https://github.com/sebastianbergmann/php-timer/tree/master"
|
1693 |
-
},
|
1694 |
-
"install-path": "../phpunit/php-timer"
|
1695 |
-
},
|
1696 |
-
{
|
1697 |
-
"name": "phpunit/php-token-stream",
|
1698 |
-
"version": "2.0.2",
|
1699 |
-
"version_normalized": "2.0.2.0",
|
1700 |
-
"source": {
|
1701 |
-
"type": "git",
|
1702 |
-
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
1703 |
-
"reference": "791198a2c6254db10131eecfe8c06670700904db"
|
1704 |
-
},
|
1705 |
-
"dist": {
|
1706 |
-
"type": "zip",
|
1707 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
|
1708 |
-
"reference": "791198a2c6254db10131eecfe8c06670700904db",
|
1709 |
-
"shasum": ""
|
1710 |
-
},
|
1711 |
-
"require": {
|
1712 |
-
"ext-tokenizer": "*",
|
1713 |
-
"php": "^7.0"
|
1714 |
-
},
|
1715 |
-
"require-dev": {
|
1716 |
-
"phpunit/phpunit": "^6.2.4"
|
1717 |
-
},
|
1718 |
-
"time": "2017-11-27T05:48:46+00:00",
|
1719 |
-
"type": "library",
|
1720 |
-
"extra": {
|
1721 |
-
"branch-alias": {
|
1722 |
-
"dev-master": "2.0-dev"
|
1723 |
-
}
|
1724 |
-
},
|
1725 |
-
"installation-source": "dist",
|
1726 |
-
"autoload": {
|
1727 |
-
"classmap": [
|
1728 |
-
"src/"
|
1729 |
-
]
|
1730 |
-
},
|
1731 |
-
"notification-url": "https://packagist.org/downloads/",
|
1732 |
-
"license": [
|
1733 |
-
"BSD-3-Clause"
|
1734 |
-
],
|
1735 |
-
"authors": [
|
1736 |
-
{
|
1737 |
-
"name": "Sebastian Bergmann",
|
1738 |
-
"email": "sebastian@phpunit.de"
|
1739 |
-
}
|
1740 |
-
],
|
1741 |
-
"description": "Wrapper around PHP's tokenizer extension.",
|
1742 |
-
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
|
1743 |
-
"keywords": [
|
1744 |
-
"tokenizer"
|
1745 |
-
],
|
1746 |
-
"support": {
|
1747 |
-
"issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
|
1748 |
-
"source": "https://github.com/sebastianbergmann/php-token-stream/tree/master"
|
1749 |
-
},
|
1750 |
-
"abandoned": true,
|
1751 |
-
"install-path": "../phpunit/php-token-stream"
|
1752 |
-
},
|
1753 |
-
{
|
1754 |
-
"name": "phpunit/phpunit",
|
1755 |
-
"version": "6.5.14",
|
1756 |
-
"version_normalized": "6.5.14.0",
|
1757 |
-
"source": {
|
1758 |
-
"type": "git",
|
1759 |
-
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
1760 |
-
"reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7"
|
1761 |
-
},
|
1762 |
-
"dist": {
|
1763 |
-
"type": "zip",
|
1764 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7",
|
1765 |
-
"reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7",
|
1766 |
-
"shasum": ""
|
1767 |
-
},
|
1768 |
-
"require": {
|
1769 |
-
"ext-dom": "*",
|
1770 |
-
"ext-json": "*",
|
1771 |
-
"ext-libxml": "*",
|
1772 |
-
"ext-mbstring": "*",
|
1773 |
-
"ext-xml": "*",
|
1774 |
-
"myclabs/deep-copy": "^1.6.1",
|
1775 |
-
"phar-io/manifest": "^1.0.1",
|
1776 |
-
"phar-io/version": "^1.0",
|
1777 |
-
"php": "^7.0",
|
1778 |
-
"phpspec/prophecy": "^1.7",
|
1779 |
-
"phpunit/php-code-coverage": "^5.3",
|
1780 |
-
"phpunit/php-file-iterator": "^1.4.3",
|
1781 |
-
"phpunit/php-text-template": "^1.2.1",
|
1782 |
-
"phpunit/php-timer": "^1.0.9",
|
1783 |
-
"phpunit/phpunit-mock-objects": "^5.0.9",
|
1784 |
-
"sebastian/comparator": "^2.1",
|
1785 |
-
"sebastian/diff": "^2.0",
|
1786 |
-
"sebastian/environment": "^3.1",
|
1787 |
-
"sebastian/exporter": "^3.1",
|
1788 |
-
"sebastian/global-state": "^2.0",
|
1789 |
-
"sebastian/object-enumerator": "^3.0.3",
|
1790 |
-
"sebastian/resource-operations": "^1.0",
|
1791 |
-
"sebastian/version": "^2.0.1"
|
1792 |
-
},
|
1793 |
-
"conflict": {
|
1794 |
-
"phpdocumentor/reflection-docblock": "3.0.2",
|
1795 |
-
"phpunit/dbunit": "<3.0"
|
1796 |
-
},
|
1797 |
-
"require-dev": {
|
1798 |
-
"ext-pdo": "*"
|
1799 |
-
},
|
1800 |
-
"suggest": {
|
1801 |
-
"ext-xdebug": "*",
|
1802 |
-
"phpunit/php-invoker": "^1.1"
|
1803 |
-
},
|
1804 |
-
"time": "2019-02-01T05:22:47+00:00",
|
1805 |
-
"bin": [
|
1806 |
-
"phpunit"
|
1807 |
-
],
|
1808 |
-
"type": "library",
|
1809 |
-
"extra": {
|
1810 |
-
"branch-alias": {
|
1811 |
-
"dev-master": "6.5.x-dev"
|
1812 |
-
}
|
1813 |
-
},
|
1814 |
-
"installation-source": "dist",
|
1815 |
-
"autoload": {
|
1816 |
-
"classmap": [
|
1817 |
-
"src/"
|
1818 |
-
]
|
1819 |
-
},
|
1820 |
-
"notification-url": "https://packagist.org/downloads/",
|
1821 |
-
"license": [
|
1822 |
-
"BSD-3-Clause"
|
1823 |
-
],
|
1824 |
-
"authors": [
|
1825 |
-
{
|
1826 |
-
"name": "Sebastian Bergmann",
|
1827 |
-
"email": "sebastian@phpunit.de",
|
1828 |
-
"role": "lead"
|
1829 |
-
}
|
1830 |
-
],
|
1831 |
-
"description": "The PHP Unit Testing framework.",
|
1832 |
-
"homepage": "https://phpunit.de/",
|
1833 |
-
"keywords": [
|
1834 |
-
"phpunit",
|
1835 |
-
"testing",
|
1836 |
-
"xunit"
|
1837 |
-
],
|
1838 |
-
"support": {
|
1839 |
-
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
1840 |
-
"source": "https://github.com/sebastianbergmann/phpunit/tree/6.5.14"
|
1841 |
-
},
|
1842 |
-
"install-path": "../phpunit/phpunit"
|
1843 |
-
},
|
1844 |
-
{
|
1845 |
-
"name": "phpunit/phpunit-mock-objects",
|
1846 |
-
"version": "5.0.10",
|
1847 |
-
"version_normalized": "5.0.10.0",
|
1848 |
-
"source": {
|
1849 |
-
"type": "git",
|
1850 |
-
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
1851 |
-
"reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
|
1852 |
-
},
|
1853 |
-
"dist": {
|
1854 |
-
"type": "zip",
|
1855 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
|
1856 |
-
"reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
|
1857 |
-
"shasum": ""
|
1858 |
-
},
|
1859 |
-
"require": {
|
1860 |
-
"doctrine/instantiator": "^1.0.5",
|
1861 |
-
"php": "^7.0",
|
1862 |
-
"phpunit/php-text-template": "^1.2.1",
|
1863 |
-
"sebastian/exporter": "^3.1"
|
1864 |
-
},
|
1865 |
-
"conflict": {
|
1866 |
-
"phpunit/phpunit": "<6.0"
|
1867 |
-
},
|
1868 |
-
"require-dev": {
|
1869 |
-
"phpunit/phpunit": "^6.5.11"
|
1870 |
-
},
|
1871 |
-
"suggest": {
|
1872 |
-
"ext-soap": "*"
|
1873 |
-
},
|
1874 |
-
"time": "2018-08-09T05:50:03+00:00",
|
1875 |
-
"type": "library",
|
1876 |
-
"extra": {
|
1877 |
-
"branch-alias": {
|
1878 |
-
"dev-master": "5.0.x-dev"
|
1879 |
-
}
|
1880 |
-
},
|
1881 |
-
"installation-source": "dist",
|
1882 |
-
"autoload": {
|
1883 |
-
"classmap": [
|
1884 |
-
"src/"
|
1885 |
-
]
|
1886 |
-
},
|
1887 |
-
"notification-url": "https://packagist.org/downloads/",
|
1888 |
-
"license": [
|
1889 |
-
"BSD-3-Clause"
|
1890 |
-
],
|
1891 |
-
"authors": [
|
1892 |
-
{
|
1893 |
-
"name": "Sebastian Bergmann",
|
1894 |
-
"email": "sebastian@phpunit.de",
|
1895 |
-
"role": "lead"
|
1896 |
-
}
|
1897 |
-
],
|
1898 |
-
"description": "Mock Object library for PHPUnit",
|
1899 |
-
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
1900 |
-
"keywords": [
|
1901 |
-
"mock",
|
1902 |
-
"xunit"
|
1903 |
-
],
|
1904 |
-
"support": {
|
1905 |
-
"issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues",
|
1906 |
-
"source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/5.0.10"
|
1907 |
-
},
|
1908 |
-
"abandoned": true,
|
1909 |
-
"install-path": "../phpunit/phpunit-mock-objects"
|
1910 |
-
},
|
1911 |
-
{
|
1912 |
-
"name": "psr/http-message",
|
1913 |
-
"version": "1.0.1",
|
1914 |
-
"version_normalized": "1.0.1.0",
|
1915 |
-
"source": {
|
1916 |
-
"type": "git",
|
1917 |
-
"url": "https://github.com/php-fig/http-message.git",
|
1918 |
-
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
1919 |
-
},
|
1920 |
-
"dist": {
|
1921 |
-
"type": "zip",
|
1922 |
-
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
1923 |
-
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
1924 |
-
"shasum": ""
|
1925 |
-
},
|
1926 |
-
"require": {
|
1927 |
-
"php": ">=5.3.0"
|
1928 |
-
},
|
1929 |
-
"time": "2016-08-06T14:39:51+00:00",
|
1930 |
-
"type": "library",
|
1931 |
-
"extra": {
|
1932 |
-
"branch-alias": {
|
1933 |
-
"dev-master": "1.0.x-dev"
|
1934 |
-
}
|
1935 |
-
},
|
1936 |
-
"installation-source": "dist",
|
1937 |
-
"autoload": {
|
1938 |
-
"psr-4": {
|
1939 |
-
"Psr\\Http\\Message\\": "src/"
|
1940 |
-
}
|
1941 |
-
},
|
1942 |
-
"notification-url": "https://packagist.org/downloads/",
|
1943 |
-
"license": [
|
1944 |
-
"MIT"
|
1945 |
-
],
|
1946 |
-
"authors": [
|
1947 |
-
{
|
1948 |
-
"name": "PHP-FIG",
|
1949 |
-
"homepage": "http://www.php-fig.org/"
|
1950 |
-
}
|
1951 |
-
],
|
1952 |
-
"description": "Common interface for HTTP messages",
|
1953 |
-
"homepage": "https://github.com/php-fig/http-message",
|
1954 |
-
"keywords": [
|
1955 |
-
"http",
|
1956 |
-
"http-message",
|
1957 |
-
"psr",
|
1958 |
-
"psr-7",
|
1959 |
-
"request",
|
1960 |
-
"response"
|
1961 |
-
],
|
1962 |
-
"support": {
|
1963 |
-
"source": "https://github.com/php-fig/http-message/tree/master"
|
1964 |
-
},
|
1965 |
-
"install-path": "../psr/http-message"
|
1966 |
-
},
|
1967 |
-
{
|
1968 |
-
"name": "psr/log",
|
1969 |
-
"version": "1.1.3",
|
1970 |
-
"version_normalized": "1.1.3.0",
|
1971 |
-
"source": {
|
1972 |
-
"type": "git",
|
1973 |
-
"url": "https://github.com/php-fig/log.git",
|
1974 |
-
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
|
1975 |
-
},
|
1976 |
-
"dist": {
|
1977 |
-
"type": "zip",
|
1978 |
-
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
|
1979 |
-
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
|
1980 |
-
"shasum": ""
|
1981 |
-
},
|
1982 |
-
"require": {
|
1983 |
-
"php": ">=5.3.0"
|
1984 |
-
},
|
1985 |
-
"time": "2020-03-23T09:12:05+00:00",
|
1986 |
-
"type": "library",
|
1987 |
-
"extra": {
|
1988 |
-
"branch-alias": {
|
1989 |
-
"dev-master": "1.1.x-dev"
|
1990 |
-
}
|
1991 |
-
},
|
1992 |
-
"installation-source": "dist",
|
1993 |
-
"autoload": {
|
1994 |
-
"psr-4": {
|
1995 |
-
"Psr\\Log\\": "Psr/Log/"
|
1996 |
-
}
|
1997 |
-
},
|
1998 |
-
"notification-url": "https://packagist.org/downloads/",
|
1999 |
-
"license": [
|
2000 |
-
"MIT"
|
2001 |
-
],
|
2002 |
-
"authors": [
|
2003 |
-
{
|
2004 |
-
"name": "PHP-FIG",
|
2005 |
-
"homepage": "http://www.php-fig.org/"
|
2006 |
-
}
|
2007 |
-
],
|
2008 |
-
"description": "Common interface for logging libraries",
|
2009 |
-
"homepage": "https://github.com/php-fig/log",
|
2010 |
-
"keywords": [
|
2011 |
-
"log",
|
2012 |
-
"psr",
|
2013 |
-
"psr-3"
|
2014 |
-
],
|
2015 |
-
"support": {
|
2016 |
-
"source": "https://github.com/php-fig/log/tree/1.1.3"
|
2017 |
-
},
|
2018 |
-
"install-path": "../psr/log"
|
2019 |
-
},
|
2020 |
-
{
|
2021 |
-
"name": "ralouphie/getallheaders",
|
2022 |
-
"version": "3.0.3",
|
2023 |
-
"version_normalized": "3.0.3.0",
|
2024 |
-
"source": {
|
2025 |
-
"type": "git",
|
2026 |
-
"url": "https://github.com/ralouphie/getallheaders.git",
|
2027 |
-
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
2028 |
-
},
|
2029 |
-
"dist": {
|
2030 |
-
"type": "zip",
|
2031 |
-
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
2032 |
-
"reference": "120b605dfeb996808c31b6477290a714d356e822",
|
2033 |
-
"shasum": ""
|
2034 |
-
},
|
2035 |
-
"require": {
|
2036 |
-
"php": ">=5.6"
|
2037 |
-
},
|
2038 |
-
"require-dev": {
|
2039 |
-
"php-coveralls/php-coveralls": "^2.1",
|
2040 |
-
"phpunit/phpunit": "^5 || ^6.5"
|
2041 |
-
},
|
2042 |
-
"time": "2019-03-08T08:55:37+00:00",
|
2043 |
-
"type": "library",
|
2044 |
-
"installation-source": "dist",
|
2045 |
-
"autoload": {
|
2046 |
-
"files": [
|
2047 |
-
"src/getallheaders.php"
|
2048 |
-
]
|
2049 |
-
},
|
2050 |
-
"notification-url": "https://packagist.org/downloads/",
|
2051 |
-
"license": [
|
2052 |
-
"MIT"
|
2053 |
-
],
|
2054 |
-
"authors": [
|
2055 |
-
{
|
2056 |
-
"name": "Ralph Khattar",
|
2057 |
-
"email": "ralph.khattar@gmail.com"
|
2058 |
-
}
|
2059 |
-
],
|
2060 |
-
"description": "A polyfill for getallheaders.",
|
2061 |
-
"support": {
|
2062 |
-
"issues": "https://github.com/ralouphie/getallheaders/issues",
|
2063 |
-
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
|
2064 |
-
},
|
2065 |
-
"install-path": "../ralouphie/getallheaders"
|
2066 |
-
},
|
2067 |
-
{
|
2068 |
-
"name": "roave/security-advisories",
|
2069 |
-
"version": "dev-master",
|
2070 |
-
"version_normalized": "dev-master",
|
2071 |
-
"source": {
|
2072 |
-
"type": "git",
|
2073 |
-
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
2074 |
-
"reference": "676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6"
|
2075 |
-
},
|
2076 |
-
"dist": {
|
2077 |
-
"type": "zip",
|
2078 |
-
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6",
|
2079 |
-
"reference": "676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6",
|
2080 |
-
"shasum": ""
|
2081 |
-
},
|
2082 |
-
"conflict": {
|
2083 |
-
"3f/pygmentize": "<1.2",
|
2084 |
-
"adodb/adodb-php": "<5.20.12",
|
2085 |
-
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
|
2086 |
-
"amphp/artax": "<1.0.6|>=2,<2.0.6",
|
2087 |
-
"amphp/http": "<1.0.1",
|
2088 |
-
"amphp/http-client": ">=4,<4.4",
|
2089 |
-
"api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6",
|
2090 |
-
"asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
|
2091 |
-
"aws/aws-sdk-php": ">=3,<3.2.1",
|
2092 |
-
"bagisto/bagisto": "<0.1.5",
|
2093 |
-
"barrelstrength/sprout-base-email": "<1.2.7",
|
2094 |
-
"barrelstrength/sprout-forms": "<3.9",
|
2095 |
-
"baserproject/basercms": ">=4,<=4.3.6|>=4.4,<4.4.1",
|
2096 |
-
"bolt/bolt": "<3.7.1",
|
2097 |
-
"brightlocal/phpwhois": "<=4.2.5",
|
2098 |
-
"buddypress/buddypress": "<5.1.2",
|
2099 |
-
"bugsnag/bugsnag-laravel": ">=2,<2.0.2",
|
2100 |
-
"cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7",
|
2101 |
-
"cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
|
2102 |
-
"cartalyst/sentry": "<=2.1.6",
|
2103 |
-
"centreon/centreon": "<18.10.8|>=19,<19.4.5",
|
2104 |
-
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
|
2105 |
-
"codeigniter/framework": "<=3.0.6",
|
2106 |
-
"composer/composer": "<=1-alpha.11",
|
2107 |
-
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
|
2108 |
-
"contao/core": ">=2,<3.5.39",
|
2109 |
-
"contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0",
|
2110 |
-
"contao/listing-bundle": ">=4,<4.4.8",
|
2111 |
-
"datadog/dd-trace": ">=0.30,<0.30.2",
|
2112 |
-
"david-garcia/phpwhois": "<=4.3.1",
|
2113 |
-
"derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1",
|
2114 |
-
"doctrine/annotations": ">=1,<1.2.7",
|
2115 |
-
"doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
|
2116 |
-
"doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1",
|
2117 |
-
"doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2",
|
2118 |
-
"doctrine/doctrine-bundle": "<1.5.2",
|
2119 |
-
"doctrine/doctrine-module": "<=0.7.1",
|
2120 |
-
"doctrine/mongodb-odm": ">=1,<1.0.2",
|
2121 |
-
"doctrine/mongodb-odm-bundle": ">=2,<3.0.1",
|
2122 |
-
"doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1",
|
2123 |
-
"dolibarr/dolibarr": "<11.0.4",
|
2124 |
-
"dompdf/dompdf": ">=0.6,<0.6.2",
|
2125 |
-
"drupal/core": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8",
|
2126 |
-
"drupal/drupal": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8",
|
2127 |
-
"endroid/qr-code-bundle": "<3.4.2",
|
2128 |
-
"enshrined/svg-sanitize": "<0.13.1",
|
2129 |
-
"erusev/parsedown": "<1.7.2",
|
2130 |
-
"ezsystems/demobundle": ">=5.4,<5.4.6.1",
|
2131 |
-
"ezsystems/ez-support-tools": ">=2.2,<2.2.3",
|
2132 |
-
"ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1",
|
2133 |
-
"ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1",
|
2134 |
-
"ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4",
|
2135 |
-
"ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6",
|
2136 |
-
"ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1",
|
2137 |
-
"ezsystems/ezplatform-kernel": ">=1,<1.0.2.1",
|
2138 |
-
"ezsystems/ezplatform-user": ">=1,<1.0.1",
|
2139 |
-
"ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.14.2|>=6,<6.7.9.1|>=6.8,<6.13.6.3|>=7,<7.2.4.1|>=7.3,<7.3.2.1|>=7.5,<7.5.7.1",
|
2140 |
-
"ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.2|>=2011,<2017.12.7.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.5.1",
|
2141 |
-
"ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
|
2142 |
-
"ezsystems/repository-forms": ">=2.3,<2.3.2.1",
|
2143 |
-
"ezyang/htmlpurifier": "<4.1.1",
|
2144 |
-
"firebase/php-jwt": "<2",
|
2145 |
-
"fooman/tcpdf": "<6.2.22",
|
2146 |
-
"fossar/tcpdf-parser": "<6.2.22",
|
2147 |
-
"friendsofsymfony/oauth2-php": "<1.3",
|
2148 |
-
"friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
|
2149 |
-
"friendsofsymfony/user-bundle": ">=1.2,<1.3.5",
|
2150 |
-
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
|
2151 |
-
"fuel/core": "<1.8.1",
|
2152 |
-
"getgrav/grav": "<1.7-beta.8",
|
2153 |
-
"gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
|
2154 |
-
"gree/jose": "<=2.2",
|
2155 |
-
"gregwar/rst": "<1.0.3",
|
2156 |
-
"guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1",
|
2157 |
-
"illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10",
|
2158 |
-
"illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4",
|
2159 |
-
"illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29|>=5.5,<=5.5.44|>=6,<6.18.34|>=7,<7.23.2",
|
2160 |
-
"illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
|
2161 |
-
"illuminate/view": ">=7,<7.1.2",
|
2162 |
-
"ivankristianto/phpwhois": "<=4.3",
|
2163 |
-
"james-heinrich/getid3": "<1.9.9",
|
2164 |
-
"joomla/session": "<1.3.1",
|
2165 |
-
"jsmitty12/phpwhois": "<5.1",
|
2166 |
-
"kazist/phpwhois": "<=4.2.6",
|
2167 |
-
"kitodo/presentation": "<3.1.2",
|
2168 |
-
"kreait/firebase-php": ">=3.2,<3.8.1",
|
2169 |
-
"la-haute-societe/tcpdf": "<6.2.22",
|
2170 |
-
"laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.34|>=7,<7.23.2",
|
2171 |
-
"laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10",
|
2172 |
-
"league/commonmark": "<0.18.3",
|
2173 |
-
"librenms/librenms": "<1.53",
|
2174 |
-
"livewire/livewire": ">2.2.4,<2.2.6",
|
2175 |
-
"magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3",
|
2176 |
-
"magento/magento1ce": "<1.9.4.3",
|
2177 |
-
"magento/magento1ee": ">=1,<1.14.4.3",
|
2178 |
-
"magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2",
|
2179 |
-
"marcwillmann/turn": "<0.3.3",
|
2180 |
-
"mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35",
|
2181 |
-
"mittwald/typo3_forum": "<1.2.1",
|
2182 |
-
"monolog/monolog": ">=1.8,<1.12",
|
2183 |
-
"namshi/jose": "<2.2",
|
2184 |
-
"nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
|
2185 |
-
"nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
|
2186 |
-
"nystudio107/craft-seomatic": "<3.3",
|
2187 |
-
"nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
|
2188 |
-
"october/backend": ">=1.0.319,<1.0.470",
|
2189 |
-
"october/cms": "= 1.0.469|>=1.0.319,<1.0.469",
|
2190 |
-
"october/october": ">=1.0.319,<1.0.466",
|
2191 |
-
"october/rain": ">=1.0.319,<1.0.468",
|
2192 |
-
"onelogin/php-saml": "<2.10.4",
|
2193 |
-
"oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5",
|
2194 |
-
"openid/php-openid": "<2.3",
|
2195 |
-
"openmage/magento-lts": "<19.4.8|>=20,<20.0.4",
|
2196 |
-
"orchid/platform": ">=9,<9.4.4",
|
2197 |
-
"oro/crm": ">=1.7,<1.7.4",
|
2198 |
-
"oro/platform": ">=1.7,<1.7.4",
|
2199 |
-
"padraic/humbug_get_contents": "<1.1.2",
|
2200 |
-
"pagarme/pagarme-php": ">=0,<3",
|
2201 |
-
"paragonie/random_compat": "<2",
|
2202 |
-
"passbolt/passbolt_api": "<2.11",
|
2203 |
-
"paypal/merchant-sdk-php": "<3.12",
|
2204 |
-
"pear/archive_tar": "<1.4.11",
|
2205 |
-
"personnummer/personnummer": "<3.0.2",
|
2206 |
-
"phpfastcache/phpfastcache": ">=5,<5.0.13",
|
2207 |
-
"phpmailer/phpmailer": "<6.1.6",
|
2208 |
-
"phpmussel/phpmussel": ">=1,<1.6",
|
2209 |
-
"phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3",
|
2210 |
-
"phpoffice/phpexcel": "<1.8.2",
|
2211 |
-
"phpoffice/phpspreadsheet": "<1.8",
|
2212 |
-
"phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3",
|
2213 |
-
"phpwhois/phpwhois": "<=4.2.5",
|
2214 |
-
"phpxmlrpc/extras": "<0.6.1",
|
2215 |
-
"pimcore/pimcore": "<6.3",
|
2216 |
-
"pocketmine/pocketmine-mp": "<3.15.4",
|
2217 |
-
"prestashop/autoupgrade": ">=4,<4.10.1",
|
2218 |
-
"prestashop/contactform": ">1.0.1,<4.3",
|
2219 |
-
"prestashop/gamification": "<2.3.2",
|
2220 |
-
"prestashop/productcomments": ">=4,<4.2",
|
2221 |
-
"prestashop/ps_facetedsearch": "<3.4.1",
|
2222 |
-
"privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2",
|
2223 |
-
"propel/propel": ">=2-alpha.1,<=2-alpha.7",
|
2224 |
-
"propel/propel1": ">=1,<=1.7.1",
|
2225 |
-
"pterodactyl/panel": "<0.7.19|>=1-rc.0,<=1-rc.6",
|
2226 |
-
"pusher/pusher-php-server": "<2.2.1",
|
2227 |
-
"rainlab/debugbar-plugin": "<3.1",
|
2228 |
-
"robrichards/xmlseclibs": "<3.0.4",
|
2229 |
-
"sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
|
2230 |
-
"sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9",
|
2231 |
-
"scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11",
|
2232 |
-
"sensiolabs/connect": "<4.2.3",
|
2233 |
-
"serluck/phpwhois": "<=4.2.6",
|
2234 |
-
"shopware/core": "<=6.3.2",
|
2235 |
-
"shopware/platform": "<=6.3.2",
|
2236 |
-
"shopware/shopware": "<5.6.9",
|
2237 |
-
"silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1",
|
2238 |
-
"silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2",
|
2239 |
-
"silverstripe/cms": "<4.3.6|>=4.4,<4.4.4",
|
2240 |
-
"silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1",
|
2241 |
-
"silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
|
2242 |
-
"silverstripe/framework": "<4.4.7|>=4.5,<4.5.4",
|
2243 |
-
"silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2|>=3.2,<3.2.4",
|
2244 |
-
"silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
|
2245 |
-
"silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4",
|
2246 |
-
"silverstripe/subsites": ">=2,<2.1.1",
|
2247 |
-
"silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1",
|
2248 |
-
"silverstripe/userforms": "<3",
|
2249 |
-
"simple-updates/phpwhois": "<=1",
|
2250 |
-
"simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4",
|
2251 |
-
"simplesamlphp/simplesamlphp": "<1.18.6",
|
2252 |
-
"simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
|
2253 |
-
"simplito/elliptic-php": "<1.0.6",
|
2254 |
-
"slim/slim": "<2.6",
|
2255 |
-
"smarty/smarty": "<3.1.33",
|
2256 |
-
"socalnick/scn-social-auth": "<1.15.2",
|
2257 |
-
"spoonity/tcpdf": "<6.2.22",
|
2258 |
-
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
|
2259 |
-
"ssddanbrown/bookstack": "<0.29.2",
|
2260 |
-
"stormpath/sdk": ">=0,<9.9.99",
|
2261 |
-
"studio-42/elfinder": "<2.1.49",
|
2262 |
-
"sulu/sulu": "<1.6.34|>=2,<2.0.10|>=2.1,<2.1.1",
|
2263 |
-
"swiftmailer/swiftmailer": ">=4,<5.4.5",
|
2264 |
-
"sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
|
2265 |
-
"sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
|
2266 |
-
"sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
|
2267 |
-
"sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
|
2268 |
-
"sylius/sylius": "<1.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3",
|
2269 |
-
"symbiote/silverstripe-multivaluefield": ">=3,<3.0.99",
|
2270 |
-
"symbiote/silverstripe-versionedfiles": "<=2.0.3",
|
2271 |
-
"symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8",
|
2272 |
-
"symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
2273 |
-
"symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
|
2274 |
-
"symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
|
2275 |
-
"symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
2276 |
-
"symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
|
2277 |
-
"symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5",
|
2278 |
-
"symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
|
2279 |
-
"symfony/mime": ">=4.3,<4.3.8",
|
2280 |
-
"symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
2281 |
-
"symfony/polyfill": ">=1,<1.10",
|
2282 |
-
"symfony/polyfill-php55": ">=1,<1.10",
|
2283 |
-
"symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
|
2284 |
-
"symfony/routing": ">=2,<2.0.19",
|
2285 |
-
"symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=4.4,<4.4.7|>=5,<5.0.7",
|
2286 |
-
"symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
|
2287 |
-
"symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7",
|
2288 |
-
"symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
|
2289 |
-
"symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
|
2290 |
-
"symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
|
2291 |
-
"symfony/serializer": ">=2,<2.0.11",
|
2292 |
-
"symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5",
|
2293 |
-
"symfony/translation": ">=2,<2.0.17",
|
2294 |
-
"symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
|
2295 |
-
"symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
|
2296 |
-
"symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
|
2297 |
-
"symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7",
|
2298 |
-
"t3g/svg-sanitizer": "<1.0.3",
|
2299 |
-
"tecnickcom/tcpdf": "<6.2.22",
|
2300 |
-
"thelia/backoffice-default-template": ">=2.1,<2.1.2",
|
2301 |
-
"thelia/thelia": ">=2.1-beta.1,<2.1.3",
|
2302 |
-
"theonedemon/phpwhois": "<=4.2.5",
|
2303 |
-
"titon/framework": ">=0,<9.9.99",
|
2304 |
-
"truckersmp/phpwhois": "<=4.3.1",
|
2305 |
-
"twig/twig": "<1.38|>=2,<2.7",
|
2306 |
-
"typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10",
|
2307 |
-
"typo3/cms-core": ">=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10",
|
2308 |
-
"typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5",
|
2309 |
-
"typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4",
|
2310 |
-
"typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
|
2311 |
-
"typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
|
2312 |
-
"ua-parser/uap-php": "<3.8",
|
2313 |
-
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
|
2314 |
-
"verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4",
|
2315 |
-
"wallabag/tcpdf": "<6.2.22",
|
2316 |
-
"willdurand/js-translation-bundle": "<2.1.1",
|
2317 |
-
"yii2mod/yii2-cms": "<1.9.2",
|
2318 |
-
"yiisoft/yii": ">=1.1.14,<1.1.15",
|
2319 |
-
"yiisoft/yii2": "<2.0.38",
|
2320 |
-
"yiisoft/yii2-bootstrap": "<2.0.4",
|
2321 |
-
"yiisoft/yii2-dev": "<2.0.15",
|
2322 |
-
"yiisoft/yii2-elasticsearch": "<2.0.5",
|
2323 |
-
"yiisoft/yii2-gii": "<2.0.4",
|
2324 |
-
"yiisoft/yii2-jui": "<2.0.4",
|
2325 |
-
"yiisoft/yii2-redis": "<2.0.8",
|
2326 |
-
"yourls/yourls": "<1.7.4",
|
2327 |
-
"zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
|
2328 |
-
"zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
|
2329 |
-
"zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
|
2330 |
-
"zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5",
|
2331 |
-
"zendframework/zend-developer-tools": ">=1.2.2,<1.2.3",
|
2332 |
-
"zendframework/zend-diactoros": ">=1,<1.8.4",
|
2333 |
-
"zendframework/zend-feed": ">=1,<2.10.3",
|
2334 |
-
"zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1",
|
2335 |
-
"zendframework/zend-http": ">=1,<2.8.1",
|
2336 |
-
"zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6",
|
2337 |
-
"zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
|
2338 |
-
"zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2",
|
2339 |
-
"zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
|
2340 |
-
"zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4",
|
2341 |
-
"zendframework/zend-validator": ">=2.3,<2.3.6",
|
2342 |
-
"zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1",
|
2343 |
-
"zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
|
2344 |
-
"zendframework/zendframework": "<2.5.1",
|
2345 |
-
"zendframework/zendframework1": "<1.12.20",
|
2346 |
-
"zendframework/zendopenid": ">=2,<2.0.2",
|
2347 |
-
"zendframework/zendxml": ">=1,<1.0.1",
|
2348 |
-
"zetacomponents/mail": "<1.8.2",
|
2349 |
-
"zf-commons/zfc-user": "<1.2.2",
|
2350 |
-
"zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
|
2351 |
-
"zfr/zfr-oauth2-server-module": "<0.1.2"
|
2352 |
-
},
|
2353 |
-
"time": "2020-12-02T06:02:50+00:00",
|
2354 |
-
"type": "metapackage",
|
2355 |
-
"notification-url": "https://packagist.org/downloads/",
|
2356 |
-
"license": [
|
2357 |
-
"MIT"
|
2358 |
-
],
|
2359 |
-
"authors": [
|
2360 |
-
{
|
2361 |
-
"name": "Marco Pivetta",
|
2362 |
-
"email": "ocramius@gmail.com",
|
2363 |
-
"role": "maintainer"
|
2364 |
-
},
|
2365 |
-
{
|
2366 |
-
"name": "Ilya Tribusean",
|
2367 |
-
"email": "slash3b@gmail.com",
|
2368 |
-
"role": "maintainer"
|
2369 |
-
}
|
2370 |
-
],
|
2371 |
-
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
|
2372 |
-
"support": {
|
2373 |
-
"issues": "https://github.com/Roave/SecurityAdvisories/issues",
|
2374 |
-
"source": "https://github.com/Roave/SecurityAdvisories/tree/latest"
|
2375 |
-
},
|
2376 |
-
"funding": [
|
2377 |
-
{
|
2378 |
-
"url": "https://github.com/Ocramius",
|
2379 |
-
"type": "github"
|
2380 |
-
},
|
2381 |
-
{
|
2382 |
-
"url": "https://tidelift.com/funding/github/packagist/roave/security-advisories",
|
2383 |
-
"type": "tidelift"
|
2384 |
-
}
|
2385 |
-
],
|
2386 |
-
"install-path": null
|
2387 |
-
},
|
2388 |
-
{
|
2389 |
-
"name": "sebastian/code-unit-reverse-lookup",
|
2390 |
-
"version": "1.0.2",
|
2391 |
-
"version_normalized": "1.0.2.0",
|
2392 |
-
"source": {
|
2393 |
-
"type": "git",
|
2394 |
-
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
|
2395 |
-
"reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
|
2396 |
-
},
|
2397 |
-
"dist": {
|
2398 |
-
"type": "zip",
|
2399 |
-
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
|
2400 |
-
"reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
|
2401 |
-
"shasum": ""
|
2402 |
-
},
|
2403 |
-
"require": {
|
2404 |
-
"php": ">=5.6"
|
2405 |
-
},
|
2406 |
-
"require-dev": {
|
2407 |
-
"phpunit/phpunit": "^8.5"
|
2408 |
-
},
|
2409 |
-
"time": "2020-11-30T08:15:22+00:00",
|
2410 |
-
"type": "library",
|
2411 |
-
"extra": {
|
2412 |
-
"branch-alias": {
|
2413 |
-
"dev-master": "1.0.x-dev"
|
2414 |
-
}
|
2415 |
-
},
|
2416 |
-
"installation-source": "dist",
|
2417 |
-
"autoload": {
|
2418 |
-
"classmap": [
|
2419 |
-
"src/"
|
2420 |
-
]
|
2421 |
-
},
|
2422 |
-
"notification-url": "https://packagist.org/downloads/",
|
2423 |
-
"license": [
|
2424 |
-
"BSD-3-Clause"
|
2425 |
-
],
|
2426 |
-
"authors": [
|
2427 |
-
{
|
2428 |
-
"name": "Sebastian Bergmann",
|
2429 |
-
"email": "sebastian@phpunit.de"
|
2430 |
-
}
|
2431 |
-
],
|
2432 |
-
"description": "Looks up which function or method a line of code belongs to",
|
2433 |
-
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
|
2434 |
-
"support": {
|
2435 |
-
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
|
2436 |
-
"source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2"
|
2437 |
-
},
|
2438 |
-
"funding": [
|
2439 |
-
{
|
2440 |
-
"url": "https://github.com/sebastianbergmann",
|
2441 |
-
"type": "github"
|
2442 |
-
}
|
2443 |
-
],
|
2444 |
-
"install-path": "../sebastian/code-unit-reverse-lookup"
|
2445 |
-
},
|
2446 |
-
{
|
2447 |
-
"name": "sebastian/comparator",
|
2448 |
-
"version": "2.1.3",
|
2449 |
-
"version_normalized": "2.1.3.0",
|
2450 |
-
"source": {
|
2451 |
-
"type": "git",
|
2452 |
-
"url": "https://github.com/sebastianbergmann/comparator.git",
|
2453 |
-
"reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
|
2454 |
-
},
|
2455 |
-
"dist": {
|
2456 |
-
"type": "zip",
|
2457 |
-
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
|
2458 |
-
"reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
|
2459 |
-
"shasum": ""
|
2460 |
-
},
|
2461 |
-
"require": {
|
2462 |
-
"php": "^7.0",
|
2463 |
-
"sebastian/diff": "^2.0 || ^3.0",
|
2464 |
-
"sebastian/exporter": "^3.1"
|
2465 |
-
},
|
2466 |
-
"require-dev": {
|
2467 |
-
"phpunit/phpunit": "^6.4"
|
2468 |
-
},
|
2469 |
-
"time": "2018-02-01T13:46:46+00:00",
|
2470 |
-
"type": "library",
|
2471 |
-
"extra": {
|
2472 |
-
"branch-alias": {
|
2473 |
-
"dev-master": "2.1.x-dev"
|
2474 |
-
}
|
2475 |
-
},
|
2476 |
-
"installation-source": "dist",
|
2477 |
-
"autoload": {
|
2478 |
-
"classmap": [
|
2479 |
-
"src/"
|
2480 |
-
]
|
2481 |
-
},
|
2482 |
-
"notification-url": "https://packagist.org/downloads/",
|
2483 |
-
"license": [
|
2484 |
-
"BSD-3-Clause"
|
2485 |
-
],
|
2486 |
-
"authors": [
|
2487 |
-
{
|
2488 |
-
"name": "Jeff Welch",
|
2489 |
-
"email": "whatthejeff@gmail.com"
|
2490 |
-
},
|
2491 |
-
{
|
2492 |
-
"name": "Volker Dusch",
|
2493 |
-
"email": "github@wallbash.com"
|
2494 |
-
},
|
2495 |
-
{
|
2496 |
-
"name": "Bernhard Schussek",
|
2497 |
-
"email": "bschussek@2bepublished.at"
|
2498 |
-
},
|
2499 |
-
{
|
2500 |
-
"name": "Sebastian Bergmann",
|
2501 |
-
"email": "sebastian@phpunit.de"
|
2502 |
-
}
|
2503 |
-
],
|
2504 |
-
"description": "Provides the functionality to compare PHP values for equality",
|
2505 |
-
"homepage": "https://github.com/sebastianbergmann/comparator",
|
2506 |
-
"keywords": [
|
2507 |
-
"comparator",
|
2508 |
-
"compare",
|
2509 |
-
"equality"
|
2510 |
-
],
|
2511 |
-
"support": {
|
2512 |
-
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
2513 |
-
"source": "https://github.com/sebastianbergmann/comparator/tree/master"
|
2514 |
-
},
|
2515 |
-
"install-path": "../sebastian/comparator"
|
2516 |
-
},
|
2517 |
-
{
|
2518 |
-
"name": "sebastian/diff",
|
2519 |
-
"version": "2.0.1",
|
2520 |
-
"version_normalized": "2.0.1.0",
|
2521 |
-
"source": {
|
2522 |
-
"type": "git",
|
2523 |
-
"url": "https://github.com/sebastianbergmann/diff.git",
|
2524 |
-
"reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
|
2525 |
-
},
|
2526 |
-
"dist": {
|
2527 |
-
"type": "zip",
|
2528 |
-
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
|
2529 |
-
"reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
|
2530 |
-
"shasum": ""
|
2531 |
-
},
|
2532 |
-
"require": {
|
2533 |
-
"php": "^7.0"
|
2534 |
-
},
|
2535 |
-
"require-dev": {
|
2536 |
-
"phpunit/phpunit": "^6.2"
|
2537 |
-
},
|
2538 |
-
"time": "2017-08-03T08:09:46+00:00",
|
2539 |
-
"type": "library",
|
2540 |
-
"extra": {
|
2541 |
-
"branch-alias": {
|
2542 |
-
"dev-master": "2.0-dev"
|
2543 |
-
}
|
2544 |
-
},
|
2545 |
-
"installation-source": "dist",
|
2546 |
-
"autoload": {
|
2547 |
-
"classmap": [
|
2548 |
-
"src/"
|
2549 |
-
]
|
2550 |
-
},
|
2551 |
-
"notification-url": "https://packagist.org/downloads/",
|
2552 |
-
"license": [
|
2553 |
-
"BSD-3-Clause"
|
2554 |
-
],
|
2555 |
-
"authors": [
|
2556 |
-
{
|
2557 |
-
"name": "Kore Nordmann",
|
2558 |
-
"email": "mail@kore-nordmann.de"
|
2559 |
-
},
|
2560 |
-
{
|
2561 |
-
"name": "Sebastian Bergmann",
|
2562 |
-
"email": "sebastian@phpunit.de"
|
2563 |
-
}
|
2564 |
-
],
|
2565 |
-
"description": "Diff implementation",
|
2566 |
-
"homepage": "https://github.com/sebastianbergmann/diff",
|
2567 |
-
"keywords": [
|
2568 |
-
"diff"
|
2569 |
-
],
|
2570 |
-
"support": {
|
2571 |
-
"issues": "https://github.com/sebastianbergmann/diff/issues",
|
2572 |
-
"source": "https://github.com/sebastianbergmann/diff/tree/master"
|
2573 |
-
},
|
2574 |
-
"install-path": "../sebastian/diff"
|
2575 |
-
},
|
2576 |
-
{
|
2577 |
-
"name": "sebastian/environment",
|
2578 |
-
"version": "3.1.0",
|
2579 |
-
"version_normalized": "3.1.0.0",
|
2580 |
-
"source": {
|
2581 |
-
"type": "git",
|
2582 |
-
"url": "https://github.com/sebastianbergmann/environment.git",
|
2583 |
-
"reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
|
2584 |
-
},
|
2585 |
-
"dist": {
|
2586 |
-
"type": "zip",
|
2587 |
-
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
|
2588 |
-
"reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
|
2589 |
-
"shasum": ""
|
2590 |
-
},
|
2591 |
-
"require": {
|
2592 |
-
"php": "^7.0"
|
2593 |
-
},
|
2594 |
-
"require-dev": {
|
2595 |
-
"phpunit/phpunit": "^6.1"
|
2596 |
-
},
|
2597 |
-
"time": "2017-07-01T08:51:00+00:00",
|
2598 |
-
"type": "library",
|
2599 |
-
"extra": {
|
2600 |
-
"branch-alias": {
|
2601 |
-
"dev-master": "3.1.x-dev"
|
2602 |
-
}
|
2603 |
-
},
|
2604 |
-
"installation-source": "dist",
|
2605 |
-
"autoload": {
|
2606 |
-
"classmap": [
|
2607 |
-
"src/"
|
2608 |
-
]
|
2609 |
-
},
|
2610 |
-
"notification-url": "https://packagist.org/downloads/",
|
2611 |
-
"license": [
|
2612 |
-
"BSD-3-Clause"
|
2613 |
-
],
|
2614 |
-
"authors": [
|
2615 |
-
{
|
2616 |
-
"name": "Sebastian Bergmann",
|
2617 |
-
"email": "sebastian@phpunit.de"
|
2618 |
-
}
|
2619 |
-
],
|
2620 |
-
"description": "Provides functionality to handle HHVM/PHP environments",
|
2621 |
-
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
2622 |
-
"keywords": [
|
2623 |
-
"Xdebug",
|
2624 |
-
"environment",
|
2625 |
-
"hhvm"
|
2626 |
-
],
|
2627 |
-
"support": {
|
2628 |
-
"issues": "https://github.com/sebastianbergmann/environment/issues",
|
2629 |
-
"source": "https://github.com/sebastianbergmann/environment/tree/master"
|
2630 |
-
},
|
2631 |
-
"install-path": "../sebastian/environment"
|
2632 |
-
},
|
2633 |
-
{
|
2634 |
-
"name": "sebastian/exporter",
|
2635 |
-
"version": "3.1.3",
|
2636 |
-
"version_normalized": "3.1.3.0",
|
2637 |
-
"source": {
|
2638 |
-
"type": "git",
|
2639 |
-
"url": "https://github.com/sebastianbergmann/exporter.git",
|
2640 |
-
"reference": "6b853149eab67d4da22291d36f5b0631c0fd856e"
|
2641 |
-
},
|
2642 |
-
"dist": {
|
2643 |
-
"type": "zip",
|
2644 |
-
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e",
|
2645 |
-
"reference": "6b853149eab67d4da22291d36f5b0631c0fd856e",
|
2646 |
-
"shasum": ""
|
2647 |
-
},
|
2648 |
-
"require": {
|
2649 |
-
"php": ">=7.0",
|
2650 |
-
"sebastian/recursion-context": "^3.0"
|
2651 |
-
},
|
2652 |
-
"require-dev": {
|
2653 |
-
"ext-mbstring": "*",
|
2654 |
-
"phpunit/phpunit": "^6.0"
|
2655 |
-
},
|
2656 |
-
"time": "2020-11-30T07:47:53+00:00",
|
2657 |
-
"type": "library",
|
2658 |
-
"extra": {
|
2659 |
-
"branch-alias": {
|
2660 |
-
"dev-master": "3.1.x-dev"
|
2661 |
-
}
|
2662 |
-
},
|
2663 |
-
"installation-source": "dist",
|
2664 |
-
"autoload": {
|
2665 |
-
"classmap": [
|
2666 |
-
"src/"
|
2667 |
-
]
|
2668 |
-
},
|
2669 |
-
"notification-url": "https://packagist.org/downloads/",
|
2670 |
-
"license": [
|
2671 |
-
"BSD-3-Clause"
|
2672 |
-
],
|
2673 |
-
"authors": [
|
2674 |
-
{
|
2675 |
-
"name": "Sebastian Bergmann",
|
2676 |
-
"email": "sebastian@phpunit.de"
|
2677 |
-
},
|
2678 |
-
{
|
2679 |
-
"name": "Jeff Welch",
|
2680 |
-
"email": "whatthejeff@gmail.com"
|
2681 |
-
},
|
2682 |
-
{
|
2683 |
-
"name": "Volker Dusch",
|
2684 |
-
"email": "github@wallbash.com"
|
2685 |
-
},
|
2686 |
-
{
|
2687 |
-
"name": "Adam Harvey",
|
2688 |
-
"email": "aharvey@php.net"
|
2689 |
-
},
|
2690 |
-
{
|
2691 |
-
"name": "Bernhard Schussek",
|
2692 |
-
"email": "bschussek@gmail.com"
|
2693 |
-
}
|
2694 |
-
],
|
2695 |
-
"description": "Provides the functionality to export PHP variables for visualization",
|
2696 |
-
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
2697 |
-
"keywords": [
|
2698 |
-
"export",
|
2699 |
-
"exporter"
|
2700 |
-
],
|
2701 |
-
"support": {
|
2702 |
-
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
2703 |
-
"source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3"
|
2704 |
-
},
|
2705 |
-
"funding": [
|
2706 |
-
{
|
2707 |
-
"url": "https://github.com/sebastianbergmann",
|
2708 |
-
"type": "github"
|
2709 |
-
}
|
2710 |
-
],
|
2711 |
-
"install-path": "../sebastian/exporter"
|
2712 |
-
},
|
2713 |
-
{
|
2714 |
-
"name": "sebastian/global-state",
|
2715 |
-
"version": "2.0.0",
|
2716 |
-
"version_normalized": "2.0.0.0",
|
2717 |
-
"source": {
|
2718 |
-
"type": "git",
|
2719 |
-
"url": "https://github.com/sebastianbergmann/global-state.git",
|
2720 |
-
"reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
|
2721 |
-
},
|
2722 |
-
"dist": {
|
2723 |
-
"type": "zip",
|
2724 |
-
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
|
2725 |
-
"reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
|
2726 |
-
"shasum": ""
|
2727 |
-
},
|
2728 |
-
"require": {
|
2729 |
-
"php": "^7.0"
|
2730 |
-
},
|
2731 |
-
"require-dev": {
|
2732 |
-
"phpunit/phpunit": "^6.0"
|
2733 |
-
},
|
2734 |
-
"suggest": {
|
2735 |
-
"ext-uopz": "*"
|
2736 |
-
},
|
2737 |
-
"time": "2017-04-27T15:39:26+00:00",
|
2738 |
-
"type": "library",
|
2739 |
-
"extra": {
|
2740 |
-
"branch-alias": {
|
2741 |
-
"dev-master": "2.0-dev"
|
2742 |
-
}
|
2743 |
-
},
|
2744 |
-
"installation-source": "dist",
|
2745 |
-
"autoload": {
|
2746 |
-
"classmap": [
|
2747 |
-
"src/"
|
2748 |
-
]
|
2749 |
-
},
|
2750 |
-
"notification-url": "https://packagist.org/downloads/",
|
2751 |
-
"license": [
|
2752 |
-
"BSD-3-Clause"
|
2753 |
-
],
|
2754 |
-
"authors": [
|
2755 |
-
{
|
2756 |
-
"name": "Sebastian Bergmann",
|
2757 |
-
"email": "sebastian@phpunit.de"
|
2758 |
-
}
|
2759 |
-
],
|
2760 |
-
"description": "Snapshotting of global state",
|
2761 |
-
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
2762 |
-
"keywords": [
|
2763 |
-
"global state"
|
2764 |
-
],
|
2765 |
-
"support": {
|
2766 |
-
"issues": "https://github.com/sebastianbergmann/global-state/issues",
|
2767 |
-
"source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0"
|
2768 |
-
},
|
2769 |
-
"install-path": "../sebastian/global-state"
|
2770 |
-
},
|
2771 |
-
{
|
2772 |
-
"name": "sebastian/object-enumerator",
|
2773 |
-
"version": "3.0.4",
|
2774 |
-
"version_normalized": "3.0.4.0",
|
2775 |
-
"source": {
|
2776 |
-
"type": "git",
|
2777 |
-
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
|
2778 |
-
"reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2"
|
2779 |
-
},
|
2780 |
-
"dist": {
|
2781 |
-
"type": "zip",
|
2782 |
-
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
|
2783 |
-
"reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
|
2784 |
-
"shasum": ""
|
2785 |
-
},
|
2786 |
-
"require": {
|
2787 |
-
"php": ">=7.0",
|
2788 |
-
"sebastian/object-reflector": "^1.1.1",
|
2789 |
-
"sebastian/recursion-context": "^3.0"
|
2790 |
-
},
|
2791 |
-
"require-dev": {
|
2792 |
-
"phpunit/phpunit": "^6.0"
|
2793 |
-
},
|
2794 |
-
"time": "2020-11-30T07:40:27+00:00",
|
2795 |
-
"type": "library",
|
2796 |
-
"extra": {
|
2797 |
-
"branch-alias": {
|
2798 |
-
"dev-master": "3.0.x-dev"
|
2799 |
-
}
|
2800 |
-
},
|
2801 |
-
"installation-source": "dist",
|
2802 |
-
"autoload": {
|
2803 |
-
"classmap": [
|
2804 |
-
"src/"
|
2805 |
-
]
|
2806 |
-
},
|
2807 |
-
"notification-url": "https://packagist.org/downloads/",
|
2808 |
-
"license": [
|
2809 |
-
"BSD-3-Clause"
|
2810 |
-
],
|
2811 |
-
"authors": [
|
2812 |
-
{
|
2813 |
-
"name": "Sebastian Bergmann",
|
2814 |
-
"email": "sebastian@phpunit.de"
|
2815 |
-
}
|
2816 |
-
],
|
2817 |
-
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
|
2818 |
-
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
|
2819 |
-
"support": {
|
2820 |
-
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
|
2821 |
-
"source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4"
|
2822 |
-
},
|
2823 |
-
"funding": [
|
2824 |
-
{
|
2825 |
-
"url": "https://github.com/sebastianbergmann",
|
2826 |
-
"type": "github"
|
2827 |
-
}
|
2828 |
-
],
|
2829 |
-
"install-path": "../sebastian/object-enumerator"
|
2830 |
-
},
|
2831 |
-
{
|
2832 |
-
"name": "sebastian/object-reflector",
|
2833 |
-
"version": "1.1.2",
|
2834 |
-
"version_normalized": "1.1.2.0",
|
2835 |
-
"source": {
|
2836 |
-
"type": "git",
|
2837 |
-
"url": "https://github.com/sebastianbergmann/object-reflector.git",
|
2838 |
-
"reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d"
|
2839 |
-
},
|
2840 |
-
"dist": {
|
2841 |
-
"type": "zip",
|
2842 |
-
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
|
2843 |
-
"reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
|
2844 |
-
"shasum": ""
|
2845 |
-
},
|
2846 |
-
"require": {
|
2847 |
-
"php": ">=7.0"
|
2848 |
-
},
|
2849 |
-
"require-dev": {
|
2850 |
-
"phpunit/phpunit": "^6.0"
|
2851 |
-
},
|
2852 |
-
"time": "2020-11-30T07:37:18+00:00",
|
2853 |
-
"type": "library",
|
2854 |
-
"extra": {
|
2855 |
-
"branch-alias": {
|
2856 |
-
"dev-master": "1.1-dev"
|
2857 |
-
}
|
2858 |
-
},
|
2859 |
-
"installation-source": "dist",
|
2860 |
-
"autoload": {
|
2861 |
-
"classmap": [
|
2862 |
-
"src/"
|
2863 |
-
]
|
2864 |
-
},
|
2865 |
-
"notification-url": "https://packagist.org/downloads/",
|
2866 |
-
"license": [
|
2867 |
-
"BSD-3-Clause"
|
2868 |
-
],
|
2869 |
-
"authors": [
|
2870 |
-
{
|
2871 |
-
"name": "Sebastian Bergmann",
|
2872 |
-
"email": "sebastian@phpunit.de"
|
2873 |
-
}
|
2874 |
-
],
|
2875 |
-
"description": "Allows reflection of object attributes, including inherited and non-public ones",
|
2876 |
-
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
|
2877 |
-
"support": {
|
2878 |
-
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
|
2879 |
-
"source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2"
|
2880 |
-
},
|
2881 |
-
"funding": [
|
2882 |
-
{
|
2883 |
-
"url": "https://github.com/sebastianbergmann",
|
2884 |
-
"type": "github"
|
2885 |
-
}
|
2886 |
-
],
|
2887 |
-
"install-path": "../sebastian/object-reflector"
|
2888 |
-
},
|
2889 |
-
{
|
2890 |
-
"name": "sebastian/recursion-context",
|
2891 |
-
"version": "3.0.1",
|
2892 |
-
"version_normalized": "3.0.1.0",
|
2893 |
-
"source": {
|
2894 |
-
"type": "git",
|
2895 |
-
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
2896 |
-
"reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb"
|
2897 |
-
},
|
2898 |
-
"dist": {
|
2899 |
-
"type": "zip",
|
2900 |
-
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb",
|
2901 |
-
"reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb",
|
2902 |
-
"shasum": ""
|
2903 |
-
},
|
2904 |
-
"require": {
|
2905 |
-
"php": ">=7.0"
|
2906 |
-
},
|
2907 |
-
"require-dev": {
|
2908 |
-
"phpunit/phpunit": "^6.0"
|
2909 |
-
},
|
2910 |
-
"time": "2020-11-30T07:34:24+00:00",
|
2911 |
-
"type": "library",
|
2912 |
-
"extra": {
|
2913 |
-
"branch-alias": {
|
2914 |
-
"dev-master": "3.0.x-dev"
|
2915 |
-
}
|
2916 |
-
},
|
2917 |
-
"installation-source": "dist",
|
2918 |
-
"autoload": {
|
2919 |
-
"classmap": [
|
2920 |
-
"src/"
|
2921 |
-
]
|
2922 |
-
},
|
2923 |
-
"notification-url": "https://packagist.org/downloads/",
|
2924 |
-
"license": [
|
2925 |
-
"BSD-3-Clause"
|
2926 |
-
],
|
2927 |
-
"authors": [
|
2928 |
-
{
|
2929 |
-
"name": "Sebastian Bergmann",
|
2930 |
-
"email": "sebastian@phpunit.de"
|
2931 |
-
},
|
2932 |
-
{
|
2933 |
-
"name": "Jeff Welch",
|
2934 |
-
"email": "whatthejeff@gmail.com"
|
2935 |
-
},
|
2936 |
-
{
|
2937 |
-
"name": "Adam Harvey",
|
2938 |
-
"email": "aharvey@php.net"
|
2939 |
-
}
|
2940 |
-
],
|
2941 |
-
"description": "Provides functionality to recursively process PHP variables",
|
2942 |
-
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
2943 |
-
"support": {
|
2944 |
-
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
|
2945 |
-
"source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1"
|
2946 |
-
},
|
2947 |
-
"funding": [
|
2948 |
-
{
|
2949 |
-
"url": "https://github.com/sebastianbergmann",
|
2950 |
-
"type": "github"
|
2951 |
-
}
|
2952 |
-
],
|
2953 |
-
"install-path": "../sebastian/recursion-context"
|
2954 |
-
},
|
2955 |
-
{
|
2956 |
-
"name": "sebastian/resource-operations",
|
2957 |
-
"version": "1.0.0",
|
2958 |
-
"version_normalized": "1.0.0.0",
|
2959 |
-
"source": {
|
2960 |
-
"type": "git",
|
2961 |
-
"url": "https://github.com/sebastianbergmann/resource-operations.git",
|
2962 |
-
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
|
2963 |
-
},
|
2964 |
-
"dist": {
|
2965 |
-
"type": "zip",
|
2966 |
-
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
2967 |
-
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
2968 |
-
"shasum": ""
|
2969 |
-
},
|
2970 |
-
"require": {
|
2971 |
-
"php": ">=5.6.0"
|
2972 |
-
},
|
2973 |
-
"time": "2015-07-28T20:34:47+00:00",
|
2974 |
-
"type": "library",
|
2975 |
-
"extra": {
|
2976 |
-
"branch-alias": {
|
2977 |
-
"dev-master": "1.0.x-dev"
|
2978 |
-
}
|
2979 |
-
},
|
2980 |
-
"installation-source": "dist",
|
2981 |
-
"autoload": {
|
2982 |
-
"classmap": [
|
2983 |
-
"src/"
|
2984 |
-
]
|
2985 |
-
},
|
2986 |
-
"notification-url": "https://packagist.org/downloads/",
|
2987 |
-
"license": [
|
2988 |
-
"BSD-3-Clause"
|
2989 |
-
],
|
2990 |
-
"authors": [
|
2991 |
-
{
|
2992 |
-
"name": "Sebastian Bergmann",
|
2993 |
-
"email": "sebastian@phpunit.de"
|
2994 |
-
}
|
2995 |
-
],
|
2996 |
-
"description": "Provides a list of PHP built-in functions that operate on resources",
|
2997 |
-
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
|
2998 |
-
"support": {
|
2999 |
-
"issues": "https://github.com/sebastianbergmann/resource-operations/issues",
|
3000 |
-
"source": "https://github.com/sebastianbergmann/resource-operations/tree/master"
|
3001 |
-
},
|
3002 |
-
"install-path": "../sebastian/resource-operations"
|
3003 |
-
},
|
3004 |
-
{
|
3005 |
-
"name": "sebastian/version",
|
3006 |
-
"version": "2.0.1",
|
3007 |
-
"version_normalized": "2.0.1.0",
|
3008 |
-
"source": {
|
3009 |
-
"type": "git",
|
3010 |
-
"url": "https://github.com/sebastianbergmann/version.git",
|
3011 |
-
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
|
3012 |
-
},
|
3013 |
-
"dist": {
|
3014 |
-
"type": "zip",
|
3015 |
-
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
|
3016 |
-
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
|
3017 |
-
"shasum": ""
|
3018 |
-
},
|
3019 |
-
"require": {
|
3020 |
-
"php": ">=5.6"
|
3021 |
-
},
|
3022 |
-
"time": "2016-10-03T07:35:21+00:00",
|
3023 |
-
"type": "library",
|
3024 |
-
"extra": {
|
3025 |
-
"branch-alias": {
|
3026 |
-
"dev-master": "2.0.x-dev"
|
3027 |
-
}
|
3028 |
-
},
|
3029 |
-
"installation-source": "dist",
|
3030 |
-
"autoload": {
|
3031 |
-
"classmap": [
|
3032 |
-
"src/"
|
3033 |
-
]
|
3034 |
-
},
|
3035 |
-
"notification-url": "https://packagist.org/downloads/",
|
3036 |
-
"license": [
|
3037 |
-
"BSD-3-Clause"
|
3038 |
-
],
|
3039 |
-
"authors": [
|
3040 |
-
{
|
3041 |
-
"name": "Sebastian Bergmann",
|
3042 |
-
"email": "sebastian@phpunit.de",
|
3043 |
-
"role": "lead"
|
3044 |
-
}
|
3045 |
-
],
|
3046 |
-
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
3047 |
-
"homepage": "https://github.com/sebastianbergmann/version",
|
3048 |
-
"support": {
|
3049 |
-
"issues": "https://github.com/sebastianbergmann/version/issues",
|
3050 |
-
"source": "https://github.com/sebastianbergmann/version/tree/master"
|
3051 |
-
},
|
3052 |
-
"install-path": "../sebastian/version"
|
3053 |
-
},
|
3054 |
-
{
|
3055 |
-
"name": "squizlabs/php_codesniffer",
|
3056 |
-
"version": "3.5.8",
|
3057 |
-
"version_normalized": "3.5.8.0",
|
3058 |
-
"source": {
|
3059 |
-
"type": "git",
|
3060 |
-
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
3061 |
-
"reference": "9d583721a7157ee997f235f327de038e7ea6dac4"
|
3062 |
-
},
|
3063 |
-
"dist": {
|
3064 |
-
"type": "zip",
|
3065 |
-
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4",
|
3066 |
-
"reference": "9d583721a7157ee997f235f327de038e7ea6dac4",
|
3067 |
-
"shasum": ""
|
3068 |
-
},
|
3069 |
-
"require": {
|
3070 |
-
"ext-simplexml": "*",
|
3071 |
-
"ext-tokenizer": "*",
|
3072 |
-
"ext-xmlwriter": "*",
|
3073 |
-
"php": ">=5.4.0"
|
3074 |
-
},
|
3075 |
-
"require-dev": {
|
3076 |
-
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
3077 |
-
},
|
3078 |
-
"time": "2020-10-23T02:01:07+00:00",
|
3079 |
-
"bin": [
|
3080 |
-
"bin/phpcs",
|
3081 |
-
"bin/phpcbf"
|
3082 |
-
],
|
3083 |
-
"type": "library",
|
3084 |
-
"extra": {
|
3085 |
-
"branch-alias": {
|
3086 |
-
"dev-master": "3.x-dev"
|
3087 |
-
}
|
3088 |
-
},
|
3089 |
-
"installation-source": "dist",
|
3090 |
-
"notification-url": "https://packagist.org/downloads/",
|
3091 |
-
"license": [
|
3092 |
-
"BSD-3-Clause"
|
3093 |
-
],
|
3094 |
-
"authors": [
|
3095 |
-
{
|
3096 |
-
"name": "Greg Sherwood",
|
3097 |
-
"role": "lead"
|
3098 |
-
}
|
3099 |
-
],
|
3100 |
-
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
3101 |
-
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
|
3102 |
-
"keywords": [
|
3103 |
-
"phpcs",
|
3104 |
-
"standards"
|
3105 |
-
],
|
3106 |
-
"support": {
|
3107 |
-
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
|
3108 |
-
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
3109 |
-
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
3110 |
-
},
|
3111 |
-
"install-path": "../squizlabs/php_codesniffer"
|
3112 |
-
},
|
3113 |
-
{
|
3114 |
-
"name": "symfony/config",
|
3115 |
-
"version": "v3.3.6",
|
3116 |
-
"version_normalized": "3.3.6.0",
|
3117 |
-
"source": {
|
3118 |
-
"type": "git",
|
3119 |
-
"url": "https://github.com/symfony/config.git",
|
3120 |
-
"reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297"
|
3121 |
-
},
|
3122 |
-
"dist": {
|
3123 |
-
"type": "zip",
|
3124 |
-
"url": "https://api.github.com/repos/symfony/config/zipball/54ee12b0dd60f294132cabae6f5da9573d2e5297",
|
3125 |
-
"reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297",
|
3126 |
-
"shasum": ""
|
3127 |
-
},
|
3128 |
-
"require": {
|
3129 |
-
"php": ">=5.5.9",
|
3130 |
-
"symfony/filesystem": "~2.8|~3.0"
|
3131 |
-
},
|
3132 |
-
"conflict": {
|
3133 |
-
"symfony/dependency-injection": "<3.3",
|
3134 |
-
"symfony/finder": "<3.3"
|
3135 |
-
},
|
3136 |
-
"require-dev": {
|
3137 |
-
"symfony/dependency-injection": "~3.3",
|
3138 |
-
"symfony/finder": "~3.3",
|
3139 |
-
"symfony/yaml": "~3.0"
|
3140 |
-
},
|
3141 |
-
"suggest": {
|
3142 |
-
"symfony/yaml": "To use the yaml reference dumper"
|
3143 |
-
},
|
3144 |
-
"time": "2017-07-19T07:37:29+00:00",
|
3145 |
-
"type": "library",
|
3146 |
-
"extra": {
|
3147 |
-
"branch-alias": {
|
3148 |
-
"dev-master": "3.3-dev"
|
3149 |
-
}
|
3150 |
-
},
|
3151 |
-
"installation-source": "dist",
|
3152 |
-
"autoload": {
|
3153 |
-
"psr-4": {
|
3154 |
-
"Symfony\\Component\\Config\\": ""
|
3155 |
-
},
|
3156 |
-
"exclude-from-classmap": [
|
3157 |
-
"/Tests/"
|
3158 |
-
]
|
3159 |
-
},
|
3160 |
-
"notification-url": "https://packagist.org/downloads/",
|
3161 |
-
"license": [
|
3162 |
-
"MIT"
|
3163 |
-
],
|
3164 |
-
"authors": [
|
3165 |
-
{
|
3166 |
-
"name": "Fabien Potencier",
|
3167 |
-
"email": "fabien@symfony.com"
|
3168 |
-
},
|
3169 |
-
{
|
3170 |
-
"name": "Symfony Community",
|
3171 |
-
"homepage": "https://symfony.com/contributors"
|
3172 |
-
}
|
3173 |
-
],
|
3174 |
-
"description": "Symfony Config Component",
|
3175 |
-
"homepage": "https://symfony.com",
|
3176 |
-
"support": {
|
3177 |
-
"source": "https://github.com/symfony/config/tree/3.3"
|
3178 |
-
},
|
3179 |
-
"install-path": "../symfony/config"
|
3180 |
-
},
|
3181 |
-
{
|
3182 |
-
"name": "symfony/console",
|
3183 |
-
"version": "v3.3.6",
|
3184 |
-
"version_normalized": "3.3.6.0",
|
3185 |
-
"source": {
|
3186 |
-
"type": "git",
|
3187 |
-
"url": "https://github.com/symfony/console.git",
|
3188 |
-
"reference": "b0878233cb5c4391347e5495089c7af11b8e6201"
|
3189 |
-
},
|
3190 |
-
"dist": {
|
3191 |
-
"type": "zip",
|
3192 |
-
"url": "https://api.github.com/repos/symfony/console/zipball/b0878233cb5c4391347e5495089c7af11b8e6201",
|
3193 |
-
"reference": "b0878233cb5c4391347e5495089c7af11b8e6201",
|
3194 |
-
"shasum": ""
|
3195 |
-
},
|
3196 |
-
"require": {
|
3197 |
-
"php": ">=5.5.9",
|
3198 |
-
"symfony/debug": "~2.8|~3.0",
|
3199 |
-
"symfony/polyfill-mbstring": "~1.0"
|
3200 |
-
},
|
3201 |
-
"conflict": {
|
3202 |
-
"symfony/dependency-injection": "<3.3"
|
3203 |
-
},
|
3204 |
-
"require-dev": {
|
3205 |
-
"psr/log": "~1.0",
|
3206 |
-
"symfony/config": "~3.3",
|
3207 |
-
"symfony/dependency-injection": "~3.3",
|
3208 |
-
"symfony/event-dispatcher": "~2.8|~3.0",
|
3209 |
-
"symfony/filesystem": "~2.8|~3.0",
|
3210 |
-
"symfony/http-kernel": "~2.8|~3.0",
|
3211 |
-
"symfony/process": "~2.8|~3.0"
|
3212 |
-
},
|
3213 |
-
"suggest": {
|
3214 |
-
"psr/log": "For using the console logger",
|
3215 |
-
"symfony/event-dispatcher": "",
|
3216 |
-
"symfony/filesystem": "",
|
3217 |
-
"symfony/process": ""
|
3218 |
-
},
|
3219 |
-
"time": "2017-07-29T21:27:59+00:00",
|
3220 |
-
"type": "library",
|
3221 |
-
"extra": {
|
3222 |
-
"branch-alias": {
|
3223 |
-
"dev-master": "3.3-dev"
|
3224 |
-
}
|
3225 |
-
},
|
3226 |
-
"installation-source": "dist",
|
3227 |
-
"autoload": {
|
3228 |
-
"psr-4": {
|
3229 |
-
"Symfony\\Component\\Console\\": ""
|
3230 |
-
},
|
3231 |
-
"exclude-from-classmap": [
|
3232 |
-
"/Tests/"
|
3233 |
-
]
|
3234 |
-
},
|
3235 |
-
"notification-url": "https://packagist.org/downloads/",
|
3236 |
-
"license": [
|
3237 |
-
"MIT"
|
3238 |
-
],
|
3239 |
-
"authors": [
|
3240 |
-
{
|
3241 |
-
"name": "Fabien Potencier",
|
3242 |
-
"email": "fabien@symfony.com"
|
3243 |
-
},
|
3244 |
-
{
|
3245 |
-
"name": "Symfony Community",
|
3246 |
-
"homepage": "https://symfony.com/contributors"
|
3247 |
-
}
|
3248 |
-
],
|
3249 |
-
"description": "Symfony Console Component",
|
3250 |
-
"homepage": "https://symfony.com",
|
3251 |
-
"support": {
|
3252 |
-
"source": "https://github.com/symfony/console/tree/3.3"
|
3253 |
-
},
|
3254 |
-
"install-path": "../symfony/console"
|
3255 |
-
},
|
3256 |
-
{
|
3257 |
-
"name": "symfony/debug",
|
3258 |
-
"version": "v3.3.6",
|
3259 |
-
"version_normalized": "3.3.6.0",
|
3260 |
-
"source": {
|
3261 |
-
"type": "git",
|
3262 |
-
"url": "https://github.com/symfony/debug.git",
|
3263 |
-
"reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13"
|
3264 |
-
},
|
3265 |
-
"dist": {
|
3266 |
-
"type": "zip",
|
3267 |
-
"url": "https://api.github.com/repos/symfony/debug/zipball/7c13ae8ce1e2adbbd574fc39de7be498e1284e13",
|
3268 |
-
"reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13",
|
3269 |
-
"shasum": ""
|
3270 |
-
},
|
3271 |
-
"require": {
|
3272 |
-
"php": ">=5.5.9",
|
3273 |
-
"psr/log": "~1.0"
|
3274 |
-
},
|
3275 |
-
"conflict": {
|
3276 |
-
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
|
3277 |
-
},
|
3278 |
-
"require-dev": {
|
3279 |
-
"symfony/http-kernel": "~2.8|~3.0"
|
3280 |
-
},
|
3281 |
-
"time": "2017-07-28T15:27:31+00:00",
|
3282 |
-
"type": "library",
|
3283 |
-
"extra": {
|
3284 |
-
"branch-alias": {
|
3285 |
-
"dev-master": "3.3-dev"
|
3286 |
-
}
|
3287 |
-
},
|
3288 |
-
"installation-source": "dist",
|
3289 |
-
"autoload": {
|
3290 |
-
"psr-4": {
|
3291 |
-
"Symfony\\Component\\Debug\\": ""
|
3292 |
-
},
|
3293 |
-
"exclude-from-classmap": [
|
3294 |
-
"/Tests/"
|
3295 |
-
]
|
3296 |
-
},
|
3297 |
-
"notification-url": "https://packagist.org/downloads/",
|
3298 |
-
"license": [
|
3299 |
-
"MIT"
|
3300 |
-
],
|
3301 |
-
"authors": [
|
3302 |
-
{
|
3303 |
-
"name": "Fabien Potencier",
|
3304 |
-
"email": "fabien@symfony.com"
|
3305 |
-
},
|
3306 |
-
{
|
3307 |
-
"name": "Symfony Community",
|
3308 |
-
"homepage": "https://symfony.com/contributors"
|
3309 |
-
}
|
3310 |
-
],
|
3311 |
-
"description": "Symfony Debug Component",
|
3312 |
-
"homepage": "https://symfony.com",
|
3313 |
-
"support": {
|
3314 |
-
"source": "https://github.com/symfony/debug/tree/3.3"
|
3315 |
-
},
|
3316 |
-
"install-path": "../symfony/debug"
|
3317 |
-
},
|
3318 |
-
{
|
3319 |
-
"name": "symfony/filesystem",
|
3320 |
-
"version": "v3.3.6",
|
3321 |
-
"version_normalized": "3.3.6.0",
|
3322 |
-
"source": {
|
3323 |
-
"type": "git",
|
3324 |
-
"url": "https://github.com/symfony/filesystem.git",
|
3325 |
-
"reference": "427987eb4eed764c3b6e38d52a0f87989e010676"
|
3326 |
-
},
|
3327 |
-
"dist": {
|
3328 |
-
"type": "zip",
|
3329 |
-
"url": "https://api.github.com/repos/symfony/filesystem/zipball/427987eb4eed764c3b6e38d52a0f87989e010676",
|
3330 |
-
"reference": "427987eb4eed764c3b6e38d52a0f87989e010676",
|
3331 |
-
"shasum": ""
|
3332 |
-
},
|
3333 |
-
"require": {
|
3334 |
-
"php": ">=5.5.9"
|
3335 |
-
},
|
3336 |
-
"time": "2017-07-11T07:17:58+00:00",
|
3337 |
-
"type": "library",
|
3338 |
-
"extra": {
|
3339 |
-
"branch-alias": {
|
3340 |
-
"dev-master": "3.3-dev"
|
3341 |
-
}
|
3342 |
-
},
|
3343 |
-
"installation-source": "dist",
|
3344 |
-
"autoload": {
|
3345 |
-
"psr-4": {
|
3346 |
-
"Symfony\\Component\\Filesystem\\": ""
|
3347 |
-
},
|
3348 |
-
"exclude-from-classmap": [
|
3349 |
-
"/Tests/"
|
3350 |
-
]
|
3351 |
-
},
|
3352 |
-
"notification-url": "https://packagist.org/downloads/",
|
3353 |
-
"license": [
|
3354 |
-
"MIT"
|
3355 |
-
],
|
3356 |
-
"authors": [
|
3357 |
-
{
|
3358 |
-
"name": "Fabien Potencier",
|
3359 |
-
"email": "fabien@symfony.com"
|
3360 |
-
},
|
3361 |
-
{
|
3362 |
-
"name": "Symfony Community",
|
3363 |
-
"homepage": "https://symfony.com/contributors"
|
3364 |
-
}
|
3365 |
-
],
|
3366 |
-
"description": "Symfony Filesystem Component",
|
3367 |
-
"homepage": "https://symfony.com",
|
3368 |
-
"support": {
|
3369 |
-
"source": "https://github.com/symfony/filesystem/tree/3.3"
|
3370 |
-
},
|
3371 |
-
"install-path": "../symfony/filesystem"
|
3372 |
-
},
|
3373 |
-
{
|
3374 |
-
"name": "symfony/polyfill-ctype",
|
3375 |
-
"version": "v1.19.0",
|
3376 |
-
"version_normalized": "1.19.0.0",
|
3377 |
-
"source": {
|
3378 |
-
"type": "git",
|
3379 |
-
"url": "https://github.com/symfony/polyfill-ctype.git",
|
3380 |
-
"reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
|
3381 |
-
},
|
3382 |
-
"dist": {
|
3383 |
-
"type": "zip",
|
3384 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
|
3385 |
-
"reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
|
3386 |
-
"shasum": ""
|
3387 |
-
},
|
3388 |
-
"require": {
|
3389 |
-
"php": ">=5.3.3"
|
3390 |
-
},
|
3391 |
-
"suggest": {
|
3392 |
-
"ext-ctype": "For best performance"
|
3393 |
-
},
|
3394 |
-
"time": "2020-10-23T09:01:57+00:00",
|
3395 |
-
"type": "library",
|
3396 |
-
"extra": {
|
3397 |
-
"branch-alias": {
|
3398 |
-
"dev-main": "1.19-dev"
|
3399 |
-
},
|
3400 |
-
"thanks": {
|
3401 |
-
"name": "symfony/polyfill",
|
3402 |
-
"url": "https://github.com/symfony/polyfill"
|
3403 |
-
}
|
3404 |
-
},
|
3405 |
-
"installation-source": "dist",
|
3406 |
-
"autoload": {
|
3407 |
-
"psr-4": {
|
3408 |
-
"Symfony\\Polyfill\\Ctype\\": ""
|
3409 |
-
},
|
3410 |
-
"files": [
|
3411 |
-
"bootstrap.php"
|
3412 |
-
]
|
3413 |
-
},
|
3414 |
-
"notification-url": "https://packagist.org/downloads/",
|
3415 |
-
"license": [
|
3416 |
-
"MIT"
|
3417 |
-
],
|
3418 |
-
"authors": [
|
3419 |
-
{
|
3420 |
-
"name": "Gert de Pagter",
|
3421 |
-
"email": "BackEndTea@gmail.com"
|
3422 |
-
},
|
3423 |
-
{
|
3424 |
-
"name": "Symfony Community",
|
3425 |
-
"homepage": "https://symfony.com/contributors"
|
3426 |
-
}
|
3427 |
-
],
|
3428 |
-
"description": "Symfony polyfill for ctype functions",
|
3429 |
-
"homepage": "https://symfony.com",
|
3430 |
-
"keywords": [
|
3431 |
-
"compatibility",
|
3432 |
-
"ctype",
|
3433 |
-
"polyfill",
|
3434 |
-
"portable"
|
3435 |
-
],
|
3436 |
-
"support": {
|
3437 |
-
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
|
3438 |
-
},
|
3439 |
-
"funding": [
|
3440 |
-
{
|
3441 |
-
"url": "https://symfony.com/sponsor",
|
3442 |
-
"type": "custom"
|
3443 |
-
},
|
3444 |
-
{
|
3445 |
-
"url": "https://github.com/fabpot",
|
3446 |
-
"type": "github"
|
3447 |
-
},
|
3448 |
-
{
|
3449 |
-
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
3450 |
-
"type": "tidelift"
|
3451 |
-
}
|
3452 |
-
],
|
3453 |
-
"install-path": "../symfony/polyfill-ctype"
|
3454 |
-
},
|
3455 |
-
{
|
3456 |
-
"name": "symfony/polyfill-intl-idn",
|
3457 |
-
"version": "v1.19.0",
|
3458 |
-
"version_normalized": "1.19.0.0",
|
3459 |
-
"source": {
|
3460 |
-
"type": "git",
|
3461 |
-
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
3462 |
-
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
|
3463 |
-
},
|
3464 |
-
"dist": {
|
3465 |
-
"type": "zip",
|
3466 |
-
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
3467 |
-
"reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
|
3468 |
-
"shasum": ""
|
3469 |
-
},
|
3470 |
-
"require": {
|
3471 |
-
"php": ">=5.3.3",
|
3472 |
-
"symfony/polyfill-intl-normalizer": "^1.10",
|
3473 |
-
"symfony/polyfill-php70": "^1.10",
|
3474 |
-
"symfony/polyfill-php72": "^1.10"
|
3475 |
-
},
|
3476 |
-
"suggest": {
|
3477 |
-
"ext-intl": "For best performance"
|
3478 |
-
},
|
3479 |
-
"time": "2020-10-21T09:57:48+00:00",
|
3480 |
-
"type": "library",
|
3481 |
-
"extra": {
|
3482 |
-
"branch-alias": {
|
3483 |
-
"dev-main": "1.19-dev"
|
3484 |
-
},
|
3485 |
-
"thanks": {
|
3486 |
-
"name": "symfony/polyfill",
|
3487 |
-
"url": "https://github.com/symfony/polyfill"
|
3488 |
-
}
|
3489 |
-
},
|
3490 |
-
"installation-source": "dist",
|
3491 |
-
"autoload": {
|
3492 |
-
"psr-4": {
|
3493 |
-
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
3494 |
-
},
|
3495 |
-
"files": [
|
3496 |
-
"bootstrap.php"
|
3497 |
-
]
|
3498 |
-
},
|
3499 |
-
"notification-url": "https://packagist.org/downloads/",
|
3500 |
-
"license": [
|
3501 |
-
"MIT"
|
3502 |
-
],
|
3503 |
-
"authors": [
|
3504 |
-
{
|
3505 |
-
"name": "Laurent Bassin",
|
3506 |
-
"email": "laurent@bassin.info"
|
3507 |
-
},
|
3508 |
-
{
|
3509 |
-
"name": "Trevor Rowbotham",
|
3510 |
-
"email": "trevor.rowbotham@pm.me"
|
3511 |
-
},
|
3512 |
-
{
|
3513 |
-
"name": "Symfony Community",
|
3514 |
-
"homepage": "https://symfony.com/contributors"
|
3515 |
-
}
|
3516 |
-
],
|
3517 |
-
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
3518 |
-
"homepage": "https://symfony.com",
|
3519 |
-
"keywords": [
|
3520 |
-
"compatibility",
|
3521 |
-
"idn",
|
3522 |
-
"intl",
|
3523 |
-
"polyfill",
|
3524 |
-
"portable",
|
3525 |
-
"shim"
|
3526 |
-
],
|
3527 |
-
"support": {
|
3528 |
-
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0"
|
3529 |
-
},
|
3530 |
-
"funding": [
|
3531 |
-
{
|
3532 |
-
"url": "https://symfony.com/sponsor",
|
3533 |
-
"type": "custom"
|
3534 |
-
},
|
3535 |
-
{
|
3536 |
-
"url": "https://github.com/fabpot",
|
3537 |
-
"type": "github"
|
3538 |
-
},
|
3539 |
-
{
|
3540 |
-
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
3541 |
-
"type": "tidelift"
|
3542 |
-
}
|
3543 |
-
],
|
3544 |
-
"install-path": "../symfony/polyfill-intl-idn"
|
3545 |
-
},
|
3546 |
-
{
|
3547 |
-
"name": "symfony/polyfill-intl-normalizer",
|
3548 |
-
"version": "v1.19.0",
|
3549 |
-
"version_normalized": "1.19.0.0",
|
3550 |
-
"source": {
|
3551 |
-
"type": "git",
|
3552 |
-
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
3553 |
-
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
|
3554 |
-
},
|
3555 |
-
"dist": {
|
3556 |
-
"type": "zip",
|
3557 |
-
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
3558 |
-
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
|
3559 |
-
"shasum": ""
|
3560 |
-
},
|
3561 |
-
"require": {
|
3562 |
-
"php": ">=5.3.3"
|
3563 |
-
},
|
3564 |
-
"suggest": {
|
3565 |
-
"ext-intl": "For best performance"
|
3566 |
-
},
|
3567 |
-
"time": "2020-10-23T09:01:57+00:00",
|
3568 |
-
"type": "library",
|
3569 |
-
"extra": {
|
3570 |
-
"branch-alias": {
|
3571 |
-
"dev-main": "1.19-dev"
|
3572 |
-
},
|
3573 |
-
"thanks": {
|
3574 |
-
"name": "symfony/polyfill",
|
3575 |
-
"url": "https://github.com/symfony/polyfill"
|
3576 |
-
}
|
3577 |
-
},
|
3578 |
-
"installation-source": "dist",
|
3579 |
-
"autoload": {
|
3580 |
-
"psr-4": {
|
3581 |
-
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
3582 |
-
},
|
3583 |
-
"files": [
|
3584 |
-
"bootstrap.php"
|
3585 |
-
],
|
3586 |
-
"classmap": [
|
3587 |
-
"Resources/stubs"
|
3588 |
-
]
|
3589 |
-
},
|
3590 |
-
"notification-url": "https://packagist.org/downloads/",
|
3591 |
-
"license": [
|
3592 |
-
"MIT"
|
3593 |
-
],
|
3594 |
-
"authors": [
|
3595 |
-
{
|
3596 |
-
"name": "Nicolas Grekas",
|
3597 |
-
"email": "p@tchwork.com"
|
3598 |
-
},
|
3599 |
-
{
|
3600 |
-
"name": "Symfony Community",
|
3601 |
-
"homepage": "https://symfony.com/contributors"
|
3602 |
-
}
|
3603 |
-
],
|
3604 |
-
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
3605 |
-
"homepage": "https://symfony.com",
|
3606 |
-
"keywords": [
|
3607 |
-
"compatibility",
|
3608 |
-
"intl",
|
3609 |
-
"normalizer",
|
3610 |
-
"polyfill",
|
3611 |
-
"portable",
|
3612 |
-
"shim"
|
3613 |
-
],
|
3614 |
-
"support": {
|
3615 |
-
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0"
|
3616 |
-
},
|
3617 |
-
"funding": [
|
3618 |
-
{
|
3619 |
-
"url": "https://symfony.com/sponsor",
|
3620 |
-
"type": "custom"
|
3621 |
-
},
|
3622 |
-
{
|
3623 |
-
"url": "https://github.com/fabpot",
|
3624 |
-
"type": "github"
|
3625 |
-
},
|
3626 |
-
{
|
3627 |
-
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
3628 |
-
"type": "tidelift"
|
3629 |
-
}
|
3630 |
-
],
|
3631 |
-
"install-path": "../symfony/polyfill-intl-normalizer"
|
3632 |
-
},
|
3633 |
-
{
|
3634 |
-
"name": "symfony/polyfill-mbstring",
|
3635 |
-
"version": "v1.13.1",
|
3636 |
-
"version_normalized": "1.13.1.0",
|
3637 |
-
"source": {
|
3638 |
-
"type": "git",
|
3639 |
-
"url": "git@github.com:kagg-design/polyfill-mbstring.git",
|
3640 |
-
"reference": "7b4aab9743c30be783b73de055d24a39cf4b954f"
|
3641 |
-
},
|
3642 |
-
"dist": {
|
3643 |
-
"type": "zip",
|
3644 |
-
"url": "https://api.github.com/repos/kagg-design/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f",
|
3645 |
-
"reference": "7b4aab9743c30be783b73de055d24a39cf4b954f",
|
3646 |
-
"shasum": ""
|
3647 |
-
},
|
3648 |
-
"require": {
|
3649 |
-
"php": ">=5.3.3"
|
3650 |
-
},
|
3651 |
-
"suggest": {
|
3652 |
-
"ext-mbstring": "For best performance"
|
3653 |
-
},
|
3654 |
-
"time": "2019-11-27T14:18:11+00:00",
|
3655 |
-
"type": "library",
|
3656 |
-
"extra": {
|
3657 |
-
"branch-alias": {
|
3658 |
-
"dev-master": "1.13-dev"
|
3659 |
-
}
|
3660 |
-
},
|
3661 |
-
"installation-source": "dist",
|
3662 |
-
"autoload": {
|
3663 |
-
"psr-4": {
|
3664 |
-
"Symfony\\Polyfill\\Mbstring\\": ""
|
3665 |
-
},
|
3666 |
-
"files": [
|
3667 |
-
"bootstrap.php"
|
3668 |
-
]
|
3669 |
-
},
|
3670 |
-
"license": [
|
3671 |
-
"MIT"
|
3672 |
-
],
|
3673 |
-
"authors": [
|
3674 |
-
{
|
3675 |
-
"name": "Nicolas Grekas",
|
3676 |
-
"email": "p@tchwork.com"
|
3677 |
-
},
|
3678 |
-
{
|
3679 |
-
"name": "Symfony Community",
|
3680 |
-
"homepage": "https://symfony.com/contributors"
|
3681 |
-
}
|
3682 |
-
],
|
3683 |
-
"description": "Symfony polyfill for the Mbstring extension",
|
3684 |
-
"homepage": "https://symfony.com",
|
3685 |
-
"keywords": [
|
3686 |
-
"compatibility",
|
3687 |
-
"mbstring",
|
3688 |
-
"polyfill",
|
3689 |
-
"portable",
|
3690 |
-
"shim"
|
3691 |
-
],
|
3692 |
-
"install-path": "../symfony/polyfill-mbstring"
|
3693 |
-
},
|
3694 |
-
{
|
3695 |
-
"name": "symfony/polyfill-php70",
|
3696 |
-
"version": "v1.19.0",
|
3697 |
-
"version_normalized": "1.19.0.0",
|
3698 |
-
"source": {
|
3699 |
-
"type": "git",
|
3700 |
-
"url": "https://github.com/symfony/polyfill-php70.git",
|
3701 |
-
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
|
3702 |
-
},
|
3703 |
-
"dist": {
|
3704 |
-
"type": "zip",
|
3705 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
|
3706 |
-
"reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
|
3707 |
-
"shasum": ""
|
3708 |
-
},
|
3709 |
-
"require": {
|
3710 |
-
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
3711 |
-
"php": ">=5.3.3"
|
3712 |
-
},
|
3713 |
-
"time": "2020-10-23T09:01:57+00:00",
|
3714 |
-
"type": "library",
|
3715 |
-
"extra": {
|
3716 |
-
"branch-alias": {
|
3717 |
-
"dev-main": "1.19-dev"
|
3718 |
-
},
|
3719 |
-
"thanks": {
|
3720 |
-
"name": "symfony/polyfill",
|
3721 |
-
"url": "https://github.com/symfony/polyfill"
|
3722 |
-
}
|
3723 |
-
},
|
3724 |
-
"installation-source": "dist",
|
3725 |
-
"autoload": {
|
3726 |
-
"psr-4": {
|
3727 |
-
"Symfony\\Polyfill\\Php70\\": ""
|
3728 |
-
},
|
3729 |
-
"files": [
|
3730 |
-
"bootstrap.php"
|
3731 |
-
],
|
3732 |
-
"classmap": [
|
3733 |
-
"Resources/stubs"
|
3734 |
-
]
|
3735 |
-
},
|
3736 |
-
"notification-url": "https://packagist.org/downloads/",
|
3737 |
-
"license": [
|
3738 |
-
"MIT"
|
3739 |
-
],
|
3740 |
-
"authors": [
|
3741 |
-
{
|
3742 |
-
"name": "Nicolas Grekas",
|
3743 |
-
"email": "p@tchwork.com"
|
3744 |
-
},
|
3745 |
-
{
|
3746 |
-
"name": "Symfony Community",
|
3747 |
-
"homepage": "https://symfony.com/contributors"
|
3748 |
-
}
|
3749 |
-
],
|
3750 |
-
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
3751 |
-
"homepage": "https://symfony.com",
|
3752 |
-
"keywords": [
|
3753 |
-
"compatibility",
|
3754 |
-
"polyfill",
|
3755 |
-
"portable",
|
3756 |
-
"shim"
|
3757 |
-
],
|
3758 |
-
"support": {
|
3759 |
-
"source": "https://github.com/symfony/polyfill-php70/tree/v1.19.0"
|
3760 |
-
},
|
3761 |
-
"funding": [
|
3762 |
-
{
|
3763 |
-
"url": "https://symfony.com/sponsor",
|
3764 |
-
"type": "custom"
|
3765 |
-
},
|
3766 |
-
{
|
3767 |
-
"url": "https://github.com/fabpot",
|
3768 |
-
"type": "github"
|
3769 |
-
},
|
3770 |
-
{
|
3771 |
-
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
3772 |
-
"type": "tidelift"
|
3773 |
-
}
|
3774 |
-
],
|
3775 |
-
"install-path": "../symfony/polyfill-php70"
|
3776 |
-
},
|
3777 |
-
{
|
3778 |
-
"name": "symfony/polyfill-php72",
|
3779 |
-
"version": "v1.19.0",
|
3780 |
-
"version_normalized": "1.19.0.0",
|
3781 |
-
"source": {
|
3782 |
-
"type": "git",
|
3783 |
-
"url": "https://github.com/symfony/polyfill-php72.git",
|
3784 |
-
"reference": "beecef6b463b06954638f02378f52496cb84bacc"
|
3785 |
-
},
|
3786 |
-
"dist": {
|
3787 |
-
"type": "zip",
|
3788 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
|
3789 |
-
"reference": "beecef6b463b06954638f02378f52496cb84bacc",
|
3790 |
-
"shasum": ""
|
3791 |
-
},
|
3792 |
-
"require": {
|
3793 |
-
"php": ">=5.3.3"
|
3794 |
-
},
|
3795 |
-
"time": "2020-10-23T09:01:57+00:00",
|
3796 |
-
"type": "library",
|
3797 |
-
"extra": {
|
3798 |
-
"branch-alias": {
|
3799 |
-
"dev-main": "1.19-dev"
|
3800 |
-
},
|
3801 |
-
"thanks": {
|
3802 |
-
"name": "symfony/polyfill",
|
3803 |
-
"url": "https://github.com/symfony/polyfill"
|
3804 |
-
}
|
3805 |
-
},
|
3806 |
-
"installation-source": "dist",
|
3807 |
-
"autoload": {
|
3808 |
-
"psr-4": {
|
3809 |
-
"Symfony\\Polyfill\\Php72\\": ""
|
3810 |
-
},
|
3811 |
-
"files": [
|
3812 |
-
"bootstrap.php"
|
3813 |
-
]
|
3814 |
-
},
|
3815 |
-
"notification-url": "https://packagist.org/downloads/",
|
3816 |
-
"license": [
|
3817 |
-
"MIT"
|
3818 |
-
],
|
3819 |
-
"authors": [
|
3820 |
-
{
|
3821 |
-
"name": "Nicolas Grekas",
|
3822 |
-
"email": "p@tchwork.com"
|
3823 |
-
},
|
3824 |
-
{
|
3825 |
-
"name": "Symfony Community",
|
3826 |
-
"homepage": "https://symfony.com/contributors"
|
3827 |
-
}
|
3828 |
-
],
|
3829 |
-
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
3830 |
-
"homepage": "https://symfony.com",
|
3831 |
-
"keywords": [
|
3832 |
-
"compatibility",
|
3833 |
-
"polyfill",
|
3834 |
-
"portable",
|
3835 |
-
"shim"
|
3836 |
-
],
|
3837 |
-
"support": {
|
3838 |
-
"source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0"
|
3839 |
-
},
|
3840 |
-
"funding": [
|
3841 |
-
{
|
3842 |
-
"url": "https://symfony.com/sponsor",
|
3843 |
-
"type": "custom"
|
3844 |
-
},
|
3845 |
-
{
|
3846 |
-
"url": "https://github.com/fabpot",
|
3847 |
-
"type": "github"
|
3848 |
-
},
|
3849 |
-
{
|
3850 |
-
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
3851 |
-
"type": "tidelift"
|
3852 |
-
}
|
3853 |
-
],
|
3854 |
-
"install-path": "../symfony/polyfill-php72"
|
3855 |
-
},
|
3856 |
-
{
|
3857 |
-
"name": "symfony/stopwatch",
|
3858 |
-
"version": "v3.3.6",
|
3859 |
-
"version_normalized": "3.3.6.0",
|
3860 |
-
"source": {
|
3861 |
-
"type": "git",
|
3862 |
-
"url": "https://github.com/symfony/stopwatch.git",
|
3863 |
-
"reference": "602a15299dc01556013b07167d4f5d3a60e90d15"
|
3864 |
-
},
|
3865 |
-
"dist": {
|
3866 |
-
"type": "zip",
|
3867 |
-
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/602a15299dc01556013b07167d4f5d3a60e90d15",
|
3868 |
-
"reference": "602a15299dc01556013b07167d4f5d3a60e90d15",
|
3869 |
-
"shasum": ""
|
3870 |
-
},
|
3871 |
-
"require": {
|
3872 |
-
"php": ">=5.5.9"
|
3873 |
-
},
|
3874 |
-
"time": "2017-04-12T14:14:56+00:00",
|
3875 |
-
"type": "library",
|
3876 |
-
"extra": {
|
3877 |
-
"branch-alias": {
|
3878 |
-
"dev-master": "3.3-dev"
|
3879 |
-
}
|
3880 |
-
},
|
3881 |
-
"installation-source": "dist",
|
3882 |
-
"autoload": {
|
3883 |
-
"psr-4": {
|
3884 |
-
"Symfony\\Component\\Stopwatch\\": ""
|
3885 |
-
},
|
3886 |
-
"exclude-from-classmap": [
|
3887 |
-
"/Tests/"
|
3888 |
-
]
|
3889 |
-
},
|
3890 |
-
"notification-url": "https://packagist.org/downloads/",
|
3891 |
-
"license": [
|
3892 |
-
"MIT"
|
3893 |
-
],
|
3894 |
-
"authors": [
|
3895 |
-
{
|
3896 |
-
"name": "Fabien Potencier",
|
3897 |
-
"email": "fabien@symfony.com"
|
3898 |
-
},
|
3899 |
-
{
|
3900 |
-
"name": "Symfony Community",
|
3901 |
-
"homepage": "https://symfony.com/contributors"
|
3902 |
-
}
|
3903 |
-
],
|
3904 |
-
"description": "Symfony Stopwatch Component",
|
3905 |
-
"homepage": "https://symfony.com",
|
3906 |
-
"support": {
|
3907 |
-
"source": "https://github.com/symfony/stopwatch/tree/master"
|
3908 |
-
},
|
3909 |
-
"install-path": "../symfony/stopwatch"
|
3910 |
-
},
|
3911 |
-
{
|
3912 |
-
"name": "symfony/yaml",
|
3913 |
-
"version": "v3.3.6",
|
3914 |
-
"version_normalized": "3.3.6.0",
|
3915 |
-
"source": {
|
3916 |
-
"type": "git",
|
3917 |
-
"url": "https://github.com/symfony/yaml.git",
|
3918 |
-
"reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed"
|
3919 |
-
},
|
3920 |
-
"dist": {
|
3921 |
-
"type": "zip",
|
3922 |
-
"url": "https://api.github.com/repos/symfony/yaml/zipball/ddc23324e6cfe066f3dd34a37ff494fa80b617ed",
|
3923 |
-
"reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed",
|
3924 |
-
"shasum": ""
|
3925 |
-
},
|
3926 |
-
"require": {
|
3927 |
-
"php": ">=5.5.9"
|
3928 |
-
},
|
3929 |
-
"require-dev": {
|
3930 |
-
"symfony/console": "~2.8|~3.0"
|
3931 |
-
},
|
3932 |
-
"suggest": {
|
3933 |
-
"symfony/console": "For validating YAML files using the lint command"
|
3934 |
-
},
|
3935 |
-
"time": "2017-07-23T12:43:26+00:00",
|
3936 |
-
"type": "library",
|
3937 |
-
"extra": {
|
3938 |
-
"branch-alias": {
|
3939 |
-
"dev-master": "3.3-dev"
|
3940 |
-
}
|
3941 |
-
},
|
3942 |
-
"installation-source": "dist",
|
3943 |
-
"autoload": {
|
3944 |
-
"psr-4": {
|
3945 |
-
"Symfony\\Component\\Yaml\\": ""
|
3946 |
-
},
|
3947 |
-
"exclude-from-classmap": [
|
3948 |
-
"/Tests/"
|
3949 |
-
]
|
3950 |
-
},
|
3951 |
-
"notification-url": "https://packagist.org/downloads/",
|
3952 |
-
"license": [
|
3953 |
-
"MIT"
|
3954 |
-
],
|
3955 |
-
"authors": [
|
3956 |
-
{
|
3957 |
-
"name": "Fabien Potencier",
|
3958 |
-
"email": "fabien@symfony.com"
|
3959 |
-
},
|
3960 |
-
{
|
3961 |
-
"name": "Symfony Community",
|
3962 |
-
"homepage": "https://symfony.com/contributors"
|
3963 |
-
}
|
3964 |
-
],
|
3965 |
-
"description": "Symfony Yaml Component",
|
3966 |
-
"homepage": "https://symfony.com",
|
3967 |
-
"support": {
|
3968 |
-
"source": "https://github.com/symfony/yaml/tree/3.3"
|
3969 |
-
},
|
3970 |
-
"install-path": "../symfony/yaml"
|
3971 |
-
},
|
3972 |
-
{
|
3973 |
-
"name": "theseer/tokenizer",
|
3974 |
-
"version": "1.1.3",
|
3975 |
-
"version_normalized": "1.1.3.0",
|
3976 |
-
"source": {
|
3977 |
-
"type": "git",
|
3978 |
-
"url": "https://github.com/theseer/tokenizer.git",
|
3979 |
-
"reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
|
3980 |
-
},
|
3981 |
-
"dist": {
|
3982 |
-
"type": "zip",
|
3983 |
-
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
|
3984 |
-
"reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
|
3985 |
-
"shasum": ""
|
3986 |
-
},
|
3987 |
-
"require": {
|
3988 |
-
"ext-dom": "*",
|
3989 |
-
"ext-tokenizer": "*",
|
3990 |
-
"ext-xmlwriter": "*",
|
3991 |
-
"php": "^7.0"
|
3992 |
-
},
|
3993 |
-
"time": "2019-06-13T22:48:21+00:00",
|
3994 |
-
"type": "library",
|
3995 |
-
"installation-source": "dist",
|
3996 |
-
"autoload": {
|
3997 |
-
"classmap": [
|
3998 |
-
"src/"
|
3999 |
-
]
|
4000 |
-
},
|
4001 |
-
"notification-url": "https://packagist.org/downloads/",
|
4002 |
-
"license": [
|
4003 |
-
"BSD-3-Clause"
|
4004 |
-
],
|
4005 |
-
"authors": [
|
4006 |
-
{
|
4007 |
-
"name": "Arne Blankerts",
|
4008 |
-
"email": "arne@blankerts.de",
|
4009 |
-
"role": "Developer"
|
4010 |
-
}
|
4011 |
-
],
|
4012 |
-
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
4013 |
-
"support": {
|
4014 |
-
"issues": "https://github.com/theseer/tokenizer/issues",
|
4015 |
-
"source": "https://github.com/theseer/tokenizer/tree/master"
|
4016 |
-
},
|
4017 |
-
"install-path": "../theseer/tokenizer"
|
4018 |
-
},
|
4019 |
-
{
|
4020 |
-
"name": "webmozart/assert",
|
4021 |
-
"version": "1.9.1",
|
4022 |
-
"version_normalized": "1.9.1.0",
|
4023 |
-
"source": {
|
4024 |
-
"type": "git",
|
4025 |
-
"url": "https://github.com/webmozart/assert.git",
|
4026 |
-
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
|
4027 |
-
},
|
4028 |
-
"dist": {
|
4029 |
-
"type": "zip",
|
4030 |
-
"url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
4031 |
-
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
4032 |
-
"shasum": ""
|
4033 |
-
},
|
4034 |
-
"require": {
|
4035 |
-
"php": "^5.3.3 || ^7.0 || ^8.0",
|
4036 |
-
"symfony/polyfill-ctype": "^1.8"
|
4037 |
-
},
|
4038 |
-
"conflict": {
|
4039 |
-
"phpstan/phpstan": "<0.12.20",
|
4040 |
-
"vimeo/psalm": "<3.9.1"
|
4041 |
-
},
|
4042 |
-
"require-dev": {
|
4043 |
-
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
4044 |
-
},
|
4045 |
-
"time": "2020-07-08T17:02:28+00:00",
|
4046 |
-
"type": "library",
|
4047 |
-
"installation-source": "dist",
|
4048 |
-
"autoload": {
|
4049 |
-
"psr-4": {
|
4050 |
-
"Webmozart\\Assert\\": "src/"
|
4051 |
-
}
|
4052 |
-
},
|
4053 |
-
"notification-url": "https://packagist.org/downloads/",
|
4054 |
-
"license": [
|
4055 |
-
"MIT"
|
4056 |
-
],
|
4057 |
-
"authors": [
|
4058 |
-
{
|
4059 |
-
"name": "Bernhard Schussek",
|
4060 |
-
"email": "bschussek@gmail.com"
|
4061 |
-
}
|
4062 |
-
],
|
4063 |
-
"description": "Assertions to validate method input/output with nice error messages.",
|
4064 |
-
"keywords": [
|
4065 |
-
"assert",
|
4066 |
-
"check",
|
4067 |
-
"validate"
|
4068 |
-
],
|
4069 |
-
"support": {
|
4070 |
-
"issues": "https://github.com/webmozart/assert/issues",
|
4071 |
-
"source": "https://github.com/webmozart/assert/tree/master"
|
4072 |
-
},
|
4073 |
-
"install-path": "../webmozart/assert"
|
4074 |
-
},
|
4075 |
-
{
|
4076 |
-
"name": "wp-coding-standards/wpcs",
|
4077 |
-
"version": "2.3.0",
|
4078 |
-
"version_normalized": "2.3.0.0",
|
4079 |
-
"source": {
|
4080 |
-
"type": "git",
|
4081 |
-
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
|
4082 |
-
"reference": "7da1894633f168fe244afc6de00d141f27517b62"
|
4083 |
-
},
|
4084 |
-
"dist": {
|
4085 |
-
"type": "zip",
|
4086 |
-
"url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62",
|
4087 |
-
"reference": "7da1894633f168fe244afc6de00d141f27517b62",
|
4088 |
-
"shasum": ""
|
4089 |
-
},
|
4090 |
-
"require": {
|
4091 |
-
"php": ">=5.4",
|
4092 |
-
"squizlabs/php_codesniffer": "^3.3.1"
|
4093 |
-
},
|
4094 |
-
"require-dev": {
|
4095 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6",
|
4096 |
-
"phpcompatibility/php-compatibility": "^9.0",
|
4097 |
-
"phpcsstandards/phpcsdevtools": "^1.0",
|
4098 |
-
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
4099 |
-
},
|
4100 |
-
"suggest": {
|
4101 |
-
"dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
|
4102 |
-
},
|
4103 |
-
"time": "2020-05-13T23:57:56+00:00",
|
4104 |
-
"type": "phpcodesniffer-standard",
|
4105 |
-
"installation-source": "dist",
|
4106 |
-
"notification-url": "https://packagist.org/downloads/",
|
4107 |
-
"license": [
|
4108 |
-
"MIT"
|
4109 |
-
],
|
4110 |
-
"authors": [
|
4111 |
-
{
|
4112 |
-
"name": "Contributors",
|
4113 |
-
"homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
|
4114 |
-
}
|
4115 |
-
],
|
4116 |
-
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
|
4117 |
-
"keywords": [
|
4118 |
-
"phpcs",
|
4119 |
-
"standards",
|
4120 |
-
"wordpress"
|
4121 |
-
],
|
4122 |
-
"support": {
|
4123 |
-
"issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
|
4124 |
-
"source": "https://github.com/WordPress/WordPress-Coding-Standards",
|
4125 |
-
"wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
|
4126 |
-
},
|
4127 |
-
"install-path": "../wp-coding-standards/wpcs"
|
4128 |
-
},
|
4129 |
-
{
|
4130 |
-
"name": "xrstf/composer-php52",
|
4131 |
-
"version": "v1.0.20",
|
4132 |
-
"version_normalized": "1.0.20.0",
|
4133 |
-
"source": {
|
4134 |
-
"type": "git",
|
4135 |
-
"url": "https://github.com/composer-php52/composer-php52.git",
|
4136 |
-
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
|
4137 |
-
},
|
4138 |
-
"dist": {
|
4139 |
-
"type": "zip",
|
4140 |
-
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
|
4141 |
-
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
|
4142 |
-
"shasum": ""
|
4143 |
-
},
|
4144 |
-
"time": "2016-04-16T21:52:24+00:00",
|
4145 |
-
"type": "library",
|
4146 |
-
"extra": {
|
4147 |
-
"branch-alias": {
|
4148 |
-
"dev-default": "1.x-dev"
|
4149 |
-
}
|
4150 |
-
},
|
4151 |
-
"installation-source": "dist",
|
4152 |
-
"autoload": {
|
4153 |
-
"psr-0": {
|
4154 |
-
"xrstf\\Composer52": "lib/"
|
4155 |
-
}
|
4156 |
-
},
|
4157 |
-
"notification-url": "https://packagist.org/downloads/",
|
4158 |
-
"license": [
|
4159 |
-
"MIT"
|
4160 |
-
],
|
4161 |
-
"support": {
|
4162 |
-
"issues": "https://github.com/composer-php52/composer-php52/issues",
|
4163 |
-
"source": "https://github.com/composer-php52/composer-php52"
|
4164 |
-
},
|
4165 |
-
"install-path": "../xrstf/composer-php52"
|
4166 |
}
|
4167 |
],
|
4168 |
-
"dev":
|
4169 |
-
"dev-package-names": [
|
4170 |
-
"10up/wp_mock",
|
4171 |
-
"antecedent/patchwork",
|
4172 |
-
"doctrine/instantiator",
|
4173 |
-
"guzzlehttp/guzzle",
|
4174 |
-
"guzzlehttp/promises",
|
4175 |
-
"guzzlehttp/psr7",
|
4176 |
-
"hamcrest/hamcrest-php",
|
4177 |
-
"lucatume/args",
|
4178 |
-
"lucatume/function-mocker",
|
4179 |
-
"mockery/mockery",
|
4180 |
-
"myclabs/deep-copy",
|
4181 |
-
"paragonie/random_compat",
|
4182 |
-
"phar-io/manifest",
|
4183 |
-
"phar-io/version",
|
4184 |
-
"php-coveralls/php-coveralls",
|
4185 |
-
"phpcompatibility/php-compatibility",
|
4186 |
-
"phpcompatibility/phpcompatibility-paragonie",
|
4187 |
-
"phpcompatibility/phpcompatibility-wp",
|
4188 |
-
"phpdocumentor/reflection-common",
|
4189 |
-
"phpdocumentor/reflection-docblock",
|
4190 |
-
"phpdocumentor/type-resolver",
|
4191 |
-
"phpspec/prophecy",
|
4192 |
-
"phpunit/php-code-coverage",
|
4193 |
-
"phpunit/php-file-iterator",
|
4194 |
-
"phpunit/php-text-template",
|
4195 |
-
"phpunit/php-timer",
|
4196 |
-
"phpunit/php-token-stream",
|
4197 |
-
"phpunit/phpunit",
|
4198 |
-
"phpunit/phpunit-mock-objects",
|
4199 |
-
"psr/http-message",
|
4200 |
-
"psr/log",
|
4201 |
-
"ralouphie/getallheaders",
|
4202 |
-
"roave/security-advisories",
|
4203 |
-
"sebastian/code-unit-reverse-lookup",
|
4204 |
-
"sebastian/comparator",
|
4205 |
-
"sebastian/diff",
|
4206 |
-
"sebastian/environment",
|
4207 |
-
"sebastian/exporter",
|
4208 |
-
"sebastian/global-state",
|
4209 |
-
"sebastian/object-enumerator",
|
4210 |
-
"sebastian/object-reflector",
|
4211 |
-
"sebastian/recursion-context",
|
4212 |
-
"sebastian/resource-operations",
|
4213 |
-
"sebastian/version",
|
4214 |
-
"squizlabs/php_codesniffer",
|
4215 |
-
"symfony/config",
|
4216 |
-
"symfony/console",
|
4217 |
-
"symfony/debug",
|
4218 |
-
"symfony/filesystem",
|
4219 |
-
"symfony/polyfill-ctype",
|
4220 |
-
"symfony/polyfill-intl-idn",
|
4221 |
-
"symfony/polyfill-intl-normalizer",
|
4222 |
-
"symfony/polyfill-mbstring",
|
4223 |
-
"symfony/polyfill-php70",
|
4224 |
-
"symfony/polyfill-php72",
|
4225 |
-
"symfony/stopwatch",
|
4226 |
-
"symfony/yaml",
|
4227 |
-
"theseer/tokenizer",
|
4228 |
-
"webmozart/assert",
|
4229 |
-
"wp-coding-standards/wpcs",
|
4230 |
-
"xrstf/composer-php52"
|
4231 |
-
]
|
4232 |
}
|
1 |
{
|
2 |
"packages": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
{
|
4 |
"name": "composer/installers",
|
5 |
"version": "v1.9.0",
|
143 |
}
|
144 |
],
|
145 |
"install-path": "./installers"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
}
|
147 |
],
|
148 |
+
"dev": false,
|
149 |
+
"dev-package-names": []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
vendor/composer/installed.php
CHANGED
@@ -1,34 +1,16 @@
|
|
1 |
<?php return array (
|
2 |
'root' =>
|
3 |
array (
|
4 |
-
'pretty_version' => '4.
|
5 |
-
'version' => '4.
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
-
'reference' => '
|
10 |
'name' => 'mihdan/cyr2lat',
|
11 |
),
|
12 |
'versions' =>
|
13 |
array (
|
14 |
-
'10up/wp_mock' =>
|
15 |
-
array (
|
16 |
-
'pretty_version' => '0.3.0',
|
17 |
-
'version' => '0.3.0.0',
|
18 |
-
'aliases' =>
|
19 |
-
array (
|
20 |
-
),
|
21 |
-
'reference' => '64956557e98ee4c8c56cd1e396e822adb4673714',
|
22 |
-
),
|
23 |
-
'antecedent/patchwork' =>
|
24 |
-
array (
|
25 |
-
'pretty_version' => '2.1.12',
|
26 |
-
'version' => '2.1.12.0',
|
27 |
-
'aliases' =>
|
28 |
-
array (
|
29 |
-
),
|
30 |
-
'reference' => 'b98e046dd4c0acc34a0846604f06f6111654d9ea',
|
31 |
-
),
|
32 |
'composer/installers' =>
|
33 |
array (
|
34 |
'pretty_version' => 'v1.9.0',
|
@@ -38,321 +20,14 @@
|
|
38 |
),
|
39 |
'reference' => 'b93bcf0fa1fccb0b7d176b0967d969691cd74cca',
|
40 |
),
|
41 |
-
'cordoval/hamcrest-php' =>
|
42 |
-
array (
|
43 |
-
'replaced' =>
|
44 |
-
array (
|
45 |
-
0 => '*',
|
46 |
-
),
|
47 |
-
),
|
48 |
-
'davedevelopment/hamcrest-php' =>
|
49 |
-
array (
|
50 |
-
'replaced' =>
|
51 |
-
array (
|
52 |
-
0 => '*',
|
53 |
-
),
|
54 |
-
),
|
55 |
-
'doctrine/instantiator' =>
|
56 |
-
array (
|
57 |
-
'pretty_version' => '1.0.5',
|
58 |
-
'version' => '1.0.5.0',
|
59 |
-
'aliases' =>
|
60 |
-
array (
|
61 |
-
),
|
62 |
-
'reference' => '8e884e78f9f0eb1329e445619e04456e64d8051d',
|
63 |
-
),
|
64 |
-
'guzzlehttp/guzzle' =>
|
65 |
-
array (
|
66 |
-
'pretty_version' => '6.5.5',
|
67 |
-
'version' => '6.5.5.0',
|
68 |
-
'aliases' =>
|
69 |
-
array (
|
70 |
-
),
|
71 |
-
'reference' => '9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
|
72 |
-
),
|
73 |
-
'guzzlehttp/promises' =>
|
74 |
-
array (
|
75 |
-
'pretty_version' => '1.4.0',
|
76 |
-
'version' => '1.4.0.0',
|
77 |
-
'aliases' =>
|
78 |
-
array (
|
79 |
-
),
|
80 |
-
'reference' => '60d379c243457e073cff02bc323a2a86cb355631',
|
81 |
-
),
|
82 |
-
'guzzlehttp/psr7' =>
|
83 |
-
array (
|
84 |
-
'pretty_version' => '1.7.0',
|
85 |
-
'version' => '1.7.0.0',
|
86 |
-
'aliases' =>
|
87 |
-
array (
|
88 |
-
),
|
89 |
-
'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3',
|
90 |
-
),
|
91 |
-
'hamcrest/hamcrest-php' =>
|
92 |
-
array (
|
93 |
-
'pretty_version' => 'v2.0.1',
|
94 |
-
'version' => '2.0.1.0',
|
95 |
-
'aliases' =>
|
96 |
-
array (
|
97 |
-
),
|
98 |
-
'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3',
|
99 |
-
),
|
100 |
-
'kodova/hamcrest-php' =>
|
101 |
-
array (
|
102 |
-
'replaced' =>
|
103 |
-
array (
|
104 |
-
0 => '*',
|
105 |
-
),
|
106 |
-
),
|
107 |
-
'lucatume/args' =>
|
108 |
-
array (
|
109 |
-
'pretty_version' => '1.0.1.1',
|
110 |
-
'version' => '1.0.1.1',
|
111 |
-
'aliases' =>
|
112 |
-
array (
|
113 |
-
),
|
114 |
-
'reference' => '9ab69f5c995813b2dfbb067100ada500ee2893e8',
|
115 |
-
),
|
116 |
-
'lucatume/function-mocker' =>
|
117 |
-
array (
|
118 |
-
'pretty_version' => 'dev-test-on-windows',
|
119 |
-
'version' => 'dev-test-on-windows',
|
120 |
-
'aliases' =>
|
121 |
-
array (
|
122 |
-
),
|
123 |
-
'reference' => '0383729be9af2f1dba5e553b29c899f10aba8932',
|
124 |
-
),
|
125 |
'mihdan/cyr2lat' =>
|
126 |
array (
|
127 |
-
'pretty_version' => '4.
|
128 |
-
'version' => '4.
|
129 |
-
'aliases' =>
|
130 |
-
array (
|
131 |
-
),
|
132 |
-
'reference' => 'dcdc4ea6ae257051707db82563043d9d32bfff65',
|
133 |
-
),
|
134 |
-
'mockery/mockery' =>
|
135 |
-
array (
|
136 |
-
'pretty_version' => '1.3.3',
|
137 |
-
'version' => '1.3.3.0',
|
138 |
-
'aliases' =>
|
139 |
-
array (
|
140 |
-
),
|
141 |
-
'reference' => '60fa2f67f6e4d3634bb4a45ff3171fa52215800d',
|
142 |
-
),
|
143 |
-
'myclabs/deep-copy' =>
|
144 |
-
array (
|
145 |
-
'pretty_version' => '1.7.0',
|
146 |
-
'version' => '1.7.0.0',
|
147 |
-
'aliases' =>
|
148 |
-
array (
|
149 |
-
),
|
150 |
-
'reference' => '3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e',
|
151 |
-
),
|
152 |
-
'paragonie/random_compat' =>
|
153 |
-
array (
|
154 |
-
'pretty_version' => 'v9.99.100',
|
155 |
-
'version' => '9.99.100.0',
|
156 |
-
'aliases' =>
|
157 |
-
array (
|
158 |
-
),
|
159 |
-
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
|
160 |
-
),
|
161 |
-
'phar-io/manifest' =>
|
162 |
-
array (
|
163 |
-
'pretty_version' => '1.0.1',
|
164 |
-
'version' => '1.0.1.0',
|
165 |
-
'aliases' =>
|
166 |
-
array (
|
167 |
-
),
|
168 |
-
'reference' => '2df402786ab5368a0169091f61a7c1e0eb6852d0',
|
169 |
-
),
|
170 |
-
'phar-io/version' =>
|
171 |
-
array (
|
172 |
-
'pretty_version' => '1.0.1',
|
173 |
-
'version' => '1.0.1.0',
|
174 |
-
'aliases' =>
|
175 |
-
array (
|
176 |
-
),
|
177 |
-
'reference' => 'a70c0ced4be299a63d32fa96d9281d03e94041df',
|
178 |
-
),
|
179 |
-
'php-coveralls/php-coveralls' =>
|
180 |
-
array (
|
181 |
-
'pretty_version' => 'v2.4.2',
|
182 |
-
'version' => '2.4.2.0',
|
183 |
-
'aliases' =>
|
184 |
-
array (
|
185 |
-
),
|
186 |
-
'reference' => '8a33ae229da63a0bd22dadae1512af663ce5e559',
|
187 |
-
),
|
188 |
-
'phpcompatibility/php-compatibility' =>
|
189 |
-
array (
|
190 |
-
'pretty_version' => '9.3.5',
|
191 |
-
'version' => '9.3.5.0',
|
192 |
-
'aliases' =>
|
193 |
-
array (
|
194 |
-
),
|
195 |
-
'reference' => '9fb324479acf6f39452e0655d2429cc0d3914243',
|
196 |
-
),
|
197 |
-
'phpcompatibility/phpcompatibility-paragonie' =>
|
198 |
-
array (
|
199 |
-
'pretty_version' => '1.3.0',
|
200 |
-
'version' => '1.3.0.0',
|
201 |
-
'aliases' =>
|
202 |
-
array (
|
203 |
-
),
|
204 |
-
'reference' => 'b862bc32f7e860d0b164b199bd995e690b4b191c',
|
205 |
-
),
|
206 |
-
'phpcompatibility/phpcompatibility-wp' =>
|
207 |
-
array (
|
208 |
-
'pretty_version' => '2.1.0',
|
209 |
-
'version' => '2.1.0.0',
|
210 |
-
'aliases' =>
|
211 |
-
array (
|
212 |
-
),
|
213 |
-
'reference' => '41bef18ba688af638b7310666db28e1ea9158b2f',
|
214 |
-
),
|
215 |
-
'phpdocumentor/reflection-common' =>
|
216 |
-
array (
|
217 |
-
'pretty_version' => '1.0.1',
|
218 |
-
'version' => '1.0.1.0',
|
219 |
-
'aliases' =>
|
220 |
-
array (
|
221 |
-
),
|
222 |
-
'reference' => '21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6',
|
223 |
-
),
|
224 |
-
'phpdocumentor/reflection-docblock' =>
|
225 |
-
array (
|
226 |
-
'pretty_version' => '4.3.4',
|
227 |
-
'version' => '4.3.4.0',
|
228 |
-
'aliases' =>
|
229 |
-
array (
|
230 |
-
),
|
231 |
-
'reference' => 'da3fd972d6bafd628114f7e7e036f45944b62e9c',
|
232 |
-
),
|
233 |
-
'phpdocumentor/type-resolver' =>
|
234 |
-
array (
|
235 |
-
'pretty_version' => '0.5.1',
|
236 |
-
'version' => '0.5.1.0',
|
237 |
'aliases' =>
|
238 |
array (
|
239 |
),
|
240 |
-
'reference' => '
|
241 |
-
),
|
242 |
-
'phpspec/prophecy' =>
|
243 |
-
array (
|
244 |
-
'pretty_version' => 'v1.10.3',
|
245 |
-
'version' => '1.10.3.0',
|
246 |
-
'aliases' =>
|
247 |
-
array (
|
248 |
-
),
|
249 |
-
'reference' => '451c3cd1418cf640de218914901e51b064abb093',
|
250 |
-
),
|
251 |
-
'phpunit/php-code-coverage' =>
|
252 |
-
array (
|
253 |
-
'pretty_version' => '5.3.2',
|
254 |
-
'version' => '5.3.2.0',
|
255 |
-
'aliases' =>
|
256 |
-
array (
|
257 |
-
),
|
258 |
-
'reference' => 'c89677919c5dd6d3b3852f230a663118762218ac',
|
259 |
-
),
|
260 |
-
'phpunit/php-file-iterator' =>
|
261 |
-
array (
|
262 |
-
'pretty_version' => '1.4.5',
|
263 |
-
'version' => '1.4.5.0',
|
264 |
-
'aliases' =>
|
265 |
-
array (
|
266 |
-
),
|
267 |
-
'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4',
|
268 |
-
),
|
269 |
-
'phpunit/php-text-template' =>
|
270 |
-
array (
|
271 |
-
'pretty_version' => '1.2.1',
|
272 |
-
'version' => '1.2.1.0',
|
273 |
-
'aliases' =>
|
274 |
-
array (
|
275 |
-
),
|
276 |
-
'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
|
277 |
-
),
|
278 |
-
'phpunit/php-timer' =>
|
279 |
-
array (
|
280 |
-
'pretty_version' => '1.0.9',
|
281 |
-
'version' => '1.0.9.0',
|
282 |
-
'aliases' =>
|
283 |
-
array (
|
284 |
-
),
|
285 |
-
'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
|
286 |
-
),
|
287 |
-
'phpunit/php-token-stream' =>
|
288 |
-
array (
|
289 |
-
'pretty_version' => '2.0.2',
|
290 |
-
'version' => '2.0.2.0',
|
291 |
-
'aliases' =>
|
292 |
-
array (
|
293 |
-
),
|
294 |
-
'reference' => '791198a2c6254db10131eecfe8c06670700904db',
|
295 |
-
),
|
296 |
-
'phpunit/phpunit' =>
|
297 |
-
array (
|
298 |
-
'pretty_version' => '6.5.14',
|
299 |
-
'version' => '6.5.14.0',
|
300 |
-
'aliases' =>
|
301 |
-
array (
|
302 |
-
),
|
303 |
-
'reference' => 'bac23fe7ff13dbdb461481f706f0e9fe746334b7',
|
304 |
-
),
|
305 |
-
'phpunit/phpunit-mock-objects' =>
|
306 |
-
array (
|
307 |
-
'pretty_version' => '5.0.10',
|
308 |
-
'version' => '5.0.10.0',
|
309 |
-
'aliases' =>
|
310 |
-
array (
|
311 |
-
),
|
312 |
-
'reference' => 'cd1cf05c553ecfec36b170070573e540b67d3f1f',
|
313 |
-
),
|
314 |
-
'psr/http-message' =>
|
315 |
-
array (
|
316 |
-
'pretty_version' => '1.0.1',
|
317 |
-
'version' => '1.0.1.0',
|
318 |
-
'aliases' =>
|
319 |
-
array (
|
320 |
-
),
|
321 |
-
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
322 |
-
),
|
323 |
-
'psr/http-message-implementation' =>
|
324 |
-
array (
|
325 |
-
'provided' =>
|
326 |
-
array (
|
327 |
-
0 => '1.0',
|
328 |
-
),
|
329 |
-
),
|
330 |
-
'psr/log' =>
|
331 |
-
array (
|
332 |
-
'pretty_version' => '1.1.3',
|
333 |
-
'version' => '1.1.3.0',
|
334 |
-
'aliases' =>
|
335 |
-
array (
|
336 |
-
),
|
337 |
-
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
|
338 |
-
),
|
339 |
-
'ralouphie/getallheaders' =>
|
340 |
-
array (
|
341 |
-
'pretty_version' => '3.0.3',
|
342 |
-
'version' => '3.0.3.0',
|
343 |
-
'aliases' =>
|
344 |
-
array (
|
345 |
-
),
|
346 |
-
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
347 |
-
),
|
348 |
-
'roave/security-advisories' =>
|
349 |
-
array (
|
350 |
-
'pretty_version' => 'dev-master',
|
351 |
-
'version' => 'dev-master',
|
352 |
-
'aliases' =>
|
353 |
-
array (
|
354 |
-
),
|
355 |
-
'reference' => '676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6',
|
356 |
),
|
357 |
'roundcube/plugin-installer' =>
|
358 |
array (
|
@@ -361,105 +36,6 @@
|
|
361 |
0 => '*',
|
362 |
),
|
363 |
),
|
364 |
-
'sebastian/code-unit-reverse-lookup' =>
|
365 |
-
array (
|
366 |
-
'pretty_version' => '1.0.2',
|
367 |
-
'version' => '1.0.2.0',
|
368 |
-
'aliases' =>
|
369 |
-
array (
|
370 |
-
),
|
371 |
-
'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
|
372 |
-
),
|
373 |
-
'sebastian/comparator' =>
|
374 |
-
array (
|
375 |
-
'pretty_version' => '2.1.3',
|
376 |
-
'version' => '2.1.3.0',
|
377 |
-
'aliases' =>
|
378 |
-
array (
|
379 |
-
),
|
380 |
-
'reference' => '34369daee48eafb2651bea869b4b15d75ccc35f9',
|
381 |
-
),
|
382 |
-
'sebastian/diff' =>
|
383 |
-
array (
|
384 |
-
'pretty_version' => '2.0.1',
|
385 |
-
'version' => '2.0.1.0',
|
386 |
-
'aliases' =>
|
387 |
-
array (
|
388 |
-
),
|
389 |
-
'reference' => '347c1d8b49c5c3ee30c7040ea6fc446790e6bddd',
|
390 |
-
),
|
391 |
-
'sebastian/environment' =>
|
392 |
-
array (
|
393 |
-
'pretty_version' => '3.1.0',
|
394 |
-
'version' => '3.1.0.0',
|
395 |
-
'aliases' =>
|
396 |
-
array (
|
397 |
-
),
|
398 |
-
'reference' => 'cd0871b3975fb7fc44d11314fd1ee20925fce4f5',
|
399 |
-
),
|
400 |
-
'sebastian/exporter' =>
|
401 |
-
array (
|
402 |
-
'pretty_version' => '3.1.3',
|
403 |
-
'version' => '3.1.3.0',
|
404 |
-
'aliases' =>
|
405 |
-
array (
|
406 |
-
),
|
407 |
-
'reference' => '6b853149eab67d4da22291d36f5b0631c0fd856e',
|
408 |
-
),
|
409 |
-
'sebastian/global-state' =>
|
410 |
-
array (
|
411 |
-
'pretty_version' => '2.0.0',
|
412 |
-
'version' => '2.0.0.0',
|
413 |
-
'aliases' =>
|
414 |
-
array (
|
415 |
-
),
|
416 |
-
'reference' => 'e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4',
|
417 |
-
),
|
418 |
-
'sebastian/object-enumerator' =>
|
419 |
-
array (
|
420 |
-
'pretty_version' => '3.0.4',
|
421 |
-
'version' => '3.0.4.0',
|
422 |
-
'aliases' =>
|
423 |
-
array (
|
424 |
-
),
|
425 |
-
'reference' => 'e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2',
|
426 |
-
),
|
427 |
-
'sebastian/object-reflector' =>
|
428 |
-
array (
|
429 |
-
'pretty_version' => '1.1.2',
|
430 |
-
'version' => '1.1.2.0',
|
431 |
-
'aliases' =>
|
432 |
-
array (
|
433 |
-
),
|
434 |
-
'reference' => '9b8772b9cbd456ab45d4a598d2dd1a1bced6363d',
|
435 |
-
),
|
436 |
-
'sebastian/recursion-context' =>
|
437 |
-
array (
|
438 |
-
'pretty_version' => '3.0.1',
|
439 |
-
'version' => '3.0.1.0',
|
440 |
-
'aliases' =>
|
441 |
-
array (
|
442 |
-
),
|
443 |
-
'reference' => '367dcba38d6e1977be014dc4b22f47a484dac7fb',
|
444 |
-
),
|
445 |
-
'sebastian/resource-operations' =>
|
446 |
-
array (
|
447 |
-
'pretty_version' => '1.0.0',
|
448 |
-
'version' => '1.0.0.0',
|
449 |
-
'aliases' =>
|
450 |
-
array (
|
451 |
-
),
|
452 |
-
'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
|
453 |
-
),
|
454 |
-
'sebastian/version' =>
|
455 |
-
array (
|
456 |
-
'pretty_version' => '2.0.1',
|
457 |
-
'version' => '2.0.1.0',
|
458 |
-
'aliases' =>
|
459 |
-
array (
|
460 |
-
),
|
461 |
-
'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
|
462 |
-
),
|
463 |
'shama/baton' =>
|
464 |
array (
|
465 |
'replaced' =>
|
@@ -467,158 +43,5 @@
|
|
467 |
0 => '*',
|
468 |
),
|
469 |
),
|
470 |
-
'squizlabs/php_codesniffer' =>
|
471 |
-
array (
|
472 |
-
'pretty_version' => '3.5.8',
|
473 |
-
'version' => '3.5.8.0',
|
474 |
-
'aliases' =>
|
475 |
-
array (
|
476 |
-
),
|
477 |
-
'reference' => '9d583721a7157ee997f235f327de038e7ea6dac4',
|
478 |
-
),
|
479 |
-
'symfony/config' =>
|
480 |
-
array (
|
481 |
-
'pretty_version' => 'v3.3.6',
|
482 |
-
'version' => '3.3.6.0',
|
483 |
-
'aliases' =>
|
484 |
-
array (
|
485 |
-
),
|
486 |
-
'reference' => '54ee12b0dd60f294132cabae6f5da9573d2e5297',
|
487 |
-
),
|
488 |
-
'symfony/console' =>
|
489 |
-
array (
|
490 |
-
'pretty_version' => 'v3.3.6',
|
491 |
-
'version' => '3.3.6.0',
|
492 |
-
'aliases' =>
|
493 |
-
array (
|
494 |
-
),
|
495 |
-
'reference' => 'b0878233cb5c4391347e5495089c7af11b8e6201',
|
496 |
-
),
|
497 |
-
'symfony/debug' =>
|
498 |
-
array (
|
499 |
-
'pretty_version' => 'v3.3.6',
|
500 |
-
'version' => '3.3.6.0',
|
501 |
-
'aliases' =>
|
502 |
-
array (
|
503 |
-
),
|
504 |
-
'reference' => '7c13ae8ce1e2adbbd574fc39de7be498e1284e13',
|
505 |
-
),
|
506 |
-
'symfony/filesystem' =>
|
507 |
-
array (
|
508 |
-
'pretty_version' => 'v3.3.6',
|
509 |
-
'version' => '3.3.6.0',
|
510 |
-
'aliases' =>
|
511 |
-
array (
|
512 |
-
),
|
513 |
-
'reference' => '427987eb4eed764c3b6e38d52a0f87989e010676',
|
514 |
-
),
|
515 |
-
'symfony/polyfill-ctype' =>
|
516 |
-
array (
|
517 |
-
'pretty_version' => 'v1.19.0',
|
518 |
-
'version' => '1.19.0.0',
|
519 |
-
'aliases' =>
|
520 |
-
array (
|
521 |
-
),
|
522 |
-
'reference' => 'aed596913b70fae57be53d86faa2e9ef85a2297b',
|
523 |
-
),
|
524 |
-
'symfony/polyfill-intl-idn' =>
|
525 |
-
array (
|
526 |
-
'pretty_version' => 'v1.19.0',
|
527 |
-
'version' => '1.19.0.0',
|
528 |
-
'aliases' =>
|
529 |
-
array (
|
530 |
-
),
|
531 |
-
'reference' => '4ad5115c0f5d5172a9fe8147675ec6de266d8826',
|
532 |
-
),
|
533 |
-
'symfony/polyfill-intl-normalizer' =>
|
534 |
-
array (
|
535 |
-
'pretty_version' => 'v1.19.0',
|
536 |
-
'version' => '1.19.0.0',
|
537 |
-
'aliases' =>
|
538 |
-
array (
|
539 |
-
),
|
540 |
-
'reference' => '8db0ae7936b42feb370840cf24de1a144fb0ef27',
|
541 |
-
),
|
542 |
-
'symfony/polyfill-mbstring' =>
|
543 |
-
array (
|
544 |
-
'pretty_version' => 'v1.13.1',
|
545 |
-
'version' => '1.13.1.0',
|
546 |
-
'aliases' =>
|
547 |
-
array (
|
548 |
-
),
|
549 |
-
'reference' => '7b4aab9743c30be783b73de055d24a39cf4b954f',
|
550 |
-
),
|
551 |
-
'symfony/polyfill-php70' =>
|
552 |
-
array (
|
553 |
-
'pretty_version' => 'v1.19.0',
|
554 |
-
'version' => '1.19.0.0',
|
555 |
-
'aliases' =>
|
556 |
-
array (
|
557 |
-
),
|
558 |
-
'reference' => '3fe414077251a81a1b15b1c709faf5c2fbae3d4e',
|
559 |
-
),
|
560 |
-
'symfony/polyfill-php72' =>
|
561 |
-
array (
|
562 |
-
'pretty_version' => 'v1.19.0',
|
563 |
-
'version' => '1.19.0.0',
|
564 |
-
'aliases' =>
|
565 |
-
array (
|
566 |
-
),
|
567 |
-
'reference' => 'beecef6b463b06954638f02378f52496cb84bacc',
|
568 |
-
),
|
569 |
-
'symfony/stopwatch' =>
|
570 |
-
array (
|
571 |
-
'pretty_version' => 'v3.3.6',
|
572 |
-
'version' => '3.3.6.0',
|
573 |
-
'aliases' =>
|
574 |
-
array (
|
575 |
-
),
|
576 |
-
'reference' => '602a15299dc01556013b07167d4f5d3a60e90d15',
|
577 |
-
),
|
578 |
-
'symfony/yaml' =>
|
579 |
-
array (
|
580 |
-
'pretty_version' => 'v3.3.6',
|
581 |
-
'version' => '3.3.6.0',
|
582 |
-
'aliases' =>
|
583 |
-
array (
|
584 |
-
),
|
585 |
-
'reference' => 'ddc23324e6cfe066f3dd34a37ff494fa80b617ed',
|
586 |
-
),
|
587 |
-
'theseer/tokenizer' =>
|
588 |
-
array (
|
589 |
-
'pretty_version' => '1.1.3',
|
590 |
-
'version' => '1.1.3.0',
|
591 |
-
'aliases' =>
|
592 |
-
array (
|
593 |
-
),
|
594 |
-
'reference' => '11336f6f84e16a720dae9d8e6ed5019efa85a0f9',
|
595 |
-
),
|
596 |
-
'webmozart/assert' =>
|
597 |
-
array (
|
598 |
-
'pretty_version' => '1.9.1',
|
599 |
-
'version' => '1.9.1.0',
|
600 |
-
'aliases' =>
|
601 |
-
array (
|
602 |
-
),
|
603 |
-
'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
|
604 |
-
),
|
605 |
-
'wp-coding-standards/wpcs' =>
|
606 |
-
array (
|
607 |
-
'pretty_version' => '2.3.0',
|
608 |
-
'version' => '2.3.0.0',
|
609 |
-
'aliases' =>
|
610 |
-
array (
|
611 |
-
),
|
612 |
-
'reference' => '7da1894633f168fe244afc6de00d141f27517b62',
|
613 |
-
),
|
614 |
-
'xrstf/composer-php52' =>
|
615 |
-
array (
|
616 |
-
'pretty_version' => 'v1.0.20',
|
617 |
-
'version' => '1.0.20.0',
|
618 |
-
'aliases' =>
|
619 |
-
array (
|
620 |
-
),
|
621 |
-
'reference' => 'bd41459d5e27df8d33057842b32377c39e97a5a8',
|
622 |
-
),
|
623 |
),
|
624 |
);
|
1 |
<?php return array (
|
2 |
'root' =>
|
3 |
array (
|
4 |
+
'pretty_version' => '4.6.0',
|
5 |
+
'version' => '4.6.0.0',
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
+
'reference' => 'ca38d58218d3a657bace3ae74192ad7ef28de1ff',
|
10 |
'name' => 'mihdan/cyr2lat',
|
11 |
),
|
12 |
'versions' =>
|
13 |
array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
'composer/installers' =>
|
15 |
array (
|
16 |
'pretty_version' => 'v1.9.0',
|
20 |
),
|
21 |
'reference' => 'b93bcf0fa1fccb0b7d176b0967d969691cd74cca',
|
22 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
'mihdan/cyr2lat' =>
|
24 |
array (
|
25 |
+
'pretty_version' => '4.6.0',
|
26 |
+
'version' => '4.6.0.0',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
'aliases' =>
|
28 |
array (
|
29 |
),
|
30 |
+
'reference' => 'ca38d58218d3a657bace3ae74192ad7ef28de1ff',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
),
|
32 |
'roundcube/plugin-installer' =>
|
33 |
array (
|
36 |
0 => '*',
|
37 |
),
|
38 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
'shama/baton' =>
|
40 |
array (
|
41 |
'replaced' =>
|
43 |
0 => '*',
|
44 |
),
|
45 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
),
|
47 |
);
|
vendor/composer/installers/composer.json
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "composer/installers",
|
3 |
+
"type": "composer-plugin",
|
4 |
+
"license": "MIT",
|
5 |
+
"description": "A multi-framework Composer library installer",
|
6 |
+
"keywords": [
|
7 |
+
"installer",
|
8 |
+
"Aimeos",
|
9 |
+
"AGL",
|
10 |
+
"AnnotateCms",
|
11 |
+
"Attogram",
|
12 |
+
"Bitrix",
|
13 |
+
"CakePHP",
|
14 |
+
"Chef",
|
15 |
+
"Cockpit",
|
16 |
+
"CodeIgniter",
|
17 |
+
"concrete5",
|
18 |
+
"Craft",
|
19 |
+
"Croogo",
|
20 |
+
"DokuWiki",
|
21 |
+
"Dolibarr",
|
22 |
+
"Drupal",
|
23 |
+
"Elgg",
|
24 |
+
"Eliasis",
|
25 |
+
"ExpressionEngine",
|
26 |
+
"eZ Platform",
|
27 |
+
"FuelPHP",
|
28 |
+
"Grav",
|
29 |
+
"Hurad",
|
30 |
+
"ImageCMS",
|
31 |
+
"iTop",
|
32 |
+
"Joomla",
|
33 |
+
"Kanboard",
|
34 |
+
"Known",
|
35 |
+
"Kohana",
|
36 |
+
"Lan Management System",
|
37 |
+
"Laravel",
|
38 |
+
"Lavalite",
|
39 |
+
"Lithium",
|
40 |
+
"Magento",
|
41 |
+
"majima",
|
42 |
+
"Mako",
|
43 |
+
"MantisBT",
|
44 |
+
"Mautic",
|
45 |
+
"Maya",
|
46 |
+
"MODX",
|
47 |
+
"MODX Evo",
|
48 |
+
"MediaWiki",
|
49 |
+
"OXID",
|
50 |
+
"osclass",
|
51 |
+
"MODULEWork",
|
52 |
+
"Moodle",
|
53 |
+
"Piwik",
|
54 |
+
"pxcms",
|
55 |
+
"phpBB",
|
56 |
+
"Plentymarkets",
|
57 |
+
"PPI",
|
58 |
+
"Puppet",
|
59 |
+
"Porto",
|
60 |
+
"RadPHP",
|
61 |
+
"ReIndex",
|
62 |
+
"Roundcube",
|
63 |
+
"shopware",
|
64 |
+
"SilverStripe",
|
65 |
+
"SMF",
|
66 |
+
"SyDES",
|
67 |
+
"Sylius",
|
68 |
+
"symfony",
|
69 |
+
"Thelia",
|
70 |
+
"TYPO3",
|
71 |
+
"WHMCS",
|
72 |
+
"WolfCMS",
|
73 |
+
"WordPress",
|
74 |
+
"YAWIK",
|
75 |
+
"Zend",
|
76 |
+
"Zikula"
|
77 |
+
],
|
78 |
+
"homepage": "https://composer.github.io/installers/",
|
79 |
+
"authors": [
|
80 |
+
{
|
81 |
+
"name": "Kyle Robinson Young",
|
82 |
+
"email": "kyle@dontkry.com",
|
83 |
+
"homepage": "https://github.com/shama"
|
84 |
+
}
|
85 |
+
],
|
86 |
+
"autoload": {
|
87 |
+
"psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
|
88 |
+
},
|
89 |
+
"extra": {
|
90 |
+
"class": "Composer\\Installers\\Plugin",
|
91 |
+
"branch-alias": {
|
92 |
+
"dev-master": "1.0-dev"
|
93 |
+
}
|
94 |
+
},
|
95 |
+
"replace": {
|
96 |
+
"shama/baton": "*",
|
97 |
+
"roundcube/plugin-installer": "*"
|
98 |
+
},
|
99 |
+
"require": {
|
100 |
+
"composer-plugin-api": "^1.0 || ^2.0"
|
101 |
+
},
|
102 |
+
"require-dev": {
|
103 |
+
"composer/composer": "1.6.* || 2.0.*@dev",
|
104 |
+
"composer/semver": "1.0.* || 2.0.*@dev",
|
105 |
+
"phpunit/phpunit": "^4.8.36",
|
106 |
+
"sebastian/comparator": "^1.2.4",
|
107 |
+
"symfony/process": "^2.3"
|
108 |
+
},
|
109 |
+
"scripts": {
|
110 |
+
"test": "phpunit"
|
111 |
+
}
|
112 |
+
}
|
vendor/composer/installers/src/Composer/Installers/AglInstaller.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class AglInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'More/{$name}/',
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Format package name to CamelCase
|
12 |
+
*/
|
13 |
+
public function inflectPackageVars($vars)
|
14 |
+
{
|
15 |
+
$vars['name'] = preg_replace_callback('/(?:^|_|-)(.?)/', function ($matches) {
|
16 |
+
return strtoupper($matches[1]);
|
17 |
+
}, $vars['name']);
|
18 |
+
|
19 |
+
return $vars;
|
20 |
+
}
|
21 |
+
}
|
vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class AimeosInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'extension' => 'ext/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class AnnotateCmsInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'addons/modules/{$name}/',
|
8 |
+
'component' => 'addons/components/{$name}/',
|
9 |
+
'service' => 'addons/services/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class AsgardInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'Modules/{$name}/',
|
8 |
+
'theme' => 'Themes/{$name}/'
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name.
|
13 |
+
*
|
14 |
+
* For package type asgard-module, cut off a trailing '-plugin' if present.
|
15 |
+
*
|
16 |
+
* For package type asgard-theme, cut off a trailing '-theme' if present.
|
17 |
+
*
|
18 |
+
*/
|
19 |
+
public function inflectPackageVars($vars)
|
20 |
+
{
|
21 |
+
if ($vars['type'] === 'asgard-module') {
|
22 |
+
return $this->inflectPluginVars($vars);
|
23 |
+
}
|
24 |
+
|
25 |
+
if ($vars['type'] === 'asgard-theme') {
|
26 |
+
return $this->inflectThemeVars($vars);
|
27 |
+
}
|
28 |
+
|
29 |
+
return $vars;
|
30 |
+
}
|
31 |
+
|
32 |
+
protected function inflectPluginVars($vars)
|
33 |
+
{
|
34 |
+
$vars['name'] = preg_replace('/-module$/', '', $vars['name']);
|
35 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
36 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
37 |
+
|
38 |
+
return $vars;
|
39 |
+
}
|
40 |
+
|
41 |
+
protected function inflectThemeVars($vars)
|
42 |
+
{
|
43 |
+
$vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
|
44 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
45 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
46 |
+
|
47 |
+
return $vars;
|
48 |
+
}
|
49 |
+
}
|
vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class AttogramInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/BaseInstaller.php
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\IO\IOInterface;
|
5 |
+
use Composer\Composer;
|
6 |
+
use Composer\Package\PackageInterface;
|
7 |
+
|
8 |
+
abstract class BaseInstaller
|
9 |
+
{
|
10 |
+
protected $locations = array();
|
11 |
+
protected $composer;
|
12 |
+
protected $package;
|
13 |
+
protected $io;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Initializes base installer.
|
17 |
+
*
|
18 |
+
* @param PackageInterface $package
|
19 |
+
* @param Composer $composer
|
20 |
+
* @param IOInterface $io
|
21 |
+
*/
|
22 |
+
public function __construct(PackageInterface $package = null, Composer $composer = null, IOInterface $io = null)
|
23 |
+
{
|
24 |
+
$this->composer = $composer;
|
25 |
+
$this->package = $package;
|
26 |
+
$this->io = $io;
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Return the install path based on package type.
|
31 |
+
*
|
32 |
+
* @param PackageInterface $package
|
33 |
+
* @param string $frameworkType
|
34 |
+
* @return string
|
35 |
+
*/
|
36 |
+
public function getInstallPath(PackageInterface $package, $frameworkType = '')
|
37 |
+
{
|
38 |
+
$type = $this->package->getType();
|
39 |
+
|
40 |
+
$prettyName = $this->package->getPrettyName();
|
41 |
+
if (strpos($prettyName, '/') !== false) {
|
42 |
+
list($vendor, $name) = explode('/', $prettyName);
|
43 |
+
} else {
|
44 |
+
$vendor = '';
|
45 |
+
$name = $prettyName;
|
46 |
+
}
|
47 |
+
|
48 |
+
$availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type'));
|
49 |
+
|
50 |
+
$extra = $package->getExtra();
|
51 |
+
if (!empty($extra['installer-name'])) {
|
52 |
+
$availableVars['name'] = $extra['installer-name'];
|
53 |
+
}
|
54 |
+
|
55 |
+
if ($this->composer->getPackage()) {
|
56 |
+
$extra = $this->composer->getPackage()->getExtra();
|
57 |
+
if (!empty($extra['installer-paths'])) {
|
58 |
+
$customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type, $vendor);
|
59 |
+
if ($customPath !== false) {
|
60 |
+
return $this->templatePath($customPath, $availableVars);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
64 |
+
|
65 |
+
$packageType = substr($type, strlen($frameworkType) + 1);
|
66 |
+
$locations = $this->getLocations();
|
67 |
+
if (!isset($locations[$packageType])) {
|
68 |
+
throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type));
|
69 |
+
}
|
70 |
+
|
71 |
+
return $this->templatePath($locations[$packageType], $availableVars);
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* For an installer to override to modify the vars per installer.
|
76 |
+
*
|
77 |
+
* @param array $vars
|
78 |
+
* @return array
|
79 |
+
*/
|
80 |
+
public function inflectPackageVars($vars)
|
81 |
+
{
|
82 |
+
return $vars;
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Gets the installer's locations
|
87 |
+
*
|
88 |
+
* @return array
|
89 |
+
*/
|
90 |
+
public function getLocations()
|
91 |
+
{
|
92 |
+
return $this->locations;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Replace vars in a path
|
97 |
+
*
|
98 |
+
* @param string $path
|
99 |
+
* @param array $vars
|
100 |
+
* @return string
|
101 |
+
*/
|
102 |
+
protected function templatePath($path, array $vars = array())
|
103 |
+
{
|
104 |
+
if (strpos($path, '{') !== false) {
|
105 |
+
extract($vars);
|
106 |
+
preg_match_all('@\{\$([A-Za-z0-9_]*)\}@i', $path, $matches);
|
107 |
+
if (!empty($matches[1])) {
|
108 |
+
foreach ($matches[1] as $var) {
|
109 |
+
$path = str_replace('{$' . $var . '}', $$var, $path);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
return $path;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Search through a passed paths array for a custom install path.
|
119 |
+
*
|
120 |
+
* @param array $paths
|
121 |
+
* @param string $name
|
122 |
+
* @param string $type
|
123 |
+
* @param string $vendor = NULL
|
124 |
+
* @return string
|
125 |
+
*/
|
126 |
+
protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
|
127 |
+
{
|
128 |
+
foreach ($paths as $path => $names) {
|
129 |
+
$names = (array) $names;
|
130 |
+
if (in_array($name, $names) || in_array('type:' . $type, $names) || in_array('vendor:' . $vendor, $names)) {
|
131 |
+
return $path;
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
}
|
vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
use Composer\Util\Filesystem;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Installer for Bitrix Framework. Supported types of extensions:
|
9 |
+
* - `bitrix-d7-module` — copy the module to directory `bitrix/modules/<vendor>.<name>`.
|
10 |
+
* - `bitrix-d7-component` — copy the component to directory `bitrix/components/<vendor>/<name>`.
|
11 |
+
* - `bitrix-d7-template` — copy the template to directory `bitrix/templates/<vendor>_<name>`.
|
12 |
+
*
|
13 |
+
* You can set custom path to directory with Bitrix kernel in `composer.json`:
|
14 |
+
*
|
15 |
+
* ```json
|
16 |
+
* {
|
17 |
+
* "extra": {
|
18 |
+
* "bitrix-dir": "s1/bitrix"
|
19 |
+
* }
|
20 |
+
* }
|
21 |
+
* ```
|
22 |
+
*
|
23 |
+
* @author Nik Samokhvalov <nik@samokhvalov.info>
|
24 |
+
* @author Denis Kulichkin <onexhovia@gmail.com>
|
25 |
+
*/
|
26 |
+
class BitrixInstaller extends BaseInstaller
|
27 |
+
{
|
28 |
+
protected $locations = array(
|
29 |
+
'module' => '{$bitrix_dir}/modules/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
|
30 |
+
'component' => '{$bitrix_dir}/components/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
|
31 |
+
'theme' => '{$bitrix_dir}/templates/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
|
32 |
+
'd7-module' => '{$bitrix_dir}/modules/{$vendor}.{$name}/',
|
33 |
+
'd7-component' => '{$bitrix_dir}/components/{$vendor}/{$name}/',
|
34 |
+
'd7-template' => '{$bitrix_dir}/templates/{$vendor}_{$name}/',
|
35 |
+
);
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @var array Storage for informations about duplicates at all the time of installation packages.
|
39 |
+
*/
|
40 |
+
private static $checkedDuplicates = array();
|
41 |
+
|
42 |
+
/**
|
43 |
+
* {@inheritdoc}
|
44 |
+
*/
|
45 |
+
public function inflectPackageVars($vars)
|
46 |
+
{
|
47 |
+
if ($this->composer->getPackage()) {
|
48 |
+
$extra = $this->composer->getPackage()->getExtra();
|
49 |
+
|
50 |
+
if (isset($extra['bitrix-dir'])) {
|
51 |
+
$vars['bitrix_dir'] = $extra['bitrix-dir'];
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
if (!isset($vars['bitrix_dir'])) {
|
56 |
+
$vars['bitrix_dir'] = 'bitrix';
|
57 |
+
}
|
58 |
+
|
59 |
+
return parent::inflectPackageVars($vars);
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* {@inheritdoc}
|
64 |
+
*/
|
65 |
+
protected function templatePath($path, array $vars = array())
|
66 |
+
{
|
67 |
+
$templatePath = parent::templatePath($path, $vars);
|
68 |
+
$this->checkDuplicates($templatePath, $vars);
|
69 |
+
|
70 |
+
return $templatePath;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Duplicates search packages.
|
75 |
+
*
|
76 |
+
* @param string $path
|
77 |
+
* @param array $vars
|
78 |
+
*/
|
79 |
+
protected function checkDuplicates($path, array $vars = array())
|
80 |
+
{
|
81 |
+
$packageType = substr($vars['type'], strlen('bitrix') + 1);
|
82 |
+
$localDir = explode('/', $vars['bitrix_dir']);
|
83 |
+
array_pop($localDir);
|
84 |
+
$localDir[] = 'local';
|
85 |
+
$localDir = implode('/', $localDir);
|
86 |
+
|
87 |
+
$oldPath = str_replace(
|
88 |
+
array('{$bitrix_dir}', '{$name}'),
|
89 |
+
array($localDir, $vars['name']),
|
90 |
+
$this->locations[$packageType]
|
91 |
+
);
|
92 |
+
|
93 |
+
if (in_array($oldPath, static::$checkedDuplicates)) {
|
94 |
+
return;
|
95 |
+
}
|
96 |
+
|
97 |
+
if ($oldPath !== $path && file_exists($oldPath) && $this->io && $this->io->isInteractive()) {
|
98 |
+
|
99 |
+
$this->io->writeError(' <error>Duplication of packages:</error>');
|
100 |
+
$this->io->writeError(' <info>Package ' . $oldPath . ' will be called instead package ' . $path . '</info>');
|
101 |
+
|
102 |
+
while (true) {
|
103 |
+
switch ($this->io->ask(' <info>Delete ' . $oldPath . ' [y,n,?]?</info> ', '?')) {
|
104 |
+
case 'y':
|
105 |
+
$fs = new Filesystem();
|
106 |
+
$fs->removeDirectory($oldPath);
|
107 |
+
break 2;
|
108 |
+
|
109 |
+
case 'n':
|
110 |
+
break 2;
|
111 |
+
|
112 |
+
case '?':
|
113 |
+
default:
|
114 |
+
$this->io->writeError(array(
|
115 |
+
' y - delete package ' . $oldPath . ' and to continue with the installation',
|
116 |
+
' n - don\'t delete and to continue with the installation',
|
117 |
+
));
|
118 |
+
$this->io->writeError(' ? - print help');
|
119 |
+
break;
|
120 |
+
}
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
static::$checkedDuplicates[] = $oldPath;
|
125 |
+
}
|
126 |
+
}
|
vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class BonefishInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'package' => 'Packages/{$vendor}/{$name}/'
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\DependencyResolver\Pool;
|
5 |
+
|
6 |
+
class CakePHPInstaller extends BaseInstaller
|
7 |
+
{
|
8 |
+
protected $locations = array(
|
9 |
+
'plugin' => 'Plugin/{$name}/',
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name to CamelCase
|
14 |
+
*/
|
15 |
+
public function inflectPackageVars($vars)
|
16 |
+
{
|
17 |
+
if ($this->matchesCakeVersion('>=', '3.0.0')) {
|
18 |
+
return $vars;
|
19 |
+
}
|
20 |
+
|
21 |
+
$nameParts = explode('/', $vars['name']);
|
22 |
+
foreach ($nameParts as &$value) {
|
23 |
+
$value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
|
24 |
+
$value = str_replace(array('-', '_'), ' ', $value);
|
25 |
+
$value = str_replace(' ', '', ucwords($value));
|
26 |
+
}
|
27 |
+
$vars['name'] = implode('/', $nameParts);
|
28 |
+
|
29 |
+
return $vars;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Change the default plugin location when cakephp >= 3.0
|
34 |
+
*/
|
35 |
+
public function getLocations()
|
36 |
+
{
|
37 |
+
if ($this->matchesCakeVersion('>=', '3.0.0')) {
|
38 |
+
$this->locations['plugin'] = $this->composer->getConfig()->get('vendor-dir') . '/{$vendor}/{$name}/';
|
39 |
+
}
|
40 |
+
return $this->locations;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Check if CakePHP version matches against a version
|
45 |
+
*
|
46 |
+
* @param string $matcher
|
47 |
+
* @param string $version
|
48 |
+
* @return bool
|
49 |
+
*/
|
50 |
+
protected function matchesCakeVersion($matcher, $version)
|
51 |
+
{
|
52 |
+
if (class_exists('Composer\Semver\Constraint\MultiConstraint')) {
|
53 |
+
$multiClass = 'Composer\Semver\Constraint\MultiConstraint';
|
54 |
+
$constraintClass = 'Composer\Semver\Constraint\Constraint';
|
55 |
+
} else {
|
56 |
+
$multiClass = 'Composer\Package\LinkConstraint\MultiConstraint';
|
57 |
+
$constraintClass = 'Composer\Package\LinkConstraint\VersionConstraint';
|
58 |
+
}
|
59 |
+
|
60 |
+
$repositoryManager = $this->composer->getRepositoryManager();
|
61 |
+
if (! $repositoryManager) {
|
62 |
+
return false;
|
63 |
+
}
|
64 |
+
|
65 |
+
$repos = $repositoryManager->getLocalRepository();
|
66 |
+
if (!$repos) {
|
67 |
+
return false;
|
68 |
+
}
|
69 |
+
|
70 |
+
return $repos->findPackage('cakephp/cakephp', new $constraintClass($matcher, $version)) !== null;
|
71 |
+
}
|
72 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ChefInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ChefInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'cookbook' => 'Chef/{$vendor}/{$name}/',
|
8 |
+
'role' => 'Chef/roles/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
11 |
+
|
vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class CiviCrmInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'ext' => 'ext/{$name}/'
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ClanCatsFrameworkInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'ship' => 'CCF/orbit/{$name}/',
|
8 |
+
'theme' => 'CCF/app/themes/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class CockpitInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'cockpit/modules/addons/{$name}/',
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Format module name.
|
12 |
+
*
|
13 |
+
* Strip `module-` prefix from package name.
|
14 |
+
*
|
15 |
+
* @param array @vars
|
16 |
+
*
|
17 |
+
* @return array
|
18 |
+
*/
|
19 |
+
public function inflectPackageVars($vars)
|
20 |
+
{
|
21 |
+
if ($vars['type'] == 'cockpit-module') {
|
22 |
+
return $this->inflectModuleVars($vars);
|
23 |
+
}
|
24 |
+
|
25 |
+
return $vars;
|
26 |
+
}
|
27 |
+
|
28 |
+
public function inflectModuleVars($vars)
|
29 |
+
{
|
30 |
+
$vars['name'] = ucfirst(preg_replace('/cockpit-/i', '', $vars['name']));
|
31 |
+
|
32 |
+
return $vars;
|
33 |
+
}
|
34 |
+
}
|
vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class CodeIgniterInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'library' => 'application/libraries/{$name}/',
|
8 |
+
'third-party' => 'application/third_party/{$name}/',
|
9 |
+
'module' => 'application/modules/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class Concrete5Installer extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'core' => 'concrete/',
|
8 |
+
'block' => 'application/blocks/{$name}/',
|
9 |
+
'package' => 'packages/{$name}/',
|
10 |
+
'theme' => 'application/themes/{$name}/',
|
11 |
+
'update' => 'updates/{$name}/',
|
12 |
+
);
|
13 |
+
}
|
vendor/composer/installers/src/Composer/Installers/CraftInstaller.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Installer for Craft Plugins
|
6 |
+
*/
|
7 |
+
class CraftInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
const NAME_PREFIX = 'craft';
|
10 |
+
const NAME_SUFFIX = 'plugin';
|
11 |
+
|
12 |
+
protected $locations = array(
|
13 |
+
'plugin' => 'craft/plugins/{$name}/',
|
14 |
+
);
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Strip `craft-` prefix and/or `-plugin` suffix from package names
|
18 |
+
*
|
19 |
+
* @param array $vars
|
20 |
+
*
|
21 |
+
* @return array
|
22 |
+
*/
|
23 |
+
final public function inflectPackageVars($vars)
|
24 |
+
{
|
25 |
+
return $this->inflectPluginVars($vars);
|
26 |
+
}
|
27 |
+
|
28 |
+
private function inflectPluginVars($vars)
|
29 |
+
{
|
30 |
+
$vars['name'] = preg_replace('/-' . self::NAME_SUFFIX . '$/i', '', $vars['name']);
|
31 |
+
$vars['name'] = preg_replace('/^' . self::NAME_PREFIX . '-/i', '', $vars['name']);
|
32 |
+
|
33 |
+
return $vars;
|
34 |
+
}
|
35 |
+
}
|
vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class CroogoInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'Plugin/{$name}/',
|
8 |
+
'theme' => 'View/Themed/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name to CamelCase
|
13 |
+
*/
|
14 |
+
public function inflectPackageVars($vars)
|
15 |
+
{
|
16 |
+
$vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name']));
|
17 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
18 |
+
|
19 |
+
return $vars;
|
20 |
+
}
|
21 |
+
}
|
vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class DecibelInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
/** @var array */
|
7 |
+
protected $locations = array(
|
8 |
+
'app' => 'app/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/DframeInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class DframeInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
protected $locations = array(
|
8 |
+
'module' => 'modules/{$vendor}/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class DokuWikiInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'lib/plugins/{$name}/',
|
8 |
+
'template' => 'lib/tpl/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name.
|
13 |
+
*
|
14 |
+
* For package type dokuwiki-plugin, cut off a trailing '-plugin',
|
15 |
+
* or leading dokuwiki_ if present.
|
16 |
+
*
|
17 |
+
* For package type dokuwiki-template, cut off a trailing '-template' if present.
|
18 |
+
*
|
19 |
+
*/
|
20 |
+
public function inflectPackageVars($vars)
|
21 |
+
{
|
22 |
+
|
23 |
+
if ($vars['type'] === 'dokuwiki-plugin') {
|
24 |
+
return $this->inflectPluginVars($vars);
|
25 |
+
}
|
26 |
+
|
27 |
+
if ($vars['type'] === 'dokuwiki-template') {
|
28 |
+
return $this->inflectTemplateVars($vars);
|
29 |
+
}
|
30 |
+
|
31 |
+
return $vars;
|
32 |
+
}
|
33 |
+
|
34 |
+
protected function inflectPluginVars($vars)
|
35 |
+
{
|
36 |
+
$vars['name'] = preg_replace('/-plugin$/', '', $vars['name']);
|
37 |
+
$vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
|
38 |
+
|
39 |
+
return $vars;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function inflectTemplateVars($vars)
|
43 |
+
{
|
44 |
+
$vars['name'] = preg_replace('/-template$/', '', $vars['name']);
|
45 |
+
$vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
|
46 |
+
|
47 |
+
return $vars;
|
48 |
+
}
|
49 |
+
|
50 |
+
}
|
vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class DolibarrInstaller
|
6 |
+
*
|
7 |
+
* @package Composer\Installers
|
8 |
+
* @author Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
9 |
+
*/
|
10 |
+
class DolibarrInstaller extends BaseInstaller
|
11 |
+
{
|
12 |
+
//TODO: Add support for scripts and themes
|
13 |
+
protected $locations = array(
|
14 |
+
'module' => 'htdocs/custom/{$name}/',
|
15 |
+
);
|
16 |
+
}
|
vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class DrupalInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'core' => 'core/',
|
8 |
+
'module' => 'modules/{$name}/',
|
9 |
+
'theme' => 'themes/{$name}/',
|
10 |
+
'library' => 'libraries/{$name}/',
|
11 |
+
'profile' => 'profiles/{$name}/',
|
12 |
+
'database-driver' => 'drivers/lib/Drupal/Driver/Database/{$name}/',
|
13 |
+
'drush' => 'drush/{$name}/',
|
14 |
+
'custom-theme' => 'themes/custom/{$name}/',
|
15 |
+
'custom-module' => 'modules/custom/{$name}/',
|
16 |
+
'custom-profile' => 'profiles/custom/{$name}/',
|
17 |
+
'drupal-multisite' => 'sites/{$name}/',
|
18 |
+
'console' => 'console/{$name}/',
|
19 |
+
'console-language' => 'console/language/{$name}/',
|
20 |
+
'config' => 'config/sync/',
|
21 |
+
);
|
22 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ElggInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ElggInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'mod/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class EliasisInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'component' => 'components/{$name}/',
|
8 |
+
'module' => 'modules/{$name}/',
|
9 |
+
'plugin' => 'plugins/{$name}/',
|
10 |
+
'template' => 'templates/{$name}/',
|
11 |
+
);
|
12 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\Package\PackageInterface;
|
5 |
+
|
6 |
+
class ExpressionEngineInstaller extends BaseInstaller
|
7 |
+
{
|
8 |
+
|
9 |
+
protected $locations = array();
|
10 |
+
|
11 |
+
private $ee2Locations = array(
|
12 |
+
'addon' => 'system/expressionengine/third_party/{$name}/',
|
13 |
+
'theme' => 'themes/third_party/{$name}/',
|
14 |
+
);
|
15 |
+
|
16 |
+
private $ee3Locations = array(
|
17 |
+
'addon' => 'system/user/addons/{$name}/',
|
18 |
+
'theme' => 'themes/user/{$name}/',
|
19 |
+
);
|
20 |
+
|
21 |
+
public function getInstallPath(PackageInterface $package, $frameworkType = '')
|
22 |
+
{
|
23 |
+
|
24 |
+
$version = "{$frameworkType}Locations";
|
25 |
+
$this->locations = $this->$version;
|
26 |
+
|
27 |
+
return parent::getInstallPath($package, $frameworkType);
|
28 |
+
}
|
29 |
+
}
|
vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class EzPlatformInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'meta-assets' => 'web/assets/ezplatform/',
|
8 |
+
'assets' => 'web/assets/ezplatform/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/FuelInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class FuelInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'fuel/app/modules/{$name}/',
|
8 |
+
'package' => 'fuel/packages/{$name}/',
|
9 |
+
'theme' => 'fuel/app/themes/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class FuelphpInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'component' => 'components/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/GravInstaller.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class GravInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'user/plugins/{$name}/',
|
8 |
+
'theme' => 'user/themes/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name
|
13 |
+
*
|
14 |
+
* @param array $vars
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
*/
|
18 |
+
public function inflectPackageVars($vars)
|
19 |
+
{
|
20 |
+
$restrictedWords = implode('|', array_keys($this->locations));
|
21 |
+
|
22 |
+
$vars['name'] = strtolower($vars['name']);
|
23 |
+
$vars['name'] = preg_replace('/^(?:grav-)?(?:(?:'.$restrictedWords.')-)?(.*?)(?:-(?:'.$restrictedWords.'))?$/ui',
|
24 |
+
'$1',
|
25 |
+
$vars['name']
|
26 |
+
);
|
27 |
+
|
28 |
+
return $vars;
|
29 |
+
}
|
30 |
+
}
|
vendor/composer/installers/src/Composer/Installers/HuradInstaller.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class HuradInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'plugins/{$name}/',
|
8 |
+
'theme' => 'plugins/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name to CamelCase
|
13 |
+
*/
|
14 |
+
public function inflectPackageVars($vars)
|
15 |
+
{
|
16 |
+
$nameParts = explode('/', $vars['name']);
|
17 |
+
foreach ($nameParts as &$value) {
|
18 |
+
$value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
|
19 |
+
$value = str_replace(array('-', '_'), ' ', $value);
|
20 |
+
$value = str_replace(' ', '', ucwords($value));
|
21 |
+
}
|
22 |
+
$vars['name'] = implode('/', $nameParts);
|
23 |
+
return $vars;
|
24 |
+
}
|
25 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ImageCMSInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'template' => 'templates/{$name}/',
|
8 |
+
'module' => 'application/modules/{$name}/',
|
9 |
+
'library' => 'application/libraries/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/Installer.php
ADDED
@@ -0,0 +1,280 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
use Composer\Composer;
|
6 |
+
use Composer\Installer\BinaryInstaller;
|
7 |
+
use Composer\Installer\LibraryInstaller;
|
8 |
+
use Composer\IO\IOInterface;
|
9 |
+
use Composer\Package\PackageInterface;
|
10 |
+
use Composer\Repository\InstalledRepositoryInterface;
|
11 |
+
use Composer\Util\Filesystem;
|
12 |
+
|
13 |
+
class Installer extends LibraryInstaller
|
14 |
+
{
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Package types to installer class map
|
18 |
+
*
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
private $supportedTypes = array(
|
22 |
+
'aimeos' => 'AimeosInstaller',
|
23 |
+
'asgard' => 'AsgardInstaller',
|
24 |
+
'attogram' => 'AttogramInstaller',
|
25 |
+
'agl' => 'AglInstaller',
|
26 |
+
'annotatecms' => 'AnnotateCmsInstaller',
|
27 |
+
'bitrix' => 'BitrixInstaller',
|
28 |
+
'bonefish' => 'BonefishInstaller',
|
29 |
+
'cakephp' => 'CakePHPInstaller',
|
30 |
+
'chef' => 'ChefInstaller',
|
31 |
+
'civicrm' => 'CiviCrmInstaller',
|
32 |
+
'ccframework' => 'ClanCatsFrameworkInstaller',
|
33 |
+
'cockpit' => 'CockpitInstaller',
|
34 |
+
'codeigniter' => 'CodeIgniterInstaller',
|
35 |
+
'concrete5' => 'Concrete5Installer',
|
36 |
+
'craft' => 'CraftInstaller',
|
37 |
+
'croogo' => 'CroogoInstaller',
|
38 |
+
'dframe' => 'DframeInstaller',
|
39 |
+
'dokuwiki' => 'DokuWikiInstaller',
|
40 |
+
'dolibarr' => 'DolibarrInstaller',
|
41 |
+
'decibel' => 'DecibelInstaller',
|
42 |
+
'drupal' => 'DrupalInstaller',
|
43 |
+
'elgg' => 'ElggInstaller',
|
44 |
+
'eliasis' => 'EliasisInstaller',
|
45 |
+
'ee3' => 'ExpressionEngineInstaller',
|
46 |
+
'ee2' => 'ExpressionEngineInstaller',
|
47 |
+
'ezplatform' => 'EzPlatformInstaller',
|
48 |
+
'fuel' => 'FuelInstaller',
|
49 |
+
'fuelphp' => 'FuelphpInstaller',
|
50 |
+
'grav' => 'GravInstaller',
|
51 |
+
'hurad' => 'HuradInstaller',
|
52 |
+
'imagecms' => 'ImageCMSInstaller',
|
53 |
+
'itop' => 'ItopInstaller',
|
54 |
+
'joomla' => 'JoomlaInstaller',
|
55 |
+
'kanboard' => 'KanboardInstaller',
|
56 |
+
'kirby' => 'KirbyInstaller',
|
57 |
+
'known' => 'KnownInstaller',
|
58 |
+
'kodicms' => 'KodiCMSInstaller',
|
59 |
+
'kohana' => 'KohanaInstaller',
|
60 |
+
'lms' => 'LanManagementSystemInstaller',
|
61 |
+
'laravel' => 'LaravelInstaller',
|
62 |
+
'lavalite' => 'LavaLiteInstaller',
|
63 |
+
'lithium' => 'LithiumInstaller',
|
64 |
+
'magento' => 'MagentoInstaller',
|
65 |
+
'majima' => 'MajimaInstaller',
|
66 |
+
'mantisbt' => 'MantisBTInstaller',
|
67 |
+
'mako' => 'MakoInstaller',
|
68 |
+
'maya' => 'MayaInstaller',
|
69 |
+
'mautic' => 'MauticInstaller',
|
70 |
+
'mediawiki' => 'MediaWikiInstaller',
|
71 |
+
'microweber' => 'MicroweberInstaller',
|
72 |
+
'modulework' => 'MODULEWorkInstaller',
|
73 |
+
'modx' => 'ModxInstaller',
|
74 |
+
'modxevo' => 'MODXEvoInstaller',
|
75 |
+
'moodle' => 'MoodleInstaller',
|
76 |
+
'october' => 'OctoberInstaller',
|
77 |
+
'ontowiki' => 'OntoWikiInstaller',
|
78 |
+
'oxid' => 'OxidInstaller',
|
79 |
+
'osclass' => 'OsclassInstaller',
|
80 |
+
'pxcms' => 'PxcmsInstaller',
|
81 |
+
'phpbb' => 'PhpBBInstaller',
|
82 |
+
'pimcore' => 'PimcoreInstaller',
|
83 |
+
'piwik' => 'PiwikInstaller',
|
84 |
+
'plentymarkets'=> 'PlentymarketsInstaller',
|
85 |
+
'ppi' => 'PPIInstaller',
|
86 |
+
'puppet' => 'PuppetInstaller',
|
87 |
+
'radphp' => 'RadPHPInstaller',
|
88 |
+
'phifty' => 'PhiftyInstaller',
|
89 |
+
'porto' => 'PortoInstaller',
|
90 |
+
'redaxo' => 'RedaxoInstaller',
|
91 |
+
'redaxo5' => 'Redaxo5Installer',
|
92 |
+
'reindex' => 'ReIndexInstaller',
|
93 |
+
'roundcube' => 'RoundcubeInstaller',
|
94 |
+
'shopware' => 'ShopwareInstaller',
|
95 |
+
'sitedirect' => 'SiteDirectInstaller',
|
96 |
+
'silverstripe' => 'SilverStripeInstaller',
|
97 |
+
'smf' => 'SMFInstaller',
|
98 |
+
'sydes' => 'SyDESInstaller',
|
99 |
+
'sylius' => 'SyliusInstaller',
|
100 |
+
'symfony1' => 'Symfony1Installer',
|
101 |
+
'tao' => 'TaoInstaller',
|
102 |
+
'thelia' => 'TheliaInstaller',
|
103 |
+
'tusk' => 'TuskInstaller',
|
104 |
+
'typo3-cms' => 'TYPO3CmsInstaller',
|
105 |
+
'typo3-flow' => 'TYPO3FlowInstaller',
|
106 |
+
'userfrosting' => 'UserFrostingInstaller',
|
107 |
+
'vanilla' => 'VanillaInstaller',
|
108 |
+
'whmcs' => 'WHMCSInstaller',
|
109 |
+
'wolfcms' => 'WolfCMSInstaller',
|
110 |
+
'wordpress' => 'WordPressInstaller',
|
111 |
+
'yawik' => 'YawikInstaller',
|
112 |
+
'zend' => 'ZendInstaller',
|
113 |
+
'zikula' => 'ZikulaInstaller',
|
114 |
+
'prestashop' => 'PrestashopInstaller'
|
115 |
+
);
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Installer constructor.
|
119 |
+
*
|
120 |
+
* Disables installers specified in main composer extra installer-disable
|
121 |
+
* list
|
122 |
+
*
|
123 |
+
* @param IOInterface $io
|
124 |
+
* @param Composer $composer
|
125 |
+
* @param string $type
|
126 |
+
* @param Filesystem|null $filesystem
|
127 |
+
* @param BinaryInstaller|null $binaryInstaller
|
128 |
+
*/
|
129 |
+
public function __construct(
|
130 |
+
IOInterface $io,
|
131 |
+
Composer $composer,
|
132 |
+
$type = 'library',
|
133 |
+
Filesystem $filesystem = null,
|
134 |
+
BinaryInstaller $binaryInstaller = null
|
135 |
+
) {
|
136 |
+
parent::__construct($io, $composer, $type, $filesystem,
|
137 |
+
$binaryInstaller);
|
138 |
+
$this->removeDisabledInstallers();
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* {@inheritDoc}
|
143 |
+
*/
|
144 |
+
public function getInstallPath(PackageInterface $package)
|
145 |
+
{
|
146 |
+
$type = $package->getType();
|
147 |
+
$frameworkType = $this->findFrameworkType($type);
|
148 |
+
|
149 |
+
if ($frameworkType === false) {
|
150 |
+
throw new \InvalidArgumentException(
|
151 |
+
'Sorry the package type of this package is not yet supported.'
|
152 |
+
);
|
153 |
+
}
|
154 |
+
|
155 |
+
$class = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
|
156 |
+
$installer = new $class($package, $this->composer, $this->getIO());
|
157 |
+
|
158 |
+
return $installer->getInstallPath($package, $frameworkType);
|
159 |
+
}
|
160 |
+
|
161 |
+
public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
|
162 |
+
{
|
163 |
+
parent::uninstall($repo, $package);
|
164 |
+
$installPath = $this->getPackageBasePath($package);
|
165 |
+
$this->io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* {@inheritDoc}
|
170 |
+
*/
|
171 |
+
public function supports($packageType)
|
172 |
+
{
|
173 |
+
$frameworkType = $this->findFrameworkType($packageType);
|
174 |
+
|
175 |
+
if ($frameworkType === false) {
|
176 |
+
return false;
|
177 |
+
}
|
178 |
+
|
179 |
+
$locationPattern = $this->getLocationPattern($frameworkType);
|
180 |
+
|
181 |
+
return preg_match('#' . $frameworkType . '-' . $locationPattern . '#', $packageType, $matches) === 1;
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Finds a supported framework type if it exists and returns it
|
186 |
+
*
|
187 |
+
* @param string $type
|
188 |
+
* @return string
|
189 |
+
*/
|
190 |
+
protected function findFrameworkType($type)
|
191 |
+
{
|
192 |
+
$frameworkType = false;
|
193 |
+
|
194 |
+
krsort($this->supportedTypes);
|
195 |
+
|
196 |
+
foreach ($this->supportedTypes as $key => $val) {
|
197 |
+
if ($key === substr($type, 0, strlen($key))) {
|
198 |
+
$frameworkType = substr($type, 0, strlen($key));
|
199 |
+
break;
|
200 |
+
}
|
201 |
+
}
|
202 |
+
|
203 |
+
return $frameworkType;
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Get the second part of the regular expression to check for support of a
|
208 |
+
* package type
|
209 |
+
*
|
210 |
+
* @param string $frameworkType
|
211 |
+
* @return string
|
212 |
+
*/
|
213 |
+
protected function getLocationPattern($frameworkType)
|
214 |
+
{
|
215 |
+
$pattern = false;
|
216 |
+
if (!empty($this->supportedTypes[$frameworkType])) {
|
217 |
+
$frameworkClass = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
|
218 |
+
/** @var BaseInstaller $framework */
|
219 |
+
$framework = new $frameworkClass(null, $this->composer, $this->getIO());
|
220 |
+
$locations = array_keys($framework->getLocations());
|
221 |
+
$pattern = $locations ? '(' . implode('|', $locations) . ')' : false;
|
222 |
+
}
|
223 |
+
|
224 |
+
return $pattern ? : '(\w+)';
|
225 |
+
}
|
226 |
+
|
227 |
+
/**
|
228 |
+
* Get I/O object
|
229 |
+
*
|
230 |
+
* @return IOInterface
|
231 |
+
*/
|
232 |
+
private function getIO()
|
233 |
+
{
|
234 |
+
return $this->io;
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Look for installers set to be disabled in composer's extra config and
|
239 |
+
* remove them from the list of supported installers.
|
240 |
+
*
|
241 |
+
* Globals:
|
242 |
+
* - true, "all", and "*" - disable all installers.
|
243 |
+
* - false - enable all installers (useful with
|
244 |
+
* wikimedia/composer-merge-plugin or similar)
|
245 |
+
*
|
246 |
+
* @return void
|
247 |
+
*/
|
248 |
+
protected function removeDisabledInstallers()
|
249 |
+
{
|
250 |
+
$extra = $this->composer->getPackage()->getExtra();
|
251 |
+
|
252 |
+
if (!isset($extra['installer-disable']) || $extra['installer-disable'] === false) {
|
253 |
+
// No installers are disabled
|
254 |
+
return;
|
255 |
+
}
|
256 |
+
|
257 |
+
// Get installers to disable
|
258 |
+
$disable = $extra['installer-disable'];
|
259 |
+
|
260 |
+
// Ensure $disabled is an array
|
261 |
+
if (!is_array($disable)) {
|
262 |
+
$disable = array($disable);
|
263 |
+
}
|
264 |
+
|
265 |
+
// Check which installers should be disabled
|
266 |
+
$all = array(true, "all", "*");
|
267 |
+
$intersect = array_intersect($all, $disable);
|
268 |
+
if (!empty($intersect)) {
|
269 |
+
// Disable all installers
|
270 |
+
$this->supportedTypes = array();
|
271 |
+
} else {
|
272 |
+
// Disable specified installers
|
273 |
+
foreach ($disable as $key => $installer) {
|
274 |
+
if (is_string($installer) && key_exists($installer, $this->supportedTypes)) {
|
275 |
+
unset($this->supportedTypes[$installer]);
|
276 |
+
}
|
277 |
+
}
|
278 |
+
}
|
279 |
+
}
|
280 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ItopInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ItopInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'extension' => 'extensions/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class JoomlaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'component' => 'components/{$name}/',
|
8 |
+
'module' => 'modules/{$name}/',
|
9 |
+
'template' => 'templates/{$name}/',
|
10 |
+
'plugin' => 'plugins/{$name}/',
|
11 |
+
'library' => 'libraries/{$name}/',
|
12 |
+
);
|
13 |
+
|
14 |
+
// TODO: Add inflector for mod_ and com_ names
|
15 |
+
}
|
vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
*
|
6 |
+
* Installer for kanboard plugins
|
7 |
+
*
|
8 |
+
* kanboard.net
|
9 |
+
*
|
10 |
+
* Class KanboardInstaller
|
11 |
+
* @package Composer\Installers
|
12 |
+
*/
|
13 |
+
class KanboardInstaller extends BaseInstaller
|
14 |
+
{
|
15 |
+
protected $locations = array(
|
16 |
+
'plugin' => 'plugins/{$name}/',
|
17 |
+
);
|
18 |
+
}
|
vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class KirbyInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'site/plugins/{$name}/',
|
8 |
+
'field' => 'site/fields/{$name}/',
|
9 |
+
'tag' => 'site/tags/{$name}/'
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/KnownInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class KnownInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'IdnoPlugins/{$name}/',
|
8 |
+
'theme' => 'Themes/{$name}/',
|
9 |
+
'console' => 'ConsolePlugins/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class KodiCMSInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'cms/plugins/{$name}/',
|
8 |
+
'media' => 'cms/media/vendor/{$name}/'
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class KohanaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class LanManagementSystemInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
|
8 |
+
protected $locations = array(
|
9 |
+
'plugin' => 'plugins/{$name}/',
|
10 |
+
'template' => 'templates/{$name}/',
|
11 |
+
'document-template' => 'documents/templates/{$name}/',
|
12 |
+
'userpanel-module' => 'userpanel/modules/{$name}/',
|
13 |
+
);
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Format package name to CamelCase
|
17 |
+
*/
|
18 |
+
public function inflectPackageVars($vars)
|
19 |
+
{
|
20 |
+
$vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
|
21 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
22 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
23 |
+
|
24 |
+
return $vars;
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class LaravelInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'library' => 'libraries/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class LavaLiteInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'package' => 'packages/{$vendor}/{$name}/',
|
8 |
+
'theme' => 'public/themes/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class LithiumInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'library' => 'libraries/{$name}/',
|
8 |
+
'source' => 'libraries/_source/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MODULEWorkInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* An installer to handle MODX Evolution specifics when installing packages.
|
6 |
+
*/
|
7 |
+
class MODXEvoInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
protected $locations = array(
|
10 |
+
'snippet' => 'assets/snippets/{$name}/',
|
11 |
+
'plugin' => 'assets/plugins/{$name}/',
|
12 |
+
'module' => 'assets/modules/{$name}/',
|
13 |
+
'template' => 'assets/templates/{$name}/',
|
14 |
+
'lib' => 'assets/lib/{$name}/'
|
15 |
+
);
|
16 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MagentoInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'theme' => 'app/design/frontend/{$name}/',
|
8 |
+
'skin' => 'skin/frontend/default/{$name}/',
|
9 |
+
'library' => 'lib/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Plugin/theme installer for majima
|
6 |
+
* @author David Neustadt
|
7 |
+
*/
|
8 |
+
class MajimaInstaller extends BaseInstaller
|
9 |
+
{
|
10 |
+
protected $locations = array(
|
11 |
+
'plugin' => 'plugins/{$name}/',
|
12 |
+
);
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Transforms the names
|
16 |
+
* @param array $vars
|
17 |
+
* @return array
|
18 |
+
*/
|
19 |
+
public function inflectPackageVars($vars)
|
20 |
+
{
|
21 |
+
return $this->correctPluginName($vars);
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Change hyphenated names to camelcase
|
26 |
+
* @param array $vars
|
27 |
+
* @return array
|
28 |
+
*/
|
29 |
+
private function correctPluginName($vars)
|
30 |
+
{
|
31 |
+
$camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
|
32 |
+
return strtoupper($matches[0][1]);
|
33 |
+
}, $vars['name']);
|
34 |
+
$vars['name'] = ucfirst($camelCasedName);
|
35 |
+
return $vars;
|
36 |
+
}
|
37 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MakoInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MakoInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'package' => 'app/packages/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\DependencyResolver\Pool;
|
5 |
+
|
6 |
+
class MantisBTInstaller extends BaseInstaller
|
7 |
+
{
|
8 |
+
protected $locations = array(
|
9 |
+
'plugin' => 'plugins/{$name}/',
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name to CamelCase
|
14 |
+
*/
|
15 |
+
public function inflectPackageVars($vars)
|
16 |
+
{
|
17 |
+
$vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
|
18 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
19 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
20 |
+
|
21 |
+
return $vars;
|
22 |
+
}
|
23 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MauticInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'plugins/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name of mautic-plugins to CamelCase
|
13 |
+
*/
|
14 |
+
public function inflectPackageVars($vars)
|
15 |
+
{
|
16 |
+
if ($vars['type'] == 'mautic-plugin') {
|
17 |
+
$vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
|
18 |
+
return strtoupper($matches[0][1]);
|
19 |
+
}, ucfirst($vars['name']));
|
20 |
+
}
|
21 |
+
|
22 |
+
return $vars;
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MayaInstaller.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MayaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Format package name.
|
12 |
+
*
|
13 |
+
* For package type maya-module, cut off a trailing '-module' if present.
|
14 |
+
*
|
15 |
+
*/
|
16 |
+
public function inflectPackageVars($vars)
|
17 |
+
{
|
18 |
+
if ($vars['type'] === 'maya-module') {
|
19 |
+
return $this->inflectModuleVars($vars);
|
20 |
+
}
|
21 |
+
|
22 |
+
return $vars;
|
23 |
+
}
|
24 |
+
|
25 |
+
protected function inflectModuleVars($vars)
|
26 |
+
{
|
27 |
+
$vars['name'] = preg_replace('/-module$/', '', $vars['name']);
|
28 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
29 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
30 |
+
|
31 |
+
return $vars;
|
32 |
+
}
|
33 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MediaWikiInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'core' => 'core/',
|
8 |
+
'extension' => 'extensions/{$name}/',
|
9 |
+
'skin' => 'skins/{$name}/',
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name.
|
14 |
+
*
|
15 |
+
* For package type mediawiki-extension, cut off a trailing '-extension' if present and transform
|
16 |
+
* to CamelCase keeping existing uppercase chars.
|
17 |
+
*
|
18 |
+
* For package type mediawiki-skin, cut off a trailing '-skin' if present.
|
19 |
+
*
|
20 |
+
*/
|
21 |
+
public function inflectPackageVars($vars)
|
22 |
+
{
|
23 |
+
|
24 |
+
if ($vars['type'] === 'mediawiki-extension') {
|
25 |
+
return $this->inflectExtensionVars($vars);
|
26 |
+
}
|
27 |
+
|
28 |
+
if ($vars['type'] === 'mediawiki-skin') {
|
29 |
+
return $this->inflectSkinVars($vars);
|
30 |
+
}
|
31 |
+
|
32 |
+
return $vars;
|
33 |
+
}
|
34 |
+
|
35 |
+
protected function inflectExtensionVars($vars)
|
36 |
+
{
|
37 |
+
$vars['name'] = preg_replace('/-extension$/', '', $vars['name']);
|
38 |
+
$vars['name'] = str_replace('-', ' ', $vars['name']);
|
39 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
40 |
+
|
41 |
+
return $vars;
|
42 |
+
}
|
43 |
+
|
44 |
+
protected function inflectSkinVars($vars)
|
45 |
+
{
|
46 |
+
$vars['name'] = preg_replace('/-skin$/', '', $vars['name']);
|
47 |
+
|
48 |
+
return $vars;
|
49 |
+
}
|
50 |
+
|
51 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MicroweberInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'userfiles/modules/{$install_item_dir}/',
|
8 |
+
'module-skin' => 'userfiles/modules/{$install_item_dir}/templates/',
|
9 |
+
'template' => 'userfiles/templates/{$install_item_dir}/',
|
10 |
+
'element' => 'userfiles/elements/{$install_item_dir}/',
|
11 |
+
'vendor' => 'vendor/{$install_item_dir}/',
|
12 |
+
'components' => 'components/{$install_item_dir}/'
|
13 |
+
);
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Format package name.
|
17 |
+
*
|
18 |
+
* For package type microweber-module, cut off a trailing '-module' if present
|
19 |
+
*
|
20 |
+
* For package type microweber-template, cut off a trailing '-template' if present.
|
21 |
+
*
|
22 |
+
*/
|
23 |
+
public function inflectPackageVars($vars)
|
24 |
+
{
|
25 |
+
|
26 |
+
|
27 |
+
if ($this->package->getTargetDir()) {
|
28 |
+
$vars['install_item_dir'] = $this->package->getTargetDir();
|
29 |
+
} else {
|
30 |
+
$vars['install_item_dir'] = $vars['name'];
|
31 |
+
if ($vars['type'] === 'microweber-template') {
|
32 |
+
return $this->inflectTemplateVars($vars);
|
33 |
+
}
|
34 |
+
if ($vars['type'] === 'microweber-templates') {
|
35 |
+
return $this->inflectTemplatesVars($vars);
|
36 |
+
}
|
37 |
+
if ($vars['type'] === 'microweber-core') {
|
38 |
+
return $this->inflectCoreVars($vars);
|
39 |
+
}
|
40 |
+
if ($vars['type'] === 'microweber-adapter') {
|
41 |
+
return $this->inflectCoreVars($vars);
|
42 |
+
}
|
43 |
+
if ($vars['type'] === 'microweber-module') {
|
44 |
+
return $this->inflectModuleVars($vars);
|
45 |
+
}
|
46 |
+
if ($vars['type'] === 'microweber-modules') {
|
47 |
+
return $this->inflectModulesVars($vars);
|
48 |
+
}
|
49 |
+
if ($vars['type'] === 'microweber-skin') {
|
50 |
+
return $this->inflectSkinVars($vars);
|
51 |
+
}
|
52 |
+
if ($vars['type'] === 'microweber-element' or $vars['type'] === 'microweber-elements') {
|
53 |
+
return $this->inflectElementVars($vars);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
return $vars;
|
59 |
+
}
|
60 |
+
|
61 |
+
protected function inflectTemplateVars($vars)
|
62 |
+
{
|
63 |
+
$vars['install_item_dir'] = preg_replace('/-template$/', '', $vars['install_item_dir']);
|
64 |
+
$vars['install_item_dir'] = preg_replace('/template-$/', '', $vars['install_item_dir']);
|
65 |
+
|
66 |
+
return $vars;
|
67 |
+
}
|
68 |
+
|
69 |
+
protected function inflectTemplatesVars($vars)
|
70 |
+
{
|
71 |
+
$vars['install_item_dir'] = preg_replace('/-templates$/', '', $vars['install_item_dir']);
|
72 |
+
$vars['install_item_dir'] = preg_replace('/templates-$/', '', $vars['install_item_dir']);
|
73 |
+
|
74 |
+
return $vars;
|
75 |
+
}
|
76 |
+
|
77 |
+
protected function inflectCoreVars($vars)
|
78 |
+
{
|
79 |
+
$vars['install_item_dir'] = preg_replace('/-providers$/', '', $vars['install_item_dir']);
|
80 |
+
$vars['install_item_dir'] = preg_replace('/-provider$/', '', $vars['install_item_dir']);
|
81 |
+
$vars['install_item_dir'] = preg_replace('/-adapter$/', '', $vars['install_item_dir']);
|
82 |
+
|
83 |
+
return $vars;
|
84 |
+
}
|
85 |
+
|
86 |
+
protected function inflectModuleVars($vars)
|
87 |
+
{
|
88 |
+
$vars['install_item_dir'] = preg_replace('/-module$/', '', $vars['install_item_dir']);
|
89 |
+
$vars['install_item_dir'] = preg_replace('/module-$/', '', $vars['install_item_dir']);
|
90 |
+
|
91 |
+
return $vars;
|
92 |
+
}
|
93 |
+
|
94 |
+
protected function inflectModulesVars($vars)
|
95 |
+
{
|
96 |
+
$vars['install_item_dir'] = preg_replace('/-modules$/', '', $vars['install_item_dir']);
|
97 |
+
$vars['install_item_dir'] = preg_replace('/modules-$/', '', $vars['install_item_dir']);
|
98 |
+
|
99 |
+
return $vars;
|
100 |
+
}
|
101 |
+
|
102 |
+
protected function inflectSkinVars($vars)
|
103 |
+
{
|
104 |
+
$vars['install_item_dir'] = preg_replace('/-skin$/', '', $vars['install_item_dir']);
|
105 |
+
$vars['install_item_dir'] = preg_replace('/skin-$/', '', $vars['install_item_dir']);
|
106 |
+
|
107 |
+
return $vars;
|
108 |
+
}
|
109 |
+
|
110 |
+
protected function inflectElementVars($vars)
|
111 |
+
{
|
112 |
+
$vars['install_item_dir'] = preg_replace('/-elements$/', '', $vars['install_item_dir']);
|
113 |
+
$vars['install_item_dir'] = preg_replace('/elements-$/', '', $vars['install_item_dir']);
|
114 |
+
$vars['install_item_dir'] = preg_replace('/-element$/', '', $vars['install_item_dir']);
|
115 |
+
$vars['install_item_dir'] = preg_replace('/element-$/', '', $vars['install_item_dir']);
|
116 |
+
|
117 |
+
return $vars;
|
118 |
+
}
|
119 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ModxInstaller.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* An installer to handle MODX specifics when installing packages.
|
6 |
+
*/
|
7 |
+
class ModxInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
protected $locations = array(
|
10 |
+
'extra' => 'core/packages/{$name}/'
|
11 |
+
);
|
12 |
+
}
|
vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class MoodleInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'mod' => 'mod/{$name}/',
|
8 |
+
'admin_report' => 'admin/report/{$name}/',
|
9 |
+
'atto' => 'lib/editor/atto/plugins/{$name}/',
|
10 |
+
'tool' => 'admin/tool/{$name}/',
|
11 |
+
'assignment' => 'mod/assignment/type/{$name}/',
|
12 |
+
'assignsubmission' => 'mod/assign/submission/{$name}/',
|
13 |
+
'assignfeedback' => 'mod/assign/feedback/{$name}/',
|
14 |
+
'auth' => 'auth/{$name}/',
|
15 |
+
'availability' => 'availability/condition/{$name}/',
|
16 |
+
'block' => 'blocks/{$name}/',
|
17 |
+
'booktool' => 'mod/book/tool/{$name}/',
|
18 |
+
'cachestore' => 'cache/stores/{$name}/',
|
19 |
+
'cachelock' => 'cache/locks/{$name}/',
|
20 |
+
'calendartype' => 'calendar/type/{$name}/',
|
21 |
+
'format' => 'course/format/{$name}/',
|
22 |
+
'coursereport' => 'course/report/{$name}/',
|
23 |
+
'customcertelement' => 'mod/customcert/element/{$name}/',
|
24 |
+
'datafield' => 'mod/data/field/{$name}/',
|
25 |
+
'datapreset' => 'mod/data/preset/{$name}/',
|
26 |
+
'editor' => 'lib/editor/{$name}/',
|
27 |
+
'enrol' => 'enrol/{$name}/',
|
28 |
+
'filter' => 'filter/{$name}/',
|
29 |
+
'gradeexport' => 'grade/export/{$name}/',
|
30 |
+
'gradeimport' => 'grade/import/{$name}/',
|
31 |
+
'gradereport' => 'grade/report/{$name}/',
|
32 |
+
'gradingform' => 'grade/grading/form/{$name}/',
|
33 |
+
'local' => 'local/{$name}/',
|
34 |
+
'logstore' => 'admin/tool/log/store/{$name}/',
|
35 |
+
'ltisource' => 'mod/lti/source/{$name}/',
|
36 |
+
'ltiservice' => 'mod/lti/service/{$name}/',
|
37 |
+
'message' => 'message/output/{$name}/',
|
38 |
+
'mnetservice' => 'mnet/service/{$name}/',
|
39 |
+
'plagiarism' => 'plagiarism/{$name}/',
|
40 |
+
'portfolio' => 'portfolio/{$name}/',
|
41 |
+
'qbehaviour' => 'question/behaviour/{$name}/',
|
42 |
+
'qformat' => 'question/format/{$name}/',
|
43 |
+
'qtype' => 'question/type/{$name}/',
|
44 |
+
'quizaccess' => 'mod/quiz/accessrule/{$name}/',
|
45 |
+
'quiz' => 'mod/quiz/report/{$name}/',
|
46 |
+
'report' => 'report/{$name}/',
|
47 |
+
'repository' => 'repository/{$name}/',
|
48 |
+
'scormreport' => 'mod/scorm/report/{$name}/',
|
49 |
+
'search' => 'search/engine/{$name}/',
|
50 |
+
'theme' => 'theme/{$name}/',
|
51 |
+
'tinymce' => 'lib/editor/tinymce/plugins/{$name}/',
|
52 |
+
'profilefield' => 'user/profile/field/{$name}/',
|
53 |
+
'webservice' => 'webservice/{$name}/',
|
54 |
+
'workshopallocation' => 'mod/workshop/allocation/{$name}/',
|
55 |
+
'workshopeval' => 'mod/workshop/eval/{$name}/',
|
56 |
+
'workshopform' => 'mod/workshop/form/{$name}/'
|
57 |
+
);
|
58 |
+
}
|
vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class OctoberInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
'plugin' => 'plugins/{$vendor}/{$name}/',
|
9 |
+
'theme' => 'themes/{$name}/'
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name.
|
14 |
+
*
|
15 |
+
* For package type october-plugin, cut off a trailing '-plugin' if present.
|
16 |
+
*
|
17 |
+
* For package type october-theme, cut off a trailing '-theme' if present.
|
18 |
+
*
|
19 |
+
*/
|
20 |
+
public function inflectPackageVars($vars)
|
21 |
+
{
|
22 |
+
if ($vars['type'] === 'october-plugin') {
|
23 |
+
return $this->inflectPluginVars($vars);
|
24 |
+
}
|
25 |
+
|
26 |
+
if ($vars['type'] === 'october-theme') {
|
27 |
+
return $this->inflectThemeVars($vars);
|
28 |
+
}
|
29 |
+
|
30 |
+
return $vars;
|
31 |
+
}
|
32 |
+
|
33 |
+
protected function inflectPluginVars($vars)
|
34 |
+
{
|
35 |
+
$vars['name'] = preg_replace('/^oc-|-plugin$/', '', $vars['name']);
|
36 |
+
$vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
|
37 |
+
|
38 |
+
return $vars;
|
39 |
+
}
|
40 |
+
|
41 |
+
protected function inflectThemeVars($vars)
|
42 |
+
{
|
43 |
+
$vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
|
44 |
+
|
45 |
+
return $vars;
|
46 |
+
}
|
47 |
+
}
|
vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class OntoWikiInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'extension' => 'extensions/{$name}/',
|
8 |
+
'theme' => 'extensions/themes/{$name}/',
|
9 |
+
'translation' => 'extensions/translations/{$name}/',
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Format package name to lower case and remove ".ontowiki" suffix
|
14 |
+
*/
|
15 |
+
public function inflectPackageVars($vars)
|
16 |
+
{
|
17 |
+
$vars['name'] = strtolower($vars['name']);
|
18 |
+
$vars['name'] = preg_replace('/.ontowiki$/', '', $vars['name']);
|
19 |
+
$vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
|
20 |
+
$vars['name'] = preg_replace('/-translation$/', '', $vars['name']);
|
21 |
+
|
22 |
+
return $vars;
|
23 |
+
}
|
24 |
+
}
|
vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
|
5 |
+
class OsclassInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
|
8 |
+
protected $locations = array(
|
9 |
+
'plugin' => 'oc-content/plugins/{$name}/',
|
10 |
+
'theme' => 'oc-content/themes/{$name}/',
|
11 |
+
'language' => 'oc-content/languages/{$name}/',
|
12 |
+
);
|
13 |
+
|
14 |
+
}
|
vendor/composer/installers/src/Composer/Installers/OxidInstaller.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\Package\PackageInterface;
|
5 |
+
|
6 |
+
class OxidInstaller extends BaseInstaller
|
7 |
+
{
|
8 |
+
const VENDOR_PATTERN = '/^modules\/(?P<vendor>.+)\/.+/';
|
9 |
+
|
10 |
+
protected $locations = array(
|
11 |
+
'module' => 'modules/{$name}/',
|
12 |
+
'theme' => 'application/views/{$name}/',
|
13 |
+
'out' => 'out/{$name}/',
|
14 |
+
);
|
15 |
+
|
16 |
+
/**
|
17 |
+
* getInstallPath
|
18 |
+
*
|
19 |
+
* @param PackageInterface $package
|
20 |
+
* @param string $frameworkType
|
21 |
+
* @return void
|
22 |
+
*/
|
23 |
+
public function getInstallPath(PackageInterface $package, $frameworkType = '')
|
24 |
+
{
|
25 |
+
$installPath = parent::getInstallPath($package, $frameworkType);
|
26 |
+
$type = $this->package->getType();
|
27 |
+
if ($type === 'oxid-module') {
|
28 |
+
$this->prepareVendorDirectory($installPath);
|
29 |
+
}
|
30 |
+
return $installPath;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* prepareVendorDirectory
|
35 |
+
*
|
36 |
+
* Makes sure there is a vendormetadata.php file inside
|
37 |
+
* the vendor folder if there is a vendor folder.
|
38 |
+
*
|
39 |
+
* @param string $installPath
|
40 |
+
* @return void
|
41 |
+
*/
|
42 |
+
protected function prepareVendorDirectory($installPath)
|
43 |
+
{
|
44 |
+
$matches = '';
|
45 |
+
$hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches);
|
46 |
+
if (!$hasVendorDirectory) {
|
47 |
+
return;
|
48 |
+
}
|
49 |
+
|
50 |
+
$vendorDirectory = $matches['vendor'];
|
51 |
+
$vendorPath = getcwd() . '/modules/' . $vendorDirectory;
|
52 |
+
if (!file_exists($vendorPath)) {
|
53 |
+
mkdir($vendorPath, 0755, true);
|
54 |
+
}
|
55 |
+
|
56 |
+
$vendorMetaDataPath = $vendorPath . '/vendormetadata.php';
|
57 |
+
touch($vendorMetaDataPath);
|
58 |
+
}
|
59 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PPIInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PPIInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PhiftyInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'bundle' => 'bundles/{$name}/',
|
8 |
+
'library' => 'libraries/{$name}/',
|
9 |
+
'framework' => 'frameworks/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PhpBBInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'extension' => 'ext/{$vendor}/{$name}/',
|
8 |
+
'language' => 'language/{$name}/',
|
9 |
+
'style' => 'styles/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PimcoreInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'plugins/{$name}/',
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Format package name to CamelCase
|
12 |
+
*/
|
13 |
+
public function inflectPackageVars($vars)
|
14 |
+
{
|
15 |
+
$vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
|
16 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
17 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
18 |
+
|
19 |
+
return $vars;
|
20 |
+
}
|
21 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class PiwikInstaller
|
6 |
+
*
|
7 |
+
* @package Composer\Installers
|
8 |
+
*/
|
9 |
+
class PiwikInstaller extends BaseInstaller
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* @var array
|
13 |
+
*/
|
14 |
+
protected $locations = array(
|
15 |
+
'plugin' => 'plugins/{$name}/',
|
16 |
+
);
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Format package name to CamelCase
|
20 |
+
* @param array $vars
|
21 |
+
*
|
22 |
+
* @return array
|
23 |
+
*/
|
24 |
+
public function inflectPackageVars($vars)
|
25 |
+
{
|
26 |
+
$vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
|
27 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
28 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
29 |
+
|
30 |
+
return $vars;
|
31 |
+
}
|
32 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PlentymarketsInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => '{$name}/'
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Remove hyphen, "plugin" and format to camelcase
|
12 |
+
* @param array $vars
|
13 |
+
*
|
14 |
+
* @return array
|
15 |
+
*/
|
16 |
+
public function inflectPackageVars($vars)
|
17 |
+
{
|
18 |
+
$vars['name'] = explode("-", $vars['name']);
|
19 |
+
foreach ($vars['name'] as $key => $name) {
|
20 |
+
$vars['name'][$key] = ucfirst($vars['name'][$key]);
|
21 |
+
if (strcasecmp($name, "Plugin") == 0) {
|
22 |
+
unset($vars['name'][$key]);
|
23 |
+
}
|
24 |
+
}
|
25 |
+
$vars['name'] = implode("",$vars['name']);
|
26 |
+
|
27 |
+
return $vars;
|
28 |
+
}
|
29 |
+
}
|
vendor/composer/installers/src/Composer/Installers/Plugin.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
use Composer\Composer;
|
6 |
+
use Composer\IO\IOInterface;
|
7 |
+
use Composer\Plugin\PluginInterface;
|
8 |
+
|
9 |
+
class Plugin implements PluginInterface
|
10 |
+
{
|
11 |
+
private $installer;
|
12 |
+
|
13 |
+
public function activate(Composer $composer, IOInterface $io)
|
14 |
+
{
|
15 |
+
$this->installer = new Installer($io, $composer);
|
16 |
+
$composer->getInstallationManager()->addInstaller($this->installer);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function deactivate(Composer $composer, IOInterface $io)
|
20 |
+
{
|
21 |
+
$composer->getInstallationManager()->removeInstaller($this->installer);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function uninstall(Composer $composer, IOInterface $io)
|
25 |
+
{
|
26 |
+
}
|
27 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PortoInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PortoInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'container' => 'app/Containers/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PrestashopInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class PuppetInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
|
8 |
+
protected $locations = array(
|
9 |
+
'module' => 'modules/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class PxcmsInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'app/Modules/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name.
|
13 |
+
*
|
14 |
+
* @param array $vars
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
*/
|
18 |
+
public function inflectPackageVars($vars)
|
19 |
+
{
|
20 |
+
if ($vars['type'] === 'pxcms-module') {
|
21 |
+
return $this->inflectModuleVars($vars);
|
22 |
+
}
|
23 |
+
|
24 |
+
if ($vars['type'] === 'pxcms-theme') {
|
25 |
+
return $this->inflectThemeVars($vars);
|
26 |
+
}
|
27 |
+
|
28 |
+
return $vars;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* For package type pxcms-module, cut off a trailing '-plugin' if present.
|
33 |
+
*
|
34 |
+
* return string
|
35 |
+
*/
|
36 |
+
protected function inflectModuleVars($vars)
|
37 |
+
{
|
38 |
+
$vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
|
39 |
+
$vars['name'] = str_replace('module-', '', $vars['name']); // strip out module-
|
40 |
+
$vars['name'] = preg_replace('/-module$/', '', $vars['name']); // strip out -module
|
41 |
+
$vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
|
42 |
+
$vars['name'] = ucwords($vars['name']); // make module name camelcased
|
43 |
+
|
44 |
+
return $vars;
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
+
/**
|
49 |
+
* For package type pxcms-module, cut off a trailing '-plugin' if present.
|
50 |
+
*
|
51 |
+
* return string
|
52 |
+
*/
|
53 |
+
protected function inflectThemeVars($vars)
|
54 |
+
{
|
55 |
+
$vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
|
56 |
+
$vars['name'] = str_replace('theme-', '', $vars['name']); // strip out theme-
|
57 |
+
$vars['name'] = preg_replace('/-theme$/', '', $vars['name']); // strip out -theme
|
58 |
+
$vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
|
59 |
+
$vars['name'] = ucwords($vars['name']); // make module name camelcased
|
60 |
+
|
61 |
+
return $vars;
|
62 |
+
}
|
63 |
+
}
|
vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class RadPHPInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'bundle' => 'src/{$name}/'
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Format package name to CamelCase
|
12 |
+
*/
|
13 |
+
public function inflectPackageVars($vars)
|
14 |
+
{
|
15 |
+
$nameParts = explode('/', $vars['name']);
|
16 |
+
foreach ($nameParts as &$value) {
|
17 |
+
$value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
|
18 |
+
$value = str_replace(array('-', '_'), ' ', $value);
|
19 |
+
$value = str_replace(' ', '', ucwords($value));
|
20 |
+
}
|
21 |
+
$vars['name'] = implode('/', $nameParts);
|
22 |
+
return $vars;
|
23 |
+
}
|
24 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ReIndexInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'theme' => 'themes/{$name}/',
|
8 |
+
'plugin' => 'plugins/{$name}/'
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class Redaxo5Installer extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'addon' => 'redaxo/src/addons/{$name}/',
|
8 |
+
'bestyle-plugin' => 'redaxo/src/addons/be_style/plugins/{$name}/'
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class RedaxoInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'addon' => 'redaxo/include/addons/{$name}/',
|
8 |
+
'bestyle-plugin' => 'redaxo/include/addons/be_style/plugins/{$name}/'
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class RoundcubeInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'plugins/{$name}/',
|
8 |
+
);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Lowercase name and changes the name to a underscores
|
12 |
+
*
|
13 |
+
* @param array $vars
|
14 |
+
* @return array
|
15 |
+
*/
|
16 |
+
public function inflectPackageVars($vars)
|
17 |
+
{
|
18 |
+
$vars['name'] = strtolower(str_replace('-', '_', $vars['name']));
|
19 |
+
|
20 |
+
return $vars;
|
21 |
+
}
|
22 |
+
}
|
vendor/composer/installers/src/Composer/Installers/SMFInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class SMFInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'Sources/{$name}/',
|
8 |
+
'theme' => 'Themes/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Plugin/theme installer for shopware
|
6 |
+
* @author Benjamin Boit
|
7 |
+
*/
|
8 |
+
class ShopwareInstaller extends BaseInstaller
|
9 |
+
{
|
10 |
+
protected $locations = array(
|
11 |
+
'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/',
|
12 |
+
'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/',
|
13 |
+
'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/',
|
14 |
+
'theme' => 'templates/{$name}/',
|
15 |
+
'plugin' => 'custom/plugins/{$name}/',
|
16 |
+
'frontend-theme' => 'themes/Frontend/{$name}/',
|
17 |
+
);
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Transforms the names
|
21 |
+
* @param array $vars
|
22 |
+
* @return array
|
23 |
+
*/
|
24 |
+
public function inflectPackageVars($vars)
|
25 |
+
{
|
26 |
+
if ($vars['type'] === 'shopware-theme') {
|
27 |
+
return $this->correctThemeName($vars);
|
28 |
+
}
|
29 |
+
|
30 |
+
return $this->correctPluginName($vars);
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Changes the name to a camelcased combination of vendor and name
|
35 |
+
* @param array $vars
|
36 |
+
* @return array
|
37 |
+
*/
|
38 |
+
private function correctPluginName($vars)
|
39 |
+
{
|
40 |
+
$camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
|
41 |
+
return strtoupper($matches[0][1]);
|
42 |
+
}, $vars['name']);
|
43 |
+
|
44 |
+
$vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName);
|
45 |
+
|
46 |
+
return $vars;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Changes the name to a underscore separated name
|
51 |
+
* @param array $vars
|
52 |
+
* @return array
|
53 |
+
*/
|
54 |
+
private function correctThemeName($vars)
|
55 |
+
{
|
56 |
+
$vars['name'] = str_replace('-', '_', $vars['name']);
|
57 |
+
|
58 |
+
return $vars;
|
59 |
+
}
|
60 |
+
}
|
vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
use Composer\Package\PackageInterface;
|
5 |
+
|
6 |
+
class SilverStripeInstaller extends BaseInstaller
|
7 |
+
{
|
8 |
+
protected $locations = array(
|
9 |
+
'module' => '{$name}/',
|
10 |
+
'theme' => 'themes/{$name}/',
|
11 |
+
);
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Return the install path based on package type.
|
15 |
+
*
|
16 |
+
* Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework
|
17 |
+
* must be installed to 'sapphire' and not 'framework' if the version is <3.0.0
|
18 |
+
*
|
19 |
+
* @param PackageInterface $package
|
20 |
+
* @param string $frameworkType
|
21 |
+
* @return string
|
22 |
+
*/
|
23 |
+
public function getInstallPath(PackageInterface $package, $frameworkType = '')
|
24 |
+
{
|
25 |
+
if (
|
26 |
+
$package->getName() == 'silverstripe/framework'
|
27 |
+
&& preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
|
28 |
+
&& version_compare($package->getVersion(), '2.999.999') < 0
|
29 |
+
) {
|
30 |
+
return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
|
31 |
+
}
|
32 |
+
|
33 |
+
return parent::getInstallPath($package, $frameworkType);
|
34 |
+
}
|
35 |
+
}
|
vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class SiteDirectInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
protected $locations = array(
|
8 |
+
'module' => 'modules/{$vendor}/{$name}/',
|
9 |
+
'plugin' => 'plugins/{$vendor}/{$name}/'
|
10 |
+
);
|
11 |
+
|
12 |
+
public function inflectPackageVars($vars)
|
13 |
+
{
|
14 |
+
return $this->parseVars($vars);
|
15 |
+
}
|
16 |
+
|
17 |
+
protected function parseVars($vars)
|
18 |
+
{
|
19 |
+
$vars['vendor'] = strtolower($vars['vendor']) == 'sitedirect' ? 'SiteDirect' : $vars['vendor'];
|
20 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
21 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
22 |
+
|
23 |
+
return $vars;
|
24 |
+
}
|
25 |
+
}
|
vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class SyDESInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'app/modules/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/',
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format module name.
|
13 |
+
*
|
14 |
+
* Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present.
|
15 |
+
*
|
16 |
+
* @param array @vars
|
17 |
+
*
|
18 |
+
* @return array
|
19 |
+
*/
|
20 |
+
public function inflectPackageVars($vars)
|
21 |
+
{
|
22 |
+
if ($vars['type'] == 'sydes-module') {
|
23 |
+
return $this->inflectModuleVars($vars);
|
24 |
+
}
|
25 |
+
|
26 |
+
if ($vars['type'] === 'sydes-theme') {
|
27 |
+
return $this->inflectThemeVars($vars);
|
28 |
+
}
|
29 |
+
|
30 |
+
return $vars;
|
31 |
+
}
|
32 |
+
|
33 |
+
public function inflectModuleVars($vars)
|
34 |
+
{
|
35 |
+
$vars['name'] = preg_replace('/(^sydes-|-module$)/i', '', $vars['name']);
|
36 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
37 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
38 |
+
|
39 |
+
return $vars;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function inflectThemeVars($vars)
|
43 |
+
{
|
44 |
+
$vars['name'] = preg_replace('/(^sydes-|-theme$)/', '', $vars['name']);
|
45 |
+
$vars['name'] = strtolower($vars['name']);
|
46 |
+
|
47 |
+
return $vars;
|
48 |
+
}
|
49 |
+
}
|
vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class SyliusInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'theme' => 'themes/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Plugin installer for symfony 1.x
|
6 |
+
*
|
7 |
+
* @author Jérôme Tamarelle <jerome@tamarelle.net>
|
8 |
+
*/
|
9 |
+
class Symfony1Installer extends BaseInstaller
|
10 |
+
{
|
11 |
+
protected $locations = array(
|
12 |
+
'plugin' => 'plugins/{$name}/',
|
13 |
+
);
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Format package name to CamelCase
|
17 |
+
*/
|
18 |
+
public function inflectPackageVars($vars)
|
19 |
+
{
|
20 |
+
$vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
|
21 |
+
return strtoupper($matches[0][1]);
|
22 |
+
}, $vars['name']);
|
23 |
+
|
24 |
+
return $vars;
|
25 |
+
}
|
26 |
+
}
|
vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Extension installer for TYPO3 CMS
|
6 |
+
*
|
7 |
+
* @deprecated since 1.0.25, use https://packagist.org/packages/typo3/cms-composer-installers instead
|
8 |
+
*
|
9 |
+
* @author Sascha Egerer <sascha.egerer@dkd.de>
|
10 |
+
*/
|
11 |
+
class TYPO3CmsInstaller extends BaseInstaller
|
12 |
+
{
|
13 |
+
protected $locations = array(
|
14 |
+
'extension' => 'typo3conf/ext/{$name}/',
|
15 |
+
);
|
16 |
+
}
|
vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* An installer to handle TYPO3 Flow specifics when installing packages.
|
6 |
+
*/
|
7 |
+
class TYPO3FlowInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
protected $locations = array(
|
10 |
+
'package' => 'Packages/Application/{$name}/',
|
11 |
+
'framework' => 'Packages/Framework/{$name}/',
|
12 |
+
'plugin' => 'Packages/Plugins/{$name}/',
|
13 |
+
'site' => 'Packages/Sites/{$name}/',
|
14 |
+
'boilerplate' => 'Packages/Boilerplates/{$name}/',
|
15 |
+
'build' => 'Build/{$name}/',
|
16 |
+
);
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Modify the package name to be a TYPO3 Flow style key.
|
20 |
+
*
|
21 |
+
* @param array $vars
|
22 |
+
* @return array
|
23 |
+
*/
|
24 |
+
public function inflectPackageVars($vars)
|
25 |
+
{
|
26 |
+
$autoload = $this->package->getAutoload();
|
27 |
+
if (isset($autoload['psr-0']) && is_array($autoload['psr-0'])) {
|
28 |
+
$namespace = key($autoload['psr-0']);
|
29 |
+
$vars['name'] = str_replace('\\', '.', $namespace);
|
30 |
+
}
|
31 |
+
if (isset($autoload['psr-4']) && is_array($autoload['psr-4'])) {
|
32 |
+
$namespace = key($autoload['psr-4']);
|
33 |
+
$vars['name'] = rtrim(str_replace('\\', '.', $namespace), '.');
|
34 |
+
}
|
35 |
+
|
36 |
+
return $vars;
|
37 |
+
}
|
38 |
+
}
|
vendor/composer/installers/src/Composer/Installers/TaoInstaller.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* An installer to handle TAO extensions.
|
6 |
+
*/
|
7 |
+
class TaoInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
protected $locations = array(
|
10 |
+
'extension' => '{$name}'
|
11 |
+
);
|
12 |
+
}
|
vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class TheliaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'local/modules/{$name}/',
|
8 |
+
'frontoffice-template' => 'templates/frontOffice/{$name}/',
|
9 |
+
'backoffice-template' => 'templates/backOffice/{$name}/',
|
10 |
+
'email-template' => 'templates/email/{$name}/',
|
11 |
+
);
|
12 |
+
}
|
vendor/composer/installers/src/Composer/Installers/TuskInstaller.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
/**
|
4 |
+
* Composer installer for 3rd party Tusk utilities
|
5 |
+
* @author Drew Ewing <drew@phenocode.com>
|
6 |
+
*/
|
7 |
+
class TuskInstaller extends BaseInstaller
|
8 |
+
{
|
9 |
+
protected $locations = array(
|
10 |
+
'task' => '.tusk/tasks/{$name}/',
|
11 |
+
'command' => '.tusk/commands/{$name}/',
|
12 |
+
'asset' => 'assets/tusk/{$name}/',
|
13 |
+
);
|
14 |
+
}
|
vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class UserFrostingInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'sprinkle' => 'app/sprinkles/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class VanillaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'plugins/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/',
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class VgmcpInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'bundle' => 'src/{$vendor}/{$name}/',
|
8 |
+
'theme' => 'themes/{$name}/'
|
9 |
+
);
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Format package name.
|
13 |
+
*
|
14 |
+
* For package type vgmcp-bundle, cut off a trailing '-bundle' if present.
|
15 |
+
*
|
16 |
+
* For package type vgmcp-theme, cut off a trailing '-theme' if present.
|
17 |
+
*
|
18 |
+
*/
|
19 |
+
public function inflectPackageVars($vars)
|
20 |
+
{
|
21 |
+
if ($vars['type'] === 'vgmcp-bundle') {
|
22 |
+
return $this->inflectPluginVars($vars);
|
23 |
+
}
|
24 |
+
|
25 |
+
if ($vars['type'] === 'vgmcp-theme') {
|
26 |
+
return $this->inflectThemeVars($vars);
|
27 |
+
}
|
28 |
+
|
29 |
+
return $vars;
|
30 |
+
}
|
31 |
+
|
32 |
+
protected function inflectPluginVars($vars)
|
33 |
+
{
|
34 |
+
$vars['name'] = preg_replace('/-bundle$/', '', $vars['name']);
|
35 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
36 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
37 |
+
|
38 |
+
return $vars;
|
39 |
+
}
|
40 |
+
|
41 |
+
protected function inflectThemeVars($vars)
|
42 |
+
{
|
43 |
+
$vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
|
44 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
45 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
46 |
+
|
47 |
+
return $vars;
|
48 |
+
}
|
49 |
+
}
|
vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer\Installers;
|
4 |
+
|
5 |
+
class WHMCSInstaller extends BaseInstaller
|
6 |
+
{
|
7 |
+
protected $locations = array(
|
8 |
+
'addons' => 'modules/addons/{$vendor}_{$name}/',
|
9 |
+
'fraud' => 'modules/fraud/{$vendor}_{$name}/',
|
10 |
+
'gateways' => 'modules/gateways/{$vendor}_{$name}/',
|
11 |
+
'notifications' => 'modules/notifications/{$vendor}_{$name}/',
|
12 |
+
'registrars' => 'modules/registrars/{$vendor}_{$name}/',
|
13 |
+
'reports' => 'modules/reports/{$vendor}_{$name}/',
|
14 |
+
'security' => 'modules/security/{$vendor}_{$name}/',
|
15 |
+
'servers' => 'modules/servers/{$vendor}_{$name}/',
|
16 |
+
'social' => 'modules/social/{$vendor}_{$name}/',
|
17 |
+
'support' => 'modules/support/{$vendor}_{$name}/',
|
18 |
+
'templates' => 'templates/{$vendor}_{$name}/',
|
19 |
+
'includes' => 'includes/{$vendor}_{$name}/'
|
20 |
+
);
|
21 |
+
}
|
vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class WolfCMSInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'wolf/plugins/{$name}/',
|
8 |
+
);
|
9 |
+
}
|
vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class WordPressInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'plugin' => 'wp-content/plugins/{$name}/',
|
8 |
+
'theme' => 'wp-content/themes/{$name}/',
|
9 |
+
'muplugin' => 'wp-content/mu-plugins/{$name}/',
|
10 |
+
'dropin' => 'wp-content/{$name}/',
|
11 |
+
);
|
12 |
+
}
|
vendor/composer/installers/src/Composer/Installers/YawikInstaller.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Created by PhpStorm.
|
4 |
+
* User: cbleek
|
5 |
+
* Date: 25.03.16
|
6 |
+
* Time: 20:55
|
7 |
+
*/
|
8 |
+
|
9 |
+
namespace Composer\Installers;
|
10 |
+
|
11 |
+
|
12 |
+
class YawikInstaller extends BaseInstaller
|
13 |
+
{
|
14 |
+
protected $locations = array(
|
15 |
+
'module' => 'module/{$name}/',
|
16 |
+
);
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Format package name to CamelCase
|
20 |
+
* @param array $vars
|
21 |
+
*
|
22 |
+
* @return array
|
23 |
+
*/
|
24 |
+
public function inflectPackageVars($vars)
|
25 |
+
{
|
26 |
+
$vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
|
27 |
+
$vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
|
28 |
+
$vars['name'] = str_replace(' ', '', ucwords($vars['name']));
|
29 |
+
|
30 |
+
return $vars;
|
31 |
+
}
|
32 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ZendInstaller.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ZendInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'library' => 'library/{$name}/',
|
8 |
+
'extra' => 'extras/library/{$name}/',
|
9 |
+
'module' => 'module/{$name}/',
|
10 |
+
);
|
11 |
+
}
|
vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Composer\Installers;
|
3 |
+
|
4 |
+
class ZikulaInstaller extends BaseInstaller
|
5 |
+
{
|
6 |
+
protected $locations = array(
|
7 |
+
'module' => 'modules/{$vendor}-{$name}/',
|
8 |
+
'theme' => 'themes/{$vendor}-{$name}/'
|
9 |
+
);
|
10 |
+
}
|
vendor/composer/installers/src/bootstrap.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
function includeIfExists($file)
|
3 |
+
{
|
4 |
+
if (file_exists($file)) {
|
5 |
+
return include $file;
|
6 |
+
}
|
7 |
+
}
|
8 |
+
if ((!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php'))) {
|
9 |
+
die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
|
10 |
+
'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
|
11 |
+
'php composer.phar install'.PHP_EOL);
|
12 |
+
}
|
13 |
+
return $loader;
|
vendor/doctrine/instantiator/.scrutinizer.yml
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
before_commands:
|
2 |
-
- "composer install --prefer-source"
|
3 |
-
|
4 |
-
tools:
|
5 |
-
external_code_coverage:
|
6 |
-
timeout: 600
|
7 |
-
php_code_coverage:
|
8 |
-
enabled: true
|
9 |
-
test_command: ./vendor/bin/phpunit
|
10 |
-
php_code_sniffer:
|
11 |
-
enabled: true
|
12 |
-
config:
|
13 |
-
standard: PSR2
|
14 |
-
filter:
|
15 |
-
paths: ["src/*", "tests/*"]
|
16 |
-
php_cpd:
|
17 |
-
enabled: true
|
18 |
-
excluded_dirs: ["build/*", "tests", "vendor"]
|
19 |
-
php_cs_fixer:
|
20 |
-
enabled: true
|
21 |
-
config:
|
22 |
-
level: all
|
23 |
-
filter:
|
24 |
-
paths: ["src/*", "tests/*"]
|
25 |
-
php_loc:
|
26 |
-
enabled: true
|
27 |
-
excluded_dirs: ["build", "tests", "vendor"]
|
28 |
-
php_mess_detector:
|
29 |
-
enabled: true
|
30 |
-
config:
|
31 |
-
ruleset: phpmd.xml.dist
|
32 |
-
design_rules: { eval_expression: false }
|
33 |
-
filter:
|
34 |
-
paths: ["src/*"]
|
35 |
-
php_pdepend:
|
36 |
-
enabled: true
|
37 |
-
excluded_dirs: ["build", "tests", "vendor"]
|
38 |
-
php_analyzer:
|
39 |
-
enabled: true
|
40 |
-
filter:
|
41 |
-
paths: ["src/*", "tests/*"]
|
42 |
-
php_hhvm:
|
43 |
-
enabled: true
|
44 |
-
filter:
|
45 |
-
paths: ["src/*", "tests/*"]
|
46 |
-
sensiolabs_security_checker: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/doctrine/instantiator/.travis.install.sh
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
#!/bin/sh
|
2 |
-
set -x
|
3 |
-
if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] || [ "$TRAVIS_PHP_VERSION" = 'hhvm-nightly' ] ; then
|
4 |
-
curl -sS https://getcomposer.org/installer > composer-installer.php
|
5 |
-
hhvm composer-installer.php
|
6 |
-
hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 composer.phar update --prefer-source
|
7 |
-
elif [ "$TRAVIS_PHP_VERSION" = '5.3.3' ] ; then
|
8 |
-
composer self-update
|
9 |
-
composer update --prefer-source --no-dev
|
10 |
-
composer dump-autoload
|
11 |
-
else
|
12 |
-
composer self-update
|
13 |
-
composer update --prefer-source
|
14 |
-
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/doctrine/instantiator/CONTRIBUTING.md
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
# Contributing
|
2 |
-
|
3 |
-
* Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
|
4 |
-
* The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
|
5 |
-
* Any contribution must provide tests for additional introduced conditions
|
6 |
-
* Any un-confirmed issue needs a failing test case before being accepted
|
7 |
-
* Pull requests must be sent from a new hotfix/feature branch, not from `master`.
|
8 |
-
|
9 |
-
## Installation
|
10 |
-
|
11 |
-
To install the project and run the tests, you need to clone it first:
|
12 |
-
|
13 |
-
```sh
|
14 |
-
$ git clone git://github.com/doctrine/instantiator.git
|
15 |
-
```
|
16 |
-
|
17 |
-
You will then need to run a composer installation:
|
18 |
-
|
19 |
-
```sh
|
20 |
-
$ cd Instantiator
|
21 |
-
$ curl -s https://getcomposer.org/installer | php
|
22 |
-
$ php composer.phar update
|
23 |
-
```
|
24 |
-
|
25 |
-
## Testing
|
26 |
-
|
27 |
-
The PHPUnit version to be used is the one installed as a dev- dependency via composer:
|
28 |
-
|
29 |
-
```sh
|
30 |
-
$ ./vendor/bin/phpunit
|
31 |
-
```
|
32 |
-
|
33 |
-
Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
|
34 |
-
won't be merged.
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/doctrine/instantiator/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
Copyright (c) 2014 Doctrine Project
|
2 |
-
|
3 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4 |
-
this software and associated documentation files (the "Software"), to deal in
|
5 |
-
the Software without restriction, including without limitation the rights to
|
6 |
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7 |
-
of the Software, and to permit persons to whom the Software is furnished to do
|
8 |
-
so, subject to the following conditions:
|
9 |
-
|
10 |
-
The above copyright notice and this permission notice shall be included in all
|
11 |
-
copies or substantial portions of the Software.
|
12 |
-
|
13 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19 |
-
SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/doctrine/instantiator/phpmd.xml.dist
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
-
<ruleset
|
3 |
-
name="Instantiator rules"
|
4 |
-
xmlns="http://pmd.sf.net/ruleset/1.0.0"
|
5 |
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6 |
-
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
|
7 |
-
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
|
8 |
-
>
|
9 |
-
<rule ref="rulesets/cleancode.xml">
|
10 |
-
<!-- static access is used for caching purposes -->
|
11 |
-
<exclude name="StaticAccess"/>
|
12 |
-
</rule>
|
13 |
-
<rule ref="rulesets/codesize.xml"/>
|
14 |
-
<rule ref="rulesets/controversial.xml"/>
|
15 |
-
<rule ref="rulesets/design.xml"/>
|
16 |
-
<rule ref="rulesets/naming.xml"/>
|
17 |
-
<rule ref="rulesets/unusedcode.xml"/>
|
18 |
-
<rule
|
19 |
-
name="NPathComplexity"
|
20 |
-
message="The {0} {1}() has an NPath complexity of {2}. The configured NPath complexity threshold is {3}."
|
21 |
-
class="PHP_PMD_Rule_Design_NpathComplexity"
|
22 |
-
>
|
23 |
-
<properties>
|
24 |
-
<property name="minimum" description="The npath reporting threshold" value="10"/>
|
25 |
-
</properties>
|
26 |
-
</rule>
|
27 |
-
</ruleset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/doctrine/instantiator/phpunit.xml.dist
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<phpunit
|
3 |
-
bootstrap="./vendor/autoload.php"
|
4 |
-
colors="true"
|
5 |
-
convertErrorsToExceptions="true"
|
6 |
-
convertNoticesToExceptions="true"
|
7 |
-
convertWarningsToExceptions="true"
|
8 |
-
verbose="true"
|
9 |
-
stopOnFailure="false"
|
10 |
-
processIsolation="false"
|
11 |
-
backupGlobals="false"
|
12 |
-
syntaxCheck="true"
|
13 |
-
>
|
14 |
-
<testsuite name="Doctrine\Instantiator tests">
|
15 |
-
<directory>./tests/DoctrineTest/InstantiatorTest</directory>
|
16 |
-
</testsuite>
|
17 |
-
<filter>
|
18 |
-
<whitelist addUncoveredFilesFromWhitelist="true">
|
19 |
-
<directory suffix=".php">./src</directory>
|
20 |
-
</whitelist>
|
21 |
-
</filter>
|
22 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/guzzle/.php_cs
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$config = PhpCsFixer\Config::create()
|
4 |
-
->setRiskyAllowed(true)
|
5 |
-
->setRules([
|
6 |
-
'@PSR2' => true,
|
7 |
-
'array_syntax' => ['syntax' => 'short'],
|
8 |
-
'declare_strict_types' => false,
|
9 |
-
'concat_space' => ['spacing'=>'one'],
|
10 |
-
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
|
11 |
-
'ordered_imports' => true,
|
12 |
-
// 'phpdoc_align' => ['align'=>'vertical'],
|
13 |
-
// 'native_function_invocation' => true,
|
14 |
-
])
|
15 |
-
->setFinder(
|
16 |
-
PhpCsFixer\Finder::create()
|
17 |
-
->in(__DIR__.'/src')
|
18 |
-
->in(__DIR__.'/tests')
|
19 |
-
->name('*.php')
|
20 |
-
)
|
21 |
-
;
|
22 |
-
|
23 |
-
return $config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/guzzle/Dockerfile
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
FROM composer:latest as setup
|
2 |
-
|
3 |
-
RUN mkdir /guzzle
|
4 |
-
|
5 |
-
WORKDIR /guzzle
|
6 |
-
|
7 |
-
RUN set -xe \
|
8 |
-
&& composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár <mark.sagikazar@gmail.com>" --no-interaction \
|
9 |
-
&& composer require guzzlehttp/guzzle
|
10 |
-
|
11 |
-
|
12 |
-
FROM php:7.3
|
13 |
-
|
14 |
-
RUN mkdir /guzzle
|
15 |
-
|
16 |
-
WORKDIR /guzzle
|
17 |
-
|
18 |
-
COPY --from=setup /guzzle /guzzle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/guzzle/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
Copyright (c) 2011-2018 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
|
2 |
-
|
3 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
-
of this software and associated documentation files (the "Software"), to deal
|
5 |
-
in the Software without restriction, including without limitation the rights
|
6 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
-
copies of the Software, and to permit persons to whom the Software is
|
8 |
-
furnished to do so, subject to the following conditions:
|
9 |
-
|
10 |
-
The above copyright notice and this permission notice shall be included in
|
11 |
-
all copies or substantial portions of the Software.
|
12 |
-
|
13 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
-
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/guzzle/UPGRADING.md
DELETED
@@ -1,1203 +0,0 @@
|
|
1 |
-
Guzzle Upgrade Guide
|
2 |
-
====================
|
3 |
-
|
4 |
-
5.0 to 6.0
|
5 |
-
----------
|
6 |
-
|
7 |
-
Guzzle now uses [PSR-7](http://www.php-fig.org/psr/psr-7/) for HTTP messages.
|
8 |
-
Due to the fact that these messages are immutable, this prompted a refactoring
|
9 |
-
of Guzzle to use a middleware based system rather than an event system. Any
|
10 |
-
HTTP message interaction (e.g., `GuzzleHttp\Message\Request`) need to be
|
11 |
-
updated to work with the new immutable PSR-7 request and response objects. Any
|
12 |
-
event listeners or subscribers need to be updated to become middleware
|
13 |
-
functions that wrap handlers (or are injected into a
|
14 |
-
`GuzzleHttp\HandlerStack`).
|
15 |
-
|
16 |
-
- Removed `GuzzleHttp\BatchResults`
|
17 |
-
- Removed `GuzzleHttp\Collection`
|
18 |
-
- Removed `GuzzleHttp\HasDataTrait`
|
19 |
-
- Removed `GuzzleHttp\ToArrayInterface`
|
20 |
-
- The `guzzlehttp/streams` dependency has been removed. Stream functionality
|
21 |
-
is now present in the `GuzzleHttp\Psr7` namespace provided by the
|
22 |
-
`guzzlehttp/psr7` package.
|
23 |
-
- Guzzle no longer uses ReactPHP promises and now uses the
|
24 |
-
`guzzlehttp/promises` library. We use a custom promise library for three
|
25 |
-
significant reasons:
|
26 |
-
1. React promises (at the time of writing this) are recursive. Promise
|
27 |
-
chaining and promise resolution will eventually blow the stack. Guzzle
|
28 |
-
promises are not recursive as they use a sort of trampolining technique.
|
29 |
-
Note: there has been movement in the React project to modify promises to
|
30 |
-
no longer utilize recursion.
|
31 |
-
2. Guzzle needs to have the ability to synchronously block on a promise to
|
32 |
-
wait for a result. Guzzle promises allows this functionality (and does
|
33 |
-
not require the use of recursion).
|
34 |
-
3. Because we need to be able to wait on a result, doing so using React
|
35 |
-
promises requires wrapping react promises with RingPHP futures. This
|
36 |
-
overhead is no longer needed, reducing stack sizes, reducing complexity,
|
37 |
-
and improving performance.
|
38 |
-
- `GuzzleHttp\Mimetypes` has been moved to a function in
|
39 |
-
`GuzzleHttp\Psr7\mimetype_from_extension` and
|
40 |
-
`GuzzleHttp\Psr7\mimetype_from_filename`.
|
41 |
-
- `GuzzleHttp\Query` and `GuzzleHttp\QueryParser` have been removed. Query
|
42 |
-
strings must now be passed into request objects as strings, or provided to
|
43 |
-
the `query` request option when creating requests with clients. The `query`
|
44 |
-
option uses PHP's `http_build_query` to convert an array to a string. If you
|
45 |
-
need a different serialization technique, you will need to pass the query
|
46 |
-
string in as a string. There are a couple helper functions that will make
|
47 |
-
working with query strings easier: `GuzzleHttp\Psr7\parse_query` and
|
48 |
-
`GuzzleHttp\Psr7\build_query`.
|
49 |
-
- Guzzle no longer has a dependency on RingPHP. Due to the use of a middleware
|
50 |
-
system based on PSR-7, using RingPHP and it's middleware system as well adds
|
51 |
-
more complexity than the benefits it provides. All HTTP handlers that were
|
52 |
-
present in RingPHP have been modified to work directly with PSR-7 messages
|
53 |
-
and placed in the `GuzzleHttp\Handler` namespace. This significantly reduces
|
54 |
-
complexity in Guzzle, removes a dependency, and improves performance. RingPHP
|
55 |
-
will be maintained for Guzzle 5 support, but will no longer be a part of
|
56 |
-
Guzzle 6.
|
57 |
-
- As Guzzle now uses a middleware based systems the event system and RingPHP
|
58 |
-
integration has been removed. Note: while the event system has been removed,
|
59 |
-
it is possible to add your own type of event system that is powered by the
|
60 |
-
middleware system.
|
61 |
-
- Removed the `Event` namespace.
|
62 |
-
- Removed the `Subscriber` namespace.
|
63 |
-
- Removed `Transaction` class
|
64 |
-
- Removed `RequestFsm`
|
65 |
-
- Removed `RingBridge`
|
66 |
-
- `GuzzleHttp\Subscriber\Cookie` is now provided by
|
67 |
-
`GuzzleHttp\Middleware::cookies`
|
68 |
-
- `GuzzleHttp\Subscriber\HttpError` is now provided by
|
69 |
-
`GuzzleHttp\Middleware::httpError`
|
70 |
-
- `GuzzleHttp\Subscriber\History` is now provided by
|
71 |
-
`GuzzleHttp\Middleware::history`
|
72 |
-
- `GuzzleHttp\Subscriber\Mock` is now provided by
|
73 |
-
`GuzzleHttp\Handler\MockHandler`
|
74 |
-
- `GuzzleHttp\Subscriber\Prepare` is now provided by
|
75 |
-
`GuzzleHttp\PrepareBodyMiddleware`
|
76 |
-
- `GuzzleHttp\Subscriber\Redirect` is now provided by
|
77 |
-
`GuzzleHttp\RedirectMiddleware`
|
78 |
-
- Guzzle now uses `Psr\Http\Message\UriInterface` (implements in
|
79 |
-
`GuzzleHttp\Psr7\Uri`) for URI support. `GuzzleHttp\Url` is now gone.
|
80 |
-
- Static functions in `GuzzleHttp\Utils` have been moved to namespaced
|
81 |
-
functions under the `GuzzleHttp` namespace. This requires either a Composer
|
82 |
-
based autoloader or you to include functions.php.
|
83 |
-
- `GuzzleHttp\ClientInterface::getDefaultOption` has been renamed to
|
84 |
-
`GuzzleHttp\ClientInterface::getConfig`.
|
85 |
-
- `GuzzleHttp\ClientInterface::setDefaultOption` has been removed.
|
86 |
-
- The `json` and `xml` methods of response objects has been removed. With the
|
87 |
-
migration to strictly adhering to PSR-7 as the interface for Guzzle messages,
|
88 |
-
adding methods to message interfaces would actually require Guzzle messages
|
89 |
-
to extend from PSR-7 messages rather then work with them directly.
|
90 |
-
|
91 |
-
## Migrating to middleware
|
92 |
-
|
93 |
-
The change to PSR-7 unfortunately required significant refactoring to Guzzle
|
94 |
-
due to the fact that PSR-7 messages are immutable. Guzzle 5 relied on an event
|
95 |
-
system from plugins. The event system relied on mutability of HTTP messages and
|
96 |
-
side effects in order to work. With immutable messages, you have to change your
|
97 |
-
workflow to become more about either returning a value (e.g., functional
|
98 |
-
middlewares) or setting a value on an object. Guzzle v6 has chosen the
|
99 |
-
functional middleware approach.
|
100 |
-
|
101 |
-
Instead of using the event system to listen for things like the `before` event,
|
102 |
-
you now create a stack based middleware function that intercepts a request on
|
103 |
-
the way in and the promise of the response on the way out. This is a much
|
104 |
-
simpler and more predictable approach than the event system and works nicely
|
105 |
-
with PSR-7 middleware. Due to the use of promises, the middleware system is
|
106 |
-
also asynchronous.
|
107 |
-
|
108 |
-
v5:
|
109 |
-
|
110 |
-
```php
|
111 |
-
use GuzzleHttp\Event\BeforeEvent;
|
112 |
-
$client = new GuzzleHttp\Client();
|
113 |
-
// Get the emitter and listen to the before event.
|
114 |
-
$client->getEmitter()->on('before', function (BeforeEvent $e) {
|
115 |
-
// Guzzle v5 events relied on mutation
|
116 |
-
$e->getRequest()->setHeader('X-Foo', 'Bar');
|
117 |
-
});
|
118 |
-
```
|
119 |
-
|
120 |
-
v6:
|
121 |
-
|
122 |
-
In v6, you can modify the request before it is sent using the `mapRequest`
|
123 |
-
middleware. The idiomatic way in v6 to modify the request/response lifecycle is
|
124 |
-
to setup a handler middleware stack up front and inject the handler into a
|
125 |
-
client.
|
126 |
-
|
127 |
-
```php
|
128 |
-
use GuzzleHttp\Middleware;
|
129 |
-
// Create a handler stack that has all of the default middlewares attached
|
130 |
-
$handler = GuzzleHttp\HandlerStack::create();
|
131 |
-
// Push the handler onto the handler stack
|
132 |
-
$handler->push(Middleware::mapRequest(function (RequestInterface $request) {
|
133 |
-
// Notice that we have to return a request object
|
134 |
-
return $request->withHeader('X-Foo', 'Bar');
|
135 |
-
}));
|
136 |
-
// Inject the handler into the client
|
137 |
-
$client = new GuzzleHttp\Client(['handler' => $handler]);
|
138 |
-
```
|
139 |
-
|
140 |
-
## POST Requests
|
141 |
-
|
142 |
-
This version added the [`form_params`](http://guzzle.readthedocs.org/en/latest/request-options.html#form_params)
|
143 |
-
and `multipart` request options. `form_params` is an associative array of
|
144 |
-
strings or array of strings and is used to serialize an
|
145 |
-
`application/x-www-form-urlencoded` POST request. The
|
146 |
-
[`multipart`](http://guzzle.readthedocs.org/en/latest/request-options.html#multipart)
|
147 |
-
option is now used to send a multipart/form-data POST request.
|
148 |
-
|
149 |
-
`GuzzleHttp\Post\PostFile` has been removed. Use the `multipart` option to add
|
150 |
-
POST files to a multipart/form-data request.
|
151 |
-
|
152 |
-
The `body` option no longer accepts an array to send POST requests. Please use
|
153 |
-
`multipart` or `form_params` instead.
|
154 |
-
|
155 |
-
The `base_url` option has been renamed to `base_uri`.
|
156 |
-
|
157 |
-
4.x to 5.0
|
158 |
-
----------
|
159 |
-
|
160 |
-
## Rewritten Adapter Layer
|
161 |
-
|
162 |
-
Guzzle now uses [RingPHP](http://ringphp.readthedocs.org/en/latest) to send
|
163 |
-
HTTP requests. The `adapter` option in a `GuzzleHttp\Client` constructor
|
164 |
-
is still supported, but it has now been renamed to `handler`. Instead of
|
165 |
-
passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP
|
166 |
-
`callable` that follows the RingPHP specification.
|
167 |
-
|
168 |
-
## Removed Fluent Interfaces
|
169 |
-
|
170 |
-
[Fluent interfaces were removed](http://ocramius.github.io/blog/fluent-interfaces-are-evil)
|
171 |
-
from the following classes:
|
172 |
-
|
173 |
-
- `GuzzleHttp\Collection`
|
174 |
-
- `GuzzleHttp\Url`
|
175 |
-
- `GuzzleHttp\Query`
|
176 |
-
- `GuzzleHttp\Post\PostBody`
|
177 |
-
- `GuzzleHttp\Cookie\SetCookie`
|
178 |
-
|
179 |
-
## Removed functions.php
|
180 |
-
|
181 |
-
Removed "functions.php", so that Guzzle is truly PSR-4 compliant. The following
|
182 |
-
functions can be used as replacements.
|
183 |
-
|
184 |
-
- `GuzzleHttp\json_decode` -> `GuzzleHttp\Utils::jsonDecode`
|
185 |
-
- `GuzzleHttp\get_path` -> `GuzzleHttp\Utils::getPath`
|
186 |
-
- `GuzzleHttp\Utils::setPath` -> `GuzzleHttp\set_path`
|
187 |
-
- `GuzzleHttp\Pool::batch` -> `GuzzleHttp\batch`. This function is, however,
|
188 |
-
deprecated in favor of using `GuzzleHttp\Pool::batch()`.
|
189 |
-
|
190 |
-
The "procedural" global client has been removed with no replacement (e.g.,
|
191 |
-
`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttp\Client`
|
192 |
-
object as a replacement.
|
193 |
-
|
194 |
-
## `throwImmediately` has been removed
|
195 |
-
|
196 |
-
The concept of "throwImmediately" has been removed from exceptions and error
|
197 |
-
events. This control mechanism was used to stop a transfer of concurrent
|
198 |
-
requests from completing. This can now be handled by throwing the exception or
|
199 |
-
by cancelling a pool of requests or each outstanding future request
|
200 |
-
individually.
|
201 |
-
|
202 |
-
## headers event has been removed
|
203 |
-
|
204 |
-
Removed the "headers" event. This event was only useful for changing the
|
205 |
-
body a response once the headers of the response were known. You can implement
|
206 |
-
a similar behavior in a number of ways. One example might be to use a
|
207 |
-
FnStream that has access to the transaction being sent. For example, when the
|
208 |
-
first byte is written, you could check if the response headers match your
|
209 |
-
expectations, and if so, change the actual stream body that is being
|
210 |
-
written to.
|
211 |
-
|
212 |
-
## Updates to HTTP Messages
|
213 |
-
|
214 |
-
Removed the `asArray` parameter from
|
215 |
-
`GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
|
216 |
-
value as an array, then use the newly added `getHeaderAsArray()` method of
|
217 |
-
`MessageInterface`. This change makes the Guzzle interfaces compatible with
|
218 |
-
the PSR-7 interfaces.
|
219 |
-
|
220 |
-
3.x to 4.0
|
221 |
-
----------
|
222 |
-
|
223 |
-
## Overarching changes:
|
224 |
-
|
225 |
-
- Now requires PHP 5.4 or greater.
|
226 |
-
- No longer requires cURL to send requests.
|
227 |
-
- Guzzle no longer wraps every exception it throws. Only exceptions that are
|
228 |
-
recoverable are now wrapped by Guzzle.
|
229 |
-
- Various namespaces have been removed or renamed.
|
230 |
-
- No longer requiring the Symfony EventDispatcher. A custom event dispatcher
|
231 |
-
based on the Symfony EventDispatcher is
|
232 |
-
now utilized in `GuzzleHttp\Event\EmitterInterface` (resulting in significant
|
233 |
-
speed and functionality improvements).
|
234 |
-
|
235 |
-
Changes per Guzzle 3.x namespace are described below.
|
236 |
-
|
237 |
-
## Batch
|
238 |
-
|
239 |
-
The `Guzzle\Batch` namespace has been removed. This is best left to
|
240 |
-
third-parties to implement on top of Guzzle's core HTTP library.
|
241 |
-
|
242 |
-
## Cache
|
243 |
-
|
244 |
-
The `Guzzle\Cache` namespace has been removed. (Todo: No suitable replacement
|
245 |
-
has been implemented yet, but hoping to utilize a PSR cache interface).
|
246 |
-
|
247 |
-
## Common
|
248 |
-
|
249 |
-
- Removed all of the wrapped exceptions. It's better to use the standard PHP
|
250 |
-
library for unrecoverable exceptions.
|
251 |
-
- `FromConfigInterface` has been removed.
|
252 |
-
- `Guzzle\Common\Version` has been removed. The VERSION constant can be found
|
253 |
-
at `GuzzleHttp\ClientInterface::VERSION`.
|
254 |
-
|
255 |
-
### Collection
|
256 |
-
|
257 |
-
- `getAll` has been removed. Use `toArray` to convert a collection to an array.
|
258 |
-
- `inject` has been removed.
|
259 |
-
- `keySearch` has been removed.
|
260 |
-
- `getPath` no longer supports wildcard expressions. Use something better like
|
261 |
-
JMESPath for this.
|
262 |
-
- `setPath` now supports appending to an existing array via the `[]` notation.
|
263 |
-
|
264 |
-
### Events
|
265 |
-
|
266 |
-
Guzzle no longer requires Symfony's EventDispatcher component. Guzzle now uses
|
267 |
-
`GuzzleHttp\Event\Emitter`.
|
268 |
-
|
269 |
-
- `Symfony\Component\EventDispatcher\EventDispatcherInterface` is replaced by
|
270 |
-
`GuzzleHttp\Event\EmitterInterface`.
|
271 |
-
- `Symfony\Component\EventDispatcher\EventDispatcher` is replaced by
|
272 |
-
`GuzzleHttp\Event\Emitter`.
|
273 |
-
- `Symfony\Component\EventDispatcher\Event` is replaced by
|
274 |
-
`GuzzleHttp\Event\Event`, and Guzzle now has an EventInterface in
|
275 |
-
`GuzzleHttp\Event\EventInterface`.
|
276 |
-
- `AbstractHasDispatcher` has moved to a trait, `HasEmitterTrait`, and
|
277 |
-
`HasDispatcherInterface` has moved to `HasEmitterInterface`. Retrieving the
|
278 |
-
event emitter of a request, client, etc. now uses the `getEmitter` method
|
279 |
-
rather than the `getDispatcher` method.
|
280 |
-
|
281 |
-
#### Emitter
|
282 |
-
|
283 |
-
- Use the `once()` method to add a listener that automatically removes itself
|
284 |
-
the first time it is invoked.
|
285 |
-
- Use the `listeners()` method to retrieve a list of event listeners rather than
|
286 |
-
the `getListeners()` method.
|
287 |
-
- Use `emit()` instead of `dispatch()` to emit an event from an emitter.
|
288 |
-
- Use `attach()` instead of `addSubscriber()` and `detach()` instead of
|
289 |
-
`removeSubscriber()`.
|
290 |
-
|
291 |
-
```php
|
292 |
-
$mock = new Mock();
|
293 |
-
// 3.x
|
294 |
-
$request->getEventDispatcher()->addSubscriber($mock);
|
295 |
-
$request->getEventDispatcher()->removeSubscriber($mock);
|
296 |
-
// 4.x
|
297 |
-
$request->getEmitter()->attach($mock);
|
298 |
-
$request->getEmitter()->detach($mock);
|
299 |
-
```
|
300 |
-
|
301 |
-
Use the `on()` method to add a listener rather than the `addListener()` method.
|
302 |
-
|
303 |
-
```php
|
304 |
-
// 3.x
|
305 |
-
$request->getEventDispatcher()->addListener('foo', function (Event $event) { /* ... */ } );
|
306 |
-
// 4.x
|
307 |
-
$request->getEmitter()->on('foo', function (Event $event, $name) { /* ... */ } );
|
308 |
-
```
|
309 |
-
|
310 |
-
## Http
|
311 |
-
|
312 |
-
### General changes
|
313 |
-
|
314 |
-
- The cacert.pem certificate has been moved to `src/cacert.pem`.
|
315 |
-
- Added the concept of adapters that are used to transfer requests over the
|
316 |
-
wire.
|
317 |
-
- Simplified the event system.
|
318 |
-
- Sending requests in parallel is still possible, but batching is no longer a
|
319 |
-
concept of the HTTP layer. Instead, you must use the `complete` and `error`
|
320 |
-
events to asynchronously manage parallel request transfers.
|
321 |
-
- `Guzzle\Http\Url` has moved to `GuzzleHttp\Url`.
|
322 |
-
- `Guzzle\Http\QueryString` has moved to `GuzzleHttp\Query`.
|
323 |
-
- QueryAggregators have been rewritten so that they are simply callable
|
324 |
-
functions.
|
325 |
-
- `GuzzleHttp\StaticClient` has been removed. Use the functions provided in
|
326 |
-
`functions.php` for an easy to use static client instance.
|
327 |
-
- Exceptions in `GuzzleHttp\Exception` have been updated to all extend from
|
328 |
-
`GuzzleHttp\Exception\TransferException`.
|
329 |
-
|
330 |
-
### Client
|
331 |
-
|
332 |
-
Calling methods like `get()`, `post()`, `head()`, etc. no longer create and
|
333 |
-
return a request, but rather creates a request, sends the request, and returns
|
334 |
-
the response.
|
335 |
-
|
336 |
-
```php
|
337 |
-
// 3.0
|
338 |
-
$request = $client->get('/');
|
339 |
-
$response = $request->send();
|
340 |
-
|
341 |
-
// 4.0
|
342 |
-
$response = $client->get('/');
|
343 |
-
|
344 |
-
// or, to mirror the previous behavior
|
345 |
-
$request = $client->createRequest('GET', '/');
|
346 |
-
$response = $client->send($request);
|
347 |
-
```
|
348 |
-
|
349 |
-
`GuzzleHttp\ClientInterface` has changed.
|
350 |
-
|
351 |
-
- The `send` method no longer accepts more than one request. Use `sendAll` to
|
352 |
-
send multiple requests in parallel.
|
353 |
-
- `setUserAgent()` has been removed. Use a default request option instead. You
|
354 |
-
could, for example, do something like:
|
355 |
-
`$client->setConfig('defaults/headers/User-Agent', 'Foo/Bar ' . $client::getDefaultUserAgent())`.
|
356 |
-
- `setSslVerification()` has been removed. Use default request options instead,
|
357 |
-
like `$client->setConfig('defaults/verify', true)`.
|
358 |
-
|
359 |
-
`GuzzleHttp\Client` has changed.
|
360 |
-
|
361 |
-
- The constructor now accepts only an associative array. You can include a
|
362 |
-
`base_url` string or array to use a URI template as the base URL of a client.
|
363 |
-
You can also specify a `defaults` key that is an associative array of default
|
364 |
-
request options. You can pass an `adapter` to use a custom adapter,
|
365 |
-
`batch_adapter` to use a custom adapter for sending requests in parallel, or
|
366 |
-
a `message_factory` to change the factory used to create HTTP requests and
|
367 |
-
responses.
|
368 |
-
- The client no longer emits a `client.create_request` event.
|
369 |
-
- Creating requests with a client no longer automatically utilize a URI
|
370 |
-
template. You must pass an array into a creational method (e.g.,
|
371 |
-
`createRequest`, `get`, `put`, etc.) in order to expand a URI template.
|
372 |
-
|
373 |
-
### Messages
|
374 |
-
|
375 |
-
Messages no longer have references to their counterparts (i.e., a request no
|
376 |
-
longer has a reference to it's response, and a response no loger has a
|
377 |
-
reference to its request). This association is now managed through a
|
378 |
-
`GuzzleHttp\Adapter\TransactionInterface` object. You can get references to
|
379 |
-
these transaction objects using request events that are emitted over the
|
380 |
-
lifecycle of a request.
|
381 |
-
|
382 |
-
#### Requests with a body
|
383 |
-
|
384 |
-
- `GuzzleHttp\Message\EntityEnclosingRequest` and
|
385 |
-
`GuzzleHttp\Message\EntityEnclosingRequestInterface` have been removed. The
|
386 |
-
separation between requests that contain a body and requests that do not
|
387 |
-
contain a body has been removed, and now `GuzzleHttp\Message\RequestInterface`
|
388 |
-
handles both use cases.
|
389 |
-
- Any method that previously accepts a `GuzzleHttp\Response` object now accept a
|
390 |
-
`GuzzleHttp\Message\ResponseInterface`.
|
391 |
-
- `GuzzleHttp\Message\RequestFactoryInterface` has been renamed to
|
392 |
-
`GuzzleHttp\Message\MessageFactoryInterface`. This interface is used to create
|
393 |
-
both requests and responses and is implemented in
|
394 |
-
`GuzzleHttp\Message\MessageFactory`.
|
395 |
-
- POST field and file methods have been removed from the request object. You
|
396 |
-
must now use the methods made available to `GuzzleHttp\Post\PostBodyInterface`
|
397 |
-
to control the format of a POST body. Requests that are created using a
|
398 |
-
standard `GuzzleHttp\Message\MessageFactoryInterface` will automatically use
|
399 |
-
a `GuzzleHttp\Post\PostBody` body if the body was passed as an array or if
|
400 |
-
the method is POST and no body is provided.
|
401 |
-
|
402 |
-
```php
|
403 |
-
$request = $client->createRequest('POST', '/');
|
404 |
-
$request->getBody()->setField('foo', 'bar');
|
405 |
-
$request->getBody()->addFile(new PostFile('file_key', fopen('/path/to/content', 'r')));
|
406 |
-
```
|
407 |
-
|
408 |
-
#### Headers
|
409 |
-
|
410 |
-
- `GuzzleHttp\Message\Header` has been removed. Header values are now simply
|
411 |
-
represented by an array of values or as a string. Header values are returned
|
412 |
-
as a string by default when retrieving a header value from a message. You can
|
413 |
-
pass an optional argument of `true` to retrieve a header value as an array
|
414 |
-
of strings instead of a single concatenated string.
|
415 |
-
- `GuzzleHttp\PostFile` and `GuzzleHttp\PostFileInterface` have been moved to
|
416 |
-
`GuzzleHttp\Post`. This interface has been simplified and now allows the
|
417 |
-
addition of arbitrary headers.
|
418 |
-
- Custom headers like `GuzzleHttp\Message\Header\Link` have been removed. Most
|
419 |
-
of the custom headers are now handled separately in specific
|
420 |
-
subscribers/plugins, and `GuzzleHttp\Message\HeaderValues::parseParams()` has
|
421 |
-
been updated to properly handle headers that contain parameters (like the
|
422 |
-
`Link` header).
|
423 |
-
|
424 |
-
#### Responses
|
425 |
-
|
426 |
-
- `GuzzleHttp\Message\Response::getInfo()` and
|
427 |
-
`GuzzleHttp\Message\Response::setInfo()` have been removed. Use the event
|
428 |
-
system to retrieve this type of information.
|
429 |
-
- `GuzzleHttp\Message\Response::getRawHeaders()` has been removed.
|
430 |
-
- `GuzzleHttp\Message\Response::getMessage()` has been removed.
|
431 |
-
- `GuzzleHttp\Message\Response::calculateAge()` and other cache specific
|
432 |
-
methods have moved to the CacheSubscriber.
|
433 |
-
- Header specific helper functions like `getContentMd5()` have been removed.
|
434 |
-
Just use `getHeader('Content-MD5')` instead.
|
435 |
-
- `GuzzleHttp\Message\Response::setRequest()` and
|
436 |
-
`GuzzleHttp\Message\Response::getRequest()` have been removed. Use the event
|
437 |
-
system to work with request and response objects as a transaction.
|
438 |
-
- `GuzzleHttp\Message\Response::getRedirectCount()` has been removed. Use the
|
439 |
-
Redirect subscriber instead.
|
440 |
-
- `GuzzleHttp\Message\Response::isSuccessful()` and other related methods have
|
441 |
-
been removed. Use `getStatusCode()` instead.
|
442 |
-
|
443 |
-
#### Streaming responses
|
444 |
-
|
445 |
-
Streaming requests can now be created by a client directly, returning a
|
446 |
-
`GuzzleHttp\Message\ResponseInterface` object that contains a body stream
|
447 |
-
referencing an open PHP HTTP stream.
|
448 |
-
|
449 |
-
```php
|
450 |
-
// 3.0
|
451 |
-
use Guzzle\Stream\PhpStreamRequestFactory;
|
452 |
-
$request = $client->get('/');
|
453 |
-
$factory = new PhpStreamRequestFactory();
|
454 |
-
$stream = $factory->fromRequest($request);
|
455 |
-
$data = $stream->read(1024);
|
456 |
-
|
457 |
-
// 4.0
|
458 |
-
$response = $client->get('/', ['stream' => true]);
|
459 |
-
// Read some data off of the stream in the response body
|
460 |
-
$data = $response->getBody()->read(1024);
|
461 |
-
```
|
462 |
-
|
463 |
-
#### Redirects
|
464 |
-
|
465 |
-
The `configureRedirects()` method has been removed in favor of a
|
466 |
-
`allow_redirects` request option.
|
467 |
-
|
468 |
-
```php
|
469 |
-
// Standard redirects with a default of a max of 5 redirects
|
470 |
-
$request = $client->createRequest('GET', '/', ['allow_redirects' => true]);
|
471 |
-
|
472 |
-
// Strict redirects with a custom number of redirects
|
473 |
-
$request = $client->createRequest('GET', '/', [
|
474 |
-
'allow_redirects' => ['max' => 5, 'strict' => true]
|
475 |
-
]);
|
476 |
-
```
|
477 |
-
|
478 |
-
#### EntityBody
|
479 |
-
|
480 |
-
EntityBody interfaces and classes have been removed or moved to
|
481 |
-
`GuzzleHttp\Stream`. All classes and interfaces that once required
|
482 |
-
`GuzzleHttp\EntityBodyInterface` now require
|
483 |
-
`GuzzleHttp\Stream\StreamInterface`. Creating a new body for a request no
|
484 |
-
longer uses `GuzzleHttp\EntityBody::factory` but now uses
|
485 |
-
`GuzzleHttp\Stream\Stream::factory` or even better:
|
486 |
-
`GuzzleHttp\Stream\create()`.
|
487 |
-
|
488 |
-
- `Guzzle\Http\EntityBodyInterface` is now `GuzzleHttp\Stream\StreamInterface`
|
489 |
-
- `Guzzle\Http\EntityBody` is now `GuzzleHttp\Stream\Stream`
|
490 |
-
- `Guzzle\Http\CachingEntityBody` is now `GuzzleHttp\Stream\CachingStream`
|
491 |
-
- `Guzzle\Http\ReadLimitEntityBody` is now `GuzzleHttp\Stream\LimitStream`
|
492 |
-
- `Guzzle\Http\IoEmittyinEntityBody` has been removed.
|
493 |
-
|
494 |
-
#### Request lifecycle events
|
495 |
-
|
496 |
-
Requests previously submitted a large number of requests. The number of events
|
497 |
-
emitted over the lifecycle of a request has been significantly reduced to make
|
498 |
-
it easier to understand how to extend the behavior of a request. All events
|
499 |
-
emitted during the lifecycle of a request now emit a custom
|
500 |
-
`GuzzleHttp\Event\EventInterface` object that contains context providing
|
501 |
-
methods and a way in which to modify the transaction at that specific point in
|
502 |
-
time (e.g., intercept the request and set a response on the transaction).
|
503 |
-
|
504 |
-
- `request.before_send` has been renamed to `before` and now emits a
|
505 |
-
`GuzzleHttp\Event\BeforeEvent`
|
506 |
-
- `request.complete` has been renamed to `complete` and now emits a
|
507 |
-
`GuzzleHttp\Event\CompleteEvent`.
|
508 |
-
- `request.sent` has been removed. Use `complete`.
|
509 |
-
- `request.success` has been removed. Use `complete`.
|
510 |
-
- `error` is now an event that emits a `GuzzleHttp\Event\ErrorEvent`.
|
511 |
-
- `request.exception` has been removed. Use `error`.
|
512 |
-
- `request.receive.status_line` has been removed.
|
513 |
-
- `curl.callback.progress` has been removed. Use a custom `StreamInterface` to
|
514 |
-
maintain a status update.
|
515 |
-
- `curl.callback.write` has been removed. Use a custom `StreamInterface` to
|
516 |
-
intercept writes.
|
517 |
-
- `curl.callback.read` has been removed. Use a custom `StreamInterface` to
|
518 |
-
intercept reads.
|
519 |
-
|
520 |
-
`headers` is a new event that is emitted after the response headers of a
|
521 |
-
request have been received before the body of the response is downloaded. This
|
522 |
-
event emits a `GuzzleHttp\Event\HeadersEvent`.
|
523 |
-
|
524 |
-
You can intercept a request and inject a response using the `intercept()` event
|
525 |
-
of a `GuzzleHttp\Event\BeforeEvent`, `GuzzleHttp\Event\CompleteEvent`, and
|
526 |
-
`GuzzleHttp\Event\ErrorEvent` event.
|
527 |
-
|
528 |
-
See: http://docs.guzzlephp.org/en/latest/events.html
|
529 |
-
|
530 |
-
## Inflection
|
531 |
-
|
532 |
-
The `Guzzle\Inflection` namespace has been removed. This is not a core concern
|
533 |
-
of Guzzle.
|
534 |
-
|
535 |
-
## Iterator
|
536 |
-
|
537 |
-
The `Guzzle\Iterator` namespace has been removed.
|
538 |
-
|
539 |
-
- `Guzzle\Iterator\AppendIterator`, `Guzzle\Iterator\ChunkedIterator`, and
|
540 |
-
`Guzzle\Iterator\MethodProxyIterator` are nice, but not a core requirement of
|
541 |
-
Guzzle itself.
|
542 |
-
- `Guzzle\Iterator\FilterIterator` is no longer needed because an equivalent
|
543 |
-
class is shipped with PHP 5.4.
|
544 |
-
- `Guzzle\Iterator\MapIterator` is not really needed when using PHP 5.5 because
|
545 |
-
it's easier to just wrap an iterator in a generator that maps values.
|
546 |
-
|
547 |
-
For a replacement of these iterators, see https://github.com/nikic/iter
|
548 |
-
|
549 |
-
## Log
|
550 |
-
|
551 |
-
The LogPlugin has moved to https://github.com/guzzle/log-subscriber. The
|
552 |
-
`Guzzle\Log` namespace has been removed. Guzzle now relies on
|
553 |
-
`Psr\Log\LoggerInterface` for all logging. The MessageFormatter class has been
|
554 |
-
moved to `GuzzleHttp\Subscriber\Log\Formatter`.
|
555 |
-
|
556 |
-
## Parser
|
557 |
-
|
558 |
-
The `Guzzle\Parser` namespace has been removed. This was previously used to
|
559 |
-
make it possible to plug in custom parsers for cookies, messages, URI
|
560 |
-
templates, and URLs; however, this level of complexity is not needed in Guzzle
|
561 |
-
so it has been removed.
|
562 |
-
|
563 |
-
- Cookie: Cookie parsing logic has been moved to
|
564 |
-
`GuzzleHttp\Cookie\SetCookie::fromString`.
|
565 |
-
- Message: Message parsing logic for both requests and responses has been moved
|
566 |
-
to `GuzzleHttp\Message\MessageFactory::fromMessage`. Message parsing is only
|
567 |
-
used in debugging or deserializing messages, so it doesn't make sense for
|
568 |
-
Guzzle as a library to add this level of complexity to parsing messages.
|
569 |
-
- UriTemplate: URI template parsing has been moved to
|
570 |
-
`GuzzleHttp\UriTemplate`. The Guzzle library will automatically use the PECL
|
571 |
-
URI template library if it is installed.
|
572 |
-
- Url: URL parsing is now performed in `GuzzleHttp\Url::fromString` (previously
|
573 |
-
it was `Guzzle\Http\Url::factory()`). If custom URL parsing is necessary,
|
574 |
-
then developers are free to subclass `GuzzleHttp\Url`.
|
575 |
-
|
576 |
-
## Plugin
|
577 |
-
|
578 |
-
The `Guzzle\Plugin` namespace has been renamed to `GuzzleHttp\Subscriber`.
|
579 |
-
Several plugins are shipping with the core Guzzle library under this namespace.
|
580 |
-
|
581 |
-
- `GuzzleHttp\Subscriber\Cookie`: Replaces the old CookiePlugin. Cookie jar
|
582 |
-
code has moved to `GuzzleHttp\Cookie`.
|
583 |
-
- `GuzzleHttp\Subscriber\History`: Replaces the old HistoryPlugin.
|
584 |
-
- `GuzzleHttp\Subscriber\HttpError`: Throws errors when a bad HTTP response is
|
585 |
-
received.
|
586 |
-
- `GuzzleHttp\Subscriber\Mock`: Replaces the old MockPlugin.
|
587 |
-
- `GuzzleHttp\Subscriber\Prepare`: Prepares the body of a request just before
|
588 |
-
sending. This subscriber is attached to all requests by default.
|
589 |
-
- `GuzzleHttp\Subscriber\Redirect`: Replaces the RedirectPlugin.
|
590 |
-
|
591 |
-
The following plugins have been removed (third-parties are free to re-implement
|
592 |
-
these if needed):
|
593 |
-
|
594 |
-
- `GuzzleHttp\Plugin\Async` has been removed.
|
595 |
-
- `GuzzleHttp\Plugin\CurlAuth` has been removed.
|
596 |
-
- `GuzzleHttp\Plugin\ErrorResponse\ErrorResponsePlugin` has been removed. This
|
597 |
-
functionality should instead be implemented with event listeners that occur
|
598 |
-
after normal response parsing occurs in the guzzle/command package.
|
599 |
-
|
600 |
-
The following plugins are not part of the core Guzzle package, but are provided
|
601 |
-
in separate repositories:
|
602 |
-
|
603 |
-
- `Guzzle\Http\Plugin\BackoffPlugin` has been rewritten to be much simpler
|
604 |
-
to build custom retry policies using simple functions rather than various
|
605 |
-
chained classes. See: https://github.com/guzzle/retry-subscriber
|
606 |
-
- `Guzzle\Http\Plugin\Cache\CachePlugin` has moved to
|
607 |
-
https://github.com/guzzle/cache-subscriber
|
608 |
-
- `Guzzle\Http\Plugin\Log\LogPlugin` has moved to
|
609 |
-
https://github.com/guzzle/log-subscriber
|
610 |
-
- `Guzzle\Http\Plugin\Md5\Md5Plugin` has moved to
|
611 |
-
https://github.com/guzzle/message-integrity-subscriber
|
612 |
-
- `Guzzle\Http\Plugin\Mock\MockPlugin` has moved to
|
613 |
-
`GuzzleHttp\Subscriber\MockSubscriber`.
|
614 |
-
- `Guzzle\Http\Plugin\Oauth\OauthPlugin` has moved to
|
615 |
-
https://github.com/guzzle/oauth-subscriber
|
616 |
-
|
617 |
-
## Service
|
618 |
-
|
619 |
-
The service description layer of Guzzle has moved into two separate packages:
|
620 |
-
|
621 |
-
- http://github.com/guzzle/command Provides a high level abstraction over web
|
622 |
-
services by representing web service operations using commands.
|
623 |
-
- http://github.com/guzzle/guzzle-services Provides an implementation of
|
624 |
-
guzzle/command that provides request serialization and response parsing using
|
625 |
-
Guzzle service descriptions.
|
626 |
-
|
627 |
-
## Stream
|
628 |
-
|
629 |
-
Stream have moved to a separate package available at
|
630 |
-
https://github.com/guzzle/streams.
|
631 |
-
|
632 |
-
`Guzzle\Stream\StreamInterface` has been given a large update to cleanly take
|
633 |
-
on the responsibilities of `Guzzle\Http\EntityBody` and
|
634 |
-
`Guzzle\Http\EntityBodyInterface` now that they have been removed. The number
|
635 |
-
of methods implemented by the `StreamInterface` has been drastically reduced to
|
636 |
-
allow developers to more easily extend and decorate stream behavior.
|
637 |
-
|
638 |
-
## Removed methods from StreamInterface
|
639 |
-
|
640 |
-
- `getStream` and `setStream` have been removed to better encapsulate streams.
|
641 |
-
- `getMetadata` and `setMetadata` have been removed in favor of
|
642 |
-
`GuzzleHttp\Stream\MetadataStreamInterface`.
|
643 |
-
- `getWrapper`, `getWrapperData`, `getStreamType`, and `getUri` have all been
|
644 |
-
removed. This data is accessible when
|
645 |
-
using streams that implement `GuzzleHttp\Stream\MetadataStreamInterface`.
|
646 |
-
- `rewind` has been removed. Use `seek(0)` for a similar behavior.
|
647 |
-
|
648 |
-
## Renamed methods
|
649 |
-
|
650 |
-
- `detachStream` has been renamed to `detach`.
|
651 |
-
- `feof` has been renamed to `eof`.
|
652 |
-
- `ftell` has been renamed to `tell`.
|
653 |
-
- `readLine` has moved from an instance method to a static class method of
|
654 |
-
`GuzzleHttp\Stream\Stream`.
|
655 |
-
|
656 |
-
## Metadata streams
|
657 |
-
|
658 |
-
`GuzzleHttp\Stream\MetadataStreamInterface` has been added to denote streams
|
659 |
-
that contain additional metadata accessible via `getMetadata()`.
|
660 |
-
`GuzzleHttp\Stream\StreamInterface::getMetadata` and
|
661 |
-
`GuzzleHttp\Stream\StreamInterface::setMetadata` have been removed.
|
662 |
-
|
663 |
-
## StreamRequestFactory
|
664 |
-
|
665 |
-
The entire concept of the StreamRequestFactory has been removed. The way this
|
666 |
-
was used in Guzzle 3 broke the actual interface of sending streaming requests
|
667 |
-
(instead of getting back a Response, you got a StreamInterface). Streaming
|
668 |
-
PHP requests are now implemented through the `GuzzleHttp\Adapter\StreamAdapter`.
|
669 |
-
|
670 |
-
3.6 to 3.7
|
671 |
-
----------
|
672 |
-
|
673 |
-
### Deprecations
|
674 |
-
|
675 |
-
- You can now enable E_USER_DEPRECATED warnings to see if you are using any deprecated methods.:
|
676 |
-
|
677 |
-
```php
|
678 |
-
\Guzzle\Common\Version::$emitWarnings = true;
|
679 |
-
```
|
680 |
-
|
681 |
-
The following APIs and options have been marked as deprecated:
|
682 |
-
|
683 |
-
- Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use `$request->getResponseBody()->isRepeatable()` instead.
|
684 |
-
- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
|
685 |
-
- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
|
686 |
-
- Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
|
687 |
-
- Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
|
688 |
-
- Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
|
689 |
-
- Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
|
690 |
-
- Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
|
691 |
-
- Marked `Guzzle\Common\Collection::inject()` as deprecated.
|
692 |
-
- Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use
|
693 |
-
`$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));` or
|
694 |
-
`$client->setDefaultOption('auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));`
|
695 |
-
|
696 |
-
3.7 introduces `request.options` as a parameter for a client configuration and as an optional argument to all creational
|
697 |
-
request methods. When paired with a client's configuration settings, these options allow you to specify default settings
|
698 |
-
for various aspects of a request. Because these options make other previous configuration options redundant, several
|
699 |
-
configuration options and methods of a client and AbstractCommand have been deprecated.
|
700 |
-
|
701 |
-
- Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use `$client->getDefaultOption('headers')`.
|
702 |
-
- Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use `$client->setDefaultOption('headers/{header_name}', 'value')`.
|
703 |
-
- Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use `$client->setDefaultOption('params/{param_name}', 'value')`
|
704 |
-
- Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. These will work through Guzzle 4.0
|
705 |
-
|
706 |
-
$command = $client->getCommand('foo', array(
|
707 |
-
'command.headers' => array('Test' => '123'),
|
708 |
-
'command.response_body' => '/path/to/file'
|
709 |
-
));
|
710 |
-
|
711 |
-
// Should be changed to:
|
712 |
-
|
713 |
-
$command = $client->getCommand('foo', array(
|
714 |
-
'command.request_options' => array(
|
715 |
-
'headers' => array('Test' => '123'),
|
716 |
-
'save_as' => '/path/to/file'
|
717 |
-
)
|
718 |
-
));
|
719 |
-
|
720 |
-
### Interface changes
|
721 |
-
|
722 |
-
Additions and changes (you will need to update any implementations or subclasses you may have created):
|
723 |
-
|
724 |
-
- Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
|
725 |
-
createRequest, head, delete, put, patch, post, options, prepareRequest
|
726 |
-
- Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
|
727 |
-
- Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
|
728 |
-
- Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
|
729 |
-
`Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
|
730 |
-
resource, string, or EntityBody into the $options parameter to specify the download location of the response.
|
731 |
-
- Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
|
732 |
-
default `array()`
|
733 |
-
- Added `Guzzle\Stream\StreamInterface::isRepeatable`
|
734 |
-
- Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
|
735 |
-
|
736 |
-
The following methods were removed from interfaces. All of these methods are still available in the concrete classes
|
737 |
-
that implement them, but you should update your code to use alternative methods:
|
738 |
-
|
739 |
-
- Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
|
740 |
-
`$client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
|
741 |
-
`$client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))` or
|
742 |
-
`$client->setDefaultOption('headers/{header_name}', 'value')`. or
|
743 |
-
`$client->setDefaultOption('headers', array('header_name' => 'value'))`.
|
744 |
-
- Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use `$client->getConfig()->getPath('request.options/headers')`.
|
745 |
-
- Removed `Guzzle\Http\ClientInterface::expandTemplate()`. This is an implementation detail.
|
746 |
-
- Removed `Guzzle\Http\ClientInterface::setRequestFactory()`. This is an implementation detail.
|
747 |
-
- Removed `Guzzle\Http\ClientInterface::getCurlMulti()`. This is a very specific implementation detail.
|
748 |
-
- Removed `Guzzle\Http\Message\RequestInterface::canCache`. Use the CachePlugin.
|
749 |
-
- Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`. Use the HistoryPlugin.
|
750 |
-
- Removed `Guzzle\Http\Message\RequestInterface::isRedirect`. Use the HistoryPlugin.
|
751 |
-
|
752 |
-
### Cache plugin breaking changes
|
753 |
-
|
754 |
-
- CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
|
755 |
-
CacheStorageInterface. These two objects and interface will be removed in a future version.
|
756 |
-
- Always setting X-cache headers on cached responses
|
757 |
-
- Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
|
758 |
-
- `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
|
759 |
-
$request, Response $response);`
|
760 |
-
- `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
|
761 |
-
- `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
|
762 |
-
- Added `CacheStorageInterface::purge($url)`
|
763 |
-
- `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
|
764 |
-
$plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
|
765 |
-
CanCacheStrategyInterface $canCache = null)`
|
766 |
-
- Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
|
767 |
-
|
768 |
-
3.5 to 3.6
|
769 |
-
----------
|
770 |
-
|
771 |
-
* Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
|
772 |
-
* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
|
773 |
-
* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
|
774 |
-
For example, setHeader() first removes the header using unset on a HeaderCollection and then calls addHeader().
|
775 |
-
Keeping the Host header and URL host in sync is now handled by overriding the addHeader method in Request.
|
776 |
-
* Specific header implementations can be created for complex headers. When a message creates a header, it uses a
|
777 |
-
HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
|
778 |
-
CacheControl header implementation.
|
779 |
-
* Moved getLinks() from Response to just be used on a Link header object.
|
780 |
-
|
781 |
-
If you previously relied on Guzzle\Http\Message\Header::raw(), then you will need to update your code to use the
|
782 |
-
HeaderInterface (e.g. toArray(), getAll(), etc.).
|
783 |
-
|
784 |
-
### Interface changes
|
785 |
-
|
786 |
-
* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
|
787 |
-
* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
|
788 |
-
* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
|
789 |
-
Guzzle\Http\Curl\RequestMediator
|
790 |
-
* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
|
791 |
-
* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
|
792 |
-
* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
|
793 |
-
|
794 |
-
### Removed deprecated functions
|
795 |
-
|
796 |
-
* Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
|
797 |
-
* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
|
798 |
-
|
799 |
-
### Deprecations
|
800 |
-
|
801 |
-
* The ability to case-insensitively search for header values
|
802 |
-
* Guzzle\Http\Message\Header::hasExactHeader
|
803 |
-
* Guzzle\Http\Message\Header::raw. Use getAll()
|
804 |
-
* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
|
805 |
-
instead.
|
806 |
-
|
807 |
-
### Other changes
|
808 |
-
|
809 |
-
* All response header helper functions return a string rather than mixing Header objects and strings inconsistently
|
810 |
-
* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
|
811 |
-
directly via interfaces
|
812 |
-
* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
|
813 |
-
but are a no-op until removed.
|
814 |
-
* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
|
815 |
-
`Guzzle\Service\Command\ArrayCommandInterface`.
|
816 |
-
* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
|
817 |
-
on a request while the request is still being transferred
|
818 |
-
* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
|
819 |
-
|
820 |
-
3.3 to 3.4
|
821 |
-
----------
|
822 |
-
|
823 |
-
Base URLs of a client now follow the rules of http://tools.ietf.org/html/rfc3986#section-5.2.2 when merging URLs.
|
824 |
-
|
825 |
-
3.2 to 3.3
|
826 |
-
----------
|
827 |
-
|
828 |
-
### Response::getEtag() quote stripping removed
|
829 |
-
|
830 |
-
`Guzzle\Http\Message\Response::getEtag()` no longer strips quotes around the ETag response header
|
831 |
-
|
832 |
-
### Removed `Guzzle\Http\Utils`
|
833 |
-
|
834 |
-
The `Guzzle\Http\Utils` class was removed. This class was only used for testing.
|
835 |
-
|
836 |
-
### Stream wrapper and type
|
837 |
-
|
838 |
-
`Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getStreamType()` are no longer converted to lowercase.
|
839 |
-
|
840 |
-
### curl.emit_io became emit_io
|
841 |
-
|
842 |
-
Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using the
|
843 |
-
'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
|
844 |
-
|
845 |
-
3.1 to 3.2
|
846 |
-
----------
|
847 |
-
|
848 |
-
### CurlMulti is no longer reused globally
|
849 |
-
|
850 |
-
Before 3.2, the same CurlMulti object was reused globally for each client. This can cause issue where plugins added
|
851 |
-
to a single client can pollute requests dispatched from other clients.
|
852 |
-
|
853 |
-
If you still wish to reuse the same CurlMulti object with each client, then you can add a listener to the
|
854 |
-
ServiceBuilder's `service_builder.create_client` event to inject a custom CurlMulti object into each client as it is
|
855 |
-
created.
|
856 |
-
|
857 |
-
```php
|
858 |
-
$multi = new Guzzle\Http\Curl\CurlMulti();
|
859 |
-
$builder = Guzzle\Service\Builder\ServiceBuilder::factory('/path/to/config.json');
|
860 |
-
$builder->addListener('service_builder.create_client', function ($event) use ($multi) {
|
861 |
-
$event['client']->setCurlMulti($multi);
|
862 |
-
}
|
863 |
-
});
|
864 |
-
```
|
865 |
-
|
866 |
-
### No default path
|
867 |
-
|
868 |
-
URLs no longer have a default path value of '/' if no path was specified.
|
869 |
-
|
870 |
-
Before:
|
871 |
-
|
872 |
-
```php
|
873 |
-
$request = $client->get('http://www.foo.com');
|
874 |
-
echo $request->getUrl();
|
875 |
-
// >> http://www.foo.com/
|
876 |
-
```
|
877 |
-
|
878 |
-
After:
|
879 |
-
|
880 |
-
```php
|
881 |
-
$request = $client->get('http://www.foo.com');
|
882 |
-
echo $request->getUrl();
|
883 |
-
// >> http://www.foo.com
|
884 |
-
```
|
885 |
-
|
886 |
-
### Less verbose BadResponseException
|
887 |
-
|
888 |
-
The exception message for `Guzzle\Http\Exception\BadResponseException` no longer contains the full HTTP request and
|
889 |
-
response information. You can, however, get access to the request and response object by calling `getRequest()` or
|
890 |
-
`getResponse()` on the exception object.
|
891 |
-
|
892 |
-
### Query parameter aggregation
|
893 |
-
|
894 |
-
Multi-valued query parameters are no longer aggregated using a callback function. `Guzzle\Http\Query` now has a
|
895 |
-
setAggregator() method that accepts a `Guzzle\Http\QueryAggregator\QueryAggregatorInterface` object. This object is
|
896 |
-
responsible for handling the aggregation of multi-valued query string variables into a flattened hash.
|
897 |
-
|
898 |
-
2.8 to 3.x
|
899 |
-
----------
|
900 |
-
|
901 |
-
### Guzzle\Service\Inspector
|
902 |
-
|
903 |
-
Change `\Guzzle\Service\Inspector::fromConfig` to `\Guzzle\Common\Collection::fromConfig`
|
904 |
-
|
905 |
-
**Before**
|
906 |
-
|
907 |
-
```php
|
908 |
-
use Guzzle\Service\Inspector;
|
909 |
-
|
910 |
-
class YourClient extends \Guzzle\Service\Client
|
911 |
-
{
|
912 |
-
public static function factory($config = array())
|
913 |
-
{
|
914 |
-
$default = array();
|
915 |
-
$required = array('base_url', 'username', 'api_key');
|
916 |
-
$config = Inspector::fromConfig($config, $default, $required);
|
917 |
-
|
918 |
-
$client = new self(
|
919 |
-
$config->get('base_url'),
|
920 |
-
$config->get('username'),
|
921 |
-
$config->get('api_key')
|
922 |
-
);
|
923 |
-
$client->setConfig($config);
|
924 |
-
|
925 |
-
$client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
|
926 |
-
|
927 |
-
return $client;
|
928 |
-
}
|
929 |
-
```
|
930 |
-
|
931 |
-
**After**
|
932 |
-
|
933 |
-
```php
|
934 |
-
use Guzzle\Common\Collection;
|
935 |
-
|
936 |
-
class YourClient extends \Guzzle\Service\Client
|
937 |
-
{
|
938 |
-
public static function factory($config = array())
|
939 |
-
{
|
940 |
-
$default = array();
|
941 |
-
$required = array('base_url', 'username', 'api_key');
|
942 |
-
$config = Collection::fromConfig($config, $default, $required);
|
943 |
-
|
944 |
-
$client = new self(
|
945 |
-
$config->get('base_url'),
|
946 |
-
$config->get('username'),
|
947 |
-
$config->get('api_key')
|
948 |
-
);
|
949 |
-
$client->setConfig($config);
|
950 |
-
|
951 |
-
$client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
|
952 |
-
|
953 |
-
return $client;
|
954 |
-
}
|
955 |
-
```
|
956 |
-
|
957 |
-
### Convert XML Service Descriptions to JSON
|
958 |
-
|
959 |
-
**Before**
|
960 |
-
|
961 |
-
```xml
|
962 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
963 |
-
<client>
|
964 |
-
<commands>
|
965 |
-
<!-- Groups -->
|
966 |
-
<command name="list_groups" method="GET" uri="groups.json">
|
967 |
-
<doc>Get a list of groups</doc>
|
968 |
-
</command>
|
969 |
-
<command name="search_groups" method="GET" uri='search.json?query="{{query}} type:group"'>
|
970 |
-
<doc>Uses a search query to get a list of groups</doc>
|
971 |
-
<param name="query" type="string" required="true" />
|
972 |
-
</command>
|
973 |
-
<command name="create_group" method="POST" uri="groups.json">
|
974 |
-
<doc>Create a group</doc>
|
975 |
-
<param name="data" type="array" location="body" filters="json_encode" doc="Group JSON"/>
|
976 |
-
<param name="Content-Type" location="header" static="application/json"/>
|
977 |
-
</command>
|
978 |
-
<command name="delete_group" method="DELETE" uri="groups/{{id}}.json">
|
979 |
-
<doc>Delete a group by ID</doc>
|
980 |
-
<param name="id" type="integer" required="true"/>
|
981 |
-
</command>
|
982 |
-
<command name="get_group" method="GET" uri="groups/{{id}}.json">
|
983 |
-
<param name="id" type="integer" required="true"/>
|
984 |
-
</command>
|
985 |
-
<command name="update_group" method="PUT" uri="groups/{{id}}.json">
|
986 |
-
<doc>Update a group</doc>
|
987 |
-
<param name="id" type="integer" required="true"/>
|
988 |
-
<param name="data" type="array" location="body" filters="json_encode" doc="Group JSON"/>
|
989 |
-
<param name="Content-Type" location="header" static="application/json"/>
|
990 |
-
</command>
|
991 |
-
</commands>
|
992 |
-
</client>
|
993 |
-
```
|
994 |
-
|
995 |
-
**After**
|
996 |
-
|
997 |
-
```json
|
998 |
-
{
|
999 |
-
"name": "Zendesk REST API v2",
|
1000 |
-
"apiVersion": "2012-12-31",
|
1001 |
-
"description":"Provides access to Zendesk views, groups, tickets, ticket fields, and users",
|
1002 |
-
"operations": {
|
1003 |
-
"list_groups": {
|
1004 |
-
"httpMethod":"GET",
|
1005 |
-
"uri": "groups.json",
|
1006 |
-
"summary": "Get a list of groups"
|
1007 |
-
},
|
1008 |
-
"search_groups":{
|
1009 |
-
"httpMethod":"GET",
|
1010 |
-
"uri": "search.json?query=\"{query} type:group\"",
|
1011 |
-
"summary": "Uses a search query to get a list of groups",
|
1012 |
-
"parameters":{
|
1013 |
-
"query":{
|
1014 |
-
"location": "uri",
|
1015 |
-
"description":"Zendesk Search Query",
|
1016 |
-
"type": "string",
|
1017 |
-
"required": true
|
1018 |
-
}
|
1019 |
-
}
|
1020 |
-
},
|
1021 |
-
"create_group": {
|
1022 |
-
"httpMethod":"POST",
|
1023 |
-
"uri": "groups.json",
|
1024 |
-
"summary": "Create a group",
|
1025 |
-
"parameters":{
|
1026 |
-
"data": {
|
1027 |
-
"type": "array",
|
1028 |
-
"location": "body",
|
1029 |
-
"description":"Group JSON",
|
1030 |
-
"filters": "json_encode",
|
1031 |
-
"required": true
|
1032 |
-
},
|
1033 |
-
"Content-Type":{
|
1034 |
-
"type": "string",
|
1035 |
-
"location":"header",
|
1036 |
-
"static": "application/json"
|
1037 |
-
}
|
1038 |
-
}
|
1039 |
-
},
|
1040 |
-
"delete_group": {
|
1041 |
-
"httpMethod":"DELETE",
|
1042 |
-
"uri": "groups/{id}.json",
|
1043 |
-
"summary": "Delete a group",
|
1044 |
-
"parameters":{
|
1045 |
-
"id":{
|
1046 |
-
"location": "uri",
|
1047 |
-
"description":"Group to delete by ID",
|
1048 |
-
"type": "integer",
|
1049 |
-
"required": true
|
1050 |
-
}
|
1051 |
-
}
|
1052 |
-
},
|
1053 |
-
"get_group": {
|
1054 |
-
"httpMethod":"GET",
|
1055 |
-
"uri": "groups/{id}.json",
|
1056 |
-
"summary": "Get a ticket",
|
1057 |
-
"parameters":{
|
1058 |
-
"id":{
|
1059 |
-
"location": "uri",
|
1060 |
-
"description":"Group to get by ID",
|
1061 |
-
"type": "integer",
|
1062 |
-
"required": true
|
1063 |
-
}
|
1064 |
-
}
|
1065 |
-
},
|
1066 |
-
"update_group": {
|
1067 |
-
"httpMethod":"PUT",
|
1068 |
-
"uri": "groups/{id}.json",
|
1069 |
-
"summary": "Update a group",
|
1070 |
-
"parameters":{
|
1071 |
-
"id": {
|
1072 |
-
"location": "uri",
|
1073 |
-
"description":"Group to update by ID",
|
1074 |
-
"type": "integer",
|
1075 |
-
"required": true
|
1076 |
-
},
|
1077 |
-
"data": {
|
1078 |
-
"type": "array",
|
1079 |
-
"location": "body",
|
1080 |
-
"description":"Group JSON",
|
1081 |
-
"filters": "json_encode",
|
1082 |
-
"required": true
|
1083 |
-
},
|
1084 |
-
"Content-Type":{
|
1085 |
-
"type": "string",
|
1086 |
-
"location":"header",
|
1087 |
-
"static": "application/json"
|
1088 |
-
}
|
1089 |
-
}
|
1090 |
-
}
|
1091 |
-
}
|
1092 |
-
```
|
1093 |
-
|
1094 |
-
### Guzzle\Service\Description\ServiceDescription
|
1095 |
-
|
1096 |
-
Commands are now called Operations
|
1097 |
-
|
1098 |
-
**Before**
|
1099 |
-
|
1100 |
-
```php
|
1101 |
-
use Guzzle\Service\Description\ServiceDescription;
|
1102 |
-
|
1103 |
-
$sd = new ServiceDescription();
|
1104 |
-
$sd->getCommands(); // @returns ApiCommandInterface[]
|
1105 |
-
$sd->hasCommand($name);
|
1106 |
-
$sd->getCommand($name); // @returns ApiCommandInterface|null
|
1107 |
-
$sd->addCommand($command); // @param ApiCommandInterface $command
|
1108 |
-
```
|
1109 |
-
|
1110 |
-
**After**
|
1111 |
-
|
1112 |
-
```php
|
1113 |
-
use Guzzle\Service\Description\ServiceDescription;
|
1114 |
-
|
1115 |
-
$sd = new ServiceDescription();
|
1116 |
-
$sd->getOperations(); // @returns OperationInterface[]
|
1117 |
-
$sd->hasOperation($name);
|
1118 |
-
$sd->getOperation($name); // @returns OperationInterface|null
|
1119 |
-
$sd->addOperation($operation); // @param OperationInterface $operation
|
1120 |
-
```
|
1121 |
-
|
1122 |
-
### Guzzle\Common\Inflection\Inflector
|
1123 |
-
|
1124 |
-
Namespace is now `Guzzle\Inflection\Inflector`
|
1125 |
-
|
1126 |
-
### Guzzle\Http\Plugin
|
1127 |
-
|
1128 |
-
Namespace is now `Guzzle\Plugin`. Many other changes occur within this namespace and are detailed in their own sections below.
|
1129 |
-
|
1130 |
-
### Guzzle\Http\Plugin\LogPlugin and Guzzle\Common\Log
|
1131 |
-
|
1132 |
-
Now `Guzzle\Plugin\Log\LogPlugin` and `Guzzle\Log` respectively.
|
1133 |
-
|
1134 |
-
**Before**
|
1135 |
-
|
1136 |
-
```php
|
1137 |
-
use Guzzle\Common\Log\ClosureLogAdapter;
|
1138 |
-
use Guzzle\Http\Plugin\LogPlugin;
|
1139 |
-
|
1140 |
-
/** @var \Guzzle\Http\Client */
|
1141 |
-
$client;
|
1142 |
-
|
1143 |
-
// $verbosity is an integer indicating desired message verbosity level
|
1144 |
-
$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $verbosity = LogPlugin::LOG_VERBOSE);
|
1145 |
-
```
|
1146 |
-
|
1147 |
-
**After**
|
1148 |
-
|
1149 |
-
```php
|
1150 |
-
use Guzzle\Log\ClosureLogAdapter;
|
1151 |
-
use Guzzle\Log\MessageFormatter;
|
1152 |
-
use Guzzle\Plugin\Log\LogPlugin;
|
1153 |
-
|
1154 |
-
/** @var \Guzzle\Http\Client */
|
1155 |
-
$client;
|
1156 |
-
|
1157 |
-
// $format is a string indicating desired message format -- @see MessageFormatter
|
1158 |
-
$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $format = MessageFormatter::DEBUG_FORMAT);
|
1159 |
-
```
|
1160 |
-
|
1161 |
-
### Guzzle\Http\Plugin\CurlAuthPlugin
|
1162 |
-
|
1163 |
-
Now `Guzzle\Plugin\CurlAuth\CurlAuthPlugin`.
|
1164 |
-
|
1165 |
-
### Guzzle\Http\Plugin\ExponentialBackoffPlugin
|
1166 |
-
|
1167 |
-
Now `Guzzle\Plugin\Backoff\BackoffPlugin`, and other changes.
|
1168 |
-
|
1169 |
-
**Before**
|
1170 |
-
|
1171 |
-
```php
|
1172 |
-
use Guzzle\Http\Plugin\ExponentialBackoffPlugin;
|
1173 |
-
|
1174 |
-
$backoffPlugin = new ExponentialBackoffPlugin($maxRetries, array_merge(
|
1175 |
-
ExponentialBackoffPlugin::getDefaultFailureCodes(), array(429)
|
1176 |
-
));
|
1177 |
-
|
1178 |
-
$client->addSubscriber($backoffPlugin);
|
1179 |
-
```
|
1180 |
-
|
1181 |
-
**After**
|
1182 |
-
|
1183 |
-
```php
|
1184 |
-
use Guzzle\Plugin\Backoff\BackoffPlugin;
|
1185 |
-
use Guzzle\Plugin\Backoff\HttpBackoffStrategy;
|
1186 |
-
|
1187 |
-
// Use convenient factory method instead -- see implementation for ideas of what
|
1188 |
-
// you can do with chaining backoff strategies
|
1189 |
-
$backoffPlugin = BackoffPlugin::getExponentialBackoff($maxRetries, array_merge(
|
1190 |
-
HttpBackoffStrategy::getDefaultFailureCodes(), array(429)
|
1191 |
-
));
|
1192 |
-
$client->addSubscriber($backoffPlugin);
|
1193 |
-
```
|
1194 |
-
|
1195 |
-
### Known Issues
|
1196 |
-
|
1197 |
-
#### [BUG] Accept-Encoding header behavior changed unintentionally.
|
1198 |
-
|
1199 |
-
(See #217) (Fixed in 09daeb8c666fb44499a0646d655a8ae36456575e)
|
1200 |
-
|
1201 |
-
In version 2.8 setting the `Accept-Encoding` header would set the CURLOPT_ENCODING option, which permitted cURL to
|
1202 |
-
properly handle gzip/deflate compressed responses from the server. In versions affected by this bug this does not happen.
|
1203 |
-
See issue #217 for a workaround, or use a version containing the fix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/.php_cs.dist
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$config = PhpCsFixer\Config::create()
|
4 |
-
->setRiskyAllowed(true)
|
5 |
-
->setRules([
|
6 |
-
'@PSR2' => true,
|
7 |
-
'array_syntax' => ['syntax' => 'short'],
|
8 |
-
'binary_operator_spaces' => ['operators' => ['=>' => null]],
|
9 |
-
'blank_line_after_opening_tag' => true,
|
10 |
-
'class_attributes_separation' => ['elements' => ['method']],
|
11 |
-
'compact_nullable_typehint' => true,
|
12 |
-
'concat_space' => ['spacing' => 'one'],
|
13 |
-
'declare_equal_normalize' => ['space' => 'none'],
|
14 |
-
'declare_strict_types' => false,
|
15 |
-
'dir_constant' => true,
|
16 |
-
'final_static_access' => true,
|
17 |
-
'fully_qualified_strict_types' => true,
|
18 |
-
'function_to_constant' => true,
|
19 |
-
'function_typehint_space' => true,
|
20 |
-
'header_comment' => false,
|
21 |
-
'is_null' => ['use_yoda_style' => false],
|
22 |
-
'list_syntax' => ['syntax' => 'short'],
|
23 |
-
'lowercase_cast' => true,
|
24 |
-
'magic_method_casing' => true,
|
25 |
-
'modernize_types_casting' => true,
|
26 |
-
'multiline_comment_opening_closing' => true,
|
27 |
-
//'native_constant_invocation' => true,
|
28 |
-
'no_alias_functions' => true,
|
29 |
-
'no_alternative_syntax' => true,
|
30 |
-
'no_blank_lines_after_phpdoc' => true,
|
31 |
-
'no_empty_comment' => true,
|
32 |
-
'no_empty_phpdoc' => true,
|
33 |
-
'no_extra_blank_lines' => true,
|
34 |
-
'no_leading_import_slash' => true,
|
35 |
-
'no_leading_namespace_whitespace' => true,
|
36 |
-
'no_spaces_around_offset' => true,
|
37 |
-
'no_superfluous_phpdoc_tags' => ['allow_mixed' => true],
|
38 |
-
'no_trailing_comma_in_singleline_array' => true,
|
39 |
-
'no_unneeded_control_parentheses' => true,
|
40 |
-
'no_unset_cast' => true,
|
41 |
-
'no_unused_imports' => true,
|
42 |
-
'no_useless_else' => true,
|
43 |
-
'no_useless_return' => true,
|
44 |
-
'no_whitespace_in_blank_line' => true,
|
45 |
-
'normalize_index_brace' => true,
|
46 |
-
'ordered_imports' => true,
|
47 |
-
'php_unit_construct' => true,
|
48 |
-
'php_unit_dedicate_assert' => ['target' => 'newest'],
|
49 |
-
'php_unit_dedicate_assert_internal_type' => ['target' => 'newest'],
|
50 |
-
'php_unit_expectation' => ['target' => 'newest'],
|
51 |
-
'php_unit_mock' => ['target' => 'newest'],
|
52 |
-
'php_unit_mock_short_will_return' => true,
|
53 |
-
'php_unit_no_expectation_annotation' => ['target' => 'newest'],
|
54 |
-
'php_unit_test_annotation' => ['style' => 'prefix'],
|
55 |
-
//'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
|
56 |
-
'phpdoc_align' => ['align' => 'vertical'],
|
57 |
-
//'phpdoc_line_span' => ['method' => 'multi', 'property' => 'multi'],
|
58 |
-
'phpdoc_no_package' => true,
|
59 |
-
'phpdoc_no_useless_inheritdoc' => true,
|
60 |
-
'phpdoc_scalar' => true,
|
61 |
-
'phpdoc_separation' => true,
|
62 |
-
'phpdoc_single_line_var_spacing' => true,
|
63 |
-
'phpdoc_trim' => true,
|
64 |
-
'phpdoc_trim_consecutive_blank_line_separation' => true,
|
65 |
-
'phpdoc_types' => true,
|
66 |
-
'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'],
|
67 |
-
'phpdoc_var_without_name' => true,
|
68 |
-
'return_assignment' => true,
|
69 |
-
'short_scalar_cast' => true,
|
70 |
-
'single_trait_insert_per_statement' => true,
|
71 |
-
'standardize_not_equals' => true,
|
72 |
-
//'static_lambda' => true,
|
73 |
-
'ternary_to_null_coalescing' => true,
|
74 |
-
'trim_array_spaces' => true,
|
75 |
-
'visibility_required' => true,
|
76 |
-
'yoda_style' => false,
|
77 |
-
// 'native_function_invocation' => true,
|
78 |
-
'braces' => ['allow_single_line_closure'=>true],
|
79 |
-
])
|
80 |
-
->setFinder(
|
81 |
-
PhpCsFixer\Finder::create()
|
82 |
-
->in(__DIR__.'/src')
|
83 |
-
->in(__DIR__.'/tests')
|
84 |
-
->name('*.php')
|
85 |
-
)
|
86 |
-
;
|
87 |
-
|
88 |
-
return $config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
Copyright (c) 2015-2016 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
|
2 |
-
|
3 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
-
of this software and associated documentation files (the "Software"), to deal
|
5 |
-
in the Software without restriction, including without limitation the rights
|
6 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
-
copies of the Software, and to permit persons to whom the Software is
|
8 |
-
furnished to do so, subject to the following conditions:
|
9 |
-
|
10 |
-
The above copyright notice and this permission notice shall be included in
|
11 |
-
all copies or substantial portions of the Software.
|
12 |
-
|
13 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
-
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/phpstan-baseline.neon
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
parameters:
|
2 |
-
ignoreErrors:
|
3 |
-
-
|
4 |
-
message: "#^Parameter \\#1 \\$function of function register_shutdown_function expects callable\\(\\)\\: void, Closure\\(\\)\\: mixed given\\.$#"
|
5 |
-
count: 1
|
6 |
-
path: src/TaskQueue.php
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/phpstan.neon.dist
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
includes:
|
2 |
-
- phpstan-baseline.neon
|
3 |
-
|
4 |
-
parameters:
|
5 |
-
level: 5
|
6 |
-
paths:
|
7 |
-
- src
|
8 |
-
|
9 |
-
ignoreErrors:
|
10 |
-
- "#^Dead catch - Exception is already caught by Throwable above\\.$#"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/promises/psalm.xml
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<psalm
|
3 |
-
errorLevel="4"
|
4 |
-
resolveFromConfigFile="true"
|
5 |
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6 |
-
xmlns="https://getpsalm.org/schema/config"
|
7 |
-
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
8 |
-
>
|
9 |
-
<projectFiles>
|
10 |
-
<directory name="src" />
|
11 |
-
<ignoreFiles>
|
12 |
-
<directory name="vendor" />
|
13 |
-
</ignoreFiles>
|
14 |
-
</projectFiles>
|
15 |
-
</psalm>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/guzzlehttp/psr7/LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
Copyright (c) 2015 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
|
2 |
-
|
3 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
-
of this software and associated documentation files (the "Software"), to deal
|
5 |
-
in the Software without restriction, including without limitation the rights
|
6 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
-
copies of the Software, and to permit persons to whom the Software is
|
8 |
-
furnished to do so, subject to the following conditions:
|
9 |
-
|
10 |
-
The above copyright notice and this permission notice shall be included in
|
11 |
-
all copies or substantial portions of the Software.
|
12 |
-
|
13 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
-
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/.gush.yml
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
adapter: github
|
2 |
-
issue_tracker: github
|
3 |
-
meta-header: "Copyright (c) 2009-2015 hamcrest.org"
|
4 |
-
table-pr:
|
5 |
-
fixed_tickets: ['Fixed Tickets', '']
|
6 |
-
license: ['License', MIT]
|
7 |
-
base: master
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/CHANGES.txt
DELETED
@@ -1,173 +0,0 @@
|
|
1 |
-
== Version 2.0.1: Released Jul 09 2020 ==
|
2 |
-
|
3 |
-
* Added support for PHP 8
|
4 |
-
|
5 |
-
|
6 |
-
== Version 2.0: Released Feb 26 2016 ==
|
7 |
-
|
8 |
-
* Removed automatic loading of global functions
|
9 |
-
|
10 |
-
|
11 |
-
== Version 1.1.0: Released Feb 2 2012 ==
|
12 |
-
|
13 |
-
Issues Fixed: 121, 138, 147
|
14 |
-
|
15 |
-
* Added non-empty matchers to complement the emptiness-matching forms.
|
16 |
-
|
17 |
-
- nonEmptyString()
|
18 |
-
- nonEmptyArray()
|
19 |
-
- nonEmptyTraversable()
|
20 |
-
|
21 |
-
* Added ability to pass variable arguments to several array-based matcher
|
22 |
-
factory methods so they work like allOf() et al.
|
23 |
-
|
24 |
-
- anArray()
|
25 |
-
- arrayContainingInAnyOrder(), containsInAnyOrder()
|
26 |
-
- arrayContaining(), contains()
|
27 |
-
- stringContainsInOrder()
|
28 |
-
|
29 |
-
* Matchers that accept an array of matchers now also accept variable arguments.
|
30 |
-
Any non-matcher arguments are wrapped by IsEqual.
|
31 |
-
|
32 |
-
* Added noneOf() as a shortcut for not(anyOf()).
|
33 |
-
|
34 |
-
|
35 |
-
== Version 1.0.0: Released Jan 20 2012 ==
|
36 |
-
|
37 |
-
Issues Fixed: 119, 136, 139, 141, 148, 149, 172
|
38 |
-
|
39 |
-
* Moved hamcrest.php into Hamcrest folder and renamed to Hamcrest.php.
|
40 |
-
This is more in line with PEAR packaging standards.
|
41 |
-
|
42 |
-
* Renamed callable() to callableValue() for compatibility with PHP 5.4.
|
43 |
-
|
44 |
-
* Added Hamcrest_Text_StringContainsIgnoringCase to assert using stripos().
|
45 |
-
|
46 |
-
assertThat('fOObAr', containsStringIgnoringCase('oba'));
|
47 |
-
assertThat('fOObAr', containsString('oba')->ignoringCase());
|
48 |
-
|
49 |
-
* Fixed Hamcrest_Core_IsInstanceOf to return false for native types.
|
50 |
-
|
51 |
-
* Moved string-based matchers to Hamcrest_Text package.
|
52 |
-
StringContains, StringEndsWith, StringStartsWith, and SubstringMatcher
|
53 |
-
|
54 |
-
* Hamcrest.php and Hamcrest_Matchers.php are now built from @factory doctags.
|
55 |
-
Added @factory doctag to every static factory method.
|
56 |
-
|
57 |
-
* Hamcrest_Matchers and Hamcrest.php now import each matcher as-needed
|
58 |
-
and Hamcrest.php calls the matchers directly instead of Hamcrest_Matchers.
|
59 |
-
|
60 |
-
|
61 |
-
== Version 0.3.0: Released Jul 26 2010 ==
|
62 |
-
|
63 |
-
* Added running count to Hamcrest_MatcherAssert with methods to get and reset it.
|
64 |
-
This can be used by unit testing frameworks for reporting.
|
65 |
-
|
66 |
-
* Added Hamcrest_Core_HasToString to assert return value of toString() or __toString().
|
67 |
-
|
68 |
-
assertThat($anObject, hasToString('foo'));
|
69 |
-
|
70 |
-
* Added Hamcrest_Type_IsScalar to assert is_scalar().
|
71 |
-
Matches values of type bool, int, float, double, and string.
|
72 |
-
|
73 |
-
assertThat($count, scalarValue());
|
74 |
-
assertThat('foo', scalarValue());
|
75 |
-
|
76 |
-
* Added Hamcrest_Collection package.
|
77 |
-
|
78 |
-
- IsEmptyTraversable
|
79 |
-
- IsTraversableWithSize
|
80 |
-
|
81 |
-
assertThat($iterator, emptyTraversable());
|
82 |
-
assertThat($iterator, traversableWithSize(5));
|
83 |
-
|
84 |
-
* Added Hamcrest_Xml_HasXPath to assert XPath expressions or the content of nodes in an XML/HTML DOM.
|
85 |
-
|
86 |
-
assertThat($dom, hasXPath('books/book/title'));
|
87 |
-
assertThat($dom, hasXPath('books/book[contains(title, "Alice")]', 3));
|
88 |
-
assertThat($dom, hasXPath('books/book/title', 'Alice in Wonderland'));
|
89 |
-
assertThat($dom, hasXPath('count(books/book)', greaterThan(10)));
|
90 |
-
|
91 |
-
* Added aliases to match the Java API.
|
92 |
-
|
93 |
-
hasEntry() -> hasKeyValuePair()
|
94 |
-
hasValue() -> hasItemInArray()
|
95 |
-
contains() -> arrayContaining()
|
96 |
-
containsInAnyOrder() -> arrayContainingInAnyOrder()
|
97 |
-
|
98 |
-
* Added optional subtype to Hamcrest_TypeSafeMatcher to enforce object class or resource type.
|
99 |
-
|
100 |
-
* Hamcrest_TypeSafeDiagnosingMatcher now extends Hamcrest_TypeSafeMatcher.
|
101 |
-
|
102 |
-
|
103 |
-
== Version 0.2.0: Released Jul 14 2010 ==
|
104 |
-
|
105 |
-
Issues Fixed: 109, 111, 114, 115
|
106 |
-
|
107 |
-
* Description::appendValues() and appendValueList() accept Iterator and IteratorAggregate. [111]
|
108 |
-
BaseDescription::appendValue() handles IteratorAggregate.
|
109 |
-
|
110 |
-
* assertThat() accepts a single boolean parameter and
|
111 |
-
wraps any non-Matcher third parameter with equalTo().
|
112 |
-
|
113 |
-
* Removed null return value from assertThat(). [114]
|
114 |
-
|
115 |
-
* Fixed wrong variable name in contains(). [109]
|
116 |
-
|
117 |
-
* Added Hamcrest_Core_IsSet to assert isset().
|
118 |
-
|
119 |
-
assertThat(array('foo' => 'bar'), set('foo'));
|
120 |
-
assertThat(array('foo' => 'bar'), notSet('bar'));
|
121 |
-
|
122 |
-
* Added Hamcrest_Core_IsTypeOf to assert built-in types with gettype(). [115]
|
123 |
-
Types: array, boolean, double, integer, null, object, resource, and string.
|
124 |
-
Note that gettype() returns "double" for float values.
|
125 |
-
|
126 |
-
assertThat($count, typeOf('integer'));
|
127 |
-
assertThat(3.14159, typeOf('double'));
|
128 |
-
assertThat(array('foo', 'bar'), typeOf('array'));
|
129 |
-
assertThat(new stdClass(), typeOf('object'));
|
130 |
-
|
131 |
-
* Added type-specific matchers in new Hamcrest_Type package.
|
132 |
-
|
133 |
-
- IsArray
|
134 |
-
- IsBoolean
|
135 |
-
- IsDouble (includes float values)
|
136 |
-
- IsInteger
|
137 |
-
- IsObject
|
138 |
-
- IsResource
|
139 |
-
- IsString
|
140 |
-
|
141 |
-
assertThat($count, integerValue());
|
142 |
-
assertThat(3.14159, floatValue());
|
143 |
-
assertThat('foo', stringValue());
|
144 |
-
|
145 |
-
* Added Hamcrest_Type_IsNumeric to assert is_numeric().
|
146 |
-
Matches values of type int and float/double or strings that are formatted as numbers.
|
147 |
-
|
148 |
-
assertThat(5, numericValue());
|
149 |
-
assertThat('-5e+3', numericValue());
|
150 |
-
|
151 |
-
* Added Hamcrest_Type_IsCallable to assert is_callable().
|
152 |
-
|
153 |
-
assertThat('preg_match', callable());
|
154 |
-
assertThat(array('SomeClass', 'SomeMethod'), callable());
|
155 |
-
assertThat(array($object, 'SomeMethod'), callable());
|
156 |
-
assertThat($object, callable());
|
157 |
-
assertThat(function ($x, $y) { return $x + $y; }, callable());
|
158 |
-
|
159 |
-
* Added Hamcrest_Text_MatchesPattern for regex matching with preg_match().
|
160 |
-
|
161 |
-
assertThat('foobar', matchesPattern('/o+b/'));
|
162 |
-
|
163 |
-
* Added aliases:
|
164 |
-
- atLeast() for greaterThanOrEqualTo()
|
165 |
-
- atMost() for lessThanOrEqualTo()
|
166 |
-
|
167 |
-
|
168 |
-
== Version 0.1.0: Released Jul 7 2010 ==
|
169 |
-
|
170 |
-
* Created PEAR package
|
171 |
-
|
172 |
-
* Core matchers
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/LICENSE.txt
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
BSD License
|
2 |
-
|
3 |
-
Copyright (c) 2000-2014, www.hamcrest.org
|
4 |
-
All rights reserved.
|
5 |
-
|
6 |
-
Redistribution and use in source and binary forms, with or without
|
7 |
-
modification, are permitted provided that the following conditions are met:
|
8 |
-
|
9 |
-
Redistributions of source code must retain the above copyright notice, this list of
|
10 |
-
conditions and the following disclaimer. Redistributions in binary form must reproduce
|
11 |
-
the above copyright notice, this list of conditions and the following disclaimer in
|
12 |
-
the documentation and/or other materials provided with the distribution.
|
13 |
-
|
14 |
-
Neither the name of Hamcrest nor the names of its contributors may be used to endorse
|
15 |
-
or promote products derived from this software without specific prior written
|
16 |
-
permission.
|
17 |
-
|
18 |
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
19 |
-
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
20 |
-
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
21 |
-
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
22 |
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
23 |
-
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
24 |
-
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
25 |
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
26 |
-
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
27 |
-
DAMAGE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryCall.php
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
class FactoryCall
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* Hamcrest standard is two spaces for each level of indentation.
|
11 |
-
*
|
12 |
-
* @var string
|
13 |
-
*/
|
14 |
-
const INDENT = ' ';
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var FactoryMethod
|
18 |
-
*/
|
19 |
-
private $method;
|
20 |
-
|
21 |
-
/**
|
22 |
-
* @var string
|
23 |
-
*/
|
24 |
-
private $name;
|
25 |
-
|
26 |
-
public function __construct(FactoryMethod $method, $name)
|
27 |
-
{
|
28 |
-
$this->method = $method;
|
29 |
-
$this->name = $name;
|
30 |
-
}
|
31 |
-
|
32 |
-
public function getMethod()
|
33 |
-
{
|
34 |
-
return $this->method;
|
35 |
-
}
|
36 |
-
|
37 |
-
public function getName()
|
38 |
-
{
|
39 |
-
return $this->name;
|
40 |
-
}
|
41 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryClass.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
class FactoryClass
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* @var string
|
11 |
-
*/
|
12 |
-
private $file;
|
13 |
-
|
14 |
-
/**
|
15 |
-
* @var ReflectionClass
|
16 |
-
*/
|
17 |
-
private $reflector;
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @var array
|
21 |
-
*/
|
22 |
-
private $methods;
|
23 |
-
|
24 |
-
public function __construct($file, ReflectionClass $class)
|
25 |
-
{
|
26 |
-
$this->file = $file;
|
27 |
-
$this->reflector = $class;
|
28 |
-
$this->extractFactoryMethods();
|
29 |
-
}
|
30 |
-
|
31 |
-
public function extractFactoryMethods()
|
32 |
-
{
|
33 |
-
$this->methods = array();
|
34 |
-
foreach ($this->getPublicStaticMethods() as $method) {
|
35 |
-
if ($method->isFactory()) {
|
36 |
-
$this->methods[] = $method;
|
37 |
-
}
|
38 |
-
}
|
39 |
-
}
|
40 |
-
|
41 |
-
public function getPublicStaticMethods()
|
42 |
-
{
|
43 |
-
$methods = array();
|
44 |
-
foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) {
|
45 |
-
if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) {
|
46 |
-
$methods[] = new FactoryMethod($this, $method);
|
47 |
-
}
|
48 |
-
}
|
49 |
-
return $methods;
|
50 |
-
}
|
51 |
-
|
52 |
-
public function getFile()
|
53 |
-
{
|
54 |
-
return $this->file;
|
55 |
-
}
|
56 |
-
|
57 |
-
public function getName()
|
58 |
-
{
|
59 |
-
return $this->reflector->name;
|
60 |
-
}
|
61 |
-
|
62 |
-
public function isFactory()
|
63 |
-
{
|
64 |
-
return !empty($this->methods);
|
65 |
-
}
|
66 |
-
|
67 |
-
public function getMethods()
|
68 |
-
{
|
69 |
-
return $this->methods;
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryFile.php
DELETED
@@ -1,121 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
abstract class FactoryFile
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* Hamcrest standard is two spaces for each level of indentation.
|
11 |
-
*
|
12 |
-
* @var string
|
13 |
-
*/
|
14 |
-
const INDENT = ' ';
|
15 |
-
|
16 |
-
private $indent;
|
17 |
-
|
18 |
-
private $file;
|
19 |
-
|
20 |
-
private $code;
|
21 |
-
|
22 |
-
public function __construct($file, $indent)
|
23 |
-
{
|
24 |
-
$this->file = $file;
|
25 |
-
$this->indent = $indent;
|
26 |
-
}
|
27 |
-
|
28 |
-
abstract public function addCall(FactoryCall $call);
|
29 |
-
|
30 |
-
abstract public function build();
|
31 |
-
|
32 |
-
public function addFileHeader()
|
33 |
-
{
|
34 |
-
$this->code = '';
|
35 |
-
$this->addPart('file_header');
|
36 |
-
}
|
37 |
-
|
38 |
-
public function addPart($name)
|
39 |
-
{
|
40 |
-
$this->addCode($this->readPart($name));
|
41 |
-
}
|
42 |
-
|
43 |
-
public function addCode($code)
|
44 |
-
{
|
45 |
-
$this->code .= $code;
|
46 |
-
}
|
47 |
-
|
48 |
-
public function readPart($name)
|
49 |
-
{
|
50 |
-
return file_get_contents(__DIR__ . "/parts/$name.txt");
|
51 |
-
}
|
52 |
-
|
53 |
-
public function generateFactoryCall(FactoryCall $call)
|
54 |
-
{
|
55 |
-
$method = $call->getMethod();
|
56 |
-
$code = $method->getComment($this->indent) . "\n";
|
57 |
-
$code .= $this->generateDeclaration($call->getName(), $method);
|
58 |
-
$code .= $this->generateCall($method);
|
59 |
-
$code .= $this->generateClosing();
|
60 |
-
return $code;
|
61 |
-
}
|
62 |
-
|
63 |
-
public function generateDeclaration($name, FactoryMethod $method)
|
64 |
-
{
|
65 |
-
$code = $this->indent . $this->getDeclarationModifiers()
|
66 |
-
. 'function ' . $name . '('
|
67 |
-
. $this->generateDeclarationArguments($method)
|
68 |
-
. ')' . "\n" . $this->indent . '{' . "\n";
|
69 |
-
return $code;
|
70 |
-
}
|
71 |
-
|
72 |
-
public function getDeclarationModifiers()
|
73 |
-
{
|
74 |
-
return '';
|
75 |
-
}
|
76 |
-
|
77 |
-
public function generateDeclarationArguments(FactoryMethod $method)
|
78 |
-
{
|
79 |
-
if ($method->acceptsVariableArguments()) {
|
80 |
-
return '/* args... */';
|
81 |
-
} else {
|
82 |
-
return $method->getParameterDeclarations();
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
public function generateImport(FactoryMethod $method)
|
87 |
-
{
|
88 |
-
return $this->indent . self::INDENT . "require_once '" . $method->getClass()->getFile() . "';" . "\n";
|
89 |
-
}
|
90 |
-
|
91 |
-
public function generateCall(FactoryMethod $method)
|
92 |
-
{
|
93 |
-
$code = '';
|
94 |
-
if ($method->acceptsVariableArguments()) {
|
95 |
-
$code .= $this->indent . self::INDENT . '$args = func_get_args();' . "\n";
|
96 |
-
}
|
97 |
-
|
98 |
-
$code .= $this->indent . self::INDENT . 'return ';
|
99 |
-
if ($method->acceptsVariableArguments()) {
|
100 |
-
$code .= 'call_user_func_array(array(\''
|
101 |
-
. '\\' . $method->getClassName() . '\', \''
|
102 |
-
. $method->getName() . '\'), $args);' . "\n";
|
103 |
-
} else {
|
104 |
-
$code .= '\\' . $method->getClassName() . '::'
|
105 |
-
. $method->getName() . '('
|
106 |
-
. $method->getParameterInvocations() . ');' . "\n";
|
107 |
-
}
|
108 |
-
|
109 |
-
return $code;
|
110 |
-
}
|
111 |
-
|
112 |
-
public function generateClosing()
|
113 |
-
{
|
114 |
-
return $this->indent . '}' . "\n";
|
115 |
-
}
|
116 |
-
|
117 |
-
public function write()
|
118 |
-
{
|
119 |
-
file_put_contents($this->file, $this->code);
|
120 |
-
}
|
121 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php
DELETED
@@ -1,124 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Controls the process of extracting @factory doctags
|
9 |
-
* and generating factory method files.
|
10 |
-
*
|
11 |
-
* Uses File_Iterator to scan for PHP files.
|
12 |
-
*/
|
13 |
-
class FactoryGenerator
|
14 |
-
{
|
15 |
-
/**
|
16 |
-
* Path to the Hamcrest PHP files to process.
|
17 |
-
*
|
18 |
-
* @var string
|
19 |
-
*/
|
20 |
-
private $path;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @var array of FactoryFile
|
24 |
-
*/
|
25 |
-
private $factoryFiles;
|
26 |
-
|
27 |
-
public function __construct($path)
|
28 |
-
{
|
29 |
-
$this->path = $path;
|
30 |
-
$this->factoryFiles = array();
|
31 |
-
}
|
32 |
-
|
33 |
-
public function addFactoryFile(FactoryFile $factoryFile)
|
34 |
-
{
|
35 |
-
$this->factoryFiles[] = $factoryFile;
|
36 |
-
}
|
37 |
-
|
38 |
-
public function generate()
|
39 |
-
{
|
40 |
-
$classes = $this->getClassesWithFactoryMethods();
|
41 |
-
foreach ($classes as $class) {
|
42 |
-
foreach ($class->getMethods() as $method) {
|
43 |
-
foreach ($method->getCalls() as $call) {
|
44 |
-
foreach ($this->factoryFiles as $file) {
|
45 |
-
$file->addCall($call);
|
46 |
-
}
|
47 |
-
}
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
public function write()
|
53 |
-
{
|
54 |
-
foreach ($this->factoryFiles as $file) {
|
55 |
-
$file->build();
|
56 |
-
$file->write();
|
57 |
-
}
|
58 |
-
}
|
59 |
-
|
60 |
-
public function getClassesWithFactoryMethods()
|
61 |
-
{
|
62 |
-
$classes = array();
|
63 |
-
$files = $this->getSortedFiles();
|
64 |
-
foreach ($files as $file) {
|
65 |
-
$class = $this->getFactoryClass($file);
|
66 |
-
if ($class !== null) {
|
67 |
-
$classes[] = $class;
|
68 |
-
}
|
69 |
-
}
|
70 |
-
|
71 |
-
return $classes;
|
72 |
-
}
|
73 |
-
|
74 |
-
public function getSortedFiles()
|
75 |
-
{
|
76 |
-
$iter = $this->getFileIterator();
|
77 |
-
$files = array();
|
78 |
-
foreach ($iter as $file) {
|
79 |
-
$files[] = $file;
|
80 |
-
}
|
81 |
-
sort($files, SORT_STRING);
|
82 |
-
|
83 |
-
return $files;
|
84 |
-
}
|
85 |
-
|
86 |
-
private function getFileIterator()
|
87 |
-
{
|
88 |
-
$factoryClass = class_exists('File_Iterator_Factory') ? 'File_Iterator_Factory' : 'SebastianBergmann\FileIterator\Factory';
|
89 |
-
|
90 |
-
$factory = new $factoryClass();
|
91 |
-
|
92 |
-
return $factory->getFileIterator($this->path, '.php');
|
93 |
-
}
|
94 |
-
|
95 |
-
public function getFactoryClass($file)
|
96 |
-
{
|
97 |
-
$name = $this->getFactoryClassName($file);
|
98 |
-
if ($name !== null) {
|
99 |
-
require_once $file;
|
100 |
-
|
101 |
-
if (class_exists($name)) {
|
102 |
-
$class = new FactoryClass(substr($file, strpos($file, 'Hamcrest/')), new ReflectionClass($name));
|
103 |
-
if ($class->isFactory()) {
|
104 |
-
return $class;
|
105 |
-
}
|
106 |
-
}
|
107 |
-
}
|
108 |
-
|
109 |
-
return null;
|
110 |
-
}
|
111 |
-
|
112 |
-
public function getFactoryClassName($file)
|
113 |
-
{
|
114 |
-
$content = file_get_contents($file);
|
115 |
-
if (preg_match('/namespace\s+(.+);/', $content, $namespace)
|
116 |
-
&& preg_match('/\n\s*class\s+(\w+)\s+extends\b/', $content, $className)
|
117 |
-
&& preg_match('/@factory\b/', $content)
|
118 |
-
) {
|
119 |
-
return $namespace[1] . '\\' . $className[1];
|
120 |
-
}
|
121 |
-
|
122 |
-
return null;
|
123 |
-
}
|
124 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php
DELETED
@@ -1,231 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Represents a single static factory method from a {@link Matcher} class.
|
9 |
-
*
|
10 |
-
* @todo Search method in file contents for func_get_args() to replace factoryVarArgs.
|
11 |
-
*/
|
12 |
-
class FactoryMethod
|
13 |
-
{
|
14 |
-
/**
|
15 |
-
* @var FactoryClass
|
16 |
-
*/
|
17 |
-
private $class;
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @var ReflectionMethod
|
21 |
-
*/
|
22 |
-
private $reflector;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* @var array of string
|
26 |
-
*/
|
27 |
-
private $comment;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @var bool
|
31 |
-
*/
|
32 |
-
private $isVarArgs;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @var array of FactoryCall
|
36 |
-
*/
|
37 |
-
private $calls;
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @var array FactoryParameter
|
41 |
-
*/
|
42 |
-
private $parameters;
|
43 |
-
|
44 |
-
public function __construct(FactoryClass $class, ReflectionMethod $reflector)
|
45 |
-
{
|
46 |
-
$this->class = $class;
|
47 |
-
$this->reflector = $reflector;
|
48 |
-
$this->extractCommentWithoutLeadingShashesAndStars();
|
49 |
-
$this->extractFactoryNamesFromComment();
|
50 |
-
$this->extractParameters();
|
51 |
-
}
|
52 |
-
|
53 |
-
public function extractCommentWithoutLeadingShashesAndStars()
|
54 |
-
{
|
55 |
-
$this->comment = explode("\n", $this->reflector->getDocComment());
|
56 |
-
foreach ($this->comment as &$line) {
|
57 |
-
$line = preg_replace('#^\s*(/\\*+|\\*+/|\\*)\s?#', '', $line);
|
58 |
-
}
|
59 |
-
$this->trimLeadingBlankLinesFromComment();
|
60 |
-
$this->trimTrailingBlankLinesFromComment();
|
61 |
-
}
|
62 |
-
|
63 |
-
public function trimLeadingBlankLinesFromComment()
|
64 |
-
{
|
65 |
-
while (count($this->comment) > 0) {
|
66 |
-
$line = array_shift($this->comment);
|
67 |
-
if (trim($line) != '') {
|
68 |
-
array_unshift($this->comment, $line);
|
69 |
-
break;
|
70 |
-
}
|
71 |
-
}
|
72 |
-
}
|
73 |
-
|
74 |
-
public function trimTrailingBlankLinesFromComment()
|
75 |
-
{
|
76 |
-
while (count($this->comment) > 0) {
|
77 |
-
$line = array_pop($this->comment);
|
78 |
-
if (trim($line) != '') {
|
79 |
-
array_push($this->comment, $line);
|
80 |
-
break;
|
81 |
-
}
|
82 |
-
}
|
83 |
-
}
|
84 |
-
|
85 |
-
public function extractFactoryNamesFromComment()
|
86 |
-
{
|
87 |
-
$this->calls = array();
|
88 |
-
for ($i = 0; $i < count($this->comment); $i++) {
|
89 |
-
if ($this->extractFactoryNamesFromLine($this->comment[$i])) {
|
90 |
-
unset($this->comment[$i]);
|
91 |
-
}
|
92 |
-
}
|
93 |
-
$this->trimTrailingBlankLinesFromComment();
|
94 |
-
}
|
95 |
-
|
96 |
-
public function extractFactoryNamesFromLine($line)
|
97 |
-
{
|
98 |
-
if (preg_match('/^\s*@factory(\s+(.+))?$/', $line, $match)) {
|
99 |
-
$this->createCalls(
|
100 |
-
$this->extractFactoryNamesFromAnnotation(
|
101 |
-
isset($match[2]) ? trim($match[2]) : null
|
102 |
-
)
|
103 |
-
);
|
104 |
-
return true;
|
105 |
-
}
|
106 |
-
return false;
|
107 |
-
}
|
108 |
-
|
109 |
-
public function extractFactoryNamesFromAnnotation($value)
|
110 |
-
{
|
111 |
-
$primaryName = $this->reflector->getName();
|
112 |
-
if (empty($value)) {
|
113 |
-
return array($primaryName);
|
114 |
-
}
|
115 |
-
preg_match_all('/(\.{3}|-|[a-zA-Z_][a-zA-Z_0-9]*)/', $value, $match);
|
116 |
-
$names = $match[0];
|
117 |
-
if (in_array('...', $names)) {
|
118 |
-
$this->isVarArgs = true;
|
119 |
-
}
|
120 |
-
if (!in_array('-', $names) && !in_array($primaryName, $names)) {
|
121 |
-
array_unshift($names, $primaryName);
|
122 |
-
}
|
123 |
-
return $names;
|
124 |
-
}
|
125 |
-
|
126 |
-
public function createCalls(array $names)
|
127 |
-
{
|
128 |
-
$names = array_unique($names);
|
129 |
-
foreach ($names as $name) {
|
130 |
-
if ($name != '-' && $name != '...') {
|
131 |
-
$this->calls[] = new FactoryCall($this, $name);
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
-
|
136 |
-
public function extractParameters()
|
137 |
-
{
|
138 |
-
$this->parameters = array();
|
139 |
-
if (!$this->isVarArgs) {
|
140 |
-
foreach ($this->reflector->getParameters() as $parameter) {
|
141 |
-
$this->parameters[] = new FactoryParameter($this, $parameter);
|
142 |
-
}
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
public function getParameterDeclarations()
|
147 |
-
{
|
148 |
-
if ($this->isVarArgs || !$this->hasParameters()) {
|
149 |
-
return '';
|
150 |
-
}
|
151 |
-
$params = array();
|
152 |
-
foreach ($this->parameters as /** @var $parameter FactoryParameter */
|
153 |
-
$parameter) {
|
154 |
-
$params[] = $parameter->getDeclaration();
|
155 |
-
}
|
156 |
-
return implode(', ', $params);
|
157 |
-
}
|
158 |
-
|
159 |
-
public function getParameterInvocations()
|
160 |
-
{
|
161 |
-
if ($this->isVarArgs) {
|
162 |
-
return '';
|
163 |
-
}
|
164 |
-
$params = array();
|
165 |
-
foreach ($this->parameters as $parameter) {
|
166 |
-
$params[] = $parameter->getInvocation();
|
167 |
-
}
|
168 |
-
return implode(', ', $params);
|
169 |
-
}
|
170 |
-
|
171 |
-
|
172 |
-
public function getClass()
|
173 |
-
{
|
174 |
-
return $this->class;
|
175 |
-
}
|
176 |
-
|
177 |
-
public function getClassName()
|
178 |
-
{
|
179 |
-
return $this->class->getName();
|
180 |
-
}
|
181 |
-
|
182 |
-
public function getName()
|
183 |
-
{
|
184 |
-
return $this->reflector->name;
|
185 |
-
}
|
186 |
-
|
187 |
-
public function isFactory()
|
188 |
-
{
|
189 |
-
return count($this->calls) > 0;
|
190 |
-
}
|
191 |
-
|
192 |
-
public function getCalls()
|
193 |
-
{
|
194 |
-
return $this->calls;
|
195 |
-
}
|
196 |
-
|
197 |
-
public function acceptsVariableArguments()
|
198 |
-
{
|
199 |
-
return $this->isVarArgs;
|
200 |
-
}
|
201 |
-
|
202 |
-
public function hasParameters()
|
203 |
-
{
|
204 |
-
return !empty($this->parameters);
|
205 |
-
}
|
206 |
-
|
207 |
-
public function getParameters()
|
208 |
-
{
|
209 |
-
return $this->parameters;
|
210 |
-
}
|
211 |
-
|
212 |
-
public function getFullName()
|
213 |
-
{
|
214 |
-
return $this->getClassName() . '::' . $this->getName();
|
215 |
-
}
|
216 |
-
|
217 |
-
public function getCommentText()
|
218 |
-
{
|
219 |
-
return implode("\n", $this->comment);
|
220 |
-
}
|
221 |
-
|
222 |
-
public function getComment($indent = '')
|
223 |
-
{
|
224 |
-
$comment = $indent . '/**';
|
225 |
-
foreach ($this->comment as $line) {
|
226 |
-
$comment .= "\n" . rtrim($indent . ' * ' . $line);
|
227 |
-
}
|
228 |
-
$comment .= "\n" . $indent . ' */';
|
229 |
-
return $comment;
|
230 |
-
}
|
231 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php
DELETED
@@ -1,131 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
class FactoryParameter
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* @var FactoryMethod
|
11 |
-
*/
|
12 |
-
private $method;
|
13 |
-
|
14 |
-
/**
|
15 |
-
* @var ReflectionParameter
|
16 |
-
*/
|
17 |
-
private $reflector;
|
18 |
-
|
19 |
-
public function __construct(FactoryMethod $method, ReflectionParameter $reflector)
|
20 |
-
{
|
21 |
-
$this->method = $method;
|
22 |
-
$this->reflector = $reflector;
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Compute the declaration code.
|
27 |
-
*
|
28 |
-
* @return string
|
29 |
-
*/
|
30 |
-
public function getDeclaration()
|
31 |
-
{
|
32 |
-
$code = $this->getTypeCode() . $this->getInvocation();
|
33 |
-
|
34 |
-
if ($this->reflector->isOptional()) {
|
35 |
-
$default = $this->reflector->getDefaultValue();
|
36 |
-
if (is_null($default)) {
|
37 |
-
$default = 'null';
|
38 |
-
} elseif (is_bool($default)) {
|
39 |
-
$default = $default ? 'true' : 'false';
|
40 |
-
} elseif (is_string($default)) {
|
41 |
-
$default = "'" . $default . "'";
|
42 |
-
} elseif (is_numeric($default)) {
|
43 |
-
$default = strval($default);
|
44 |
-
} elseif (is_array($default)) {
|
45 |
-
$default = 'array()';
|
46 |
-
} else {
|
47 |
-
echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . "\n";
|
48 |
-
var_dump($default);
|
49 |
-
$default = 'null';
|
50 |
-
}
|
51 |
-
$code .= ' = ' . $default;
|
52 |
-
}
|
53 |
-
return $code;
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Compute the type code for the paramater.
|
58 |
-
*
|
59 |
-
* @return string
|
60 |
-
*/
|
61 |
-
private function getTypeCode()
|
62 |
-
{
|
63 |
-
// Handle PHP 5 separately
|
64 |
-
if (PHP_VERSION_ID < 70000) {
|
65 |
-
if ($this->reflector->isArray()) {
|
66 |
-
return 'array';
|
67 |
-
}
|
68 |
-
|
69 |
-
$class = $this->reflector->getClass();
|
70 |
-
|
71 |
-
return $class ? sprintf('\\%s ', $class->getName()) : '';
|
72 |
-
}
|
73 |
-
|
74 |
-
if (!$this->reflector->hasType()) {
|
75 |
-
return '';
|
76 |
-
}
|
77 |
-
|
78 |
-
$type = $this->reflector->getType();
|
79 |
-
$name = self::getQualifiedName($type);
|
80 |
-
|
81 |
-
// PHP 7.1+ supports nullable types via a leading question mark
|
82 |
-
return (PHP_VERSION_ID >= 70100 && $type->allowsNull()) ? sprintf('?%s ', $name) : sprintf('%s ', $name);
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Compute qualified name for the given type.
|
87 |
-
*
|
88 |
-
* This function knows how to prefix class names with a leading slash and
|
89 |
-
* also how to handle PHP 8's union types.
|
90 |
-
*
|
91 |
-
* @param ReflectionType $type
|
92 |
-
*
|
93 |
-
* @return string
|
94 |
-
*/
|
95 |
-
private static function getQualifiedName(ReflectionType $type)
|
96 |
-
{
|
97 |
-
// PHP 8 union types can be recursively processed
|
98 |
-
if ($type instanceof ReflectionUnionType) {
|
99 |
-
return implode('|', array_map(function (ReflectionType $type) {
|
100 |
-
// The "self::" call within a Closure is fine here because this
|
101 |
-
// code will only ever be executed on PHP 7.0+
|
102 |
-
return self::getQualifiedName($type);
|
103 |
-
}, $type->getTypes()));
|
104 |
-
}
|
105 |
-
|
106 |
-
// PHP 7.0 doesn't have named types, but 7.1+ does
|
107 |
-
$name = $type instanceof ReflectionNamedType ? $type->getName() : (string) $type;
|
108 |
-
|
109 |
-
return $type->isBuiltin() ? $name : sprintf('\\%s', $name);
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* Compute the invocation code.
|
114 |
-
*
|
115 |
-
* @return string
|
116 |
-
*/
|
117 |
-
public function getInvocation()
|
118 |
-
{
|
119 |
-
return sprintf('$%s', $this->reflector->getName());
|
120 |
-
}
|
121 |
-
|
122 |
-
/**
|
123 |
-
* Compute the method name.
|
124 |
-
*
|
125 |
-
* @return string
|
126 |
-
*/
|
127 |
-
public function getMethod()
|
128 |
-
{
|
129 |
-
return $this->method;
|
130 |
-
}
|
131 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
class GlobalFunctionFile extends FactoryFile
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* @var string containing function definitions
|
11 |
-
*/
|
12 |
-
private $functions;
|
13 |
-
|
14 |
-
public function __construct($file)
|
15 |
-
{
|
16 |
-
parent::__construct($file, ' ');
|
17 |
-
$this->functions = '';
|
18 |
-
}
|
19 |
-
|
20 |
-
public function addCall(FactoryCall $call)
|
21 |
-
{
|
22 |
-
$this->functions .= "\n" . $this->generateFactoryCall($call);
|
23 |
-
}
|
24 |
-
|
25 |
-
public function build()
|
26 |
-
{
|
27 |
-
$this->addFileHeader();
|
28 |
-
$this->addPart('functions_imports');
|
29 |
-
$this->addPart('functions_header');
|
30 |
-
$this->addCode($this->functions);
|
31 |
-
$this->addPart('functions_footer');
|
32 |
-
}
|
33 |
-
|
34 |
-
public function generateFactoryCall(FactoryCall $call)
|
35 |
-
{
|
36 |
-
$code = "if (!function_exists('{$call->getName()}')) {\n";
|
37 |
-
$code.= parent::generateFactoryCall($call);
|
38 |
-
$code.= "}\n";
|
39 |
-
|
40 |
-
return $code;
|
41 |
-
}
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
class StaticMethodFile extends FactoryFile
|
8 |
-
{
|
9 |
-
/**
|
10 |
-
* @var string containing method definitions
|
11 |
-
*/
|
12 |
-
private $methods;
|
13 |
-
|
14 |
-
public function __construct($file)
|
15 |
-
{
|
16 |
-
parent::__construct($file, ' ');
|
17 |
-
$this->methods = '';
|
18 |
-
}
|
19 |
-
|
20 |
-
public function addCall(FactoryCall $call)
|
21 |
-
{
|
22 |
-
$this->methods .= PHP_EOL . $this->generateFactoryCall($call);
|
23 |
-
}
|
24 |
-
|
25 |
-
public function getDeclarationModifiers()
|
26 |
-
{
|
27 |
-
return 'public static ';
|
28 |
-
}
|
29 |
-
|
30 |
-
public function build()
|
31 |
-
{
|
32 |
-
$this->addFileHeader();
|
33 |
-
$this->addPart('matchers_imports');
|
34 |
-
$this->addPart('matchers_header');
|
35 |
-
$this->addCode($this->methods);
|
36 |
-
$this->addPart('matchers_footer');
|
37 |
-
}
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009-2010 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
// This file is generated from the static method @factory doctags.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt
DELETED
File without changes
|
vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
|
2 |
-
if (!function_exists('assertThat')) {
|
3 |
-
/**
|
4 |
-
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
5 |
-
*
|
6 |
-
* Example:
|
7 |
-
* <pre>
|
8 |
-
* //With an identifier
|
9 |
-
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
10 |
-
* //Without an identifier
|
11 |
-
* assertThat($apple->flavour(), equalTo("tasty"));
|
12 |
-
* //Evaluating a boolean expression
|
13 |
-
* assertThat("some error", $a > $b);
|
14 |
-
* </pre>
|
15 |
-
*/
|
16 |
-
function assertThat()
|
17 |
-
{
|
18 |
-
$args = func_get_args();
|
19 |
-
call_user_func_array(
|
20 |
-
array('Hamcrest\MatcherAssert', 'assertThat'),
|
21 |
-
$args
|
22 |
-
);
|
23 |
-
}
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt
DELETED
File without changes
|
vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
}
|
|
vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
/**
|
4 |
-
* A series of static factories for all hamcrest matchers.
|
5 |
-
*/
|
6 |
-
class Matchers
|
7 |
-
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
|
2 |
-
namespace Hamcrest;
|
|
|
|
vendor/hamcrest/hamcrest-php/generator/run.php
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009 hamcrest.org
|
5 |
-
*/
|
6 |
-
require __DIR__ . '/../vendor/autoload.php';
|
7 |
-
|
8 |
-
/*
|
9 |
-
* Generates the Hamcrest\Matchers factory class and factory functions
|
10 |
-
* from the @factory doctags in the various matchers.
|
11 |
-
*/
|
12 |
-
|
13 |
-
define('GENERATOR_BASE', __DIR__);
|
14 |
-
define('HAMCREST_BASE', realpath(dirname(GENERATOR_BASE) . DIRECTORY_SEPARATOR . 'hamcrest'));
|
15 |
-
|
16 |
-
define('GLOBAL_FUNCTIONS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest.php');
|
17 |
-
define('STATIC_MATCHERS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest' . DIRECTORY_SEPARATOR . 'Matchers.php');
|
18 |
-
|
19 |
-
set_include_path(
|
20 |
-
implode(
|
21 |
-
PATH_SEPARATOR,
|
22 |
-
array(
|
23 |
-
GENERATOR_BASE,
|
24 |
-
HAMCREST_BASE,
|
25 |
-
get_include_path()
|
26 |
-
)
|
27 |
-
)
|
28 |
-
);
|
29 |
-
|
30 |
-
@unlink(GLOBAL_FUNCTIONS_FILE);
|
31 |
-
@unlink(STATIC_MATCHERS_FILE);
|
32 |
-
|
33 |
-
$generator = new FactoryGenerator(HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest');
|
34 |
-
$generator->addFactoryFile(new StaticMethodFile(STATIC_MATCHERS_FILE));
|
35 |
-
$generator->addFactoryFile(new GlobalFunctionFile(GLOBAL_FUNCTIONS_FILE));
|
36 |
-
$generator->generate();
|
37 |
-
$generator->write();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php
DELETED
@@ -1,882 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (c) 2009-2010 hamcrest.org
|
5 |
-
*/
|
6 |
-
|
7 |
-
// This file is generated from the static method @factory doctags.
|
8 |
-
|
9 |
-
if (!function_exists('assertThat')) {
|
10 |
-
/**
|
11 |
-
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
12 |
-
*
|
13 |
-
* Example:
|
14 |
-
* <pre>
|
15 |
-
* //With an identifier
|
16 |
-
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
17 |
-
* //Without an identifier
|
18 |
-
* assertThat($apple->flavour(), equalTo("tasty"));
|
19 |
-
* //Evaluating a boolean expression
|
20 |
-
* assertThat("some error", $a > $b);
|
21 |
-
* </pre>
|
22 |
-
*/
|
23 |
-
function assertThat()
|
24 |
-
{
|
25 |
-
$args = func_get_args();
|
26 |
-
call_user_func_array(
|
27 |
-
array('Hamcrest\MatcherAssert', 'assertThat'),
|
28 |
-
$args
|
29 |
-
);
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
if (!function_exists('anArray')) {
|
34 |
-
/**
|
35 |
-
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
36 |
-
*/
|
37 |
-
function anArray(/* args... */)
|
38 |
-
{
|
39 |
-
$args = func_get_args();
|
40 |
-
return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args);
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
if (!function_exists('hasItemInArray')) {
|
45 |
-
/**
|
46 |
-
* Evaluates to true if any item in an array satisfies the given matcher.
|
47 |
-
*
|
48 |
-
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
49 |
-
*
|
50 |
-
* @return \Hamcrest\Arrays\IsArrayContaining
|
51 |
-
*/
|
52 |
-
function hasItemInArray($item)
|
53 |
-
{
|
54 |
-
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
55 |
-
}
|
56 |
-
}
|
57 |
-
|
58 |
-
if (!function_exists('hasValue')) {
|
59 |
-
/**
|
60 |
-
* Evaluates to true if any item in an array satisfies the given matcher.
|
61 |
-
*
|
62 |
-
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
63 |
-
*
|
64 |
-
* @return \Hamcrest\Arrays\IsArrayContaining
|
65 |
-
*/
|
66 |
-
function hasValue($item)
|
67 |
-
{
|
68 |
-
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
69 |
-
}
|
70 |
-
}
|
71 |
-
|
72 |
-
if (!function_exists('arrayContainingInAnyOrder')) {
|
73 |
-
/**
|
74 |
-
* An array with elements that match the given matchers.
|
75 |
-
*/
|
76 |
-
function arrayContainingInAnyOrder(/* args... */)
|
77 |
-
{
|
78 |
-
$args = func_get_args();
|
79 |
-
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
if (!function_exists('containsInAnyOrder')) {
|
84 |
-
/**
|
85 |
-
* An array with elements that match the given matchers.
|
86 |
-
*/
|
87 |
-
function containsInAnyOrder(/* args... */)
|
88 |
-
{
|
89 |
-
$args = func_get_args();
|
90 |
-
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
91 |
-
}
|
92 |
-
}
|
93 |
-
|
94 |
-
if (!function_exists('arrayContaining')) {
|
95 |
-
/**
|
96 |
-
* An array with elements that match the given matchers in the same order.
|
97 |
-
*/
|
98 |
-
function arrayContaining(/* args... */)
|
99 |
-
{
|
100 |
-
$args = func_get_args();
|
101 |
-
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
102 |
-
}
|
103 |
-
}
|
104 |
-
|
105 |
-
if (!function_exists('contains')) {
|
106 |
-
/**
|
107 |
-
* An array with elements that match the given matchers in the same order.
|
108 |
-
*/
|
109 |
-
function contains(/* args... */)
|
110 |
-
{
|
111 |
-
$args = func_get_args();
|
112 |
-
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
113 |
-
}
|
114 |
-
}
|
115 |
-
|
116 |
-
if (!function_exists('hasKeyInArray')) {
|
117 |
-
/**
|
118 |
-
* Evaluates to true if any key in an array matches the given matcher.
|
119 |
-
*
|
120 |
-
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
121 |
-
*
|
122 |
-
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
123 |
-
*/
|
124 |
-
function hasKeyInArray($key)
|
125 |
-
{
|
126 |
-
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
127 |
-
}
|
128 |
-
}
|
129 |
-
|
130 |
-
if (!function_exists('hasKey')) {
|
131 |
-
/**
|
132 |
-
* Evaluates to true if any key in an array matches the given matcher.
|
133 |
-
*
|
134 |
-
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
135 |
-
*
|
136 |
-
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
137 |
-
*/
|
138 |
-
function hasKey($key)
|
139 |
-
{
|
140 |
-
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
141 |
-
}
|
142 |
-
}
|
143 |
-
|
144 |
-
if (!function_exists('hasKeyValuePair')) {
|
145 |
-
/**
|
146 |
-
* Test if an array has both an key and value in parity with each other.
|
147 |
-
*/
|
148 |
-
function hasKeyValuePair($key, $value)
|
149 |
-
{
|
150 |
-
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
151 |
-
}
|
152 |
-
}
|
153 |
-
|
154 |
-
if (!function_exists('hasEntry')) {
|
155 |
-
/**
|
156 |
-
* Test if an array has both an key and value in parity with each other.
|
157 |
-
*/
|
158 |
-
function hasEntry($key, $value)
|
159 |
-
{
|
160 |
-
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
161 |
-
}
|
162 |
-
}
|
163 |
-
|
164 |
-
if (!function_exists('arrayWithSize')) {
|
165 |
-
/**
|
166 |
-
* Does array size satisfy a given matcher?
|
167 |
-
*
|
168 |
-
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
169 |
-
*
|
170 |
-
* @return \Hamcrest\Arrays\IsArrayWithSize
|
171 |
-
*/
|
172 |
-
function arrayWithSize($size)
|
173 |
-
{
|
174 |
-
return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size);
|
175 |
-
}
|
176 |
-
}
|
177 |
-
|
178 |
-
if (!function_exists('emptyArray')) {
|
179 |
-
/**
|
180 |
-
* Matches an empty array.
|
181 |
-
*/
|
182 |
-
function emptyArray()
|
183 |
-
{
|
184 |
-
return \Hamcrest\Arrays\IsArrayWithSize::emptyArray();
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
if (!function_exists('nonEmptyArray')) {
|
189 |
-
/**
|
190 |
-
* Matches an empty array.
|
191 |
-
*/
|
192 |
-
function nonEmptyArray()
|
193 |
-
{
|
194 |
-
return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray();
|
195 |
-
}
|
196 |
-
}
|
197 |
-
|
198 |
-
if (!function_exists('emptyTraversable')) {
|
199 |
-
/**
|
200 |
-
* Returns true if traversable is empty.
|
201 |
-
*/
|
202 |
-
function emptyTraversable()
|
203 |
-
{
|
204 |
-
return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable();
|
205 |
-
}
|
206 |
-
}
|
207 |
-
|
208 |
-
if (!function_exists('nonEmptyTraversable')) {
|
209 |
-
/**
|
210 |
-
* Returns true if traversable is not empty.
|
211 |
-
*/
|
212 |
-
function nonEmptyTraversable()
|
213 |
-
{
|
214 |
-
return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable();
|
215 |
-
}
|
216 |
-
}
|
217 |
-
|
218 |
-
if (!function_exists('traversableWithSize')) {
|
219 |
-
/**
|
220 |
-
* Does traversable size satisfy a given matcher?
|
221 |
-
*/
|
222 |
-
function traversableWithSize($size)
|
223 |
-
{
|
224 |
-
return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size);
|
225 |
-
}
|
226 |
-
}
|
227 |
-
|
228 |
-
if (!function_exists('allOf')) {
|
229 |
-
/**
|
230 |
-
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
231 |
-
*/
|
232 |
-
function allOf(/* args... */)
|
233 |
-
{
|
234 |
-
$args = func_get_args();
|
235 |
-
return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args);
|
236 |
-
}
|
237 |
-
}
|
238 |
-
|
239 |
-
if (!function_exists('anyOf')) {
|
240 |
-
/**
|
241 |
-
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
242 |
-
*/
|
243 |
-
function anyOf(/* args... */)
|
244 |
-
{
|
245 |
-
$args = func_get_args();
|
246 |
-
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args);
|
247 |
-
}
|
248 |
-
}
|
249 |
-
|
250 |
-
if (!function_exists('noneOf')) {
|
251 |
-
/**
|
252 |
-
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
253 |
-
*/
|
254 |
-
function noneOf(/* args... */)
|
255 |
-
{
|
256 |
-
$args = func_get_args();
|
257 |
-
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args);
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
if (!function_exists('both')) {
|
262 |
-
/**
|
263 |
-
* This is useful for fluently combining matchers that must both pass.
|
264 |
-
* For example:
|
265 |
-
* <pre>
|
266 |
-
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
267 |
-
* </pre>
|
268 |
-
*/
|
269 |
-
function both(\Hamcrest\Matcher $matcher)
|
270 |
-
{
|
271 |
-
return \Hamcrest\Core\CombinableMatcher::both($matcher);
|
272 |
-
}
|
273 |
-
}
|
274 |
-
|
275 |
-
if (!function_exists('either')) {
|
276 |
-
/**
|
277 |
-
* This is useful for fluently combining matchers where either may pass,
|
278 |
-
* for example:
|
279 |
-
* <pre>
|
280 |
-
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
281 |
-
* </pre>
|
282 |
-
*/
|
283 |
-
function either(\Hamcrest\Matcher $matcher)
|
284 |
-
{
|
285 |
-
return \Hamcrest\Core\CombinableMatcher::either($matcher);
|
286 |
-
}
|
287 |
-
}
|
288 |
-
|
289 |
-
if (!function_exists('describedAs')) {
|
290 |
-
/**
|
291 |
-
* Wraps an existing matcher and overrides the description when it fails.
|
292 |
-
*/
|
293 |
-
function describedAs(/* args... */)
|
294 |
-
{
|
295 |
-
$args = func_get_args();
|
296 |
-
return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args);
|
297 |
-
}
|
298 |
-
}
|
299 |
-
|
300 |
-
if (!function_exists('everyItem')) {
|
301 |
-
/**
|
302 |
-
* @param Matcher $itemMatcher
|
303 |
-
* A matcher to apply to every element in an array.
|
304 |
-
*
|
305 |
-
* @return \Hamcrest\Core\Every
|
306 |
-
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
307 |
-
*/
|
308 |
-
function everyItem(\Hamcrest\Matcher $itemMatcher)
|
309 |
-
{
|
310 |
-
return \Hamcrest\Core\Every::everyItem($itemMatcher);
|
311 |
-
}
|
312 |
-
}
|
313 |
-
|
314 |
-
if (!function_exists('hasToString')) {
|
315 |
-
/**
|
316 |
-
* Does array size satisfy a given matcher?
|
317 |
-
*/
|
318 |
-
function hasToString($matcher)
|
319 |
-
{
|
320 |
-
return \Hamcrest\Core\HasToString::hasToString($matcher);
|
321 |
-
}
|
322 |
-
}
|
323 |
-
|
324 |
-
if (!function_exists('is')) {
|
325 |
-
/**
|
326 |
-
* Decorates another Matcher, retaining the behavior but allowing tests
|
327 |
-
* to be slightly more expressive.
|
328 |
-
*
|
329 |
-
* For example: assertThat($cheese, equalTo($smelly))
|
330 |
-
* vs. assertThat($cheese, is(equalTo($smelly)))
|
331 |
-
*/
|
332 |
-
function is($value)
|
333 |
-
{
|
334 |
-
return \Hamcrest\Core\Is::is($value);
|
335 |
-
}
|
336 |
-
}
|
337 |
-
|
338 |
-
if (!function_exists('anything')) {
|
339 |
-
/**
|
340 |
-
* This matcher always evaluates to true.
|
341 |
-
*
|
342 |
-
* @param string $description A meaningful string used when describing itself.
|
343 |
-
*
|
344 |
-
* @return \Hamcrest\Core\IsAnything
|
345 |
-
*/
|
346 |
-
function anything($description = 'ANYTHING')
|
347 |
-
{
|
348 |
-
return \Hamcrest\Core\IsAnything::anything($description);
|
349 |
-
}
|
350 |
-
}
|
351 |
-
|
352 |
-
if (!function_exists('hasItem')) {
|
353 |
-
/**
|
354 |
-
* Test if the value is an array containing this matcher.
|
355 |
-
*
|
356 |
-
* Example:
|
357 |
-
* <pre>
|
358 |
-
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
359 |
-
* //Convenience defaults to equalTo()
|
360 |
-
* assertThat(array('a', 'b'), hasItem('b'));
|
361 |
-
* </pre>
|
362 |
-
*/
|
363 |
-
function hasItem(/* args... */)
|
364 |
-
{
|
365 |
-
$args = func_get_args();
|
366 |
-
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args);
|
367 |
-
}
|
368 |
-
}
|
369 |
-
|
370 |
-
if (!function_exists('hasItems')) {
|
371 |
-
/**
|
372 |
-
* Test if the value is an array containing elements that match all of these
|
373 |
-
* matchers.
|
374 |
-
*
|
375 |
-
* Example:
|
376 |
-
* <pre>
|
377 |
-
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
378 |
-
* </pre>
|
379 |
-
*/
|
380 |
-
function hasItems(/* args... */)
|
381 |
-
{
|
382 |
-
$args = func_get_args();
|
383 |
-
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args);
|
384 |
-
}
|
385 |
-
}
|
386 |
-
|
387 |
-
if (!function_exists('equalTo')) {
|
388 |
-
/**
|
389 |
-
* Is the value equal to another value, as tested by the use of the "=="
|
390 |
-
* comparison operator?
|
391 |
-
*/
|
392 |
-
function equalTo($item)
|
393 |
-
{
|
394 |
-
return \Hamcrest\Core\IsEqual::equalTo($item);
|
395 |
-
}
|
396 |
-
}
|
397 |
-
|
398 |
-
if (!function_exists('identicalTo')) {
|
399 |
-
/**
|
400 |
-
* Tests of the value is identical to $value as tested by the "===" operator.
|
401 |
-
*/
|
402 |
-
function identicalTo($value)
|
403 |
-
{
|
404 |
-
return \Hamcrest\Core\IsIdentical::identicalTo($value);
|
405 |
-
}
|
406 |
-
}
|
407 |
-
|
408 |
-
if (!function_exists('anInstanceOf')) {
|
409 |
-
/**
|
410 |
-
* Is the value an instance of a particular type?
|
411 |
-
* This version assumes no relationship between the required type and
|
412 |
-
* the signature of the method that sets it up, for example in
|
413 |
-
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
414 |
-
*/
|
415 |
-
function anInstanceOf($theClass)
|
416 |
-
{
|
417 |
-
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
418 |
-
}
|
419 |
-
}
|
420 |
-
|
421 |
-
if (!function_exists('any')) {
|
422 |
-
/**
|
423 |
-
* Is the value an instance of a particular type?
|
424 |
-
* This version assumes no relationship between the required type and
|
425 |
-
* the signature of the method that sets it up, for example in
|
426 |
-
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
427 |
-
*/
|
428 |
-
function any($theClass)
|
429 |
-
{
|
430 |
-
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
431 |
-
}
|
432 |
-
}
|
433 |
-
|
434 |
-
if (!function_exists('not')) {
|
435 |
-
/**
|
436 |
-
* Matches if value does not match $value.
|
437 |
-
*/
|
438 |
-
function not($value)
|
439 |
-
{
|
440 |
-
return \Hamcrest\Core\IsNot::not($value);
|
441 |
-
}
|
442 |
-
}
|
443 |
-
|
444 |
-
if (!function_exists('nullValue')) {
|
445 |
-
/**
|
446 |
-
* Matches if value is null.
|
447 |
-
*/
|
448 |
-
function nullValue()
|
449 |
-
{
|
450 |
-
return \Hamcrest\Core\IsNull::nullValue();
|
451 |
-
}
|
452 |
-
}
|
453 |
-
|
454 |
-
if (!function_exists('notNullValue')) {
|
455 |
-
/**
|
456 |
-
* Matches if value is not null.
|
457 |
-
*/
|
458 |
-
function notNullValue()
|
459 |
-
{
|
460 |
-
return \Hamcrest\Core\IsNull::notNullValue();
|
461 |
-
}
|
462 |
-
}
|
463 |
-
|
464 |
-
if (!function_exists('sameInstance')) {
|
465 |
-
/**
|
466 |
-
* Creates a new instance of IsSame.
|
467 |
-
*
|
468 |
-
* @param mixed $object
|
469 |
-
* The predicate evaluates to true only when the argument is
|
470 |
-
* this object.
|
471 |
-
*
|
472 |
-
* @return \Hamcrest\Core\IsSame
|
473 |
-
*/
|
474 |
-
function sameInstance($object)
|
475 |
-
{
|
476 |
-
return \Hamcrest\Core\IsSame::sameInstance($object);
|
477 |
-
}
|
478 |
-
}
|
479 |
-
|
480 |
-
if (!function_exists('typeOf')) {
|
481 |
-
/**
|
482 |
-
* Is the value a particular built-in type?
|
483 |
-
*/
|
484 |
-
function typeOf($theType)
|
485 |
-
{
|
486 |
-
return \Hamcrest\Core\IsTypeOf::typeOf($theType);
|
487 |
-
}
|
488 |
-
}
|
489 |
-
|
490 |
-
if (!function_exists('set')) {
|
491 |
-
/**
|
492 |
-
* Matches if value (class, object, or array) has named $property.
|
493 |
-
*/
|
494 |
-
function set($property)
|
495 |
-
{
|
496 |
-
return \Hamcrest\Core\Set::set($property);
|
497 |
-
}
|
498 |
-
}
|
499 |
-
|
500 |
-
if (!function_exists('notSet')) {
|
501 |
-
/**
|
502 |
-
* Matches if value (class, object, or array) does not have named $property.
|
503 |
-
*/
|
504 |
-
function notSet($property)
|
505 |
-
{
|
506 |
-
return \Hamcrest\Core\Set::notSet($property);
|
507 |
-
}
|
508 |
-
}
|
509 |
-
|
510 |
-
if (!function_exists('closeTo')) {
|
511 |
-
/**
|
512 |
-
* Matches if value is a number equal to $value within some range of
|
513 |
-
* acceptable error $delta.
|
514 |
-
*/
|
515 |
-
function closeTo($value, $delta)
|
516 |
-
{
|
517 |
-
return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta);
|
518 |
-
}
|
519 |
-
}
|
520 |
-
|
521 |
-
if (!function_exists('comparesEqualTo')) {
|
522 |
-
/**
|
523 |
-
* The value is not > $value, nor < $value.
|
524 |
-
*/
|
525 |
-
function comparesEqualTo($value)
|
526 |
-
{
|
527 |
-
return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value);
|
528 |
-
}
|
529 |
-
}
|
530 |
-
|
531 |
-
if (!function_exists('greaterThan')) {
|
532 |
-
/**
|
533 |
-
* The value is > $value.
|
534 |
-
*/
|
535 |
-
function greaterThan($value)
|
536 |
-
{
|
537 |
-
return \Hamcrest\Number\OrderingComparison::greaterThan($value);
|
538 |
-
}
|
539 |
-
}
|
540 |
-
|
541 |
-
if (!function_exists('greaterThanOrEqualTo')) {
|
542 |
-
/**
|
543 |
-
* The value is >= $value.
|
544 |
-
*/
|
545 |
-
function greaterThanOrEqualTo($value)
|
546 |
-
{
|
547 |
-
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
548 |
-
}
|
549 |
-
}
|
550 |
-
|
551 |
-
if (!function_exists('atLeast')) {
|
552 |
-
/**
|
553 |
-
* The value is >= $value.
|
554 |
-
*/
|
555 |
-
function atLeast($value)
|
556 |
-
{
|
557 |
-
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
558 |
-
}
|
559 |
-
}
|
560 |
-
|
561 |
-
if (!function_exists('lessThan')) {
|
562 |
-
/**
|
563 |
-
* The value is < $value.
|
564 |
-
*/
|
565 |
-
function lessThan($value)
|
566 |
-
{
|
567 |
-
return \Hamcrest\Number\OrderingComparison::lessThan($value);
|
568 |
-
}
|
569 |
-
}
|
570 |
-
|
571 |
-
if (!function_exists('lessThanOrEqualTo')) {
|
572 |
-
/**
|
573 |
-
* The value is <= $value.
|
574 |
-
*/
|
575 |
-
function lessThanOrEqualTo($value)
|
576 |
-
{
|
577 |
-
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
578 |
-
}
|
579 |
-
}
|
580 |
-
|
581 |
-
if (!function_exists('atMost')) {
|
582 |
-
/**
|
583 |
-
* The value is <= $value.
|
584 |
-
*/
|
585 |
-
function atMost($value)
|
586 |
-
{
|
587 |
-
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
588 |
-
}
|
589 |
-
}
|
590 |
-
|
591 |
-
if (!function_exists('isEmptyString')) {
|
592 |
-
/**
|
593 |
-
* Matches if value is a zero-length string.
|
594 |
-
*/
|
595 |
-
function isEmptyString()
|
596 |
-
{
|
597 |
-
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
598 |
-
}
|
599 |
-
}
|
600 |
-
|
601 |
-
if (!function_exists('emptyString')) {
|
602 |
-
/**
|
603 |
-
* Matches if value is a zero-length string.
|
604 |
-
*/
|
605 |
-
function emptyString()
|
606 |
-
{
|
607 |
-
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
608 |
-
}
|
609 |
-
}
|
610 |
-
|
611 |
-
if (!function_exists('isEmptyOrNullString')) {
|
612 |
-
/**
|
613 |
-
* Matches if value is null or a zero-length string.
|
614 |
-
*/
|
615 |
-
function isEmptyOrNullString()
|
616 |
-
{
|
617 |
-
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
618 |
-
}
|
619 |
-
}
|
620 |
-
|
621 |
-
if (!function_exists('nullOrEmptyString')) {
|
622 |
-
/**
|
623 |
-
* Matches if value is null or a zero-length string.
|
624 |
-
*/
|
625 |
-
function nullOrEmptyString()
|
626 |
-
{
|
627 |
-
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
628 |
-
}
|
629 |
-
}
|
630 |
-
|
631 |
-
if (!function_exists('isNonEmptyString')) {
|
632 |
-
/**
|
633 |
-
* Matches if value is a non-zero-length string.
|
634 |
-
*/
|
635 |
-
function isNonEmptyString()
|
636 |
-
{
|
637 |
-
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
638 |
-
}
|
639 |
-
}
|
640 |
-
|
641 |
-
if (!function_exists('nonEmptyString')) {
|
642 |
-
/**
|
643 |
-
* Matches if value is a non-zero-length string.
|
644 |
-
*/
|
645 |
-
function nonEmptyString()
|
646 |
-
{
|
647 |
-
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
648 |
-
}
|
649 |
-
}
|
650 |
-
|
651 |
-
if (!function_exists('equalToIgnoringCase')) {
|
652 |
-
/**
|
653 |
-
* Matches if value is a string equal to $string, regardless of the case.
|
654 |
-
*/
|
655 |
-
function equalToIgnoringCase($string)
|
656 |
-
{
|
657 |
-
return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string);
|
658 |
-
}
|
659 |
-
}
|
660 |
-
|
661 |
-
if (!function_exists('equalToIgnoringWhiteSpace')) {
|
662 |
-
/**
|
663 |
-
* Matches if value is a string equal to $string, regardless of whitespace.
|
664 |
-
*/
|
665 |
-
function equalToIgnoringWhiteSpace($string)
|
666 |
-
{
|
667 |
-
return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string);
|
668 |
-
}
|
669 |
-
}
|
670 |
-
|
671 |
-
if (!function_exists('matchesPattern')) {
|
672 |
-
/**
|
673 |
-
* Matches if value is a string that matches regular expression $pattern.
|
674 |
-
*/
|
675 |
-
function matchesPattern($pattern)
|
676 |
-
{
|
677 |
-
return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern);
|
678 |
-
}
|
679 |
-
}
|
680 |
-
|
681 |
-
if (!function_exists('containsString')) {
|
682 |
-
/**
|
683 |
-
* Matches if value is a string that contains $substring.
|
684 |
-
*/
|
685 |
-
function containsString($substring)
|
686 |
-
{
|
687 |
-
return \Hamcrest\Text\StringContains::containsString($substring);
|
688 |
-
}
|
689 |
-
}
|
690 |
-
|
691 |
-
if (!function_exists('containsStringIgnoringCase')) {
|
692 |
-
/**
|
693 |
-
* Matches if value is a string that contains $substring regardless of the case.
|
694 |
-
*/
|
695 |
-
function containsStringIgnoringCase($substring)
|
696 |
-
{
|
697 |
-
return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring);
|
698 |
-
}
|
699 |
-
}
|
700 |
-
|
701 |
-
if (!function_exists('stringContainsInOrder')) {
|
702 |
-
/**
|
703 |
-
* Matches if value contains $substrings in a constrained order.
|
704 |
-
*/
|
705 |
-
function stringContainsInOrder(/* args... */)
|
706 |
-
{
|
707 |
-
$args = func_get_args();
|
708 |
-
return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args);
|
709 |
-
}
|
710 |
-
}
|
711 |
-
|
712 |
-
if (!function_exists('endsWith')) {
|
713 |
-
/**
|
714 |
-
* Matches if value is a string that ends with $substring.
|
715 |
-
*/
|
716 |
-
function endsWith($substring)
|
717 |
-
{
|
718 |
-
return \Hamcrest\Text\StringEndsWith::endsWith($substring);
|
719 |
-
}
|
720 |
-
}
|
721 |
-
|
722 |
-
if (!function_exists('startsWith')) {
|
723 |
-
/**
|
724 |
-
* Matches if value is a string that starts with $substring.
|
725 |
-
*/
|
726 |
-
function startsWith($substring)
|
727 |
-
{
|
728 |
-
return \Hamcrest\Text\StringStartsWith::startsWith($substring);
|
729 |
-
}
|
730 |
-
}
|
731 |
-
|
732 |
-
if (!function_exists('arrayValue')) {
|
733 |
-
/**
|
734 |
-
* Is the value an array?
|
735 |
-
*/
|
736 |
-
function arrayValue()
|
737 |
-
{
|
738 |
-
return \Hamcrest\Type\IsArray::arrayValue();
|
739 |
-
}
|
740 |
-
}
|
741 |
-
|
742 |
-
if (!function_exists('booleanValue')) {
|
743 |
-
/**
|
744 |
-
* Is the value a boolean?
|
745 |
-
*/
|
746 |
-
function booleanValue()
|
747 |
-
{
|
748 |
-
return \Hamcrest\Type\IsBoolean::booleanValue();
|
749 |
-
}
|
750 |
-
}
|
751 |
-
|
752 |
-
if (!function_exists('boolValue')) {
|
753 |
-
/**
|
754 |
-
* Is the value a boolean?
|
755 |
-
*/
|
756 |
-
function boolValue()
|
757 |
-
{
|
758 |
-
return \Hamcrest\Type\IsBoolean::booleanValue();
|
759 |
-
}
|
760 |
-
}
|
761 |
-
|
762 |
-
if (!function_exists('callableValue')) {
|
763 |
-
/**
|
764 |
-
* Is the value callable?
|
765 |
-
*/
|
766 |
-
function callableValue()
|
767 |
-
{
|
768 |
-
return \Hamcrest\Type\IsCallable::callableValue();
|
769 |
-
}
|
770 |
-
}
|
771 |
-
|
772 |
-
if (!function_exists('doubleValue')) {
|
773 |
-
/**
|
774 |
-
* Is the value a float/double?
|
775 |
-
*/
|
776 |
-
function doubleValue()
|
777 |
-
{
|
778 |
-
return \Hamcrest\Type\IsDouble::doubleValue();
|
779 |
-
}
|
780 |
-
}
|
781 |
-
|
782 |
-
if (!function_exists('floatValue')) {
|
783 |
-
/**
|
784 |
-
* Is the value a float/double?
|
785 |
-
*/
|
786 |
-
function floatValue()
|
787 |
-
{
|
788 |
-
return \Hamcrest\Type\IsDouble::doubleValue();
|
789 |
-
}
|
790 |
-
}
|
791 |
-
|
792 |
-
if (!function_exists('integerValue')) {
|
793 |
-
/**
|
794 |
-
* Is the value an integer?
|
795 |
-
*/
|
796 |
-
function integerValue()
|
797 |
-
{
|
798 |
-
return \Hamcrest\Type\IsInteger::integerValue();
|
799 |
-
}
|
800 |
-
}
|
801 |
-
|
802 |
-
if (!function_exists('intValue')) {
|
803 |
-
/**
|
804 |
-
* Is the value an integer?
|
805 |
-
*/
|
806 |
-
function intValue()
|
807 |
-
{
|
808 |
-
return \Hamcrest\Type\IsInteger::integerValue();
|
809 |
-
}
|
810 |
-
}
|
811 |
-
|
812 |
-
if (!function_exists('numericValue')) {
|
813 |
-
/**
|
814 |
-
* Is the value a numeric?
|
815 |
-
*/
|
816 |
-
function numericValue()
|
817 |
-
{
|
818 |
-
return \Hamcrest\Type\IsNumeric::numericValue();
|
819 |
-
}
|
820 |
-
}
|
821 |
-
|
822 |
-
if (!function_exists('objectValue')) {
|
823 |
-
/**
|
824 |
-
* Is the value an object?
|
825 |
-
*/
|
826 |
-
function objectValue()
|
827 |
-
{
|
828 |
-
return \Hamcrest\Type\IsObject::objectValue();
|
829 |
-
}
|
830 |
-
}
|
831 |
-
|
832 |
-
if (!function_exists('anObject')) {
|
833 |
-
/**
|
834 |
-
* Is the value an object?
|
835 |
-
*/
|
836 |
-
function anObject()
|
837 |
-
{
|
838 |
-
return \Hamcrest\Type\IsObject::objectValue();
|
839 |
-
}
|
840 |
-
}
|
841 |
-
|
842 |
-
if (!function_exists('resourceValue')) {
|
843 |
-
/**
|
844 |
-
* Is the value a resource?
|
845 |
-
*/
|
846 |
-
function resourceValue()
|
847 |
-
{
|
848 |
-
return \Hamcrest\Type\IsResource::resourceValue();
|
849 |
-
}
|
850 |
-
}
|
851 |
-
|
852 |
-
if (!function_exists('scalarValue')) {
|
853 |
-
/**
|
854 |
-
* Is the value a scalar (boolean, integer, double, or string)?
|
855 |
-
*/
|
856 |
-
function scalarValue()
|
857 |
-
{
|
858 |
-
return \Hamcrest\Type\IsScalar::scalarValue();
|
859 |
-
}
|
860 |
-
}
|
861 |
-
|
862 |
-
if (!function_exists('stringValue')) {
|
863 |
-
/**
|
864 |
-
* Is the value a string?
|
865 |
-
*/
|
866 |
-
function stringValue()
|
867 |
-
{
|
868 |
-
return \Hamcrest\Type\IsString::stringValue();
|
869 |
-
}
|
870 |
-
}
|
871 |
-
|
872 |
-
if (!function_exists('hasXPath')) {
|
873 |
-
/**
|
874 |
-
* Wraps <code>$matcher</code> with {@link Hamcrest\Core\IsEqual)
|
875 |
-
* if it's not a matcher and the XPath in <code>count()</code>
|
876 |
-
* if it's an integer.
|
877 |
-
*/
|
878 |
-
function hasXPath($xpath, $matcher = null)
|
879 |
-
{
|
880 |
-
return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher);
|
881 |
-
}
|
882 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
// NOTE: This class is not exactly a direct port of Java's since Java handles
|
9 |
-
// arrays quite differently than PHP
|
10 |
-
|
11 |
-
// TODO: Allow this to take matchers or values within the array
|
12 |
-
use Hamcrest\Description;
|
13 |
-
use Hamcrest\TypeSafeMatcher;
|
14 |
-
use Hamcrest\Util;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Matcher for array whose elements satisfy a sequence of matchers.
|
18 |
-
* The array size must equal the number of element matchers.
|
19 |
-
*/
|
20 |
-
class IsArray extends TypeSafeMatcher
|
21 |
-
{
|
22 |
-
|
23 |
-
private $_elementMatchers;
|
24 |
-
|
25 |
-
public function __construct(array $elementMatchers)
|
26 |
-
{
|
27 |
-
parent::__construct(self::TYPE_ARRAY);
|
28 |
-
|
29 |
-
Util::checkAllAreMatchers($elementMatchers);
|
30 |
-
|
31 |
-
$this->_elementMatchers = $elementMatchers;
|
32 |
-
}
|
33 |
-
|
34 |
-
protected function matchesSafely($array)
|
35 |
-
{
|
36 |
-
if (array_keys($array) != array_keys($this->_elementMatchers)) {
|
37 |
-
return false;
|
38 |
-
}
|
39 |
-
|
40 |
-
/** @var $matcher \Hamcrest\Matcher */
|
41 |
-
foreach ($this->_elementMatchers as $k => $matcher) {
|
42 |
-
if (!$matcher->matches($array[$k])) {
|
43 |
-
return false;
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
return true;
|
48 |
-
}
|
49 |
-
|
50 |
-
protected function describeMismatchSafely($actual, Description $mismatchDescription)
|
51 |
-
{
|
52 |
-
if (count($actual) != count($this->_elementMatchers)) {
|
53 |
-
$mismatchDescription->appendText('array length was ' . count($actual));
|
54 |
-
|
55 |
-
return;
|
56 |
-
} elseif (array_keys($actual) != array_keys($this->_elementMatchers)) {
|
57 |
-
$mismatchDescription->appendText('array keys were ')
|
58 |
-
->appendValueList(
|
59 |
-
$this->descriptionStart(),
|
60 |
-
$this->descriptionSeparator(),
|
61 |
-
$this->descriptionEnd(),
|
62 |
-
array_keys($actual)
|
63 |
-
)
|
64 |
-
;
|
65 |
-
|
66 |
-
return;
|
67 |
-
}
|
68 |
-
|
69 |
-
/** @var $matcher \Hamcrest\Matcher */
|
70 |
-
foreach ($this->_elementMatchers as $k => $matcher) {
|
71 |
-
if (!$matcher->matches($actual[$k])) {
|
72 |
-
$mismatchDescription->appendText('element ')->appendValue($k)
|
73 |
-
->appendText(' was ')->appendValue($actual[$k]);
|
74 |
-
|
75 |
-
return;
|
76 |
-
}
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
public function describeTo(Description $description)
|
81 |
-
{
|
82 |
-
$description->appendList(
|
83 |
-
$this->descriptionStart(),
|
84 |
-
$this->descriptionSeparator(),
|
85 |
-
$this->descriptionEnd(),
|
86 |
-
$this->_elementMatchers
|
87 |
-
);
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
92 |
-
*
|
93 |
-
* @factory ...
|
94 |
-
*/
|
95 |
-
public static function anArray(/* args... */)
|
96 |
-
{
|
97 |
-
$args = func_get_args();
|
98 |
-
|
99 |
-
return new self(Util::createMatcherArray($args));
|
100 |
-
}
|
101 |
-
|
102 |
-
// -- Protected Methods
|
103 |
-
|
104 |
-
protected function descriptionStart()
|
105 |
-
{
|
106 |
-
return '[';
|
107 |
-
}
|
108 |
-
|
109 |
-
protected function descriptionSeparator()
|
110 |
-
{
|
111 |
-
return ', ';
|
112 |
-
}
|
113 |
-
|
114 |
-
protected function descriptionEnd()
|
115 |
-
{
|
116 |
-
return ']';
|
117 |
-
}
|
118 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\Matcher;
|
9 |
-
use Hamcrest\TypeSafeMatcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Matches if an array contains an item satisfying a nested matcher.
|
14 |
-
*/
|
15 |
-
class IsArrayContaining extends TypeSafeMatcher
|
16 |
-
{
|
17 |
-
|
18 |
-
private $_elementMatcher;
|
19 |
-
|
20 |
-
public function __construct(Matcher $elementMatcher)
|
21 |
-
{
|
22 |
-
parent::__construct(self::TYPE_ARRAY);
|
23 |
-
|
24 |
-
$this->_elementMatcher = $elementMatcher;
|
25 |
-
}
|
26 |
-
|
27 |
-
protected function matchesSafely($array)
|
28 |
-
{
|
29 |
-
foreach ($array as $element) {
|
30 |
-
if ($this->_elementMatcher->matches($element)) {
|
31 |
-
return true;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
return false;
|
36 |
-
}
|
37 |
-
|
38 |
-
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
39 |
-
{
|
40 |
-
$mismatchDescription->appendText('was ')->appendValue($array);
|
41 |
-
}
|
42 |
-
|
43 |
-
public function describeTo(Description $description)
|
44 |
-
{
|
45 |
-
$description
|
46 |
-
->appendText('an array containing ')
|
47 |
-
->appendDescriptionOf($this->_elementMatcher)
|
48 |
-
;
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Evaluates to true if any item in an array satisfies the given matcher.
|
53 |
-
*
|
54 |
-
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
55 |
-
*
|
56 |
-
* @return \Hamcrest\Arrays\IsArrayContaining
|
57 |
-
* @factory hasValue
|
58 |
-
*/
|
59 |
-
public static function hasItemInArray($item)
|
60 |
-
{
|
61 |
-
return new self(Util::wrapValueWithIsEqual($item));
|
62 |
-
}
|
63 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\TypeSafeDiagnosingMatcher;
|
9 |
-
use Hamcrest\Util;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Matches if an array contains a set of items satisfying nested matchers.
|
13 |
-
*/
|
14 |
-
class IsArrayContainingInAnyOrder extends TypeSafeDiagnosingMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
private $_elementMatchers;
|
18 |
-
|
19 |
-
public function __construct(array $elementMatchers)
|
20 |
-
{
|
21 |
-
parent::__construct(self::TYPE_ARRAY);
|
22 |
-
|
23 |
-
Util::checkAllAreMatchers($elementMatchers);
|
24 |
-
|
25 |
-
$this->_elementMatchers = $elementMatchers;
|
26 |
-
}
|
27 |
-
|
28 |
-
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
29 |
-
{
|
30 |
-
$matching = new MatchingOnce($this->_elementMatchers, $mismatchDescription);
|
31 |
-
|
32 |
-
foreach ($array as $element) {
|
33 |
-
if (!$matching->matches($element)) {
|
34 |
-
return false;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
|
38 |
-
return $matching->isFinished($array);
|
39 |
-
}
|
40 |
-
|
41 |
-
public function describeTo(Description $description)
|
42 |
-
{
|
43 |
-
$description->appendList('[', ', ', ']', $this->_elementMatchers)
|
44 |
-
->appendText(' in any order')
|
45 |
-
;
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* An array with elements that match the given matchers.
|
50 |
-
*
|
51 |
-
* @factory containsInAnyOrder ...
|
52 |
-
*/
|
53 |
-
public static function arrayContainingInAnyOrder(/* args... */)
|
54 |
-
{
|
55 |
-
$args = func_get_args();
|
56 |
-
|
57 |
-
return new self(Util::createMatcherArray($args));
|
58 |
-
}
|
59 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\TypeSafeDiagnosingMatcher;
|
9 |
-
use Hamcrest\Util;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Matches if an array contains a set of items satisfying nested matchers.
|
13 |
-
*/
|
14 |
-
class IsArrayContainingInOrder extends TypeSafeDiagnosingMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
private $_elementMatchers;
|
18 |
-
|
19 |
-
public function __construct(array $elementMatchers)
|
20 |
-
{
|
21 |
-
parent::__construct(self::TYPE_ARRAY);
|
22 |
-
|
23 |
-
Util::checkAllAreMatchers($elementMatchers);
|
24 |
-
|
25 |
-
$this->_elementMatchers = $elementMatchers;
|
26 |
-
}
|
27 |
-
|
28 |
-
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
29 |
-
{
|
30 |
-
$series = new SeriesMatchingOnce($this->_elementMatchers, $mismatchDescription);
|
31 |
-
|
32 |
-
foreach ($array as $element) {
|
33 |
-
if (!$series->matches($element)) {
|
34 |
-
return false;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
|
38 |
-
return $series->isFinished();
|
39 |
-
}
|
40 |
-
|
41 |
-
public function describeTo(Description $description)
|
42 |
-
{
|
43 |
-
$description->appendList('[', ', ', ']', $this->_elementMatchers);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* An array with elements that match the given matchers in the same order.
|
48 |
-
*
|
49 |
-
* @factory contains ...
|
50 |
-
*/
|
51 |
-
public static function arrayContaining(/* args... */)
|
52 |
-
{
|
53 |
-
$args = func_get_args();
|
54 |
-
|
55 |
-
return new self(Util::createMatcherArray($args));
|
56 |
-
}
|
57 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\Matcher;
|
9 |
-
use Hamcrest\TypeSafeMatcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Matches if an array contains the specified key.
|
14 |
-
*/
|
15 |
-
class IsArrayContainingKey extends TypeSafeMatcher
|
16 |
-
{
|
17 |
-
|
18 |
-
private $_keyMatcher;
|
19 |
-
|
20 |
-
public function __construct(Matcher $keyMatcher)
|
21 |
-
{
|
22 |
-
parent::__construct(self::TYPE_ARRAY);
|
23 |
-
|
24 |
-
$this->_keyMatcher = $keyMatcher;
|
25 |
-
}
|
26 |
-
|
27 |
-
protected function matchesSafely($array)
|
28 |
-
{
|
29 |
-
foreach ($array as $key => $element) {
|
30 |
-
if ($this->_keyMatcher->matches($key)) {
|
31 |
-
return true;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
return false;
|
36 |
-
}
|
37 |
-
|
38 |
-
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
39 |
-
{
|
40 |
-
//Not using appendValueList() so that keys can be shown
|
41 |
-
$mismatchDescription->appendText('array was ')
|
42 |
-
->appendText('[')
|
43 |
-
;
|
44 |
-
$loop = false;
|
45 |
-
foreach ($array as $key => $value) {
|
46 |
-
if ($loop) {
|
47 |
-
$mismatchDescription->appendText(', ');
|
48 |
-
}
|
49 |
-
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
50 |
-
$loop = true;
|
51 |
-
}
|
52 |
-
$mismatchDescription->appendText(']');
|
53 |
-
}
|
54 |
-
|
55 |
-
public function describeTo(Description $description)
|
56 |
-
{
|
57 |
-
$description
|
58 |
-
->appendText('array with key ')
|
59 |
-
->appendDescriptionOf($this->_keyMatcher)
|
60 |
-
;
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Evaluates to true if any key in an array matches the given matcher.
|
65 |
-
*
|
66 |
-
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
67 |
-
*
|
68 |
-
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
69 |
-
* @factory hasKey
|
70 |
-
*/
|
71 |
-
public static function hasKeyInArray($key)
|
72 |
-
{
|
73 |
-
return new self(Util::wrapValueWithIsEqual($key));
|
74 |
-
}
|
75 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/**
|
5 |
-
* Tests for the presence of both a key and value inside an array.
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\Matcher;
|
9 |
-
use Hamcrest\TypeSafeMatcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @namespace
|
14 |
-
*/
|
15 |
-
|
16 |
-
class IsArrayContainingKeyValuePair extends TypeSafeMatcher
|
17 |
-
{
|
18 |
-
|
19 |
-
private $_keyMatcher;
|
20 |
-
private $_valueMatcher;
|
21 |
-
|
22 |
-
public function __construct(Matcher $keyMatcher, Matcher $valueMatcher)
|
23 |
-
{
|
24 |
-
parent::__construct(self::TYPE_ARRAY);
|
25 |
-
|
26 |
-
$this->_keyMatcher = $keyMatcher;
|
27 |
-
$this->_valueMatcher = $valueMatcher;
|
28 |
-
}
|
29 |
-
|
30 |
-
protected function matchesSafely($array)
|
31 |
-
{
|
32 |
-
foreach ($array as $key => $value) {
|
33 |
-
if ($this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) {
|
34 |
-
return true;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
|
38 |
-
return false;
|
39 |
-
}
|
40 |
-
|
41 |
-
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
42 |
-
{
|
43 |
-
//Not using appendValueList() so that keys can be shown
|
44 |
-
$mismatchDescription->appendText('array was ')
|
45 |
-
->appendText('[')
|
46 |
-
;
|
47 |
-
$loop = false;
|
48 |
-
foreach ($array as $key => $value) {
|
49 |
-
if ($loop) {
|
50 |
-
$mismatchDescription->appendText(', ');
|
51 |
-
}
|
52 |
-
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
53 |
-
$loop = true;
|
54 |
-
}
|
55 |
-
$mismatchDescription->appendText(']');
|
56 |
-
}
|
57 |
-
|
58 |
-
public function describeTo(Description $description)
|
59 |
-
{
|
60 |
-
$description->appendText('array containing [')
|
61 |
-
->appendDescriptionOf($this->_keyMatcher)
|
62 |
-
->appendText(' => ')
|
63 |
-
->appendDescriptionOf($this->_valueMatcher)
|
64 |
-
->appendText(']')
|
65 |
-
;
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Test if an array has both an key and value in parity with each other.
|
70 |
-
*
|
71 |
-
* @factory hasEntry
|
72 |
-
*/
|
73 |
-
public static function hasKeyValuePair($key, $value)
|
74 |
-
{
|
75 |
-
return new self(
|
76 |
-
Util::wrapValueWithIsEqual($key),
|
77 |
-
Util::wrapValueWithIsEqual($value)
|
78 |
-
);
|
79 |
-
}
|
80 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php
DELETED
@@ -1,73 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Core\DescribedAs;
|
8 |
-
use Hamcrest\Core\IsNot;
|
9 |
-
use Hamcrest\FeatureMatcher;
|
10 |
-
use Hamcrest\Matcher;
|
11 |
-
use Hamcrest\Util;
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Matches if array size satisfies a nested matcher.
|
15 |
-
*/
|
16 |
-
class IsArrayWithSize extends FeatureMatcher
|
17 |
-
{
|
18 |
-
|
19 |
-
public function __construct(Matcher $sizeMatcher)
|
20 |
-
{
|
21 |
-
parent::__construct(
|
22 |
-
self::TYPE_ARRAY,
|
23 |
-
null,
|
24 |
-
$sizeMatcher,
|
25 |
-
'an array with size',
|
26 |
-
'array size'
|
27 |
-
);
|
28 |
-
}
|
29 |
-
|
30 |
-
protected function featureValueOf($array)
|
31 |
-
{
|
32 |
-
return count($array);
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Does array size satisfy a given matcher?
|
37 |
-
*
|
38 |
-
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
39 |
-
*
|
40 |
-
* @return \Hamcrest\Arrays\IsArrayWithSize
|
41 |
-
* @factory
|
42 |
-
*/
|
43 |
-
public static function arrayWithSize($size)
|
44 |
-
{
|
45 |
-
return new self(Util::wrapValueWithIsEqual($size));
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Matches an empty array.
|
50 |
-
*
|
51 |
-
* @factory
|
52 |
-
*/
|
53 |
-
public static function emptyArray()
|
54 |
-
{
|
55 |
-
return DescribedAs::describedAs(
|
56 |
-
'an empty array',
|
57 |
-
self::arrayWithSize(0)
|
58 |
-
);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Matches an empty array.
|
63 |
-
*
|
64 |
-
* @factory
|
65 |
-
*/
|
66 |
-
public static function nonEmptyArray()
|
67 |
-
{
|
68 |
-
return DescribedAs::describedAs(
|
69 |
-
'a non-empty array',
|
70 |
-
self::arrayWithSize(IsNot::not(0))
|
71 |
-
);
|
72 |
-
}
|
73 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
class MatchingOnce
|
11 |
-
{
|
12 |
-
|
13 |
-
private $_elementMatchers;
|
14 |
-
private $_mismatchDescription;
|
15 |
-
|
16 |
-
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
17 |
-
{
|
18 |
-
$this->_elementMatchers = $elementMatchers;
|
19 |
-
$this->_mismatchDescription = $mismatchDescription;
|
20 |
-
}
|
21 |
-
|
22 |
-
public function matches($item)
|
23 |
-
{
|
24 |
-
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
25 |
-
}
|
26 |
-
|
27 |
-
public function isFinished($items)
|
28 |
-
{
|
29 |
-
if (empty($this->_elementMatchers)) {
|
30 |
-
return true;
|
31 |
-
}
|
32 |
-
|
33 |
-
$this->_mismatchDescription
|
34 |
-
->appendText('No item matches: ')->appendList('', ', ', '', $this->_elementMatchers)
|
35 |
-
->appendText(' in ')->appendValueList('[', ', ', ']', $items)
|
36 |
-
;
|
37 |
-
|
38 |
-
return false;
|
39 |
-
}
|
40 |
-
|
41 |
-
// -- Private Methods
|
42 |
-
|
43 |
-
private function _isNotSurplus($item)
|
44 |
-
{
|
45 |
-
if (empty($this->_elementMatchers)) {
|
46 |
-
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
47 |
-
|
48 |
-
return false;
|
49 |
-
}
|
50 |
-
|
51 |
-
return true;
|
52 |
-
}
|
53 |
-
|
54 |
-
private function _isMatched($item)
|
55 |
-
{
|
56 |
-
/** @var $matcher \Hamcrest\Matcher */
|
57 |
-
foreach ($this->_elementMatchers as $i => $matcher) {
|
58 |
-
if ($matcher->matches($item)) {
|
59 |
-
unset($this->_elementMatchers[$i]);
|
60 |
-
|
61 |
-
return true;
|
62 |
-
}
|
63 |
-
}
|
64 |
-
|
65 |
-
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
66 |
-
|
67 |
-
return false;
|
68 |
-
}
|
69 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Arrays;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Hamcrest\Description;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
|
11 |
-
class SeriesMatchingOnce
|
12 |
-
{
|
13 |
-
|
14 |
-
private $_elementMatchers;
|
15 |
-
private $_keys;
|
16 |
-
private $_mismatchDescription;
|
17 |
-
private $_nextMatchKey;
|
18 |
-
|
19 |
-
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
20 |
-
{
|
21 |
-
$this->_elementMatchers = $elementMatchers;
|
22 |
-
$this->_keys = array_keys($elementMatchers);
|
23 |
-
$this->_mismatchDescription = $mismatchDescription;
|
24 |
-
}
|
25 |
-
|
26 |
-
public function matches($item)
|
27 |
-
{
|
28 |
-
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
29 |
-
}
|
30 |
-
|
31 |
-
public function isFinished()
|
32 |
-
{
|
33 |
-
if (!empty($this->_elementMatchers)) {
|
34 |
-
$nextMatcher = current($this->_elementMatchers);
|
35 |
-
$this->_mismatchDescription->appendText('No item matched: ')->appendDescriptionOf($nextMatcher);
|
36 |
-
|
37 |
-
return false;
|
38 |
-
}
|
39 |
-
|
40 |
-
return true;
|
41 |
-
}
|
42 |
-
|
43 |
-
// -- Private Methods
|
44 |
-
|
45 |
-
private function _isNotSurplus($item)
|
46 |
-
{
|
47 |
-
if (empty($this->_elementMatchers)) {
|
48 |
-
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
49 |
-
|
50 |
-
return false;
|
51 |
-
}
|
52 |
-
|
53 |
-
return true;
|
54 |
-
}
|
55 |
-
|
56 |
-
private function _isMatched($item)
|
57 |
-
{
|
58 |
-
$this->_nextMatchKey = array_shift($this->_keys);
|
59 |
-
$nextMatcher = array_shift($this->_elementMatchers);
|
60 |
-
|
61 |
-
if (!$nextMatcher->matches($item)) {
|
62 |
-
$this->_describeMismatch($nextMatcher, $item);
|
63 |
-
|
64 |
-
return false;
|
65 |
-
}
|
66 |
-
|
67 |
-
return true;
|
68 |
-
}
|
69 |
-
|
70 |
-
private function _describeMismatch(Matcher $matcher, $item)
|
71 |
-
{
|
72 |
-
$this->_mismatchDescription->appendText('item with key ' . $this->_nextMatchKey . ': ');
|
73 |
-
$matcher->describeMismatch($item, $this->_mismatchDescription);
|
74 |
-
}
|
75 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
class AssertionError extends \RuntimeException
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php
DELETED
@@ -1,132 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Internal\SelfDescribingValue;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* A {@link Hamcrest\Description} that is stored as a string.
|
11 |
-
*/
|
12 |
-
abstract class BaseDescription implements Description
|
13 |
-
{
|
14 |
-
|
15 |
-
public function appendText($text)
|
16 |
-
{
|
17 |
-
$this->append($text);
|
18 |
-
|
19 |
-
return $this;
|
20 |
-
}
|
21 |
-
|
22 |
-
public function appendDescriptionOf(SelfDescribing $value)
|
23 |
-
{
|
24 |
-
$value->describeTo($this);
|
25 |
-
|
26 |
-
return $this;
|
27 |
-
}
|
28 |
-
|
29 |
-
public function appendValue($value)
|
30 |
-
{
|
31 |
-
if (is_null($value)) {
|
32 |
-
$this->append('null');
|
33 |
-
} elseif (is_string($value)) {
|
34 |
-
$this->_toPhpSyntax($value);
|
35 |
-
} elseif (is_float($value)) {
|
36 |
-
$this->append('<');
|
37 |
-
$this->append($value);
|
38 |
-
$this->append('F>');
|
39 |
-
} elseif (is_bool($value)) {
|
40 |
-
$this->append('<');
|
41 |
-
$this->append($value ? 'true' : 'false');
|
42 |
-
$this->append('>');
|
43 |
-
} elseif (is_array($value) || $value instanceof \Iterator || $value instanceof \IteratorAggregate) {
|
44 |
-
$this->appendValueList('[', ', ', ']', $value);
|
45 |
-
} elseif (is_object($value) && !method_exists($value, '__toString')) {
|
46 |
-
$this->append('<');
|
47 |
-
$this->append(get_class($value));
|
48 |
-
$this->append('>');
|
49 |
-
} else {
|
50 |
-
$this->append('<');
|
51 |
-
$this->append($value);
|
52 |
-
$this->append('>');
|
53 |
-
}
|
54 |
-
|
55 |
-
return $this;
|
56 |
-
}
|
57 |
-
|
58 |
-
public function appendValueList($start, $separator, $end, $values)
|
59 |
-
{
|
60 |
-
$list = array();
|
61 |
-
foreach ($values as $v) {
|
62 |
-
$list[] = new SelfDescribingValue($v);
|
63 |
-
}
|
64 |
-
|
65 |
-
$this->appendList($start, $separator, $end, $list);
|
66 |
-
|
67 |
-
return $this;
|
68 |
-
}
|
69 |
-
|
70 |
-
public function appendList($start, $separator, $end, $values)
|
71 |
-
{
|
72 |
-
$this->append($start);
|
73 |
-
|
74 |
-
$separate = false;
|
75 |
-
|
76 |
-
foreach ($values as $value) {
|
77 |
-
/*if (!($value instanceof Hamcrest\SelfDescribing)) {
|
78 |
-
$value = new Hamcrest\Internal\SelfDescribingValue($value);
|
79 |
-
}*/
|
80 |
-
|
81 |
-
if ($separate) {
|
82 |
-
$this->append($separator);
|
83 |
-
}
|
84 |
-
|
85 |
-
$this->appendDescriptionOf($value);
|
86 |
-
|
87 |
-
$separate = true;
|
88 |
-
}
|
89 |
-
|
90 |
-
$this->append($end);
|
91 |
-
|
92 |
-
return $this;
|
93 |
-
}
|
94 |
-
|
95 |
-
// -- Protected Methods
|
96 |
-
|
97 |
-
/**
|
98 |
-
* Append the String <var>$str</var> to the description.
|
99 |
-
*/
|
100 |
-
abstract protected function append($str);
|
101 |
-
|
102 |
-
// -- Private Methods
|
103 |
-
|
104 |
-
private function _toPhpSyntax($value)
|
105 |
-
{
|
106 |
-
$str = '"';
|
107 |
-
for ($i = 0, $len = strlen($value); $i < $len; ++$i) {
|
108 |
-
switch ($value[$i]) {
|
109 |
-
case '"':
|
110 |
-
$str .= '\\"';
|
111 |
-
break;
|
112 |
-
|
113 |
-
case "\t":
|
114 |
-
$str .= '\\t';
|
115 |
-
break;
|
116 |
-
|
117 |
-
case "\r":
|
118 |
-
$str .= '\\r';
|
119 |
-
break;
|
120 |
-
|
121 |
-
case "\n":
|
122 |
-
$str .= '\\n';
|
123 |
-
break;
|
124 |
-
|
125 |
-
default:
|
126 |
-
$str .= $value[$i];
|
127 |
-
}
|
128 |
-
}
|
129 |
-
$str .= '"';
|
130 |
-
$this->append($str);
|
131 |
-
}
|
132 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* BaseClass for all Matcher implementations.
|
10 |
-
*
|
11 |
-
* @see Hamcrest\Matcher
|
12 |
-
*/
|
13 |
-
abstract class BaseMatcher implements Matcher
|
14 |
-
{
|
15 |
-
|
16 |
-
public function describeMismatch($item, Description $description)
|
17 |
-
{
|
18 |
-
$description->appendText('was ')->appendValue($item);
|
19 |
-
}
|
20 |
-
|
21 |
-
public function __toString()
|
22 |
-
{
|
23 |
-
return StringDescription::toString($this);
|
24 |
-
}
|
25 |
-
|
26 |
-
public function __invoke()
|
27 |
-
{
|
28 |
-
return call_user_func_array(array($this, 'matches'), func_get_args());
|
29 |
-
}
|
30 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Collection;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Matches if traversable is empty or non-empty.
|
12 |
-
*/
|
13 |
-
class IsEmptyTraversable extends BaseMatcher
|
14 |
-
{
|
15 |
-
|
16 |
-
private static $_INSTANCE;
|
17 |
-
private static $_NOT_INSTANCE;
|
18 |
-
|
19 |
-
private $_empty;
|
20 |
-
|
21 |
-
public function __construct($empty = true)
|
22 |
-
{
|
23 |
-
$this->_empty = $empty;
|
24 |
-
}
|
25 |
-
|
26 |
-
public function matches($item)
|
27 |
-
{
|
28 |
-
if (!$item instanceof \Traversable) {
|
29 |
-
return false;
|
30 |
-
}
|
31 |
-
|
32 |
-
foreach ($item as $value) {
|
33 |
-
return !$this->_empty;
|
34 |
-
}
|
35 |
-
|
36 |
-
return $this->_empty;
|
37 |
-
}
|
38 |
-
|
39 |
-
public function describeTo(Description $description)
|
40 |
-
{
|
41 |
-
$description->appendText($this->_empty ? 'an empty traversable' : 'a non-empty traversable');
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Returns true if traversable is empty.
|
46 |
-
*
|
47 |
-
* @factory
|
48 |
-
*/
|
49 |
-
public static function emptyTraversable()
|
50 |
-
{
|
51 |
-
if (!self::$_INSTANCE) {
|
52 |
-
self::$_INSTANCE = new self;
|
53 |
-
}
|
54 |
-
|
55 |
-
return self::$_INSTANCE;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Returns true if traversable is not empty.
|
60 |
-
*
|
61 |
-
* @factory
|
62 |
-
*/
|
63 |
-
public static function nonEmptyTraversable()
|
64 |
-
{
|
65 |
-
if (!self::$_NOT_INSTANCE) {
|
66 |
-
self::$_NOT_INSTANCE = new self(false);
|
67 |
-
}
|
68 |
-
|
69 |
-
return self::$_NOT_INSTANCE;
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Collection;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\FeatureMatcher;
|
8 |
-
use Hamcrest\Matcher;
|
9 |
-
use Hamcrest\Util;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Matches if traversable size satisfies a nested matcher.
|
13 |
-
*/
|
14 |
-
class IsTraversableWithSize extends FeatureMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
public function __construct(Matcher $sizeMatcher)
|
18 |
-
{
|
19 |
-
parent::__construct(
|
20 |
-
self::TYPE_OBJECT,
|
21 |
-
'Traversable',
|
22 |
-
$sizeMatcher,
|
23 |
-
'a traversable with size',
|
24 |
-
'traversable size'
|
25 |
-
);
|
26 |
-
}
|
27 |
-
|
28 |
-
protected function featureValueOf($actual)
|
29 |
-
{
|
30 |
-
$size = 0;
|
31 |
-
foreach ($actual as $value) {
|
32 |
-
$size++;
|
33 |
-
}
|
34 |
-
|
35 |
-
return $size;
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Does traversable size satisfy a given matcher?
|
40 |
-
*
|
41 |
-
* @factory
|
42 |
-
*/
|
43 |
-
public static function traversableWithSize($size)
|
44 |
-
{
|
45 |
-
return new self(Util::wrapValueWithIsEqual($size));
|
46 |
-
}
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\DiagnosingMatcher;
|
9 |
-
use Hamcrest\Util;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Calculates the logical conjunction of multiple matchers. Evaluation is
|
13 |
-
* shortcut, so subsequent matchers are not called if an earlier matcher
|
14 |
-
* returns <code>false</code>.
|
15 |
-
*/
|
16 |
-
class AllOf extends DiagnosingMatcher
|
17 |
-
{
|
18 |
-
|
19 |
-
private $_matchers;
|
20 |
-
|
21 |
-
public function __construct(array $matchers)
|
22 |
-
{
|
23 |
-
Util::checkAllAreMatchers($matchers);
|
24 |
-
|
25 |
-
$this->_matchers = $matchers;
|
26 |
-
}
|
27 |
-
|
28 |
-
public function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
29 |
-
{
|
30 |
-
/** @var $matcher \Hamcrest\Matcher */
|
31 |
-
foreach ($this->_matchers as $matcher) {
|
32 |
-
if (!$matcher->matches($item)) {
|
33 |
-
$mismatchDescription->appendDescriptionOf($matcher)->appendText(' ');
|
34 |
-
$matcher->describeMismatch($item, $mismatchDescription);
|
35 |
-
|
36 |
-
return false;
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
return true;
|
41 |
-
}
|
42 |
-
|
43 |
-
public function describeTo(Description $description)
|
44 |
-
{
|
45 |
-
$description->appendList('(', ' and ', ')', $this->_matchers);
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
50 |
-
*
|
51 |
-
* @factory ...
|
52 |
-
*/
|
53 |
-
public static function allOf(/* args... */)
|
54 |
-
{
|
55 |
-
$args = func_get_args();
|
56 |
-
|
57 |
-
return new self(Util::createMatcherArray($args));
|
58 |
-
}
|
59 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\Util;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Calculates the logical disjunction of multiple matchers. Evaluation is
|
12 |
-
* shortcut, so subsequent matchers are not called if an earlier matcher
|
13 |
-
* returns <code>true</code>.
|
14 |
-
*/
|
15 |
-
class AnyOf extends ShortcutCombination
|
16 |
-
{
|
17 |
-
|
18 |
-
public function __construct(array $matchers)
|
19 |
-
{
|
20 |
-
parent::__construct($matchers);
|
21 |
-
}
|
22 |
-
|
23 |
-
public function matches($item)
|
24 |
-
{
|
25 |
-
return $this->matchesWithShortcut($item, true);
|
26 |
-
}
|
27 |
-
|
28 |
-
public function describeTo(Description $description)
|
29 |
-
{
|
30 |
-
$this->describeToWithOperator($description, 'or');
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
35 |
-
*
|
36 |
-
* @factory ...
|
37 |
-
*/
|
38 |
-
public static function anyOf(/* args... */)
|
39 |
-
{
|
40 |
-
$args = func_get_args();
|
41 |
-
|
42 |
-
return new self(Util::createMatcherArray($args));
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
47 |
-
*
|
48 |
-
* @factory ...
|
49 |
-
*/
|
50 |
-
public static function noneOf(/* args... */)
|
51 |
-
{
|
52 |
-
$args = func_get_args();
|
53 |
-
|
54 |
-
return IsNot::not(
|
55 |
-
new self(Util::createMatcherArray($args))
|
56 |
-
);
|
57 |
-
}
|
58 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php
DELETED
@@ -1,78 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Hamcrest\BaseMatcher;
|
9 |
-
use Hamcrest\Description;
|
10 |
-
use Hamcrest\Matcher;
|
11 |
-
|
12 |
-
class CombinableMatcher extends BaseMatcher
|
13 |
-
{
|
14 |
-
|
15 |
-
private $_matcher;
|
16 |
-
|
17 |
-
public function __construct(Matcher $matcher)
|
18 |
-
{
|
19 |
-
$this->_matcher = $matcher;
|
20 |
-
}
|
21 |
-
|
22 |
-
public function matches($item)
|
23 |
-
{
|
24 |
-
return $this->_matcher->matches($item);
|
25 |
-
}
|
26 |
-
|
27 |
-
public function describeTo(Description $description)
|
28 |
-
{
|
29 |
-
$description->appendDescriptionOf($this->_matcher);
|
30 |
-
}
|
31 |
-
|
32 |
-
/** Diversion from Hamcrest-Java... Logical "and" not permitted */
|
33 |
-
public function andAlso(Matcher $other)
|
34 |
-
{
|
35 |
-
return new self(new AllOf($this->_templatedListWith($other)));
|
36 |
-
}
|
37 |
-
|
38 |
-
/** Diversion from Hamcrest-Java... Logical "or" not permitted */
|
39 |
-
public function orElse(Matcher $other)
|
40 |
-
{
|
41 |
-
return new self(new AnyOf($this->_templatedListWith($other)));
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* This is useful for fluently combining matchers that must both pass.
|
46 |
-
* For example:
|
47 |
-
* <pre>
|
48 |
-
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
49 |
-
* </pre>
|
50 |
-
*
|
51 |
-
* @factory
|
52 |
-
*/
|
53 |
-
public static function both(Matcher $matcher)
|
54 |
-
{
|
55 |
-
return new self($matcher);
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* This is useful for fluently combining matchers where either may pass,
|
60 |
-
* for example:
|
61 |
-
* <pre>
|
62 |
-
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
63 |
-
* </pre>
|
64 |
-
*
|
65 |
-
* @factory
|
66 |
-
*/
|
67 |
-
public static function either(Matcher $matcher)
|
68 |
-
{
|
69 |
-
return new self($matcher);
|
70 |
-
}
|
71 |
-
|
72 |
-
// -- Private Methods
|
73 |
-
|
74 |
-
private function _templatedListWith(Matcher $other)
|
75 |
-
{
|
76 |
-
return array($this->_matcher, $other);
|
77 |
-
}
|
78 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php
DELETED
@@ -1,68 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Provides a custom description to another matcher.
|
13 |
-
*/
|
14 |
-
class DescribedAs extends BaseMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
private $_descriptionTemplate;
|
18 |
-
private $_matcher;
|
19 |
-
private $_values;
|
20 |
-
|
21 |
-
const ARG_PATTERN = '/%([0-9]+)/';
|
22 |
-
|
23 |
-
public function __construct($descriptionTemplate, Matcher $matcher, array $values)
|
24 |
-
{
|
25 |
-
$this->_descriptionTemplate = $descriptionTemplate;
|
26 |
-
$this->_matcher = $matcher;
|
27 |
-
$this->_values = $values;
|
28 |
-
}
|
29 |
-
|
30 |
-
public function matches($item)
|
31 |
-
{
|
32 |
-
return $this->_matcher->matches($item);
|
33 |
-
}
|
34 |
-
|
35 |
-
public function describeTo(Description $description)
|
36 |
-
{
|
37 |
-
$textStart = 0;
|
38 |
-
while (preg_match(self::ARG_PATTERN, $this->_descriptionTemplate, $matches, PREG_OFFSET_CAPTURE, $textStart)) {
|
39 |
-
$text = $matches[0][0];
|
40 |
-
$index = $matches[1][0];
|
41 |
-
$offset = $matches[0][1];
|
42 |
-
|
43 |
-
$description->appendText(substr($this->_descriptionTemplate, $textStart, $offset - $textStart));
|
44 |
-
$description->appendValue($this->_values[$index]);
|
45 |
-
|
46 |
-
$textStart = $offset + strlen($text);
|
47 |
-
}
|
48 |
-
|
49 |
-
if ($textStart < strlen($this->_descriptionTemplate)) {
|
50 |
-
$description->appendText(substr($this->_descriptionTemplate, $textStart));
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Wraps an existing matcher and overrides the description when it fails.
|
56 |
-
*
|
57 |
-
* @factory ...
|
58 |
-
*/
|
59 |
-
public static function describedAs(/* $description, Hamcrest\Matcher $matcher, $values... */)
|
60 |
-
{
|
61 |
-
$args = func_get_args();
|
62 |
-
$description = array_shift($args);
|
63 |
-
$matcher = array_shift($args);
|
64 |
-
$values = $args;
|
65 |
-
|
66 |
-
return new self($description, $matcher, $values);
|
67 |
-
}
|
68 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Hamcrest\Description;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
use Hamcrest\TypeSafeDiagnosingMatcher;
|
11 |
-
|
12 |
-
class Every extends TypeSafeDiagnosingMatcher
|
13 |
-
{
|
14 |
-
|
15 |
-
private $_matcher;
|
16 |
-
|
17 |
-
public function __construct(Matcher $matcher)
|
18 |
-
{
|
19 |
-
parent::__construct(self::TYPE_ARRAY);
|
20 |
-
|
21 |
-
$this->_matcher = $matcher;
|
22 |
-
}
|
23 |
-
|
24 |
-
protected function matchesSafelyWithDiagnosticDescription($items, Description $mismatchDescription)
|
25 |
-
{
|
26 |
-
foreach ($items as $item) {
|
27 |
-
if (!$this->_matcher->matches($item)) {
|
28 |
-
$mismatchDescription->appendText('an item ');
|
29 |
-
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
30 |
-
|
31 |
-
return false;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
return true;
|
36 |
-
}
|
37 |
-
|
38 |
-
public function describeTo(Description $description)
|
39 |
-
{
|
40 |
-
$description->appendText('every item is ')->appendDescriptionOf($this->_matcher);
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @param Matcher $itemMatcher
|
45 |
-
* A matcher to apply to every element in an array.
|
46 |
-
*
|
47 |
-
* @return \Hamcrest\Core\Every
|
48 |
-
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
49 |
-
*
|
50 |
-
* @factory
|
51 |
-
*/
|
52 |
-
public static function everyItem(Matcher $itemMatcher)
|
53 |
-
{
|
54 |
-
return new self($itemMatcher);
|
55 |
-
}
|
56 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\FeatureMatcher;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Matches if array size satisfies a nested matcher.
|
14 |
-
*/
|
15 |
-
class HasToString extends FeatureMatcher
|
16 |
-
{
|
17 |
-
|
18 |
-
public function __construct(Matcher $toStringMatcher)
|
19 |
-
{
|
20 |
-
parent::__construct(
|
21 |
-
self::TYPE_OBJECT,
|
22 |
-
null,
|
23 |
-
$toStringMatcher,
|
24 |
-
'an object with toString()',
|
25 |
-
'toString()'
|
26 |
-
);
|
27 |
-
}
|
28 |
-
|
29 |
-
public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription)
|
30 |
-
{
|
31 |
-
if (method_exists($actual, 'toString') || method_exists($actual, '__toString')) {
|
32 |
-
return parent::matchesSafelyWithDiagnosticDescription($actual, $mismatchDescription);
|
33 |
-
}
|
34 |
-
|
35 |
-
return false;
|
36 |
-
}
|
37 |
-
|
38 |
-
protected function featureValueOf($actual)
|
39 |
-
{
|
40 |
-
if (method_exists($actual, 'toString')) {
|
41 |
-
return $actual->toString();
|
42 |
-
}
|
43 |
-
|
44 |
-
return (string) $actual;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Does array size satisfy a given matcher?
|
49 |
-
*
|
50 |
-
* @factory
|
51 |
-
*/
|
52 |
-
public static function hasToString($matcher)
|
53 |
-
{
|
54 |
-
return new self(Util::wrapValueWithIsEqual($matcher));
|
55 |
-
}
|
56 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Decorates another Matcher, retaining the behavior but allowing tests
|
14 |
-
* to be slightly more expressive.
|
15 |
-
*
|
16 |
-
* For example: assertThat($cheese, equalTo($smelly))
|
17 |
-
* vs. assertThat($cheese, is(equalTo($smelly)))
|
18 |
-
*/
|
19 |
-
class Is extends BaseMatcher
|
20 |
-
{
|
21 |
-
|
22 |
-
private $_matcher;
|
23 |
-
|
24 |
-
public function __construct(Matcher $matcher)
|
25 |
-
{
|
26 |
-
$this->_matcher = $matcher;
|
27 |
-
}
|
28 |
-
|
29 |
-
public function matches($arg)
|
30 |
-
{
|
31 |
-
return $this->_matcher->matches($arg);
|
32 |
-
}
|
33 |
-
|
34 |
-
public function describeTo(Description $description)
|
35 |
-
{
|
36 |
-
$description->appendText('is ')->appendDescriptionOf($this->_matcher);
|
37 |
-
}
|
38 |
-
|
39 |
-
public function describeMismatch($item, Description $mismatchDescription)
|
40 |
-
{
|
41 |
-
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Decorates another Matcher, retaining the behavior but allowing tests
|
46 |
-
* to be slightly more expressive.
|
47 |
-
*
|
48 |
-
* For example: assertThat($cheese, equalTo($smelly))
|
49 |
-
* vs. assertThat($cheese, is(equalTo($smelly)))
|
50 |
-
*
|
51 |
-
* @factory
|
52 |
-
*/
|
53 |
-
public static function is($value)
|
54 |
-
{
|
55 |
-
return new self(Util::wrapValueWithIsEqual($value));
|
56 |
-
}
|
57 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php
DELETED
@@ -1,45 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* A matcher that always returns <code>true</code>.
|
12 |
-
*/
|
13 |
-
class IsAnything extends BaseMatcher
|
14 |
-
{
|
15 |
-
|
16 |
-
private $_message;
|
17 |
-
|
18 |
-
public function __construct($message = 'ANYTHING')
|
19 |
-
{
|
20 |
-
$this->_message = $message;
|
21 |
-
}
|
22 |
-
|
23 |
-
public function matches($item)
|
24 |
-
{
|
25 |
-
return true;
|
26 |
-
}
|
27 |
-
|
28 |
-
public function describeTo(Description $description)
|
29 |
-
{
|
30 |
-
$description->appendText($this->_message);
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* This matcher always evaluates to true.
|
35 |
-
*
|
36 |
-
* @param string $description A meaningful string used when describing itself.
|
37 |
-
*
|
38 |
-
* @return \Hamcrest\Core\IsAnything
|
39 |
-
* @factory
|
40 |
-
*/
|
41 |
-
public static function anything($description = 'ANYTHING')
|
42 |
-
{
|
43 |
-
return new self($description);
|
44 |
-
}
|
45 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php
DELETED
@@ -1,93 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\Matcher;
|
9 |
-
use Hamcrest\TypeSafeMatcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Tests if an array contains values that match one or more Matchers.
|
14 |
-
*/
|
15 |
-
class IsCollectionContaining extends TypeSafeMatcher
|
16 |
-
{
|
17 |
-
|
18 |
-
private $_elementMatcher;
|
19 |
-
|
20 |
-
public function __construct(Matcher $elementMatcher)
|
21 |
-
{
|
22 |
-
parent::__construct(self::TYPE_ARRAY);
|
23 |
-
|
24 |
-
$this->_elementMatcher = $elementMatcher;
|
25 |
-
}
|
26 |
-
|
27 |
-
protected function matchesSafely($items)
|
28 |
-
{
|
29 |
-
foreach ($items as $item) {
|
30 |
-
if ($this->_elementMatcher->matches($item)) {
|
31 |
-
return true;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
return false;
|
36 |
-
}
|
37 |
-
|
38 |
-
protected function describeMismatchSafely($items, Description $mismatchDescription)
|
39 |
-
{
|
40 |
-
$mismatchDescription->appendText('was ')->appendValue($items);
|
41 |
-
}
|
42 |
-
|
43 |
-
public function describeTo(Description $description)
|
44 |
-
{
|
45 |
-
$description
|
46 |
-
->appendText('a collection containing ')
|
47 |
-
->appendDescriptionOf($this->_elementMatcher)
|
48 |
-
;
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Test if the value is an array containing this matcher.
|
53 |
-
*
|
54 |
-
* Example:
|
55 |
-
* <pre>
|
56 |
-
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
57 |
-
* //Convenience defaults to equalTo()
|
58 |
-
* assertThat(array('a', 'b'), hasItem('b'));
|
59 |
-
* </pre>
|
60 |
-
*
|
61 |
-
* @factory ...
|
62 |
-
*/
|
63 |
-
public static function hasItem()
|
64 |
-
{
|
65 |
-
$args = func_get_args();
|
66 |
-
$firstArg = array_shift($args);
|
67 |
-
|
68 |
-
return new self(Util::wrapValueWithIsEqual($firstArg));
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Test if the value is an array containing elements that match all of these
|
73 |
-
* matchers.
|
74 |
-
*
|
75 |
-
* Example:
|
76 |
-
* <pre>
|
77 |
-
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
78 |
-
* </pre>
|
79 |
-
*
|
80 |
-
* @factory ...
|
81 |
-
*/
|
82 |
-
public static function hasItems(/* args... */)
|
83 |
-
{
|
84 |
-
$args = func_get_args();
|
85 |
-
$matchers = array();
|
86 |
-
|
87 |
-
foreach ($args as $arg) {
|
88 |
-
$matchers[] = self::hasItem($arg);
|
89 |
-
}
|
90 |
-
|
91 |
-
return AllOf::allOf($matchers);
|
92 |
-
}
|
93 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Is the value equal to another value, as tested by the use of the "=="
|
12 |
-
* comparison operator?
|
13 |
-
*/
|
14 |
-
class IsEqual extends BaseMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
private $_item;
|
18 |
-
|
19 |
-
public function __construct($item)
|
20 |
-
{
|
21 |
-
$this->_item = $item;
|
22 |
-
}
|
23 |
-
|
24 |
-
public function matches($arg)
|
25 |
-
{
|
26 |
-
return (($arg == $this->_item) && ($this->_item == $arg));
|
27 |
-
}
|
28 |
-
|
29 |
-
public function describeTo(Description $description)
|
30 |
-
{
|
31 |
-
$description->appendValue($this->_item);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Is the value equal to another value, as tested by the use of the "=="
|
36 |
-
* comparison operator?
|
37 |
-
*
|
38 |
-
* @factory
|
39 |
-
*/
|
40 |
-
public static function equalTo($item)
|
41 |
-
{
|
42 |
-
return new self($item);
|
43 |
-
}
|
44 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* The same as {@link Hamcrest\Core\IsSame} but with slightly different
|
11 |
-
* semantics.
|
12 |
-
*/
|
13 |
-
class IsIdentical extends IsSame
|
14 |
-
{
|
15 |
-
|
16 |
-
private $_value;
|
17 |
-
|
18 |
-
public function __construct($value)
|
19 |
-
{
|
20 |
-
parent::__construct($value);
|
21 |
-
$this->_value = $value;
|
22 |
-
}
|
23 |
-
|
24 |
-
public function describeTo(Description $description)
|
25 |
-
{
|
26 |
-
$description->appendValue($this->_value);
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Tests of the value is identical to $value as tested by the "===" operator.
|
31 |
-
*
|
32 |
-
* @factory
|
33 |
-
*/
|
34 |
-
public static function identicalTo($value)
|
35 |
-
{
|
36 |
-
return new self($value);
|
37 |
-
}
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\Description;
|
8 |
-
use Hamcrest\DiagnosingMatcher;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Tests whether the value is an instance of a class.
|
12 |
-
*/
|
13 |
-
class IsInstanceOf extends DiagnosingMatcher
|
14 |
-
{
|
15 |
-
|
16 |
-
private $_theClass;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Creates a new instance of IsInstanceOf
|
20 |
-
*
|
21 |
-
* @param string $theClass
|
22 |
-
* The predicate evaluates to true for instances of this class
|
23 |
-
* or one of its subclasses.
|
24 |
-
*/
|
25 |
-
public function __construct($theClass)
|
26 |
-
{
|
27 |
-
$this->_theClass = $theClass;
|
28 |
-
}
|
29 |
-
|
30 |
-
protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
31 |
-
{
|
32 |
-
if (!is_object($item)) {
|
33 |
-
$mismatchDescription->appendText('was ')->appendValue($item);
|
34 |
-
|
35 |
-
return false;
|
36 |
-
}
|
37 |
-
|
38 |
-
if (!($item instanceof $this->_theClass)) {
|
39 |
-
$mismatchDescription->appendText('[' . get_class($item) . '] ')
|
40 |
-
->appendValue($item);
|
41 |
-
|
42 |
-
return false;
|
43 |
-
}
|
44 |
-
|
45 |
-
return true;
|
46 |
-
}
|
47 |
-
|
48 |
-
public function describeTo(Description $description)
|
49 |
-
{
|
50 |
-
$description->appendText('an instance of ')
|
51 |
-
->appendText($this->_theClass)
|
52 |
-
;
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Is the value an instance of a particular type?
|
57 |
-
* This version assumes no relationship between the required type and
|
58 |
-
* the signature of the method that sets it up, for example in
|
59 |
-
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
60 |
-
*
|
61 |
-
* @factory any
|
62 |
-
*/
|
63 |
-
public static function anInstanceOf($theClass)
|
64 |
-
{
|
65 |
-
return new self($theClass);
|
66 |
-
}
|
67 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
use Hamcrest\Matcher;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Calculates the logical negation of a matcher.
|
14 |
-
*/
|
15 |
-
class IsNot extends BaseMatcher
|
16 |
-
{
|
17 |
-
|
18 |
-
private $_matcher;
|
19 |
-
|
20 |
-
public function __construct(Matcher $matcher)
|
21 |
-
{
|
22 |
-
$this->_matcher = $matcher;
|
23 |
-
}
|
24 |
-
|
25 |
-
public function matches($arg)
|
26 |
-
{
|
27 |
-
return !$this->_matcher->matches($arg);
|
28 |
-
}
|
29 |
-
|
30 |
-
public function describeTo(Description $description)
|
31 |
-
{
|
32 |
-
$description->appendText('not ')->appendDescriptionOf($this->_matcher);
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Matches if value does not match $value.
|
37 |
-
*
|
38 |
-
* @factory
|
39 |
-
*/
|
40 |
-
public static function not($value)
|
41 |
-
{
|
42 |
-
return new self(Util::wrapValueWithIsEqual($value));
|
43 |
-
}
|
44 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Is the value null?
|
12 |
-
*/
|
13 |
-
class IsNull extends BaseMatcher
|
14 |
-
{
|
15 |
-
|
16 |
-
private static $_INSTANCE;
|
17 |
-
private static $_NOT_INSTANCE;
|
18 |
-
|
19 |
-
public function matches($item)
|
20 |
-
{
|
21 |
-
return is_null($item);
|
22 |
-
}
|
23 |
-
|
24 |
-
public function describeTo(Description $description)
|
25 |
-
{
|
26 |
-
$description->appendText('null');
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Matches if value is null.
|
31 |
-
*
|
32 |
-
* @factory
|
33 |
-
*/
|
34 |
-
public static function nullValue()
|
35 |
-
{
|
36 |
-
if (!self::$_INSTANCE) {
|
37 |
-
self::$_INSTANCE = new self();
|
38 |
-
}
|
39 |
-
|
40 |
-
return self::$_INSTANCE;
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Matches if value is not null.
|
45 |
-
*
|
46 |
-
* @factory
|
47 |
-
*/
|
48 |
-
public static function notNullValue()
|
49 |
-
{
|
50 |
-
if (!self::$_NOT_INSTANCE) {
|
51 |
-
self::$_NOT_INSTANCE = IsNot::not(self::nullValue());
|
52 |
-
}
|
53 |
-
|
54 |
-
return self::$_NOT_INSTANCE;
|
55 |
-
}
|
56 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Is the value the same object as another value?
|
12 |
-
* In PHP terms, does $a === $b?
|
13 |
-
*/
|
14 |
-
class IsSame extends BaseMatcher
|
15 |
-
{
|
16 |
-
|
17 |
-
private $_object;
|
18 |
-
|
19 |
-
public function __construct($object)
|
20 |
-
{
|
21 |
-
$this->_object = $object;
|
22 |
-
}
|
23 |
-
|
24 |
-
public function matches($object)
|
25 |
-
{
|
26 |
-
return ($object === $this->_object) && ($this->_object === $object);
|
27 |
-
}
|
28 |
-
|
29 |
-
public function describeTo(Description $description)
|
30 |
-
{
|
31 |
-
$description->appendText('sameInstance(')
|
32 |
-
->appendValue($this->_object)
|
33 |
-
->appendText(')')
|
34 |
-
;
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Creates a new instance of IsSame.
|
39 |
-
*
|
40 |
-
* @param mixed $object
|
41 |
-
* The predicate evaluates to true only when the argument is
|
42 |
-
* this object.
|
43 |
-
*
|
44 |
-
* @return \Hamcrest\Core\IsSame
|
45 |
-
* @factory
|
46 |
-
*/
|
47 |
-
public static function sameInstance($object)
|
48 |
-
{
|
49 |
-
return new self($object);
|
50 |
-
}
|
51 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2010 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Tests whether the value has a built-in type.
|
12 |
-
*/
|
13 |
-
class IsTypeOf extends BaseMatcher
|
14 |
-
{
|
15 |
-
|
16 |
-
private $_theType;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Creates a new instance of IsTypeOf
|
20 |
-
*
|
21 |
-
* @param string $theType
|
22 |
-
* The predicate evaluates to true for values with this built-in type.
|
23 |
-
*/
|
24 |
-
public function __construct($theType)
|
25 |
-
{
|
26 |
-
$this->_theType = strtolower($theType);
|
27 |
-
}
|
28 |
-
|
29 |
-
public function matches($item)
|
30 |
-
{
|
31 |
-
return strtolower(gettype($item)) == $this->_theType;
|
32 |
-
}
|
33 |
-
|
34 |
-
public function describeTo(Description $description)
|
35 |
-
{
|
36 |
-
$description->appendText(self::getTypeDescription($this->_theType));
|
37 |
-
}
|
38 |
-
|
39 |
-
public function describeMismatch($item, Description $description)
|
40 |
-
{
|
41 |
-
if ($item === null) {
|
42 |
-
$description->appendText('was null');
|
43 |
-
} else {
|
44 |
-
$description->appendText('was ')
|
45 |
-
->appendText(self::getTypeDescription(strtolower(gettype($item))))
|
46 |
-
->appendText(' ')
|
47 |
-
->appendValue($item)
|
48 |
-
;
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
public static function getTypeDescription($type)
|
53 |
-
{
|
54 |
-
if ($type == 'null') {
|
55 |
-
return 'null';
|
56 |
-
}
|
57 |
-
|
58 |
-
return (strpos('aeiou', substr($type, 0, 1)) === false ? 'a ' : 'an ')
|
59 |
-
. $type;
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Is the value a particular built-in type?
|
64 |
-
*
|
65 |
-
* @factory
|
66 |
-
*/
|
67 |
-
public static function typeOf($theType)
|
68 |
-
{
|
69 |
-
return new self($theType);
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php
DELETED
@@ -1,95 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2010 hamcrest.org
|
6 |
-
*/
|
7 |
-
use Hamcrest\BaseMatcher;
|
8 |
-
use Hamcrest\Description;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Tests if a value (class, object, or array) has a named property.
|
12 |
-
*
|
13 |
-
* For example:
|
14 |
-
* <pre>
|
15 |
-
* assertThat(array('a', 'b'), set('b'));
|
16 |
-
* assertThat($foo, set('bar'));
|
17 |
-
* assertThat('Server', notSet('defaultPort'));
|
18 |
-
* </pre>
|
19 |
-
*
|
20 |
-
* @todo Replace $property with a matcher and iterate all property names.
|
21 |
-
*/
|
22 |
-
class Set extends BaseMatcher
|
23 |
-
{
|
24 |
-
|
25 |
-
private $_property;
|
26 |
-
private $_not;
|
27 |
-
|
28 |
-
public function __construct($property, $not = false)
|
29 |
-
{
|
30 |
-
$this->_property = $property;
|
31 |
-
$this->_not = $not;
|
32 |
-
}
|
33 |
-
|
34 |
-
public function matches($item)
|
35 |
-
{
|
36 |
-
if ($item === null) {
|
37 |
-
return false;
|
38 |
-
}
|
39 |
-
$property = $this->_property;
|
40 |
-
if (is_array($item)) {
|
41 |
-
$result = isset($item[$property]);
|
42 |
-
} elseif (is_object($item)) {
|
43 |
-
$result = isset($item->$property);
|
44 |
-
} elseif (is_string($item)) {
|
45 |
-
$result = isset($item::$$property);
|
46 |
-
} else {
|
47 |
-
throw new \InvalidArgumentException('Must pass an object, array, or class name');
|
48 |
-
}
|
49 |
-
|
50 |
-
return $this->_not ? !$result : $result;
|
51 |
-
}
|
52 |
-
|
53 |
-
public function describeTo(Description $description)
|
54 |
-
{
|
55 |
-
$description->appendText($this->_not ? 'unset property ' : 'set property ')->appendText($this->_property);
|
56 |
-
}
|
57 |
-
|
58 |
-
public function describeMismatch($item, Description $description)
|
59 |
-
{
|
60 |
-
$value = '';
|
61 |
-
if (!$this->_not) {
|
62 |
-
$description->appendText('was not set');
|
63 |
-
} else {
|
64 |
-
$property = $this->_property;
|
65 |
-
if (is_array($item)) {
|
66 |
-
$value = $item[$property];
|
67 |
-
} elseif (is_object($item)) {
|
68 |
-
$value = $item->$property;
|
69 |
-
} elseif (is_string($item)) {
|
70 |
-
$value = $item::$$property;
|
71 |
-
}
|
72 |
-
parent::describeMismatch($value, $description);
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Matches if value (class, object, or array) has named $property.
|
78 |
-
*
|
79 |
-
* @factory
|
80 |
-
*/
|
81 |
-
public static function set($property)
|
82 |
-
{
|
83 |
-
return new self($property);
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Matches if value (class, object, or array) does not have named $property.
|
88 |
-
*
|
89 |
-
* @factory
|
90 |
-
*/
|
91 |
-
public static function notSet($property)
|
92 |
-
{
|
93 |
-
return new self($property, true);
|
94 |
-
}
|
95 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest\Core;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Hamcrest\BaseMatcher;
|
9 |
-
use Hamcrest\Description;
|
10 |
-
use Hamcrest\Util;
|
11 |
-
|
12 |
-
abstract class ShortcutCombination extends BaseMatcher
|
13 |
-
{
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @var array<\Hamcrest\Matcher>
|
17 |
-
*/
|
18 |
-
private $_matchers;
|
19 |
-
|
20 |
-
public function __construct(array $matchers)
|
21 |
-
{
|
22 |
-
Util::checkAllAreMatchers($matchers);
|
23 |
-
|
24 |
-
$this->_matchers = $matchers;
|
25 |
-
}
|
26 |
-
|
27 |
-
protected function matchesWithShortcut($item, $shortcut)
|
28 |
-
{
|
29 |
-
/** @var $matcher \Hamcrest\Matcher */
|
30 |
-
foreach ($this->_matchers as $matcher) {
|
31 |
-
if ($matcher->matches($item) == $shortcut) {
|
32 |
-
return $shortcut;
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
return !$shortcut;
|
37 |
-
}
|
38 |
-
|
39 |
-
public function describeToWithOperator(Description $description, $operator)
|
40 |
-
{
|
41 |
-
$description->appendList('(', ' ' . $operator . ' ', ')', $this->_matchers);
|
42 |
-
}
|
43 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* A description of a Matcher. A Matcher will describe itself to a description
|
10 |
-
* which can later be used for reporting.
|
11 |
-
*
|
12 |
-
* @see Hamcrest\Matcher::describeTo()
|
13 |
-
*/
|
14 |
-
interface Description
|
15 |
-
{
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Appends some plain text to the description.
|
19 |
-
*
|
20 |
-
* @param string $text
|
21 |
-
*
|
22 |
-
* @return \Hamcrest\Description
|
23 |
-
*/
|
24 |
-
public function appendText($text);
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Appends the description of a {@link Hamcrest\SelfDescribing} value to
|
28 |
-
* this description.
|
29 |
-
*
|
30 |
-
* @param \Hamcrest\SelfDescribing $value
|
31 |
-
*
|
32 |
-
* @return \Hamcrest\Description
|
33 |
-
*/
|
34 |
-
public function appendDescriptionOf(SelfDescribing $value);
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Appends an arbitary value to the description.
|
38 |
-
*
|
39 |
-
* @param mixed $value
|
40 |
-
*
|
41 |
-
* @return \Hamcrest\Description
|
42 |
-
*/
|
43 |
-
public function appendValue($value);
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Appends a list of values to the description.
|
47 |
-
*
|
48 |
-
* @param string $start
|
49 |
-
* @param string $separator
|
50 |
-
* @param string $end
|
51 |
-
* @param array|\IteratorAggregate|\Iterator $values
|
52 |
-
*
|
53 |
-
* @return \Hamcrest\Description
|
54 |
-
*/
|
55 |
-
public function appendValueList($start, $separator, $end, $values);
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Appends a list of {@link Hamcrest\SelfDescribing} objects to the
|
59 |
-
* description.
|
60 |
-
*
|
61 |
-
* @param string $start
|
62 |
-
* @param string $separator
|
63 |
-
* @param string $end
|
64 |
-
* @param array|\\IteratorAggregate|\\Iterator $values
|
65 |
-
* must be instances of {@link Hamcrest\SelfDescribing}
|
66 |
-
*
|
67 |
-
* @return \Hamcrest\Description
|
68 |
-
*/
|
69 |
-
public function appendList($start, $separator, $end, $values);
|
70 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Official documentation for this class is missing.
|
10 |
-
*/
|
11 |
-
abstract class DiagnosingMatcher extends BaseMatcher
|
12 |
-
{
|
13 |
-
|
14 |
-
final public function matches($item)
|
15 |
-
{
|
16 |
-
return $this->matchesWithDiagnosticDescription($item, new NullDescription());
|
17 |
-
}
|
18 |
-
|
19 |
-
public function describeMismatch($item, Description $mismatchDescription)
|
20 |
-
{
|
21 |
-
$this->matchesWithDiagnosticDescription($item, $mismatchDescription);
|
22 |
-
}
|
23 |
-
|
24 |
-
abstract protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription);
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Hamcrest;
|
3 |
-
|
4 |
-
/*
|
5 |
-
Copyright (c) 2009 hamcrest.org
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Supporting cla
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|