├── .gitignore ├── readme.md ├── source ├── macros │ ├── dir.yay │ ├── process-dir.yay │ └── process.yay ├── bootstrap.php ├── macros.php ├── expanders.php ├── autoload.php ├── Composer │ ├── Installer.php │ └── Plugin.php ├── functions.php └── Parser.php ├── tests ├── fixtures │ └── find-replace.yay └── FunctionTest.php ├── package.json ├── .prettierrc ├── phpunit.xml ├── license.md ├── composer.json ├── code-of-conduct.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /cache 2 | /coverage 3 | /vendor 4 | /node_modules 5 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Plugin 2 | 3 | Documentation can be found at [preprocess.io](https://preprocess.io#plugin). 4 | -------------------------------------------------------------------------------- /source/macros/dir.yay: -------------------------------------------------------------------------------- 1 | > { 6 | __DIR__ . 7 | } 8 | -------------------------------------------------------------------------------- /tests/fixtures/find-replace.yay: -------------------------------------------------------------------------------- 1 | > { 6 | replace 7 | } 8 | -------------------------------------------------------------------------------- /source/macros/process-dir.yay: -------------------------------------------------------------------------------- 1 | > { 6 | process __DIR__ . 7 | } 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "@prettier/plugin-php": "^0.17.2", 4 | "atob": "^2.1.2", 5 | "prettier": "^1.15.3" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /source/bootstrap.php: -------------------------------------------------------------------------------- 1 | /dev/null 2> /dev/null"); 5 | } 6 | -------------------------------------------------------------------------------- /source/macros.php: -------------------------------------------------------------------------------- 1 | > { 16 | \Pre\Plugin\process($$(trim($(items ...(.) { $(item) })))) 17 | } 18 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | tests 16 | 17 | 18 | 19 | 20 | source 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /source/expanders.php: -------------------------------------------------------------------------------- 1 | expand($source, "", Engine::GC_ENGINE_DISABLED)); 20 | } 21 | 22 | function trim(TokenStream $stream, Engine $engine): TokenStream 23 | { 24 | $stream = \trim($stream); 25 | return _stream($stream, $engine); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | Copyright Christopher Pitt 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pre/plugin", 3 | "type": "composer-plugin", 4 | "license": "MIT", 5 | "scripts": { 6 | "test": "vendor/bin/phpunit" 7 | }, 8 | "autoload": { 9 | "psr-4": { 10 | "Pre\\Plugin\\": "source" 11 | }, 12 | "files": [ 13 | "source/expanders.php", 14 | "source/functions.php", 15 | "source/autoload.php", 16 | "source/macros.php" 17 | ] 18 | }, 19 | "autoload-dev": { 20 | "psr-4": { 21 | "Pre\\Plugin\\Tests\\Fixtures\\": "tests/fixtures/namespaced" 22 | } 23 | }, 24 | "require": { 25 | "yay/yay": "^0.7.0", 26 | "composer-plugin-api": "^1.1|^2.1", 27 | "joshdifabio/composed": "^1.0" 28 | }, 29 | "require-dev": { 30 | "composer/composer": "^1.3", 31 | "phpunit/phpunit": "^5.0|^6.0|^7.0" 32 | }, 33 | "extra": { 34 | "class": [ 35 | "\\Pre\\Plugin\\Composer\\Plugin" 36 | ], 37 | "pre": { 38 | "cache": "./cache" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /source/autoload.php: -------------------------------------------------------------------------------- 1 | $paths) { 22 | $prefixLength = strlen($prefix); 23 | 24 | if (strncmp($prefix, $class, $prefixLength) !== 0) { 25 | continue; 26 | } 27 | 28 | $relative = substr($class, $prefixLength); 29 | 30 | foreach ($paths as $path) { 31 | $php = $path . "/" . str_replace("\\", "/", $relative) . ".php"; 32 | $pre = $path . "/" . str_replace("\\", "/", $relative) . ".pre"; 33 | 34 | if (!file_exists($pre)) { 35 | continue; 36 | } 37 | 38 | process($pre, $php); 39 | 40 | require_once $php; 41 | } 42 | } 43 | }, 44 | false, 45 | true 46 | ); 47 | -------------------------------------------------------------------------------- /tests/FunctionTest.php: -------------------------------------------------------------------------------- 1 | assertEquals($expected, $actual); 18 | } 19 | 20 | /** 21 | * @test 22 | */ 23 | public function can_remove_custom_macros() 24 | { 25 | $path = __DIR__ . "/fixtures/find-replace.yay"; 26 | 27 | Pre\Plugin\addMacro($path); 28 | Pre\Plugin\removeMacro($path); 29 | 30 | $actual = Pre\Plugin\parse("assertEquals($expected, $actual); 34 | } 35 | 36 | /** 37 | * @test 38 | * @dataProvider macros 39 | */ 40 | public function can_use_built_in_macros($from, $expected) 41 | { 42 | $actual = Pre\Plugin\format(Pre\Plugin\parse($from)); 43 | $this->assertEquals($expected, $actual); 44 | } 45 | 46 | public static function macros() 47 | { 48 | return [ 49 | ["assertEquals($expected, $actual); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /source/Composer/Installer.php: -------------------------------------------------------------------------------- 1 | getExtra(); 23 | 24 | if (isset($extra["macros"]) && is_array($extra["macros"])) { 25 | foreach ($extra["macros"] as $macro) { 26 | $this->addMacro("{$path}/{$macro}"); 27 | } 28 | } 29 | 30 | if (isset($extra["compilers"]) && is_array($extra["compilers"])) { 31 | foreach ($extra["compilers"] as $compiler) { 32 | $this->addCompiler($compiler); 33 | } 34 | } 35 | 36 | return $path; 37 | } 38 | 39 | private function addMacro($macro) 40 | { 41 | $base = base(); 42 | $file = "{$base}/pre.macros"; 43 | 44 | $macro = base64_encode($macro); 45 | 46 | $macros = []; 47 | 48 | if (file_exists($file)) { 49 | $macros = json_decode(file_get_contents($file), true); 50 | } 51 | 52 | if (!in_array($macro, $macros)) { 53 | array_push($macros, $macro); 54 | } 55 | 56 | file_put_contents($file, json_encode($macros, JSON_PRETTY_PRINT)); 57 | } 58 | 59 | /** 60 | * @param string $compiler 61 | */ 62 | private function addCompiler($compiler) 63 | { 64 | $base = base(); 65 | $file = "{$base}/pre.compilers"; 66 | 67 | $compiler = base64_encode($compiler); 68 | 69 | $compilers = []; 70 | 71 | if (file_exists($file)) { 72 | $compilers = json_decode(file_get_contents($file), true); 73 | } 74 | 75 | if (!in_array($compiler, $compilers)) { 76 | array_push($compilers, $compiler); 77 | } 78 | 79 | file_put_contents($file, json_encode($compilers, JSON_PRETTY_PRINT)); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /source/functions.php: -------------------------------------------------------------------------------- 1 | process($from, $to, $format, $comment); 52 | } 53 | } 54 | 55 | if (!function_exists("\\Pre\\Plugin\\compile")) { 56 | function compile($from, $to, $format = true, $comment = true) 57 | { 58 | $instance = instance(); 59 | return $instance->compile($from, $to, $format, $comment); 60 | } 61 | } 62 | 63 | if (!function_exists("\\Pre\\Plugin\\parse")) { 64 | function parse($code) 65 | { 66 | $instance = instance(); 67 | return $instance->parse($code); 68 | } 69 | } 70 | 71 | if (!function_exists("\\Pre\\Plugin\\format")) { 72 | function format($code) 73 | { 74 | $instance = instance(); 75 | return $instance->format($code); 76 | } 77 | } 78 | 79 | if (!function_exists("\\Pre\\Plugin\\addMacro")) { 80 | function addMacro($macro) 81 | { 82 | $instance = instance(); 83 | return $instance->addMacro($macro); 84 | } 85 | } 86 | 87 | if (!function_exists("\\Pre\\Plugin\\removeMacro")) { 88 | function removeMacro($macro) 89 | { 90 | $instance = instance(); 91 | return $instance->removeMacro($macro); 92 | } 93 | } 94 | 95 | if (!function_exists("\\Pre\\Plugin\\addCompiler")) { 96 | function addCompiler($compiler, $callable) 97 | { 98 | $instance = instance(); 99 | return $instance->addCompiler($compiler, $callable); 100 | } 101 | } 102 | 103 | if (!function_exists("\\Pre\\Plugin\\removeCompiler")) { 104 | function removeCompiler($compiler) 105 | { 106 | $instance = instance(); 107 | return $instance->removeCompiler($compiler); 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Our Pledge 2 | 3 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 4 | 5 | # Our Standards 6 | 7 | Examples of behavior that contributes to creating a positive environment include: 8 | 9 | * Using welcoming and inclusive language 10 | * Being respectful of differing viewpoints and experiences 11 | * Gracefully accepting constructive criticism 12 | * Focusing on what is best for the community 13 | * Showing empathy towards other community members 14 | 15 | Examples of unacceptable behavior by participants include: 16 | 17 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 18 | * Trolling, insulting/derogatory comments, and personal or political attacks 19 | * Public or private harassment 20 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 21 | * Other conduct which could reasonably be considered inappropriate in a professional setting 22 | 23 | # Our Responsibilities 24 | 25 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 26 | 27 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 28 | 29 | # Scope 30 | 31 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 32 | 33 | # Enforcement 34 | 35 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at cgpitt@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 36 | 37 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 38 | 39 | # Attribution 40 | 41 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 42 | 43 | [homepage]: http://contributor-covenant.org 44 | [version]: http://contributor-covenant.org/version/1/4 45 | -------------------------------------------------------------------------------- /source/Composer/Plugin.php: -------------------------------------------------------------------------------- 1 | composer = $composer; 36 | $this->io = $io; 37 | 38 | $composer->getInstallationManager()->addInstaller(new Installer($io, $composer)); 39 | } 40 | 41 | /** 42 | * @inheritdoc 43 | * 44 | * @return array 45 | */ 46 | public static function getSubscribedEvents() 47 | { 48 | return [ 49 | "pre-autoload-dump" => ["onPreAutoloadDump"], 50 | ]; 51 | } 52 | 53 | /** 54 | * Preprocesses all files if the autoloader should be optimized. 55 | * 56 | * @param Event $event 57 | */ 58 | public function onPreAutoloadDump(Event $event) 59 | { 60 | $basePath = $this->getBasePath($event); 61 | $lockPath = "{$basePath}/pre.lock"; 62 | 63 | $shouldOptimize = $this->shouldOptimize($event); 64 | 65 | if ($shouldOptimize) { 66 | file_put_contents($lockPath, time()); 67 | 68 | if (!file_exists("{$basePath}/vendor/autoload.php")) { 69 | return; 70 | } 71 | 72 | require_once "{$basePath}/vendor/autoload.php"; 73 | 74 | $directory = new RecursiveDirectoryIterator($basePath); 75 | 76 | $files = new RecursiveIteratorIterator($directory, RecursiveIteratorIterator::SELF_FIRST); 77 | 78 | foreach ($files as $file) { 79 | if (stripos($file, "{$basePath}/vendor") === 0) { 80 | continue; 81 | } 82 | 83 | if ($file->getExtension() !== "pre") { 84 | continue; 85 | } 86 | 87 | $pre = $file->getPathname(); 88 | $php = preg_replace("/pre$/", "php", $pre); 89 | 90 | compile($pre, $php, ($format = true), ($comment = false)); 91 | } 92 | } else { 93 | if (file_exists($lockPath)) { 94 | unlink($basePath . "/pre.lock"); 95 | } 96 | } 97 | } 98 | 99 | /** 100 | * Finds the base application path. 101 | * 102 | * @param Event $event 103 | * 104 | * @return string 105 | */ 106 | private function getBasePath(Event $event) 107 | { 108 | $config = $event->getComposer()->getConfig(); 109 | return realpath($config->get("vendor-dir") . "/../"); 110 | } 111 | 112 | /** 113 | * Checks whether the autoloader should be optimized, based on 114 | * --optimize / --optimize-autoloader command line options. 115 | * 116 | * @param Event $event 117 | * 118 | * @return bool 119 | */ 120 | private function shouldOptimize(Event $event) 121 | { 122 | $io = $event->getIO(); 123 | 124 | // I will surely burn for this. 125 | 126 | $class = new ReflectionClass(ConsoleIO::class); 127 | $property = $class->getProperty("input"); 128 | $property->setAccessible(true); 129 | 130 | $input = $property->getValue($io); 131 | 132 | if ($input->hasOption("optimize")) { 133 | return $input->getOption("optimize"); 134 | } 135 | 136 | if ($input->hasOption("optimize-autoloader")) { 137 | return $input->getOption("optimize-autoloader"); 138 | } 139 | 140 | return false; 141 | } 142 | 143 | public function deactivate(Composer $composer, IOInterface $io) 144 | { 145 | } 146 | 147 | public function uninstall(Composer $composer, IOInterface $io) 148 | { 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /source/Parser.php: -------------------------------------------------------------------------------- 1 | macros[$macro] = true; 24 | } 25 | 26 | public function removeMacro($macro) 27 | { 28 | $this->macros[$macro] = false; 29 | } 30 | 31 | public function getMacros() 32 | { 33 | return array_keys( 34 | array_filter( 35 | $this->macros, 36 | function ($key) { 37 | return $this->macros[$key]; 38 | }, 39 | ARRAY_FILTER_USE_KEY 40 | ) 41 | ); 42 | } 43 | 44 | public function getDiscoveredMacros() 45 | { 46 | $base = base(); 47 | 48 | if (file_exists("{$base}/pre.macros")) { 49 | $macros = json_decode(file_get_contents("{$base}/pre.macros"), true); 50 | 51 | return array_map(function ($macro) { 52 | return base64_decode($macro); 53 | }, $macros); 54 | } 55 | 56 | return []; 57 | } 58 | 59 | public function addCompiler($compiler, $callable) 60 | { 61 | $this->compilers[$compiler] = $callable; 62 | } 63 | 64 | public function removeCompiler($compiler) 65 | { 66 | unset($this->compilers[$compiler]); 67 | } 68 | 69 | public function getCompilers() 70 | { 71 | return array_values($this->compilers); 72 | } 73 | 74 | public function getDiscoveredCompilers() 75 | { 76 | $base = base(); 77 | 78 | if (file_exists("{$base}/pre.compilers")) { 79 | $compilers = json_decode(file_get_contents("{$base}/pre.compilers"), true); 80 | 81 | return array_map(function ($compiler) { 82 | return base64_decode($compiler); 83 | }, $compilers); 84 | } 85 | 86 | return []; 87 | } 88 | 89 | public function process($from, $to = null, $format = true, $comment = true) 90 | { 91 | if (is_null($to)) { 92 | $to = preg_replace("/\.[a-zA-Z]+$/", ".php", $from); 93 | } 94 | 95 | if (!$this->isProcessed($from, $to)) { 96 | $this->compile($from, $to); 97 | } 98 | 99 | return require $to; 100 | } 101 | 102 | private function isProcessed($from, $to) 103 | { 104 | return file_exists($to) && filemtime($from) < filemtime($to); 105 | } 106 | 107 | public function compile($from, $to, $format = true, $comment = true) 108 | { 109 | if (file_exists($from)) { 110 | $code = file_get_contents($from); 111 | $code = $this->parse($code); 112 | 113 | if ($format) { 114 | $code = $this->format($code); 115 | } 116 | 117 | if ($comment) { 118 | $comment = sprintf(COMMENT, $from); 119 | 120 | $code = str_replace("getCodeWithMacros($code); 130 | $code = $this->getCodeWithCompilers($code); 131 | 132 | $engine = new Engine(); 133 | 134 | return $engine->expand($code, $engine->currentFileName(), Engine::GC_ENGINE_DISABLED); 135 | } 136 | 137 | private function getCodeWithCompilers($code) 138 | { 139 | $compilers = array_merge($this->getCompilers(), $this->getDiscoveredCompilers()); 140 | 141 | foreach ($compilers as $compiler) { 142 | if (is_callable($compiler)) { 143 | $code = $compiler($code); 144 | } 145 | } 146 | 147 | return $code; 148 | } 149 | 150 | private function getCodeWithMacros($code) 151 | { 152 | $macros = array_merge($this->getMacros(), $this->getDiscoveredMacros()); 153 | 154 | foreach ($macros as $macro) { 155 | if (file_exists($macro)) { 156 | $code = str_replace("addOpeningTag(trim($code)); 167 | $encoded = base64_encode($code); 168 | 169 | $command = "node -e ' 170 | const atob = require(\"atob\") 171 | const prettier = require(\"prettier\") 172 | 173 | prettier.resolveConfig(\"{$path}\").then(options => { 174 | try { 175 | const formatted = prettier.format(atob(\"{$encoded}\").trim(), options) 176 | console.log(formatted) 177 | } catch (e) {} 178 | }) 179 | '"; 180 | 181 | $cwd = getcwd(); 182 | chdir(__DIR__); 183 | exec($command, $output); 184 | chdir($cwd); 185 | 186 | if (!$output) { 187 | return $code; 188 | } 189 | 190 | $output = join("\n", $output); 191 | return $this->addOpeningTag($output) . "\n"; 192 | } 193 | 194 | private function addOpeningTag($code) 195 | { 196 | return "=5.3" 25 | }, 26 | "type": "library", 27 | "extra": { 28 | "branch-alias": { 29 | "dev-master": "1.0-dev" 30 | } 31 | }, 32 | "autoload": { 33 | "psr-4": { 34 | "Composed\\": "src" 35 | }, 36 | "files": [ 37 | "src/functions_include.php" 38 | ] 39 | }, 40 | "notification-url": "https://packagist.org/downloads/", 41 | "license": [ 42 | "MIT" 43 | ], 44 | "authors": [ 45 | { 46 | "name": "Josh Di Fabio", 47 | "email": "joshdifabio@gmail.com" 48 | } 49 | ], 50 | "description": "Easily parse your project's Composer configuration, and those of its dependencies, at runtime.", 51 | "keywords": [ 52 | "composer", 53 | "dependency", 54 | "package" 55 | ], 56 | "support": { 57 | "issues": "https://github.com/joshdifabio/composed/issues", 58 | "source": "https://github.com/joshdifabio/composed/tree/master" 59 | }, 60 | "time": "2015-07-16T22:30:20+00:00" 61 | }, 62 | { 63 | "name": "nikic/php-parser", 64 | "version": "v4.11.0", 65 | "source": { 66 | "type": "git", 67 | "url": "https://github.com/nikic/PHP-Parser.git", 68 | "reference": "fe14cf3672a149364fb66dfe11bf6549af899f94" 69 | }, 70 | "dist": { 71 | "type": "zip", 72 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/fe14cf3672a149364fb66dfe11bf6549af899f94", 73 | "reference": "fe14cf3672a149364fb66dfe11bf6549af899f94", 74 | "shasum": "" 75 | }, 76 | "require": { 77 | "ext-tokenizer": "*", 78 | "php": ">=7.0" 79 | }, 80 | "require-dev": { 81 | "ircmaxell/php-yacc": "^0.0.7", 82 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 83 | }, 84 | "bin": [ 85 | "bin/php-parse" 86 | ], 87 | "type": "library", 88 | "extra": { 89 | "branch-alias": { 90 | "dev-master": "4.9-dev" 91 | } 92 | }, 93 | "autoload": { 94 | "psr-4": { 95 | "PhpParser\\": "lib/PhpParser" 96 | } 97 | }, 98 | "notification-url": "https://packagist.org/downloads/", 99 | "license": [ 100 | "BSD-3-Clause" 101 | ], 102 | "authors": [ 103 | { 104 | "name": "Nikita Popov" 105 | } 106 | ], 107 | "description": "A PHP parser written in PHP", 108 | "keywords": [ 109 | "parser", 110 | "php" 111 | ], 112 | "support": { 113 | "issues": "https://github.com/nikic/PHP-Parser/issues", 114 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.11.0" 115 | }, 116 | "time": "2021-07-03T13:36:55+00:00" 117 | }, 118 | { 119 | "name": "yay/yay", 120 | "version": "0.7.0", 121 | "source": { 122 | "type": "git", 123 | "url": "https://github.com/marcioAlmada/yay.git", 124 | "reference": "277f52cf44d78e677cc7dadd1aa48d54cfe9d272" 125 | }, 126 | "dist": { 127 | "type": "zip", 128 | "url": "https://api.github.com/repos/marcioAlmada/yay/zipball/277f52cf44d78e677cc7dadd1aa48d54cfe9d272", 129 | "reference": "277f52cf44d78e677cc7dadd1aa48d54cfe9d272", 130 | "shasum": "" 131 | }, 132 | "require": { 133 | "ext-mbstring": "*", 134 | "ext-tokenizer": "*", 135 | "nikic/php-parser": "^2.1|^3.0|^4.0", 136 | "php": "7.*" 137 | }, 138 | "require-dev": { 139 | "phpbench/phpbench": "@dev", 140 | "phpunit/phpunit": "~6.5" 141 | }, 142 | "bin": [ 143 | "bin/yay", 144 | "bin/yay-pretty" 145 | ], 146 | "type": "library", 147 | "autoload": { 148 | "files": [ 149 | "src/parsers.php", 150 | "src/parsers_internal.php", 151 | "src/expanders.php" 152 | ], 153 | "psr-4": { 154 | "Yay\\": "src/" 155 | } 156 | }, 157 | "notification-url": "https://packagist.org/downloads/", 158 | "license": [ 159 | "MIT" 160 | ], 161 | "authors": [ 162 | { 163 | "name": "Márcio Almada", 164 | "email": "marcio3w@gmail.com", 165 | "homepage": "https://github.com/marcioAlmada" 166 | } 167 | ], 168 | "description": "A high level PHP Pre-Processor", 169 | "keywords": [ 170 | "language", 171 | "pre-processor", 172 | "syntax" 173 | ], 174 | "support": { 175 | "issues": "https://github.com/marcioAlmada/yay/issues", 176 | "source": "https://github.com/marcioAlmada/yay/tree/master" 177 | }, 178 | "time": "2018-06-26T11:52:57+00:00" 179 | } 180 | ], 181 | "packages-dev": [ 182 | { 183 | "name": "composer/ca-bundle", 184 | "version": "1.2.10", 185 | "source": { 186 | "type": "git", 187 | "url": "https://github.com/composer/ca-bundle.git", 188 | "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" 189 | }, 190 | "dist": { 191 | "type": "zip", 192 | "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", 193 | "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", 194 | "shasum": "" 195 | }, 196 | "require": { 197 | "ext-openssl": "*", 198 | "ext-pcre": "*", 199 | "php": "^5.3.2 || ^7.0 || ^8.0" 200 | }, 201 | "require-dev": { 202 | "phpstan/phpstan": "^0.12.55", 203 | "psr/log": "^1.0", 204 | "symfony/phpunit-bridge": "^4.2 || ^5", 205 | "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" 206 | }, 207 | "type": "library", 208 | "extra": { 209 | "branch-alias": { 210 | "dev-main": "1.x-dev" 211 | } 212 | }, 213 | "autoload": { 214 | "psr-4": { 215 | "Composer\\CaBundle\\": "src" 216 | } 217 | }, 218 | "notification-url": "https://packagist.org/downloads/", 219 | "license": [ 220 | "MIT" 221 | ], 222 | "authors": [ 223 | { 224 | "name": "Jordi Boggiano", 225 | "email": "j.boggiano@seld.be", 226 | "homepage": "http://seld.be" 227 | } 228 | ], 229 | "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", 230 | "keywords": [ 231 | "cabundle", 232 | "cacert", 233 | "certificate", 234 | "ssl", 235 | "tls" 236 | ], 237 | "support": { 238 | "irc": "irc://irc.freenode.org/composer", 239 | "issues": "https://github.com/composer/ca-bundle/issues", 240 | "source": "https://github.com/composer/ca-bundle/tree/1.2.10" 241 | }, 242 | "funding": [ 243 | { 244 | "url": "https://packagist.com", 245 | "type": "custom" 246 | }, 247 | { 248 | "url": "https://github.com/composer", 249 | "type": "github" 250 | }, 251 | { 252 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 253 | "type": "tidelift" 254 | } 255 | ], 256 | "time": "2021-06-07T13:58:28+00:00" 257 | }, 258 | { 259 | "name": "composer/composer", 260 | "version": "1.10.22", 261 | "source": { 262 | "type": "git", 263 | "url": "https://github.com/composer/composer.git", 264 | "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25" 265 | }, 266 | "dist": { 267 | "type": "zip", 268 | "url": "https://api.github.com/repos/composer/composer/zipball/28c9dfbe2351635961f670773e8d7b17bc5eda25", 269 | "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25", 270 | "shasum": "" 271 | }, 272 | "require": { 273 | "composer/ca-bundle": "^1.0", 274 | "composer/semver": "^1.0", 275 | "composer/spdx-licenses": "^1.2", 276 | "composer/xdebug-handler": "^1.1", 277 | "justinrainbow/json-schema": "^5.2.10", 278 | "php": "^5.3.2 || ^7.0 || ^8.0", 279 | "psr/log": "^1.0", 280 | "seld/jsonlint": "^1.4", 281 | "seld/phar-utils": "^1.0", 282 | "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0", 283 | "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0", 284 | "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0", 285 | "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" 286 | }, 287 | "conflict": { 288 | "symfony/console": "2.8.38" 289 | }, 290 | "require-dev": { 291 | "phpspec/prophecy": "^1.10", 292 | "symfony/phpunit-bridge": "^4.2" 293 | }, 294 | "suggest": { 295 | "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", 296 | "ext-zip": "Enabling the zip extension allows you to unzip archives", 297 | "ext-zlib": "Allow gzip compression of HTTP requests" 298 | }, 299 | "bin": [ 300 | "bin/composer" 301 | ], 302 | "type": "library", 303 | "extra": { 304 | "branch-alias": { 305 | "dev-master": "1.10-dev" 306 | } 307 | }, 308 | "autoload": { 309 | "psr-4": { 310 | "Composer\\": "src/Composer" 311 | } 312 | }, 313 | "notification-url": "https://packagist.org/downloads/", 314 | "license": [ 315 | "MIT" 316 | ], 317 | "authors": [ 318 | { 319 | "name": "Nils Adermann", 320 | "email": "naderman@naderman.de", 321 | "homepage": "http://www.naderman.de" 322 | }, 323 | { 324 | "name": "Jordi Boggiano", 325 | "email": "j.boggiano@seld.be", 326 | "homepage": "http://seld.be" 327 | } 328 | ], 329 | "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", 330 | "homepage": "https://getcomposer.org/", 331 | "keywords": [ 332 | "autoload", 333 | "dependency", 334 | "package" 335 | ], 336 | "support": { 337 | "irc": "irc://irc.freenode.org/composer", 338 | "issues": "https://github.com/composer/composer/issues", 339 | "source": "https://github.com/composer/composer/tree/1.10.22" 340 | }, 341 | "funding": [ 342 | { 343 | "url": "https://packagist.com", 344 | "type": "custom" 345 | }, 346 | { 347 | "url": "https://github.com/composer", 348 | "type": "github" 349 | }, 350 | { 351 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 352 | "type": "tidelift" 353 | } 354 | ], 355 | "time": "2021-04-27T11:10:45+00:00" 356 | }, 357 | { 358 | "name": "composer/semver", 359 | "version": "1.7.2", 360 | "source": { 361 | "type": "git", 362 | "url": "https://github.com/composer/semver.git", 363 | "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" 364 | }, 365 | "dist": { 366 | "type": "zip", 367 | "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", 368 | "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", 369 | "shasum": "" 370 | }, 371 | "require": { 372 | "php": "^5.3.2 || ^7.0 || ^8.0" 373 | }, 374 | "require-dev": { 375 | "phpunit/phpunit": "^4.5 || ^5.0.5" 376 | }, 377 | "type": "library", 378 | "extra": { 379 | "branch-alias": { 380 | "dev-master": "1.x-dev" 381 | } 382 | }, 383 | "autoload": { 384 | "psr-4": { 385 | "Composer\\Semver\\": "src" 386 | } 387 | }, 388 | "notification-url": "https://packagist.org/downloads/", 389 | "license": [ 390 | "MIT" 391 | ], 392 | "authors": [ 393 | { 394 | "name": "Nils Adermann", 395 | "email": "naderman@naderman.de", 396 | "homepage": "http://www.naderman.de" 397 | }, 398 | { 399 | "name": "Jordi Boggiano", 400 | "email": "j.boggiano@seld.be", 401 | "homepage": "http://seld.be" 402 | }, 403 | { 404 | "name": "Rob Bast", 405 | "email": "rob.bast@gmail.com", 406 | "homepage": "http://robbast.nl" 407 | } 408 | ], 409 | "description": "Semver library that offers utilities, version constraint parsing and validation.", 410 | "keywords": [ 411 | "semantic", 412 | "semver", 413 | "validation", 414 | "versioning" 415 | ], 416 | "support": { 417 | "irc": "irc://irc.freenode.org/composer", 418 | "issues": "https://github.com/composer/semver/issues", 419 | "source": "https://github.com/composer/semver/tree/1.7.2" 420 | }, 421 | "funding": [ 422 | { 423 | "url": "https://packagist.com", 424 | "type": "custom" 425 | }, 426 | { 427 | "url": "https://github.com/composer", 428 | "type": "github" 429 | }, 430 | { 431 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 432 | "type": "tidelift" 433 | } 434 | ], 435 | "time": "2020-12-03T15:47:16+00:00" 436 | }, 437 | { 438 | "name": "composer/spdx-licenses", 439 | "version": "1.5.5", 440 | "source": { 441 | "type": "git", 442 | "url": "https://github.com/composer/spdx-licenses.git", 443 | "reference": "de30328a7af8680efdc03e396aad24befd513200" 444 | }, 445 | "dist": { 446 | "type": "zip", 447 | "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", 448 | "reference": "de30328a7af8680efdc03e396aad24befd513200", 449 | "shasum": "" 450 | }, 451 | "require": { 452 | "php": "^5.3.2 || ^7.0 || ^8.0" 453 | }, 454 | "require-dev": { 455 | "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" 456 | }, 457 | "type": "library", 458 | "extra": { 459 | "branch-alias": { 460 | "dev-main": "1.x-dev" 461 | } 462 | }, 463 | "autoload": { 464 | "psr-4": { 465 | "Composer\\Spdx\\": "src" 466 | } 467 | }, 468 | "notification-url": "https://packagist.org/downloads/", 469 | "license": [ 470 | "MIT" 471 | ], 472 | "authors": [ 473 | { 474 | "name": "Nils Adermann", 475 | "email": "naderman@naderman.de", 476 | "homepage": "http://www.naderman.de" 477 | }, 478 | { 479 | "name": "Jordi Boggiano", 480 | "email": "j.boggiano@seld.be", 481 | "homepage": "http://seld.be" 482 | }, 483 | { 484 | "name": "Rob Bast", 485 | "email": "rob.bast@gmail.com", 486 | "homepage": "http://robbast.nl" 487 | } 488 | ], 489 | "description": "SPDX licenses list and validation library.", 490 | "keywords": [ 491 | "license", 492 | "spdx", 493 | "validator" 494 | ], 495 | "support": { 496 | "irc": "irc://irc.freenode.org/composer", 497 | "issues": "https://github.com/composer/spdx-licenses/issues", 498 | "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" 499 | }, 500 | "funding": [ 501 | { 502 | "url": "https://packagist.com", 503 | "type": "custom" 504 | }, 505 | { 506 | "url": "https://github.com/composer", 507 | "type": "github" 508 | }, 509 | { 510 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 511 | "type": "tidelift" 512 | } 513 | ], 514 | "time": "2020-12-03T16:04:16+00:00" 515 | }, 516 | { 517 | "name": "composer/xdebug-handler", 518 | "version": "1.4.6", 519 | "source": { 520 | "type": "git", 521 | "url": "https://github.com/composer/xdebug-handler.git", 522 | "reference": "f27e06cd9675801df441b3656569b328e04aa37c" 523 | }, 524 | "dist": { 525 | "type": "zip", 526 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", 527 | "reference": "f27e06cd9675801df441b3656569b328e04aa37c", 528 | "shasum": "" 529 | }, 530 | "require": { 531 | "php": "^5.3.2 || ^7.0 || ^8.0", 532 | "psr/log": "^1.0" 533 | }, 534 | "require-dev": { 535 | "phpstan/phpstan": "^0.12.55", 536 | "symfony/phpunit-bridge": "^4.2 || ^5" 537 | }, 538 | "type": "library", 539 | "autoload": { 540 | "psr-4": { 541 | "Composer\\XdebugHandler\\": "src" 542 | } 543 | }, 544 | "notification-url": "https://packagist.org/downloads/", 545 | "license": [ 546 | "MIT" 547 | ], 548 | "authors": [ 549 | { 550 | "name": "John Stevenson", 551 | "email": "john-stevenson@blueyonder.co.uk" 552 | } 553 | ], 554 | "description": "Restarts a process without Xdebug.", 555 | "keywords": [ 556 | "Xdebug", 557 | "performance" 558 | ], 559 | "support": { 560 | "irc": "irc://irc.freenode.org/composer", 561 | "issues": "https://github.com/composer/xdebug-handler/issues", 562 | "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" 563 | }, 564 | "funding": [ 565 | { 566 | "url": "https://packagist.com", 567 | "type": "custom" 568 | }, 569 | { 570 | "url": "https://github.com/composer", 571 | "type": "github" 572 | }, 573 | { 574 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 575 | "type": "tidelift" 576 | } 577 | ], 578 | "time": "2021-03-25T17:01:18+00:00" 579 | }, 580 | { 581 | "name": "doctrine/instantiator", 582 | "version": "1.4.0", 583 | "source": { 584 | "type": "git", 585 | "url": "https://github.com/doctrine/instantiator.git", 586 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" 587 | }, 588 | "dist": { 589 | "type": "zip", 590 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", 591 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", 592 | "shasum": "" 593 | }, 594 | "require": { 595 | "php": "^7.1 || ^8.0" 596 | }, 597 | "require-dev": { 598 | "doctrine/coding-standard": "^8.0", 599 | "ext-pdo": "*", 600 | "ext-phar": "*", 601 | "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", 602 | "phpstan/phpstan": "^0.12", 603 | "phpstan/phpstan-phpunit": "^0.12", 604 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 605 | }, 606 | "type": "library", 607 | "autoload": { 608 | "psr-4": { 609 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 610 | } 611 | }, 612 | "notification-url": "https://packagist.org/downloads/", 613 | "license": [ 614 | "MIT" 615 | ], 616 | "authors": [ 617 | { 618 | "name": "Marco Pivetta", 619 | "email": "ocramius@gmail.com", 620 | "homepage": "https://ocramius.github.io/" 621 | } 622 | ], 623 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 624 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 625 | "keywords": [ 626 | "constructor", 627 | "instantiate" 628 | ], 629 | "support": { 630 | "issues": "https://github.com/doctrine/instantiator/issues", 631 | "source": "https://github.com/doctrine/instantiator/tree/1.4.0" 632 | }, 633 | "funding": [ 634 | { 635 | "url": "https://www.doctrine-project.org/sponsorship.html", 636 | "type": "custom" 637 | }, 638 | { 639 | "url": "https://www.patreon.com/phpdoctrine", 640 | "type": "patreon" 641 | }, 642 | { 643 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 644 | "type": "tidelift" 645 | } 646 | ], 647 | "time": "2020-11-10T18:47:58+00:00" 648 | }, 649 | { 650 | "name": "justinrainbow/json-schema", 651 | "version": "5.2.10", 652 | "source": { 653 | "type": "git", 654 | "url": "https://github.com/justinrainbow/json-schema.git", 655 | "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" 656 | }, 657 | "dist": { 658 | "type": "zip", 659 | "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", 660 | "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", 661 | "shasum": "" 662 | }, 663 | "require": { 664 | "php": ">=5.3.3" 665 | }, 666 | "require-dev": { 667 | "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", 668 | "json-schema/json-schema-test-suite": "1.2.0", 669 | "phpunit/phpunit": "^4.8.35" 670 | }, 671 | "bin": [ 672 | "bin/validate-json" 673 | ], 674 | "type": "library", 675 | "extra": { 676 | "branch-alias": { 677 | "dev-master": "5.0.x-dev" 678 | } 679 | }, 680 | "autoload": { 681 | "psr-4": { 682 | "JsonSchema\\": "src/JsonSchema/" 683 | } 684 | }, 685 | "notification-url": "https://packagist.org/downloads/", 686 | "license": [ 687 | "MIT" 688 | ], 689 | "authors": [ 690 | { 691 | "name": "Bruno Prieto Reis", 692 | "email": "bruno.p.reis@gmail.com" 693 | }, 694 | { 695 | "name": "Justin Rainbow", 696 | "email": "justin.rainbow@gmail.com" 697 | }, 698 | { 699 | "name": "Igor Wiedler", 700 | "email": "igor@wiedler.ch" 701 | }, 702 | { 703 | "name": "Robert Schönthal", 704 | "email": "seroscho@googlemail.com" 705 | } 706 | ], 707 | "description": "A library to validate a json schema.", 708 | "homepage": "https://github.com/justinrainbow/json-schema", 709 | "keywords": [ 710 | "json", 711 | "schema" 712 | ], 713 | "support": { 714 | "issues": "https://github.com/justinrainbow/json-schema/issues", 715 | "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" 716 | }, 717 | "time": "2020-05-27T16:41:55+00:00" 718 | }, 719 | { 720 | "name": "myclabs/deep-copy", 721 | "version": "1.10.2", 722 | "source": { 723 | "type": "git", 724 | "url": "https://github.com/myclabs/DeepCopy.git", 725 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" 726 | }, 727 | "dist": { 728 | "type": "zip", 729 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", 730 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", 731 | "shasum": "" 732 | }, 733 | "require": { 734 | "php": "^7.1 || ^8.0" 735 | }, 736 | "replace": { 737 | "myclabs/deep-copy": "self.version" 738 | }, 739 | "require-dev": { 740 | "doctrine/collections": "^1.0", 741 | "doctrine/common": "^2.6", 742 | "phpunit/phpunit": "^7.1" 743 | }, 744 | "type": "library", 745 | "autoload": { 746 | "psr-4": { 747 | "DeepCopy\\": "src/DeepCopy/" 748 | }, 749 | "files": [ 750 | "src/DeepCopy/deep_copy.php" 751 | ] 752 | }, 753 | "notification-url": "https://packagist.org/downloads/", 754 | "license": [ 755 | "MIT" 756 | ], 757 | "description": "Create deep copies (clones) of your objects", 758 | "keywords": [ 759 | "clone", 760 | "copy", 761 | "duplicate", 762 | "object", 763 | "object graph" 764 | ], 765 | "support": { 766 | "issues": "https://github.com/myclabs/DeepCopy/issues", 767 | "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" 768 | }, 769 | "funding": [ 770 | { 771 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 772 | "type": "tidelift" 773 | } 774 | ], 775 | "time": "2020-11-13T09:40:50+00:00" 776 | }, 777 | { 778 | "name": "phar-io/manifest", 779 | "version": "1.0.3", 780 | "source": { 781 | "type": "git", 782 | "url": "https://github.com/phar-io/manifest.git", 783 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" 784 | }, 785 | "dist": { 786 | "type": "zip", 787 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 788 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 789 | "shasum": "" 790 | }, 791 | "require": { 792 | "ext-dom": "*", 793 | "ext-phar": "*", 794 | "phar-io/version": "^2.0", 795 | "php": "^5.6 || ^7.0" 796 | }, 797 | "type": "library", 798 | "extra": { 799 | "branch-alias": { 800 | "dev-master": "1.0.x-dev" 801 | } 802 | }, 803 | "autoload": { 804 | "classmap": [ 805 | "src/" 806 | ] 807 | }, 808 | "notification-url": "https://packagist.org/downloads/", 809 | "license": [ 810 | "BSD-3-Clause" 811 | ], 812 | "authors": [ 813 | { 814 | "name": "Arne Blankerts", 815 | "email": "arne@blankerts.de", 816 | "role": "Developer" 817 | }, 818 | { 819 | "name": "Sebastian Heuer", 820 | "email": "sebastian@phpeople.de", 821 | "role": "Developer" 822 | }, 823 | { 824 | "name": "Sebastian Bergmann", 825 | "email": "sebastian@phpunit.de", 826 | "role": "Developer" 827 | } 828 | ], 829 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 830 | "support": { 831 | "issues": "https://github.com/phar-io/manifest/issues", 832 | "source": "https://github.com/phar-io/manifest/tree/master" 833 | }, 834 | "time": "2018-07-08T19:23:20+00:00" 835 | }, 836 | { 837 | "name": "phar-io/version", 838 | "version": "2.0.1", 839 | "source": { 840 | "type": "git", 841 | "url": "https://github.com/phar-io/version.git", 842 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 843 | }, 844 | "dist": { 845 | "type": "zip", 846 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 847 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 848 | "shasum": "" 849 | }, 850 | "require": { 851 | "php": "^5.6 || ^7.0" 852 | }, 853 | "type": "library", 854 | "autoload": { 855 | "classmap": [ 856 | "src/" 857 | ] 858 | }, 859 | "notification-url": "https://packagist.org/downloads/", 860 | "license": [ 861 | "BSD-3-Clause" 862 | ], 863 | "authors": [ 864 | { 865 | "name": "Arne Blankerts", 866 | "email": "arne@blankerts.de", 867 | "role": "Developer" 868 | }, 869 | { 870 | "name": "Sebastian Heuer", 871 | "email": "sebastian@phpeople.de", 872 | "role": "Developer" 873 | }, 874 | { 875 | "name": "Sebastian Bergmann", 876 | "email": "sebastian@phpunit.de", 877 | "role": "Developer" 878 | } 879 | ], 880 | "description": "Library for handling version information and constraints", 881 | "support": { 882 | "issues": "https://github.com/phar-io/version/issues", 883 | "source": "https://github.com/phar-io/version/tree/master" 884 | }, 885 | "time": "2018-07-08T19:19:57+00:00" 886 | }, 887 | { 888 | "name": "phpdocumentor/reflection-common", 889 | "version": "2.2.0", 890 | "source": { 891 | "type": "git", 892 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 893 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 894 | }, 895 | "dist": { 896 | "type": "zip", 897 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 898 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 899 | "shasum": "" 900 | }, 901 | "require": { 902 | "php": "^7.2 || ^8.0" 903 | }, 904 | "type": "library", 905 | "extra": { 906 | "branch-alias": { 907 | "dev-2.x": "2.x-dev" 908 | } 909 | }, 910 | "autoload": { 911 | "psr-4": { 912 | "phpDocumentor\\Reflection\\": "src/" 913 | } 914 | }, 915 | "notification-url": "https://packagist.org/downloads/", 916 | "license": [ 917 | "MIT" 918 | ], 919 | "authors": [ 920 | { 921 | "name": "Jaap van Otterdijk", 922 | "email": "opensource@ijaap.nl" 923 | } 924 | ], 925 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 926 | "homepage": "http://www.phpdoc.org", 927 | "keywords": [ 928 | "FQSEN", 929 | "phpDocumentor", 930 | "phpdoc", 931 | "reflection", 932 | "static analysis" 933 | ], 934 | "support": { 935 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 936 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 937 | }, 938 | "time": "2020-06-27T09:03:43+00:00" 939 | }, 940 | { 941 | "name": "phpdocumentor/reflection-docblock", 942 | "version": "5.2.2", 943 | "source": { 944 | "type": "git", 945 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 946 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" 947 | }, 948 | "dist": { 949 | "type": "zip", 950 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", 951 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", 952 | "shasum": "" 953 | }, 954 | "require": { 955 | "ext-filter": "*", 956 | "php": "^7.2 || ^8.0", 957 | "phpdocumentor/reflection-common": "^2.2", 958 | "phpdocumentor/type-resolver": "^1.3", 959 | "webmozart/assert": "^1.9.1" 960 | }, 961 | "require-dev": { 962 | "mockery/mockery": "~1.3.2" 963 | }, 964 | "type": "library", 965 | "extra": { 966 | "branch-alias": { 967 | "dev-master": "5.x-dev" 968 | } 969 | }, 970 | "autoload": { 971 | "psr-4": { 972 | "phpDocumentor\\Reflection\\": "src" 973 | } 974 | }, 975 | "notification-url": "https://packagist.org/downloads/", 976 | "license": [ 977 | "MIT" 978 | ], 979 | "authors": [ 980 | { 981 | "name": "Mike van Riel", 982 | "email": "me@mikevanriel.com" 983 | }, 984 | { 985 | "name": "Jaap van Otterdijk", 986 | "email": "account@ijaap.nl" 987 | } 988 | ], 989 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 990 | "support": { 991 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 992 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" 993 | }, 994 | "time": "2020-09-03T19:13:55+00:00" 995 | }, 996 | { 997 | "name": "phpdocumentor/type-resolver", 998 | "version": "1.4.0", 999 | "source": { 1000 | "type": "git", 1001 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1002 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" 1003 | }, 1004 | "dist": { 1005 | "type": "zip", 1006 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 1007 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 1008 | "shasum": "" 1009 | }, 1010 | "require": { 1011 | "php": "^7.2 || ^8.0", 1012 | "phpdocumentor/reflection-common": "^2.0" 1013 | }, 1014 | "require-dev": { 1015 | "ext-tokenizer": "*" 1016 | }, 1017 | "type": "library", 1018 | "extra": { 1019 | "branch-alias": { 1020 | "dev-1.x": "1.x-dev" 1021 | } 1022 | }, 1023 | "autoload": { 1024 | "psr-4": { 1025 | "phpDocumentor\\Reflection\\": "src" 1026 | } 1027 | }, 1028 | "notification-url": "https://packagist.org/downloads/", 1029 | "license": [ 1030 | "MIT" 1031 | ], 1032 | "authors": [ 1033 | { 1034 | "name": "Mike van Riel", 1035 | "email": "me@mikevanriel.com" 1036 | } 1037 | ], 1038 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1039 | "support": { 1040 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 1041 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" 1042 | }, 1043 | "time": "2020-09-17T18:55:26+00:00" 1044 | }, 1045 | { 1046 | "name": "phpspec/prophecy", 1047 | "version": "1.13.0", 1048 | "source": { 1049 | "type": "git", 1050 | "url": "https://github.com/phpspec/prophecy.git", 1051 | "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" 1052 | }, 1053 | "dist": { 1054 | "type": "zip", 1055 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", 1056 | "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", 1057 | "shasum": "" 1058 | }, 1059 | "require": { 1060 | "doctrine/instantiator": "^1.2", 1061 | "php": "^7.2 || ~8.0, <8.1", 1062 | "phpdocumentor/reflection-docblock": "^5.2", 1063 | "sebastian/comparator": "^3.0 || ^4.0", 1064 | "sebastian/recursion-context": "^3.0 || ^4.0" 1065 | }, 1066 | "require-dev": { 1067 | "phpspec/phpspec": "^6.0", 1068 | "phpunit/phpunit": "^8.0 || ^9.0" 1069 | }, 1070 | "type": "library", 1071 | "extra": { 1072 | "branch-alias": { 1073 | "dev-master": "1.11.x-dev" 1074 | } 1075 | }, 1076 | "autoload": { 1077 | "psr-4": { 1078 | "Prophecy\\": "src/Prophecy" 1079 | } 1080 | }, 1081 | "notification-url": "https://packagist.org/downloads/", 1082 | "license": [ 1083 | "MIT" 1084 | ], 1085 | "authors": [ 1086 | { 1087 | "name": "Konstantin Kudryashov", 1088 | "email": "ever.zet@gmail.com", 1089 | "homepage": "http://everzet.com" 1090 | }, 1091 | { 1092 | "name": "Marcello Duarte", 1093 | "email": "marcello.duarte@gmail.com" 1094 | } 1095 | ], 1096 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1097 | "homepage": "https://github.com/phpspec/prophecy", 1098 | "keywords": [ 1099 | "Double", 1100 | "Dummy", 1101 | "fake", 1102 | "mock", 1103 | "spy", 1104 | "stub" 1105 | ], 1106 | "support": { 1107 | "issues": "https://github.com/phpspec/prophecy/issues", 1108 | "source": "https://github.com/phpspec/prophecy/tree/1.13.0" 1109 | }, 1110 | "time": "2021-03-17T13:42:18+00:00" 1111 | }, 1112 | { 1113 | "name": "phpunit/php-code-coverage", 1114 | "version": "6.1.4", 1115 | "source": { 1116 | "type": "git", 1117 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1118 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" 1119 | }, 1120 | "dist": { 1121 | "type": "zip", 1122 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 1123 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 1124 | "shasum": "" 1125 | }, 1126 | "require": { 1127 | "ext-dom": "*", 1128 | "ext-xmlwriter": "*", 1129 | "php": "^7.1", 1130 | "phpunit/php-file-iterator": "^2.0", 1131 | "phpunit/php-text-template": "^1.2.1", 1132 | "phpunit/php-token-stream": "^3.0", 1133 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 1134 | "sebastian/environment": "^3.1 || ^4.0", 1135 | "sebastian/version": "^2.0.1", 1136 | "theseer/tokenizer": "^1.1" 1137 | }, 1138 | "require-dev": { 1139 | "phpunit/phpunit": "^7.0" 1140 | }, 1141 | "suggest": { 1142 | "ext-xdebug": "^2.6.0" 1143 | }, 1144 | "type": "library", 1145 | "extra": { 1146 | "branch-alias": { 1147 | "dev-master": "6.1-dev" 1148 | } 1149 | }, 1150 | "autoload": { 1151 | "classmap": [ 1152 | "src/" 1153 | ] 1154 | }, 1155 | "notification-url": "https://packagist.org/downloads/", 1156 | "license": [ 1157 | "BSD-3-Clause" 1158 | ], 1159 | "authors": [ 1160 | { 1161 | "name": "Sebastian Bergmann", 1162 | "email": "sebastian@phpunit.de", 1163 | "role": "lead" 1164 | } 1165 | ], 1166 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1167 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1168 | "keywords": [ 1169 | "coverage", 1170 | "testing", 1171 | "xunit" 1172 | ], 1173 | "support": { 1174 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 1175 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/master" 1176 | }, 1177 | "time": "2018-10-31T16:06:48+00:00" 1178 | }, 1179 | { 1180 | "name": "phpunit/php-file-iterator", 1181 | "version": "2.0.3", 1182 | "source": { 1183 | "type": "git", 1184 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1185 | "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" 1186 | }, 1187 | "dist": { 1188 | "type": "zip", 1189 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", 1190 | "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", 1191 | "shasum": "" 1192 | }, 1193 | "require": { 1194 | "php": ">=7.1" 1195 | }, 1196 | "require-dev": { 1197 | "phpunit/phpunit": "^8.5" 1198 | }, 1199 | "type": "library", 1200 | "extra": { 1201 | "branch-alias": { 1202 | "dev-master": "2.0.x-dev" 1203 | } 1204 | }, 1205 | "autoload": { 1206 | "classmap": [ 1207 | "src/" 1208 | ] 1209 | }, 1210 | "notification-url": "https://packagist.org/downloads/", 1211 | "license": [ 1212 | "BSD-3-Clause" 1213 | ], 1214 | "authors": [ 1215 | { 1216 | "name": "Sebastian Bergmann", 1217 | "email": "sebastian@phpunit.de", 1218 | "role": "lead" 1219 | } 1220 | ], 1221 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1222 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1223 | "keywords": [ 1224 | "filesystem", 1225 | "iterator" 1226 | ], 1227 | "support": { 1228 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 1229 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.3" 1230 | }, 1231 | "funding": [ 1232 | { 1233 | "url": "https://github.com/sebastianbergmann", 1234 | "type": "github" 1235 | } 1236 | ], 1237 | "time": "2020-11-30T08:25:21+00:00" 1238 | }, 1239 | { 1240 | "name": "phpunit/php-text-template", 1241 | "version": "1.2.1", 1242 | "source": { 1243 | "type": "git", 1244 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1245 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 1246 | }, 1247 | "dist": { 1248 | "type": "zip", 1249 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1250 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1251 | "shasum": "" 1252 | }, 1253 | "require": { 1254 | "php": ">=5.3.3" 1255 | }, 1256 | "type": "library", 1257 | "autoload": { 1258 | "classmap": [ 1259 | "src/" 1260 | ] 1261 | }, 1262 | "notification-url": "https://packagist.org/downloads/", 1263 | "license": [ 1264 | "BSD-3-Clause" 1265 | ], 1266 | "authors": [ 1267 | { 1268 | "name": "Sebastian Bergmann", 1269 | "email": "sebastian@phpunit.de", 1270 | "role": "lead" 1271 | } 1272 | ], 1273 | "description": "Simple template engine.", 1274 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1275 | "keywords": [ 1276 | "template" 1277 | ], 1278 | "support": { 1279 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 1280 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" 1281 | }, 1282 | "time": "2015-06-21T13:50:34+00:00" 1283 | }, 1284 | { 1285 | "name": "phpunit/php-timer", 1286 | "version": "2.1.3", 1287 | "source": { 1288 | "type": "git", 1289 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1290 | "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" 1291 | }, 1292 | "dist": { 1293 | "type": "zip", 1294 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", 1295 | "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", 1296 | "shasum": "" 1297 | }, 1298 | "require": { 1299 | "php": ">=7.1" 1300 | }, 1301 | "require-dev": { 1302 | "phpunit/phpunit": "^8.5" 1303 | }, 1304 | "type": "library", 1305 | "extra": { 1306 | "branch-alias": { 1307 | "dev-master": "2.1-dev" 1308 | } 1309 | }, 1310 | "autoload": { 1311 | "classmap": [ 1312 | "src/" 1313 | ] 1314 | }, 1315 | "notification-url": "https://packagist.org/downloads/", 1316 | "license": [ 1317 | "BSD-3-Clause" 1318 | ], 1319 | "authors": [ 1320 | { 1321 | "name": "Sebastian Bergmann", 1322 | "email": "sebastian@phpunit.de", 1323 | "role": "lead" 1324 | } 1325 | ], 1326 | "description": "Utility class for timing", 1327 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1328 | "keywords": [ 1329 | "timer" 1330 | ], 1331 | "support": { 1332 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 1333 | "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" 1334 | }, 1335 | "funding": [ 1336 | { 1337 | "url": "https://github.com/sebastianbergmann", 1338 | "type": "github" 1339 | } 1340 | ], 1341 | "time": "2020-11-30T08:20:02+00:00" 1342 | }, 1343 | { 1344 | "name": "phpunit/php-token-stream", 1345 | "version": "3.1.2", 1346 | "source": { 1347 | "type": "git", 1348 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 1349 | "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" 1350 | }, 1351 | "dist": { 1352 | "type": "zip", 1353 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", 1354 | "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", 1355 | "shasum": "" 1356 | }, 1357 | "require": { 1358 | "ext-tokenizer": "*", 1359 | "php": ">=7.1" 1360 | }, 1361 | "require-dev": { 1362 | "phpunit/phpunit": "^7.0" 1363 | }, 1364 | "type": "library", 1365 | "extra": { 1366 | "branch-alias": { 1367 | "dev-master": "3.1-dev" 1368 | } 1369 | }, 1370 | "autoload": { 1371 | "classmap": [ 1372 | "src/" 1373 | ] 1374 | }, 1375 | "notification-url": "https://packagist.org/downloads/", 1376 | "license": [ 1377 | "BSD-3-Clause" 1378 | ], 1379 | "authors": [ 1380 | { 1381 | "name": "Sebastian Bergmann", 1382 | "email": "sebastian@phpunit.de" 1383 | } 1384 | ], 1385 | "description": "Wrapper around PHP's tokenizer extension.", 1386 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 1387 | "keywords": [ 1388 | "tokenizer" 1389 | ], 1390 | "support": { 1391 | "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", 1392 | "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.2" 1393 | }, 1394 | "funding": [ 1395 | { 1396 | "url": "https://github.com/sebastianbergmann", 1397 | "type": "github" 1398 | } 1399 | ], 1400 | "abandoned": true, 1401 | "time": "2020-11-30T08:38:46+00:00" 1402 | }, 1403 | { 1404 | "name": "phpunit/phpunit", 1405 | "version": "7.5.20", 1406 | "source": { 1407 | "type": "git", 1408 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1409 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" 1410 | }, 1411 | "dist": { 1412 | "type": "zip", 1413 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", 1414 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", 1415 | "shasum": "" 1416 | }, 1417 | "require": { 1418 | "doctrine/instantiator": "^1.1", 1419 | "ext-dom": "*", 1420 | "ext-json": "*", 1421 | "ext-libxml": "*", 1422 | "ext-mbstring": "*", 1423 | "ext-xml": "*", 1424 | "myclabs/deep-copy": "^1.7", 1425 | "phar-io/manifest": "^1.0.2", 1426 | "phar-io/version": "^2.0", 1427 | "php": "^7.1", 1428 | "phpspec/prophecy": "^1.7", 1429 | "phpunit/php-code-coverage": "^6.0.7", 1430 | "phpunit/php-file-iterator": "^2.0.1", 1431 | "phpunit/php-text-template": "^1.2.1", 1432 | "phpunit/php-timer": "^2.1", 1433 | "sebastian/comparator": "^3.0", 1434 | "sebastian/diff": "^3.0", 1435 | "sebastian/environment": "^4.0", 1436 | "sebastian/exporter": "^3.1", 1437 | "sebastian/global-state": "^2.0", 1438 | "sebastian/object-enumerator": "^3.0.3", 1439 | "sebastian/resource-operations": "^2.0", 1440 | "sebastian/version": "^2.0.1" 1441 | }, 1442 | "conflict": { 1443 | "phpunit/phpunit-mock-objects": "*" 1444 | }, 1445 | "require-dev": { 1446 | "ext-pdo": "*" 1447 | }, 1448 | "suggest": { 1449 | "ext-soap": "*", 1450 | "ext-xdebug": "*", 1451 | "phpunit/php-invoker": "^2.0" 1452 | }, 1453 | "bin": [ 1454 | "phpunit" 1455 | ], 1456 | "type": "library", 1457 | "extra": { 1458 | "branch-alias": { 1459 | "dev-master": "7.5-dev" 1460 | } 1461 | }, 1462 | "autoload": { 1463 | "classmap": [ 1464 | "src/" 1465 | ] 1466 | }, 1467 | "notification-url": "https://packagist.org/downloads/", 1468 | "license": [ 1469 | "BSD-3-Clause" 1470 | ], 1471 | "authors": [ 1472 | { 1473 | "name": "Sebastian Bergmann", 1474 | "email": "sebastian@phpunit.de", 1475 | "role": "lead" 1476 | } 1477 | ], 1478 | "description": "The PHP Unit Testing framework.", 1479 | "homepage": "https://phpunit.de/", 1480 | "keywords": [ 1481 | "phpunit", 1482 | "testing", 1483 | "xunit" 1484 | ], 1485 | "support": { 1486 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 1487 | "source": "https://github.com/sebastianbergmann/phpunit/tree/7.5.20" 1488 | }, 1489 | "time": "2020-01-08T08:45:45+00:00" 1490 | }, 1491 | { 1492 | "name": "psr/container", 1493 | "version": "1.1.1", 1494 | "source": { 1495 | "type": "git", 1496 | "url": "https://github.com/php-fig/container.git", 1497 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" 1498 | }, 1499 | "dist": { 1500 | "type": "zip", 1501 | "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", 1502 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", 1503 | "shasum": "" 1504 | }, 1505 | "require": { 1506 | "php": ">=7.2.0" 1507 | }, 1508 | "type": "library", 1509 | "autoload": { 1510 | "psr-4": { 1511 | "Psr\\Container\\": "src/" 1512 | } 1513 | }, 1514 | "notification-url": "https://packagist.org/downloads/", 1515 | "license": [ 1516 | "MIT" 1517 | ], 1518 | "authors": [ 1519 | { 1520 | "name": "PHP-FIG", 1521 | "homepage": "https://www.php-fig.org/" 1522 | } 1523 | ], 1524 | "description": "Common Container Interface (PHP FIG PSR-11)", 1525 | "homepage": "https://github.com/php-fig/container", 1526 | "keywords": [ 1527 | "PSR-11", 1528 | "container", 1529 | "container-interface", 1530 | "container-interop", 1531 | "psr" 1532 | ], 1533 | "support": { 1534 | "issues": "https://github.com/php-fig/container/issues", 1535 | "source": "https://github.com/php-fig/container/tree/1.1.1" 1536 | }, 1537 | "time": "2021-03-05T17:36:06+00:00" 1538 | }, 1539 | { 1540 | "name": "psr/log", 1541 | "version": "1.1.4", 1542 | "source": { 1543 | "type": "git", 1544 | "url": "https://github.com/php-fig/log.git", 1545 | "reference": "d49695b909c3b7628b6289db5479a1c204601f11" 1546 | }, 1547 | "dist": { 1548 | "type": "zip", 1549 | "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", 1550 | "reference": "d49695b909c3b7628b6289db5479a1c204601f11", 1551 | "shasum": "" 1552 | }, 1553 | "require": { 1554 | "php": ">=5.3.0" 1555 | }, 1556 | "type": "library", 1557 | "extra": { 1558 | "branch-alias": { 1559 | "dev-master": "1.1.x-dev" 1560 | } 1561 | }, 1562 | "autoload": { 1563 | "psr-4": { 1564 | "Psr\\Log\\": "Psr/Log/" 1565 | } 1566 | }, 1567 | "notification-url": "https://packagist.org/downloads/", 1568 | "license": [ 1569 | "MIT" 1570 | ], 1571 | "authors": [ 1572 | { 1573 | "name": "PHP-FIG", 1574 | "homepage": "https://www.php-fig.org/" 1575 | } 1576 | ], 1577 | "description": "Common interface for logging libraries", 1578 | "homepage": "https://github.com/php-fig/log", 1579 | "keywords": [ 1580 | "log", 1581 | "psr", 1582 | "psr-3" 1583 | ], 1584 | "support": { 1585 | "source": "https://github.com/php-fig/log/tree/1.1.4" 1586 | }, 1587 | "time": "2021-05-03T11:20:27+00:00" 1588 | }, 1589 | { 1590 | "name": "sebastian/code-unit-reverse-lookup", 1591 | "version": "1.0.2", 1592 | "source": { 1593 | "type": "git", 1594 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 1595 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" 1596 | }, 1597 | "dist": { 1598 | "type": "zip", 1599 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", 1600 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", 1601 | "shasum": "" 1602 | }, 1603 | "require": { 1604 | "php": ">=5.6" 1605 | }, 1606 | "require-dev": { 1607 | "phpunit/phpunit": "^8.5" 1608 | }, 1609 | "type": "library", 1610 | "extra": { 1611 | "branch-alias": { 1612 | "dev-master": "1.0.x-dev" 1613 | } 1614 | }, 1615 | "autoload": { 1616 | "classmap": [ 1617 | "src/" 1618 | ] 1619 | }, 1620 | "notification-url": "https://packagist.org/downloads/", 1621 | "license": [ 1622 | "BSD-3-Clause" 1623 | ], 1624 | "authors": [ 1625 | { 1626 | "name": "Sebastian Bergmann", 1627 | "email": "sebastian@phpunit.de" 1628 | } 1629 | ], 1630 | "description": "Looks up which function or method a line of code belongs to", 1631 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1632 | "support": { 1633 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 1634 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" 1635 | }, 1636 | "funding": [ 1637 | { 1638 | "url": "https://github.com/sebastianbergmann", 1639 | "type": "github" 1640 | } 1641 | ], 1642 | "time": "2020-11-30T08:15:22+00:00" 1643 | }, 1644 | { 1645 | "name": "sebastian/comparator", 1646 | "version": "3.0.3", 1647 | "source": { 1648 | "type": "git", 1649 | "url": "https://github.com/sebastianbergmann/comparator.git", 1650 | "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" 1651 | }, 1652 | "dist": { 1653 | "type": "zip", 1654 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", 1655 | "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", 1656 | "shasum": "" 1657 | }, 1658 | "require": { 1659 | "php": ">=7.1", 1660 | "sebastian/diff": "^3.0", 1661 | "sebastian/exporter": "^3.1" 1662 | }, 1663 | "require-dev": { 1664 | "phpunit/phpunit": "^8.5" 1665 | }, 1666 | "type": "library", 1667 | "extra": { 1668 | "branch-alias": { 1669 | "dev-master": "3.0-dev" 1670 | } 1671 | }, 1672 | "autoload": { 1673 | "classmap": [ 1674 | "src/" 1675 | ] 1676 | }, 1677 | "notification-url": "https://packagist.org/downloads/", 1678 | "license": [ 1679 | "BSD-3-Clause" 1680 | ], 1681 | "authors": [ 1682 | { 1683 | "name": "Sebastian Bergmann", 1684 | "email": "sebastian@phpunit.de" 1685 | }, 1686 | { 1687 | "name": "Jeff Welch", 1688 | "email": "whatthejeff@gmail.com" 1689 | }, 1690 | { 1691 | "name": "Volker Dusch", 1692 | "email": "github@wallbash.com" 1693 | }, 1694 | { 1695 | "name": "Bernhard Schussek", 1696 | "email": "bschussek@2bepublished.at" 1697 | } 1698 | ], 1699 | "description": "Provides the functionality to compare PHP values for equality", 1700 | "homepage": "https://github.com/sebastianbergmann/comparator", 1701 | "keywords": [ 1702 | "comparator", 1703 | "compare", 1704 | "equality" 1705 | ], 1706 | "support": { 1707 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 1708 | "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" 1709 | }, 1710 | "funding": [ 1711 | { 1712 | "url": "https://github.com/sebastianbergmann", 1713 | "type": "github" 1714 | } 1715 | ], 1716 | "time": "2020-11-30T08:04:30+00:00" 1717 | }, 1718 | { 1719 | "name": "sebastian/diff", 1720 | "version": "3.0.3", 1721 | "source": { 1722 | "type": "git", 1723 | "url": "https://github.com/sebastianbergmann/diff.git", 1724 | "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" 1725 | }, 1726 | "dist": { 1727 | "type": "zip", 1728 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", 1729 | "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", 1730 | "shasum": "" 1731 | }, 1732 | "require": { 1733 | "php": ">=7.1" 1734 | }, 1735 | "require-dev": { 1736 | "phpunit/phpunit": "^7.5 || ^8.0", 1737 | "symfony/process": "^2 || ^3.3 || ^4" 1738 | }, 1739 | "type": "library", 1740 | "extra": { 1741 | "branch-alias": { 1742 | "dev-master": "3.0-dev" 1743 | } 1744 | }, 1745 | "autoload": { 1746 | "classmap": [ 1747 | "src/" 1748 | ] 1749 | }, 1750 | "notification-url": "https://packagist.org/downloads/", 1751 | "license": [ 1752 | "BSD-3-Clause" 1753 | ], 1754 | "authors": [ 1755 | { 1756 | "name": "Sebastian Bergmann", 1757 | "email": "sebastian@phpunit.de" 1758 | }, 1759 | { 1760 | "name": "Kore Nordmann", 1761 | "email": "mail@kore-nordmann.de" 1762 | } 1763 | ], 1764 | "description": "Diff implementation", 1765 | "homepage": "https://github.com/sebastianbergmann/diff", 1766 | "keywords": [ 1767 | "diff", 1768 | "udiff", 1769 | "unidiff", 1770 | "unified diff" 1771 | ], 1772 | "support": { 1773 | "issues": "https://github.com/sebastianbergmann/diff/issues", 1774 | "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" 1775 | }, 1776 | "funding": [ 1777 | { 1778 | "url": "https://github.com/sebastianbergmann", 1779 | "type": "github" 1780 | } 1781 | ], 1782 | "time": "2020-11-30T07:59:04+00:00" 1783 | }, 1784 | { 1785 | "name": "sebastian/environment", 1786 | "version": "4.2.4", 1787 | "source": { 1788 | "type": "git", 1789 | "url": "https://github.com/sebastianbergmann/environment.git", 1790 | "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" 1791 | }, 1792 | "dist": { 1793 | "type": "zip", 1794 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", 1795 | "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", 1796 | "shasum": "" 1797 | }, 1798 | "require": { 1799 | "php": ">=7.1" 1800 | }, 1801 | "require-dev": { 1802 | "phpunit/phpunit": "^7.5" 1803 | }, 1804 | "suggest": { 1805 | "ext-posix": "*" 1806 | }, 1807 | "type": "library", 1808 | "extra": { 1809 | "branch-alias": { 1810 | "dev-master": "4.2-dev" 1811 | } 1812 | }, 1813 | "autoload": { 1814 | "classmap": [ 1815 | "src/" 1816 | ] 1817 | }, 1818 | "notification-url": "https://packagist.org/downloads/", 1819 | "license": [ 1820 | "BSD-3-Clause" 1821 | ], 1822 | "authors": [ 1823 | { 1824 | "name": "Sebastian Bergmann", 1825 | "email": "sebastian@phpunit.de" 1826 | } 1827 | ], 1828 | "description": "Provides functionality to handle HHVM/PHP environments", 1829 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1830 | "keywords": [ 1831 | "Xdebug", 1832 | "environment", 1833 | "hhvm" 1834 | ], 1835 | "support": { 1836 | "issues": "https://github.com/sebastianbergmann/environment/issues", 1837 | "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" 1838 | }, 1839 | "funding": [ 1840 | { 1841 | "url": "https://github.com/sebastianbergmann", 1842 | "type": "github" 1843 | } 1844 | ], 1845 | "time": "2020-11-30T07:53:42+00:00" 1846 | }, 1847 | { 1848 | "name": "sebastian/exporter", 1849 | "version": "3.1.3", 1850 | "source": { 1851 | "type": "git", 1852 | "url": "https://github.com/sebastianbergmann/exporter.git", 1853 | "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" 1854 | }, 1855 | "dist": { 1856 | "type": "zip", 1857 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", 1858 | "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", 1859 | "shasum": "" 1860 | }, 1861 | "require": { 1862 | "php": ">=7.0", 1863 | "sebastian/recursion-context": "^3.0" 1864 | }, 1865 | "require-dev": { 1866 | "ext-mbstring": "*", 1867 | "phpunit/phpunit": "^6.0" 1868 | }, 1869 | "type": "library", 1870 | "extra": { 1871 | "branch-alias": { 1872 | "dev-master": "3.1.x-dev" 1873 | } 1874 | }, 1875 | "autoload": { 1876 | "classmap": [ 1877 | "src/" 1878 | ] 1879 | }, 1880 | "notification-url": "https://packagist.org/downloads/", 1881 | "license": [ 1882 | "BSD-3-Clause" 1883 | ], 1884 | "authors": [ 1885 | { 1886 | "name": "Sebastian Bergmann", 1887 | "email": "sebastian@phpunit.de" 1888 | }, 1889 | { 1890 | "name": "Jeff Welch", 1891 | "email": "whatthejeff@gmail.com" 1892 | }, 1893 | { 1894 | "name": "Volker Dusch", 1895 | "email": "github@wallbash.com" 1896 | }, 1897 | { 1898 | "name": "Adam Harvey", 1899 | "email": "aharvey@php.net" 1900 | }, 1901 | { 1902 | "name": "Bernhard Schussek", 1903 | "email": "bschussek@gmail.com" 1904 | } 1905 | ], 1906 | "description": "Provides the functionality to export PHP variables for visualization", 1907 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1908 | "keywords": [ 1909 | "export", 1910 | "exporter" 1911 | ], 1912 | "support": { 1913 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 1914 | "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" 1915 | }, 1916 | "funding": [ 1917 | { 1918 | "url": "https://github.com/sebastianbergmann", 1919 | "type": "github" 1920 | } 1921 | ], 1922 | "time": "2020-11-30T07:47:53+00:00" 1923 | }, 1924 | { 1925 | "name": "sebastian/global-state", 1926 | "version": "2.0.0", 1927 | "source": { 1928 | "type": "git", 1929 | "url": "https://github.com/sebastianbergmann/global-state.git", 1930 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" 1931 | }, 1932 | "dist": { 1933 | "type": "zip", 1934 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1935 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1936 | "shasum": "" 1937 | }, 1938 | "require": { 1939 | "php": "^7.0" 1940 | }, 1941 | "require-dev": { 1942 | "phpunit/phpunit": "^6.0" 1943 | }, 1944 | "suggest": { 1945 | "ext-uopz": "*" 1946 | }, 1947 | "type": "library", 1948 | "extra": { 1949 | "branch-alias": { 1950 | "dev-master": "2.0-dev" 1951 | } 1952 | }, 1953 | "autoload": { 1954 | "classmap": [ 1955 | "src/" 1956 | ] 1957 | }, 1958 | "notification-url": "https://packagist.org/downloads/", 1959 | "license": [ 1960 | "BSD-3-Clause" 1961 | ], 1962 | "authors": [ 1963 | { 1964 | "name": "Sebastian Bergmann", 1965 | "email": "sebastian@phpunit.de" 1966 | } 1967 | ], 1968 | "description": "Snapshotting of global state", 1969 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1970 | "keywords": [ 1971 | "global state" 1972 | ], 1973 | "support": { 1974 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 1975 | "source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0" 1976 | }, 1977 | "time": "2017-04-27T15:39:26+00:00" 1978 | }, 1979 | { 1980 | "name": "sebastian/object-enumerator", 1981 | "version": "3.0.4", 1982 | "source": { 1983 | "type": "git", 1984 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1985 | "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" 1986 | }, 1987 | "dist": { 1988 | "type": "zip", 1989 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", 1990 | "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", 1991 | "shasum": "" 1992 | }, 1993 | "require": { 1994 | "php": ">=7.0", 1995 | "sebastian/object-reflector": "^1.1.1", 1996 | "sebastian/recursion-context": "^3.0" 1997 | }, 1998 | "require-dev": { 1999 | "phpunit/phpunit": "^6.0" 2000 | }, 2001 | "type": "library", 2002 | "extra": { 2003 | "branch-alias": { 2004 | "dev-master": "3.0.x-dev" 2005 | } 2006 | }, 2007 | "autoload": { 2008 | "classmap": [ 2009 | "src/" 2010 | ] 2011 | }, 2012 | "notification-url": "https://packagist.org/downloads/", 2013 | "license": [ 2014 | "BSD-3-Clause" 2015 | ], 2016 | "authors": [ 2017 | { 2018 | "name": "Sebastian Bergmann", 2019 | "email": "sebastian@phpunit.de" 2020 | } 2021 | ], 2022 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2023 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2024 | "support": { 2025 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 2026 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" 2027 | }, 2028 | "funding": [ 2029 | { 2030 | "url": "https://github.com/sebastianbergmann", 2031 | "type": "github" 2032 | } 2033 | ], 2034 | "time": "2020-11-30T07:40:27+00:00" 2035 | }, 2036 | { 2037 | "name": "sebastian/object-reflector", 2038 | "version": "1.1.2", 2039 | "source": { 2040 | "type": "git", 2041 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2042 | "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" 2043 | }, 2044 | "dist": { 2045 | "type": "zip", 2046 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", 2047 | "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", 2048 | "shasum": "" 2049 | }, 2050 | "require": { 2051 | "php": ">=7.0" 2052 | }, 2053 | "require-dev": { 2054 | "phpunit/phpunit": "^6.0" 2055 | }, 2056 | "type": "library", 2057 | "extra": { 2058 | "branch-alias": { 2059 | "dev-master": "1.1-dev" 2060 | } 2061 | }, 2062 | "autoload": { 2063 | "classmap": [ 2064 | "src/" 2065 | ] 2066 | }, 2067 | "notification-url": "https://packagist.org/downloads/", 2068 | "license": [ 2069 | "BSD-3-Clause" 2070 | ], 2071 | "authors": [ 2072 | { 2073 | "name": "Sebastian Bergmann", 2074 | "email": "sebastian@phpunit.de" 2075 | } 2076 | ], 2077 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2078 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2079 | "support": { 2080 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 2081 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" 2082 | }, 2083 | "funding": [ 2084 | { 2085 | "url": "https://github.com/sebastianbergmann", 2086 | "type": "github" 2087 | } 2088 | ], 2089 | "time": "2020-11-30T07:37:18+00:00" 2090 | }, 2091 | { 2092 | "name": "sebastian/recursion-context", 2093 | "version": "3.0.1", 2094 | "source": { 2095 | "type": "git", 2096 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2097 | "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" 2098 | }, 2099 | "dist": { 2100 | "type": "zip", 2101 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", 2102 | "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", 2103 | "shasum": "" 2104 | }, 2105 | "require": { 2106 | "php": ">=7.0" 2107 | }, 2108 | "require-dev": { 2109 | "phpunit/phpunit": "^6.0" 2110 | }, 2111 | "type": "library", 2112 | "extra": { 2113 | "branch-alias": { 2114 | "dev-master": "3.0.x-dev" 2115 | } 2116 | }, 2117 | "autoload": { 2118 | "classmap": [ 2119 | "src/" 2120 | ] 2121 | }, 2122 | "notification-url": "https://packagist.org/downloads/", 2123 | "license": [ 2124 | "BSD-3-Clause" 2125 | ], 2126 | "authors": [ 2127 | { 2128 | "name": "Sebastian Bergmann", 2129 | "email": "sebastian@phpunit.de" 2130 | }, 2131 | { 2132 | "name": "Jeff Welch", 2133 | "email": "whatthejeff@gmail.com" 2134 | }, 2135 | { 2136 | "name": "Adam Harvey", 2137 | "email": "aharvey@php.net" 2138 | } 2139 | ], 2140 | "description": "Provides functionality to recursively process PHP variables", 2141 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 2142 | "support": { 2143 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 2144 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" 2145 | }, 2146 | "funding": [ 2147 | { 2148 | "url": "https://github.com/sebastianbergmann", 2149 | "type": "github" 2150 | } 2151 | ], 2152 | "time": "2020-11-30T07:34:24+00:00" 2153 | }, 2154 | { 2155 | "name": "sebastian/resource-operations", 2156 | "version": "2.0.2", 2157 | "source": { 2158 | "type": "git", 2159 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 2160 | "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" 2161 | }, 2162 | "dist": { 2163 | "type": "zip", 2164 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", 2165 | "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", 2166 | "shasum": "" 2167 | }, 2168 | "require": { 2169 | "php": ">=7.1" 2170 | }, 2171 | "type": "library", 2172 | "extra": { 2173 | "branch-alias": { 2174 | "dev-master": "2.0-dev" 2175 | } 2176 | }, 2177 | "autoload": { 2178 | "classmap": [ 2179 | "src/" 2180 | ] 2181 | }, 2182 | "notification-url": "https://packagist.org/downloads/", 2183 | "license": [ 2184 | "BSD-3-Clause" 2185 | ], 2186 | "authors": [ 2187 | { 2188 | "name": "Sebastian Bergmann", 2189 | "email": "sebastian@phpunit.de" 2190 | } 2191 | ], 2192 | "description": "Provides a list of PHP built-in functions that operate on resources", 2193 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 2194 | "support": { 2195 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 2196 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" 2197 | }, 2198 | "funding": [ 2199 | { 2200 | "url": "https://github.com/sebastianbergmann", 2201 | "type": "github" 2202 | } 2203 | ], 2204 | "time": "2020-11-30T07:30:19+00:00" 2205 | }, 2206 | { 2207 | "name": "sebastian/version", 2208 | "version": "2.0.1", 2209 | "source": { 2210 | "type": "git", 2211 | "url": "https://github.com/sebastianbergmann/version.git", 2212 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 2213 | }, 2214 | "dist": { 2215 | "type": "zip", 2216 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 2217 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 2218 | "shasum": "" 2219 | }, 2220 | "require": { 2221 | "php": ">=5.6" 2222 | }, 2223 | "type": "library", 2224 | "extra": { 2225 | "branch-alias": { 2226 | "dev-master": "2.0.x-dev" 2227 | } 2228 | }, 2229 | "autoload": { 2230 | "classmap": [ 2231 | "src/" 2232 | ] 2233 | }, 2234 | "notification-url": "https://packagist.org/downloads/", 2235 | "license": [ 2236 | "BSD-3-Clause" 2237 | ], 2238 | "authors": [ 2239 | { 2240 | "name": "Sebastian Bergmann", 2241 | "email": "sebastian@phpunit.de", 2242 | "role": "lead" 2243 | } 2244 | ], 2245 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2246 | "homepage": "https://github.com/sebastianbergmann/version", 2247 | "support": { 2248 | "issues": "https://github.com/sebastianbergmann/version/issues", 2249 | "source": "https://github.com/sebastianbergmann/version/tree/master" 2250 | }, 2251 | "time": "2016-10-03T07:35:21+00:00" 2252 | }, 2253 | { 2254 | "name": "seld/jsonlint", 2255 | "version": "1.8.3", 2256 | "source": { 2257 | "type": "git", 2258 | "url": "https://github.com/Seldaek/jsonlint.git", 2259 | "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" 2260 | }, 2261 | "dist": { 2262 | "type": "zip", 2263 | "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", 2264 | "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", 2265 | "shasum": "" 2266 | }, 2267 | "require": { 2268 | "php": "^5.3 || ^7.0 || ^8.0" 2269 | }, 2270 | "require-dev": { 2271 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 2272 | }, 2273 | "bin": [ 2274 | "bin/jsonlint" 2275 | ], 2276 | "type": "library", 2277 | "autoload": { 2278 | "psr-4": { 2279 | "Seld\\JsonLint\\": "src/Seld/JsonLint/" 2280 | } 2281 | }, 2282 | "notification-url": "https://packagist.org/downloads/", 2283 | "license": [ 2284 | "MIT" 2285 | ], 2286 | "authors": [ 2287 | { 2288 | "name": "Jordi Boggiano", 2289 | "email": "j.boggiano@seld.be", 2290 | "homepage": "http://seld.be" 2291 | } 2292 | ], 2293 | "description": "JSON Linter", 2294 | "keywords": [ 2295 | "json", 2296 | "linter", 2297 | "parser", 2298 | "validator" 2299 | ], 2300 | "support": { 2301 | "issues": "https://github.com/Seldaek/jsonlint/issues", 2302 | "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" 2303 | }, 2304 | "funding": [ 2305 | { 2306 | "url": "https://github.com/Seldaek", 2307 | "type": "github" 2308 | }, 2309 | { 2310 | "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", 2311 | "type": "tidelift" 2312 | } 2313 | ], 2314 | "time": "2020-11-11T09:19:24+00:00" 2315 | }, 2316 | { 2317 | "name": "seld/phar-utils", 2318 | "version": "1.1.1", 2319 | "source": { 2320 | "type": "git", 2321 | "url": "https://github.com/Seldaek/phar-utils.git", 2322 | "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" 2323 | }, 2324 | "dist": { 2325 | "type": "zip", 2326 | "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", 2327 | "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", 2328 | "shasum": "" 2329 | }, 2330 | "require": { 2331 | "php": ">=5.3" 2332 | }, 2333 | "type": "library", 2334 | "extra": { 2335 | "branch-alias": { 2336 | "dev-master": "1.x-dev" 2337 | } 2338 | }, 2339 | "autoload": { 2340 | "psr-4": { 2341 | "Seld\\PharUtils\\": "src/" 2342 | } 2343 | }, 2344 | "notification-url": "https://packagist.org/downloads/", 2345 | "license": [ 2346 | "MIT" 2347 | ], 2348 | "authors": [ 2349 | { 2350 | "name": "Jordi Boggiano", 2351 | "email": "j.boggiano@seld.be" 2352 | } 2353 | ], 2354 | "description": "PHAR file format utilities, for when PHP phars you up", 2355 | "keywords": [ 2356 | "phar" 2357 | ], 2358 | "support": { 2359 | "issues": "https://github.com/Seldaek/phar-utils/issues", 2360 | "source": "https://github.com/Seldaek/phar-utils/tree/master" 2361 | }, 2362 | "time": "2020-07-07T18:42:57+00:00" 2363 | }, 2364 | { 2365 | "name": "symfony/console", 2366 | "version": "v5.3.2", 2367 | "source": { 2368 | "type": "git", 2369 | "url": "https://github.com/symfony/console.git", 2370 | "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1" 2371 | }, 2372 | "dist": { 2373 | "type": "zip", 2374 | "url": "https://api.github.com/repos/symfony/console/zipball/649730483885ff2ca99ca0560ef0e5f6b03f2ac1", 2375 | "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1", 2376 | "shasum": "" 2377 | }, 2378 | "require": { 2379 | "php": ">=7.2.5", 2380 | "symfony/deprecation-contracts": "^2.1", 2381 | "symfony/polyfill-mbstring": "~1.0", 2382 | "symfony/polyfill-php73": "^1.8", 2383 | "symfony/polyfill-php80": "^1.15", 2384 | "symfony/service-contracts": "^1.1|^2", 2385 | "symfony/string": "^5.1" 2386 | }, 2387 | "conflict": { 2388 | "symfony/dependency-injection": "<4.4", 2389 | "symfony/dotenv": "<5.1", 2390 | "symfony/event-dispatcher": "<4.4", 2391 | "symfony/lock": "<4.4", 2392 | "symfony/process": "<4.4" 2393 | }, 2394 | "provide": { 2395 | "psr/log-implementation": "1.0" 2396 | }, 2397 | "require-dev": { 2398 | "psr/log": "~1.0", 2399 | "symfony/config": "^4.4|^5.0", 2400 | "symfony/dependency-injection": "^4.4|^5.0", 2401 | "symfony/event-dispatcher": "^4.4|^5.0", 2402 | "symfony/lock": "^4.4|^5.0", 2403 | "symfony/process": "^4.4|^5.0", 2404 | "symfony/var-dumper": "^4.4|^5.0" 2405 | }, 2406 | "suggest": { 2407 | "psr/log": "For using the console logger", 2408 | "symfony/event-dispatcher": "", 2409 | "symfony/lock": "", 2410 | "symfony/process": "" 2411 | }, 2412 | "type": "library", 2413 | "autoload": { 2414 | "psr-4": { 2415 | "Symfony\\Component\\Console\\": "" 2416 | }, 2417 | "exclude-from-classmap": [ 2418 | "/Tests/" 2419 | ] 2420 | }, 2421 | "notification-url": "https://packagist.org/downloads/", 2422 | "license": [ 2423 | "MIT" 2424 | ], 2425 | "authors": [ 2426 | { 2427 | "name": "Fabien Potencier", 2428 | "email": "fabien@symfony.com" 2429 | }, 2430 | { 2431 | "name": "Symfony Community", 2432 | "homepage": "https://symfony.com/contributors" 2433 | } 2434 | ], 2435 | "description": "Eases the creation of beautiful and testable command line interfaces", 2436 | "homepage": "https://symfony.com", 2437 | "keywords": [ 2438 | "cli", 2439 | "command line", 2440 | "console", 2441 | "terminal" 2442 | ], 2443 | "support": { 2444 | "source": "https://github.com/symfony/console/tree/v5.3.2" 2445 | }, 2446 | "funding": [ 2447 | { 2448 | "url": "https://symfony.com/sponsor", 2449 | "type": "custom" 2450 | }, 2451 | { 2452 | "url": "https://github.com/fabpot", 2453 | "type": "github" 2454 | }, 2455 | { 2456 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2457 | "type": "tidelift" 2458 | } 2459 | ], 2460 | "time": "2021-06-12T09:42:48+00:00" 2461 | }, 2462 | { 2463 | "name": "symfony/deprecation-contracts", 2464 | "version": "v2.4.0", 2465 | "source": { 2466 | "type": "git", 2467 | "url": "https://github.com/symfony/deprecation-contracts.git", 2468 | "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" 2469 | }, 2470 | "dist": { 2471 | "type": "zip", 2472 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", 2473 | "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", 2474 | "shasum": "" 2475 | }, 2476 | "require": { 2477 | "php": ">=7.1" 2478 | }, 2479 | "type": "library", 2480 | "extra": { 2481 | "branch-alias": { 2482 | "dev-main": "2.4-dev" 2483 | }, 2484 | "thanks": { 2485 | "name": "symfony/contracts", 2486 | "url": "https://github.com/symfony/contracts" 2487 | } 2488 | }, 2489 | "autoload": { 2490 | "files": [ 2491 | "function.php" 2492 | ] 2493 | }, 2494 | "notification-url": "https://packagist.org/downloads/", 2495 | "license": [ 2496 | "MIT" 2497 | ], 2498 | "authors": [ 2499 | { 2500 | "name": "Nicolas Grekas", 2501 | "email": "p@tchwork.com" 2502 | }, 2503 | { 2504 | "name": "Symfony Community", 2505 | "homepage": "https://symfony.com/contributors" 2506 | } 2507 | ], 2508 | "description": "A generic function and convention to trigger deprecation notices", 2509 | "homepage": "https://symfony.com", 2510 | "support": { 2511 | "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" 2512 | }, 2513 | "funding": [ 2514 | { 2515 | "url": "https://symfony.com/sponsor", 2516 | "type": "custom" 2517 | }, 2518 | { 2519 | "url": "https://github.com/fabpot", 2520 | "type": "github" 2521 | }, 2522 | { 2523 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2524 | "type": "tidelift" 2525 | } 2526 | ], 2527 | "time": "2021-03-23T23:28:01+00:00" 2528 | }, 2529 | { 2530 | "name": "symfony/filesystem", 2531 | "version": "v5.3.3", 2532 | "source": { 2533 | "type": "git", 2534 | "url": "https://github.com/symfony/filesystem.git", 2535 | "reference": "19b71c8f313b411172dd5f470fd61f24466d79a9" 2536 | }, 2537 | "dist": { 2538 | "type": "zip", 2539 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/19b71c8f313b411172dd5f470fd61f24466d79a9", 2540 | "reference": "19b71c8f313b411172dd5f470fd61f24466d79a9", 2541 | "shasum": "" 2542 | }, 2543 | "require": { 2544 | "php": ">=7.2.5", 2545 | "symfony/polyfill-ctype": "~1.8" 2546 | }, 2547 | "type": "library", 2548 | "autoload": { 2549 | "psr-4": { 2550 | "Symfony\\Component\\Filesystem\\": "" 2551 | }, 2552 | "exclude-from-classmap": [ 2553 | "/Tests/" 2554 | ] 2555 | }, 2556 | "notification-url": "https://packagist.org/downloads/", 2557 | "license": [ 2558 | "MIT" 2559 | ], 2560 | "authors": [ 2561 | { 2562 | "name": "Fabien Potencier", 2563 | "email": "fabien@symfony.com" 2564 | }, 2565 | { 2566 | "name": "Symfony Community", 2567 | "homepage": "https://symfony.com/contributors" 2568 | } 2569 | ], 2570 | "description": "Provides basic utilities for the filesystem", 2571 | "homepage": "https://symfony.com", 2572 | "support": { 2573 | "source": "https://github.com/symfony/filesystem/tree/v5.3.3" 2574 | }, 2575 | "funding": [ 2576 | { 2577 | "url": "https://symfony.com/sponsor", 2578 | "type": "custom" 2579 | }, 2580 | { 2581 | "url": "https://github.com/fabpot", 2582 | "type": "github" 2583 | }, 2584 | { 2585 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2586 | "type": "tidelift" 2587 | } 2588 | ], 2589 | "time": "2021-06-30T07:27:52+00:00" 2590 | }, 2591 | { 2592 | "name": "symfony/finder", 2593 | "version": "v5.3.0", 2594 | "source": { 2595 | "type": "git", 2596 | "url": "https://github.com/symfony/finder.git", 2597 | "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6" 2598 | }, 2599 | "dist": { 2600 | "type": "zip", 2601 | "url": "https://api.github.com/repos/symfony/finder/zipball/0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", 2602 | "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", 2603 | "shasum": "" 2604 | }, 2605 | "require": { 2606 | "php": ">=7.2.5" 2607 | }, 2608 | "type": "library", 2609 | "autoload": { 2610 | "psr-4": { 2611 | "Symfony\\Component\\Finder\\": "" 2612 | }, 2613 | "exclude-from-classmap": [ 2614 | "/Tests/" 2615 | ] 2616 | }, 2617 | "notification-url": "https://packagist.org/downloads/", 2618 | "license": [ 2619 | "MIT" 2620 | ], 2621 | "authors": [ 2622 | { 2623 | "name": "Fabien Potencier", 2624 | "email": "fabien@symfony.com" 2625 | }, 2626 | { 2627 | "name": "Symfony Community", 2628 | "homepage": "https://symfony.com/contributors" 2629 | } 2630 | ], 2631 | "description": "Finds files and directories via an intuitive fluent interface", 2632 | "homepage": "https://symfony.com", 2633 | "support": { 2634 | "source": "https://github.com/symfony/finder/tree/v5.3.0" 2635 | }, 2636 | "funding": [ 2637 | { 2638 | "url": "https://symfony.com/sponsor", 2639 | "type": "custom" 2640 | }, 2641 | { 2642 | "url": "https://github.com/fabpot", 2643 | "type": "github" 2644 | }, 2645 | { 2646 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2647 | "type": "tidelift" 2648 | } 2649 | ], 2650 | "time": "2021-05-26T12:52:38+00:00" 2651 | }, 2652 | { 2653 | "name": "symfony/polyfill-ctype", 2654 | "version": "v1.23.0", 2655 | "source": { 2656 | "type": "git", 2657 | "url": "https://github.com/symfony/polyfill-ctype.git", 2658 | "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" 2659 | }, 2660 | "dist": { 2661 | "type": "zip", 2662 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", 2663 | "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", 2664 | "shasum": "" 2665 | }, 2666 | "require": { 2667 | "php": ">=7.1" 2668 | }, 2669 | "suggest": { 2670 | "ext-ctype": "For best performance" 2671 | }, 2672 | "type": "library", 2673 | "extra": { 2674 | "branch-alias": { 2675 | "dev-main": "1.23-dev" 2676 | }, 2677 | "thanks": { 2678 | "name": "symfony/polyfill", 2679 | "url": "https://github.com/symfony/polyfill" 2680 | } 2681 | }, 2682 | "autoload": { 2683 | "psr-4": { 2684 | "Symfony\\Polyfill\\Ctype\\": "" 2685 | }, 2686 | "files": [ 2687 | "bootstrap.php" 2688 | ] 2689 | }, 2690 | "notification-url": "https://packagist.org/downloads/", 2691 | "license": [ 2692 | "MIT" 2693 | ], 2694 | "authors": [ 2695 | { 2696 | "name": "Gert de Pagter", 2697 | "email": "BackEndTea@gmail.com" 2698 | }, 2699 | { 2700 | "name": "Symfony Community", 2701 | "homepage": "https://symfony.com/contributors" 2702 | } 2703 | ], 2704 | "description": "Symfony polyfill for ctype functions", 2705 | "homepage": "https://symfony.com", 2706 | "keywords": [ 2707 | "compatibility", 2708 | "ctype", 2709 | "polyfill", 2710 | "portable" 2711 | ], 2712 | "support": { 2713 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" 2714 | }, 2715 | "funding": [ 2716 | { 2717 | "url": "https://symfony.com/sponsor", 2718 | "type": "custom" 2719 | }, 2720 | { 2721 | "url": "https://github.com/fabpot", 2722 | "type": "github" 2723 | }, 2724 | { 2725 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2726 | "type": "tidelift" 2727 | } 2728 | ], 2729 | "time": "2021-02-19T12:13:01+00:00" 2730 | }, 2731 | { 2732 | "name": "symfony/polyfill-intl-grapheme", 2733 | "version": "v1.23.0", 2734 | "source": { 2735 | "type": "git", 2736 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 2737 | "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab" 2738 | }, 2739 | "dist": { 2740 | "type": "zip", 2741 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/24b72c6baa32c746a4d0840147c9715e42bb68ab", 2742 | "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab", 2743 | "shasum": "" 2744 | }, 2745 | "require": { 2746 | "php": ">=7.1" 2747 | }, 2748 | "suggest": { 2749 | "ext-intl": "For best performance" 2750 | }, 2751 | "type": "library", 2752 | "extra": { 2753 | "branch-alias": { 2754 | "dev-main": "1.23-dev" 2755 | }, 2756 | "thanks": { 2757 | "name": "symfony/polyfill", 2758 | "url": "https://github.com/symfony/polyfill" 2759 | } 2760 | }, 2761 | "autoload": { 2762 | "psr-4": { 2763 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 2764 | }, 2765 | "files": [ 2766 | "bootstrap.php" 2767 | ] 2768 | }, 2769 | "notification-url": "https://packagist.org/downloads/", 2770 | "license": [ 2771 | "MIT" 2772 | ], 2773 | "authors": [ 2774 | { 2775 | "name": "Nicolas Grekas", 2776 | "email": "p@tchwork.com" 2777 | }, 2778 | { 2779 | "name": "Symfony Community", 2780 | "homepage": "https://symfony.com/contributors" 2781 | } 2782 | ], 2783 | "description": "Symfony polyfill for intl's grapheme_* functions", 2784 | "homepage": "https://symfony.com", 2785 | "keywords": [ 2786 | "compatibility", 2787 | "grapheme", 2788 | "intl", 2789 | "polyfill", 2790 | "portable", 2791 | "shim" 2792 | ], 2793 | "support": { 2794 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.0" 2795 | }, 2796 | "funding": [ 2797 | { 2798 | "url": "https://symfony.com/sponsor", 2799 | "type": "custom" 2800 | }, 2801 | { 2802 | "url": "https://github.com/fabpot", 2803 | "type": "github" 2804 | }, 2805 | { 2806 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2807 | "type": "tidelift" 2808 | } 2809 | ], 2810 | "time": "2021-05-27T09:17:38+00:00" 2811 | }, 2812 | { 2813 | "name": "symfony/polyfill-intl-normalizer", 2814 | "version": "v1.23.0", 2815 | "source": { 2816 | "type": "git", 2817 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 2818 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" 2819 | }, 2820 | "dist": { 2821 | "type": "zip", 2822 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", 2823 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", 2824 | "shasum": "" 2825 | }, 2826 | "require": { 2827 | "php": ">=7.1" 2828 | }, 2829 | "suggest": { 2830 | "ext-intl": "For best performance" 2831 | }, 2832 | "type": "library", 2833 | "extra": { 2834 | "branch-alias": { 2835 | "dev-main": "1.23-dev" 2836 | }, 2837 | "thanks": { 2838 | "name": "symfony/polyfill", 2839 | "url": "https://github.com/symfony/polyfill" 2840 | } 2841 | }, 2842 | "autoload": { 2843 | "psr-4": { 2844 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 2845 | }, 2846 | "files": [ 2847 | "bootstrap.php" 2848 | ], 2849 | "classmap": [ 2850 | "Resources/stubs" 2851 | ] 2852 | }, 2853 | "notification-url": "https://packagist.org/downloads/", 2854 | "license": [ 2855 | "MIT" 2856 | ], 2857 | "authors": [ 2858 | { 2859 | "name": "Nicolas Grekas", 2860 | "email": "p@tchwork.com" 2861 | }, 2862 | { 2863 | "name": "Symfony Community", 2864 | "homepage": "https://symfony.com/contributors" 2865 | } 2866 | ], 2867 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 2868 | "homepage": "https://symfony.com", 2869 | "keywords": [ 2870 | "compatibility", 2871 | "intl", 2872 | "normalizer", 2873 | "polyfill", 2874 | "portable", 2875 | "shim" 2876 | ], 2877 | "support": { 2878 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" 2879 | }, 2880 | "funding": [ 2881 | { 2882 | "url": "https://symfony.com/sponsor", 2883 | "type": "custom" 2884 | }, 2885 | { 2886 | "url": "https://github.com/fabpot", 2887 | "type": "github" 2888 | }, 2889 | { 2890 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2891 | "type": "tidelift" 2892 | } 2893 | ], 2894 | "time": "2021-02-19T12:13:01+00:00" 2895 | }, 2896 | { 2897 | "name": "symfony/polyfill-mbstring", 2898 | "version": "v1.23.0", 2899 | "source": { 2900 | "type": "git", 2901 | "url": "https://github.com/symfony/polyfill-mbstring.git", 2902 | "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" 2903 | }, 2904 | "dist": { 2905 | "type": "zip", 2906 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", 2907 | "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", 2908 | "shasum": "" 2909 | }, 2910 | "require": { 2911 | "php": ">=7.1" 2912 | }, 2913 | "suggest": { 2914 | "ext-mbstring": "For best performance" 2915 | }, 2916 | "type": "library", 2917 | "extra": { 2918 | "branch-alias": { 2919 | "dev-main": "1.23-dev" 2920 | }, 2921 | "thanks": { 2922 | "name": "symfony/polyfill", 2923 | "url": "https://github.com/symfony/polyfill" 2924 | } 2925 | }, 2926 | "autoload": { 2927 | "psr-4": { 2928 | "Symfony\\Polyfill\\Mbstring\\": "" 2929 | }, 2930 | "files": [ 2931 | "bootstrap.php" 2932 | ] 2933 | }, 2934 | "notification-url": "https://packagist.org/downloads/", 2935 | "license": [ 2936 | "MIT" 2937 | ], 2938 | "authors": [ 2939 | { 2940 | "name": "Nicolas Grekas", 2941 | "email": "p@tchwork.com" 2942 | }, 2943 | { 2944 | "name": "Symfony Community", 2945 | "homepage": "https://symfony.com/contributors" 2946 | } 2947 | ], 2948 | "description": "Symfony polyfill for the Mbstring extension", 2949 | "homepage": "https://symfony.com", 2950 | "keywords": [ 2951 | "compatibility", 2952 | "mbstring", 2953 | "polyfill", 2954 | "portable", 2955 | "shim" 2956 | ], 2957 | "support": { 2958 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" 2959 | }, 2960 | "funding": [ 2961 | { 2962 | "url": "https://symfony.com/sponsor", 2963 | "type": "custom" 2964 | }, 2965 | { 2966 | "url": "https://github.com/fabpot", 2967 | "type": "github" 2968 | }, 2969 | { 2970 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2971 | "type": "tidelift" 2972 | } 2973 | ], 2974 | "time": "2021-05-27T09:27:20+00:00" 2975 | }, 2976 | { 2977 | "name": "symfony/polyfill-php73", 2978 | "version": "v1.23.0", 2979 | "source": { 2980 | "type": "git", 2981 | "url": "https://github.com/symfony/polyfill-php73.git", 2982 | "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" 2983 | }, 2984 | "dist": { 2985 | "type": "zip", 2986 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", 2987 | "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", 2988 | "shasum": "" 2989 | }, 2990 | "require": { 2991 | "php": ">=7.1" 2992 | }, 2993 | "type": "library", 2994 | "extra": { 2995 | "branch-alias": { 2996 | "dev-main": "1.23-dev" 2997 | }, 2998 | "thanks": { 2999 | "name": "symfony/polyfill", 3000 | "url": "https://github.com/symfony/polyfill" 3001 | } 3002 | }, 3003 | "autoload": { 3004 | "psr-4": { 3005 | "Symfony\\Polyfill\\Php73\\": "" 3006 | }, 3007 | "files": [ 3008 | "bootstrap.php" 3009 | ], 3010 | "classmap": [ 3011 | "Resources/stubs" 3012 | ] 3013 | }, 3014 | "notification-url": "https://packagist.org/downloads/", 3015 | "license": [ 3016 | "MIT" 3017 | ], 3018 | "authors": [ 3019 | { 3020 | "name": "Nicolas Grekas", 3021 | "email": "p@tchwork.com" 3022 | }, 3023 | { 3024 | "name": "Symfony Community", 3025 | "homepage": "https://symfony.com/contributors" 3026 | } 3027 | ], 3028 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 3029 | "homepage": "https://symfony.com", 3030 | "keywords": [ 3031 | "compatibility", 3032 | "polyfill", 3033 | "portable", 3034 | "shim" 3035 | ], 3036 | "support": { 3037 | "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" 3038 | }, 3039 | "funding": [ 3040 | { 3041 | "url": "https://symfony.com/sponsor", 3042 | "type": "custom" 3043 | }, 3044 | { 3045 | "url": "https://github.com/fabpot", 3046 | "type": "github" 3047 | }, 3048 | { 3049 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3050 | "type": "tidelift" 3051 | } 3052 | ], 3053 | "time": "2021-02-19T12:13:01+00:00" 3054 | }, 3055 | { 3056 | "name": "symfony/polyfill-php80", 3057 | "version": "v1.23.0", 3058 | "source": { 3059 | "type": "git", 3060 | "url": "https://github.com/symfony/polyfill-php80.git", 3061 | "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" 3062 | }, 3063 | "dist": { 3064 | "type": "zip", 3065 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", 3066 | "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", 3067 | "shasum": "" 3068 | }, 3069 | "require": { 3070 | "php": ">=7.1" 3071 | }, 3072 | "type": "library", 3073 | "extra": { 3074 | "branch-alias": { 3075 | "dev-main": "1.23-dev" 3076 | }, 3077 | "thanks": { 3078 | "name": "symfony/polyfill", 3079 | "url": "https://github.com/symfony/polyfill" 3080 | } 3081 | }, 3082 | "autoload": { 3083 | "psr-4": { 3084 | "Symfony\\Polyfill\\Php80\\": "" 3085 | }, 3086 | "files": [ 3087 | "bootstrap.php" 3088 | ], 3089 | "classmap": [ 3090 | "Resources/stubs" 3091 | ] 3092 | }, 3093 | "notification-url": "https://packagist.org/downloads/", 3094 | "license": [ 3095 | "MIT" 3096 | ], 3097 | "authors": [ 3098 | { 3099 | "name": "Ion Bazan", 3100 | "email": "ion.bazan@gmail.com" 3101 | }, 3102 | { 3103 | "name": "Nicolas Grekas", 3104 | "email": "p@tchwork.com" 3105 | }, 3106 | { 3107 | "name": "Symfony Community", 3108 | "homepage": "https://symfony.com/contributors" 3109 | } 3110 | ], 3111 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 3112 | "homepage": "https://symfony.com", 3113 | "keywords": [ 3114 | "compatibility", 3115 | "polyfill", 3116 | "portable", 3117 | "shim" 3118 | ], 3119 | "support": { 3120 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" 3121 | }, 3122 | "funding": [ 3123 | { 3124 | "url": "https://symfony.com/sponsor", 3125 | "type": "custom" 3126 | }, 3127 | { 3128 | "url": "https://github.com/fabpot", 3129 | "type": "github" 3130 | }, 3131 | { 3132 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3133 | "type": "tidelift" 3134 | } 3135 | ], 3136 | "time": "2021-02-19T12:13:01+00:00" 3137 | }, 3138 | { 3139 | "name": "symfony/process", 3140 | "version": "v5.3.2", 3141 | "source": { 3142 | "type": "git", 3143 | "url": "https://github.com/symfony/process.git", 3144 | "reference": "714b47f9196de61a196d86c4bad5f09201b307df" 3145 | }, 3146 | "dist": { 3147 | "type": "zip", 3148 | "url": "https://api.github.com/repos/symfony/process/zipball/714b47f9196de61a196d86c4bad5f09201b307df", 3149 | "reference": "714b47f9196de61a196d86c4bad5f09201b307df", 3150 | "shasum": "" 3151 | }, 3152 | "require": { 3153 | "php": ">=7.2.5", 3154 | "symfony/polyfill-php80": "^1.15" 3155 | }, 3156 | "type": "library", 3157 | "autoload": { 3158 | "psr-4": { 3159 | "Symfony\\Component\\Process\\": "" 3160 | }, 3161 | "exclude-from-classmap": [ 3162 | "/Tests/" 3163 | ] 3164 | }, 3165 | "notification-url": "https://packagist.org/downloads/", 3166 | "license": [ 3167 | "MIT" 3168 | ], 3169 | "authors": [ 3170 | { 3171 | "name": "Fabien Potencier", 3172 | "email": "fabien@symfony.com" 3173 | }, 3174 | { 3175 | "name": "Symfony Community", 3176 | "homepage": "https://symfony.com/contributors" 3177 | } 3178 | ], 3179 | "description": "Executes commands in sub-processes", 3180 | "homepage": "https://symfony.com", 3181 | "support": { 3182 | "source": "https://github.com/symfony/process/tree/v5.3.2" 3183 | }, 3184 | "funding": [ 3185 | { 3186 | "url": "https://symfony.com/sponsor", 3187 | "type": "custom" 3188 | }, 3189 | { 3190 | "url": "https://github.com/fabpot", 3191 | "type": "github" 3192 | }, 3193 | { 3194 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3195 | "type": "tidelift" 3196 | } 3197 | ], 3198 | "time": "2021-06-12T10:15:01+00:00" 3199 | }, 3200 | { 3201 | "name": "symfony/service-contracts", 3202 | "version": "v2.4.0", 3203 | "source": { 3204 | "type": "git", 3205 | "url": "https://github.com/symfony/service-contracts.git", 3206 | "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" 3207 | }, 3208 | "dist": { 3209 | "type": "zip", 3210 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", 3211 | "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", 3212 | "shasum": "" 3213 | }, 3214 | "require": { 3215 | "php": ">=7.2.5", 3216 | "psr/container": "^1.1" 3217 | }, 3218 | "suggest": { 3219 | "symfony/service-implementation": "" 3220 | }, 3221 | "type": "library", 3222 | "extra": { 3223 | "branch-alias": { 3224 | "dev-main": "2.4-dev" 3225 | }, 3226 | "thanks": { 3227 | "name": "symfony/contracts", 3228 | "url": "https://github.com/symfony/contracts" 3229 | } 3230 | }, 3231 | "autoload": { 3232 | "psr-4": { 3233 | "Symfony\\Contracts\\Service\\": "" 3234 | } 3235 | }, 3236 | "notification-url": "https://packagist.org/downloads/", 3237 | "license": [ 3238 | "MIT" 3239 | ], 3240 | "authors": [ 3241 | { 3242 | "name": "Nicolas Grekas", 3243 | "email": "p@tchwork.com" 3244 | }, 3245 | { 3246 | "name": "Symfony Community", 3247 | "homepage": "https://symfony.com/contributors" 3248 | } 3249 | ], 3250 | "description": "Generic abstractions related to writing services", 3251 | "homepage": "https://symfony.com", 3252 | "keywords": [ 3253 | "abstractions", 3254 | "contracts", 3255 | "decoupling", 3256 | "interfaces", 3257 | "interoperability", 3258 | "standards" 3259 | ], 3260 | "support": { 3261 | "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" 3262 | }, 3263 | "funding": [ 3264 | { 3265 | "url": "https://symfony.com/sponsor", 3266 | "type": "custom" 3267 | }, 3268 | { 3269 | "url": "https://github.com/fabpot", 3270 | "type": "github" 3271 | }, 3272 | { 3273 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3274 | "type": "tidelift" 3275 | } 3276 | ], 3277 | "time": "2021-04-01T10:43:52+00:00" 3278 | }, 3279 | { 3280 | "name": "symfony/string", 3281 | "version": "v5.3.3", 3282 | "source": { 3283 | "type": "git", 3284 | "url": "https://github.com/symfony/string.git", 3285 | "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1" 3286 | }, 3287 | "dist": { 3288 | "type": "zip", 3289 | "url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", 3290 | "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", 3291 | "shasum": "" 3292 | }, 3293 | "require": { 3294 | "php": ">=7.2.5", 3295 | "symfony/polyfill-ctype": "~1.8", 3296 | "symfony/polyfill-intl-grapheme": "~1.0", 3297 | "symfony/polyfill-intl-normalizer": "~1.0", 3298 | "symfony/polyfill-mbstring": "~1.0", 3299 | "symfony/polyfill-php80": "~1.15" 3300 | }, 3301 | "require-dev": { 3302 | "symfony/error-handler": "^4.4|^5.0", 3303 | "symfony/http-client": "^4.4|^5.0", 3304 | "symfony/translation-contracts": "^1.1|^2", 3305 | "symfony/var-exporter": "^4.4|^5.0" 3306 | }, 3307 | "type": "library", 3308 | "autoload": { 3309 | "psr-4": { 3310 | "Symfony\\Component\\String\\": "" 3311 | }, 3312 | "files": [ 3313 | "Resources/functions.php" 3314 | ], 3315 | "exclude-from-classmap": [ 3316 | "/Tests/" 3317 | ] 3318 | }, 3319 | "notification-url": "https://packagist.org/downloads/", 3320 | "license": [ 3321 | "MIT" 3322 | ], 3323 | "authors": [ 3324 | { 3325 | "name": "Nicolas Grekas", 3326 | "email": "p@tchwork.com" 3327 | }, 3328 | { 3329 | "name": "Symfony Community", 3330 | "homepage": "https://symfony.com/contributors" 3331 | } 3332 | ], 3333 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", 3334 | "homepage": "https://symfony.com", 3335 | "keywords": [ 3336 | "grapheme", 3337 | "i18n", 3338 | "string", 3339 | "unicode", 3340 | "utf-8", 3341 | "utf8" 3342 | ], 3343 | "support": { 3344 | "source": "https://github.com/symfony/string/tree/v5.3.3" 3345 | }, 3346 | "funding": [ 3347 | { 3348 | "url": "https://symfony.com/sponsor", 3349 | "type": "custom" 3350 | }, 3351 | { 3352 | "url": "https://github.com/fabpot", 3353 | "type": "github" 3354 | }, 3355 | { 3356 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3357 | "type": "tidelift" 3358 | } 3359 | ], 3360 | "time": "2021-06-27T11:44:38+00:00" 3361 | }, 3362 | { 3363 | "name": "theseer/tokenizer", 3364 | "version": "1.2.0", 3365 | "source": { 3366 | "type": "git", 3367 | "url": "https://github.com/theseer/tokenizer.git", 3368 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 3369 | }, 3370 | "dist": { 3371 | "type": "zip", 3372 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 3373 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 3374 | "shasum": "" 3375 | }, 3376 | "require": { 3377 | "ext-dom": "*", 3378 | "ext-tokenizer": "*", 3379 | "ext-xmlwriter": "*", 3380 | "php": "^7.2 || ^8.0" 3381 | }, 3382 | "type": "library", 3383 | "autoload": { 3384 | "classmap": [ 3385 | "src/" 3386 | ] 3387 | }, 3388 | "notification-url": "https://packagist.org/downloads/", 3389 | "license": [ 3390 | "BSD-3-Clause" 3391 | ], 3392 | "authors": [ 3393 | { 3394 | "name": "Arne Blankerts", 3395 | "email": "arne@blankerts.de", 3396 | "role": "Developer" 3397 | } 3398 | ], 3399 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 3400 | "support": { 3401 | "issues": "https://github.com/theseer/tokenizer/issues", 3402 | "source": "https://github.com/theseer/tokenizer/tree/master" 3403 | }, 3404 | "funding": [ 3405 | { 3406 | "url": "https://github.com/theseer", 3407 | "type": "github" 3408 | } 3409 | ], 3410 | "time": "2020-07-12T23:59:07+00:00" 3411 | }, 3412 | { 3413 | "name": "webmozart/assert", 3414 | "version": "1.10.0", 3415 | "source": { 3416 | "type": "git", 3417 | "url": "https://github.com/webmozarts/assert.git", 3418 | "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" 3419 | }, 3420 | "dist": { 3421 | "type": "zip", 3422 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", 3423 | "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", 3424 | "shasum": "" 3425 | }, 3426 | "require": { 3427 | "php": "^7.2 || ^8.0", 3428 | "symfony/polyfill-ctype": "^1.8" 3429 | }, 3430 | "conflict": { 3431 | "phpstan/phpstan": "<0.12.20", 3432 | "vimeo/psalm": "<4.6.1 || 4.6.2" 3433 | }, 3434 | "require-dev": { 3435 | "phpunit/phpunit": "^8.5.13" 3436 | }, 3437 | "type": "library", 3438 | "extra": { 3439 | "branch-alias": { 3440 | "dev-master": "1.10-dev" 3441 | } 3442 | }, 3443 | "autoload": { 3444 | "psr-4": { 3445 | "Webmozart\\Assert\\": "src/" 3446 | } 3447 | }, 3448 | "notification-url": "https://packagist.org/downloads/", 3449 | "license": [ 3450 | "MIT" 3451 | ], 3452 | "authors": [ 3453 | { 3454 | "name": "Bernhard Schussek", 3455 | "email": "bschussek@gmail.com" 3456 | } 3457 | ], 3458 | "description": "Assertions to validate method input/output with nice error messages.", 3459 | "keywords": [ 3460 | "assert", 3461 | "check", 3462 | "validate" 3463 | ], 3464 | "support": { 3465 | "issues": "https://github.com/webmozarts/assert/issues", 3466 | "source": "https://github.com/webmozarts/assert/tree/1.10.0" 3467 | }, 3468 | "time": "2021-03-09T10:59:23+00:00" 3469 | } 3470 | ], 3471 | "aliases": [], 3472 | "minimum-stability": "stable", 3473 | "stability-flags": [], 3474 | "prefer-stable": false, 3475 | "prefer-lowest": false, 3476 | "platform": { 3477 | "composer-plugin-api": "^1.1|^2.1" 3478 | }, 3479 | "platform-dev": [], 3480 | "plugin-api-version": "2.1.0" 3481 | } 3482 | --------------------------------------------------------------------------------