├── .gitignore ├── .travis.yml ├── composer.json ├── phpunit.xml.dist ├── LICENSE ├── Tests ├── SpecificAsSeedTest.php ├── SpecificAsIdTest.php └── ImageUrlTest.php ├── scripts └── InvalidImagesListGenerator.php ├── README.md ├── PicsumPhotosProvider.php └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /phpunit.xml 3 | /vendor 4 | /.idea 5 | .phpunit.result.cache -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 7.1 5 | - 7.2 6 | - 7.3 7 | - 7.4 8 | - 8.0 9 | 10 | before_script: 11 | - composer install 12 | 13 | notifications: 14 | email: false 15 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bluemmb/faker-picsum-photos-provider", 3 | "description": "picsum.photos provider for Faker", 4 | "keywords": [ 5 | "faker", 6 | "picsum.photos", 7 | "provider" 8 | ], 9 | "license": "MIT", 10 | "authors": [ 11 | { 12 | "name": "Mohammad Eftekhari", 13 | "email": "bluemmb22@gmail.com" 14 | } 15 | ], 16 | "require": { 17 | "php": "^7.1 || ^8.0", 18 | "fakerphp/faker": "^1.10", 19 | "ext-json": "*" 20 | }, 21 | "require-dev": { 22 | "phpunit/phpunit": "^8.0" 23 | }, 24 | "autoload": { 25 | "psr-4": { 26 | "Bluemmb\\Faker\\": "." 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ./ 6 | 7 | 8 | ./Tests 9 | ./vendor 10 | 11 | 12 | 13 | 14 | ./Tests/ 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Emanuele Minotto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Tests/SpecificAsSeedTest.php: -------------------------------------------------------------------------------- 1 | "; 26 | 27 | $this->assertRegExp($regex, $url); 28 | 29 | $matchs_array = []; 30 | $matchs = preg_match($regex, $url, $matchs_array); 31 | $this->assertSame($specificOrSeed, $matchs_array[1]); 32 | } 33 | 34 | 35 | public function dataProvider() 36 | { 37 | return [ 38 | [ 39 | 100, 100, '22', 40 | ], 41 | [ 42 | 200, 200, 'hello', 43 | ], 44 | [ 45 | 400, 100, 'picsum', 46 | ], 47 | ]; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Tests/SpecificAsIdTest.php: -------------------------------------------------------------------------------- 1 | "; 26 | 27 | $this->assertRegExp($regex, $url); 28 | 29 | $matchs_array = []; 30 | $matchs = preg_match($regex, $url, $matchs_array); 31 | 32 | $min = PicsumPhotosProvider::$picsumPhotosMinImageID; 33 | $max = PicsumPhotosProvider::$picsumPhotosMaxImageID; 34 | $this->assertTrue( 35 | $matchs_array[1] >= $min && $matchs_array[1] <= $max, 36 | "Specific number {$matchs_array[1]} is not in range 0..1084" 37 | ); 38 | 39 | $this->assertFalse( 40 | array_key_exists($matchs_array[1], PicsumPhotosProvider::$picsumPhotosInvalidImageIDs) 41 | ); 42 | } 43 | 44 | 45 | public function dataProvider() 46 | { 47 | return [ 48 | [ 49 | 100, 100, true, 50 | ], 51 | [ 52 | 200, 200, true, 53 | ], 54 | [ 55 | 400, 100, true, 56 | ], 57 | [ 58 | 400, 100, 86, 59 | ], 60 | [ 61 | 400, 100, 0, 62 | ], 63 | [ 64 | 400, 100, -500, 65 | ], 66 | [ 67 | 400, 100, 3513133, 68 | ], 69 | ]; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /scripts/InvalidImagesListGenerator.php: -------------------------------------------------------------------------------- 1 | id) - intval($b->id)) > 0 ? +1 : -1; 37 | }); 38 | 39 | 40 | /* 41 | * Assumptions : 42 | * - ID's are started from 0 43 | * - ID's are in Ascending order 44 | * - There is at least 1 valid image id 45 | */ 46 | 47 | // Set a fixed seed number 48 | srand(1000000007); 49 | 50 | echo "\n\nFinding invalid image id's ..."; 51 | $invalids = []; 52 | $valids = []; 53 | $last = -1; 54 | 55 | foreach ( $results as $r ) { 56 | $id = $r->id; 57 | $valids[] = $id; 58 | 59 | while ( ++$last < $id ) 60 | $invalids[$last] = $valids[ array_rand($valids) ]; 61 | 62 | $last = $id; 63 | } 64 | 65 | echo "\n\nMin id : " . $results[0]->id; 66 | echo "\nMax id : " . $last; 67 | 68 | $suggestions = []; 69 | foreach ( $invalids as $key => $val ) { 70 | $suggestions[] = "{$key}=>{$val}"; 71 | } 72 | 73 | echo "\n\nInvalids list with replacement suggestions : \n[" . implode(", ", $suggestions) . "]"; 74 | -------------------------------------------------------------------------------- /Tests/ImageUrlTest.php: -------------------------------------------------------------------------------- 1 | assertSame("https://picsum.photos/".$expected, $url); 25 | } 26 | 27 | public function imageUrlDataProvider() 28 | { 29 | return [ 30 | [ 31 | '640/480', 32 | 33 | ], 34 | [ 35 | '100/480', 36 | 100, 37 | ], 38 | [ 39 | '100/100', 40 | 100, 100, 41 | ], 42 | [ 43 | '100/100', 44 | 100, 100, false 45 | ], 46 | [ 47 | 'id/0/100/100', 48 | 100, 100, 0 49 | ], 50 | [ 51 | 'id/22/100/100', 52 | 100, 100, 22 53 | ], 54 | [ 55 | 'seed/22/100/100', 56 | 100, 100, '22' 57 | ], 58 | [ 59 | 'seed/easteregg/42/42', 60 | 42, 42, 'easteregg' 61 | ], 62 | [ 63 | '100/100?grayscale=true', 64 | 100, 100, false, true, 65 | ], 66 | [ 67 | '100/100?blur=true', 68 | 100, 100, false, false, true, 69 | ], 70 | [ 71 | '100/100?blur=7', 72 | 100, 100, false, false, 7, 73 | ], 74 | [ 75 | '100/100?blur=10', 76 | 100, 100, false, false, 12, 77 | ], 78 | [ 79 | '100/100?grayscale=true&blur=true', 80 | 100, 100, false, true, true, 81 | ], 82 | [ 83 | '100/100.jpg', 84 | 100, 100, false, false, false, 'jpg', 85 | ], 86 | [ 87 | '100/100', 88 | 100, 100, false, false, false, 'png', 89 | ], 90 | [ 91 | 'id/22/100/100.webp?grayscale=true&blur=5', 92 | 100, 100, 22, true, 5, 'webp', 93 | ], 94 | ]; 95 | } 96 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Picsum.photos Provider for PHP Faker 2 | =========================================== 3 | 4 | [![Build Status](https://travis-ci.org/bluemmb/Faker-PicsumPhotos.svg?branch=master)](https://travis-ci.org/bluemmb/Faker-PicsumPhotos) 5 | 6 | *Build gives error for php 7.1 and 7.2 versions only because of phpunit version* 7 | 8 | [picsum.photos](http://picsum.photos/) provider for [Faker](https://github.com/FakerPHP/Faker). 9 | 10 | ## Versions 11 | - [Version 2](#version-2) 12 | - [Version 1 (old)](https://github.com/bluemmb/Faker-PicsumPhotos/tree/v1) 13 | 14 | 15 | ## Version 2 16 | 17 | **Notice: This is documentation for new version, for older version go to [Version v1](https://github.com/bluemmb/Faker-PicsumPhotos/tree/v1)** 18 | 19 | ### Install 20 | 21 | Install the PicsumPhotos Provider by adding `bluemmb/faker-picsum-photos-provider: "^2.0"` to your composer.json or from CLI: 22 | 23 | ``` 24 | $ composer require bluemmb/faker-picsum-photos-provider ^2.0 25 | ``` 26 | 27 | ### Usage 28 | 29 | ```php 30 | $faker = Faker\Factory::create(); 31 | $faker->addProvider(new Bluemmb\Faker\PicsumPhotosProvider($faker)); 32 | 33 | // simple usage 34 | $url = $faker->imageUrl(); // https://picsum.photos/640/480 35 | $url = $faker->imageUrl(500); // https://picsum.photos/500/480 36 | $url = $faker->imageUrl(500,500); // https://picsum.photos/500/500 37 | 38 | /* 39 | * $specificOrSeed 40 | * - false | null : create simple url with no id or seed 41 | * - true : create id/{random id} url 42 | * - int : create id/{int} url 43 | * - string : create seed/{seed} url 44 | */ 45 | $url = $faker->imageUrl(500,500, false); // https://picsum.photos/500/500 46 | $url = $faker->imageUrl(500,500, true); // https://picsum.photos/id/70/500/500 47 | $url = $faker->imageUrl(500,500, true); // https://picsum.photos/id/413/500/500 48 | $url = $faker->imageUrl(500,500, 33); // https://picsum.photos/id/33/500/500 49 | $url = $faker->imageUrl(500,500, '33'); // https://picsum.photos/seed/33/500/500 50 | $url = $faker->imageUrl(500,500, 'wow'); // https://picsum.photos/seed/wow/500/500 51 | 52 | // Some image id's are invalid, So the package automatically replaces them 53 | $url = $faker->imageUrl(500,500, 86); // https://picsum.photos/id/82/500/500 54 | 55 | 56 | /* 57 | * More options : 58 | * function imageUrl( 59 | * $width = 640, $height = 480, $specificOrSeed=null, 60 | * $grayscale=null, $blur=null, $file_ending=null 61 | * ) 62 | */ 63 | 64 | // https://picsum.photos/100/100?grayscale=true 65 | $url = $faker->imageUrl( 66 | 100,100, false, 67 | true 68 | ); 69 | 70 | // https://picsum.photos/g/100/100?blur=true 71 | $url = $faker->imageUrl( 72 | 100,100, false, 73 | false, true 74 | ); 75 | 76 | // https://picsum.photos/100/100?blur=5 77 | $url = $faker->imageUrl( 78 | 100,100, false, 79 | false, 5 80 | ); 81 | 82 | // https://picsum.photos/300/100.jpg 83 | $url = $faker->imageUrl( 84 | 300,100, false, 85 | false, false, 'jpg' 86 | ); 87 | 88 | // https://picsum.photos/id/88/300/100.webp?grayscale=true&blur=3 89 | $url = $faker->imageUrl( 90 | 300,100, 88, 91 | true, 3, 'webp' 92 | ); 93 | ``` 94 | -------------------------------------------------------------------------------- /PicsumPhotosProvider.php: -------------------------------------------------------------------------------- 1 | 0 ) { 59 | $url .= "?" . http_build_query($args); 60 | } 61 | 62 | return static::$baseUrl . $url; 63 | } 64 | 65 | 66 | /* 67 | * The following variables are generated by the scripts/InvalidImagesListGenerator.php 68 | * 69 | * $picsumPhotosMinImageID 70 | * $picsumPhotosMaxImageID 71 | * $picsumPhotosInvalidImageIDs : Some image id's are invalid between [min,max], this array suggests valid replacements for them 72 | */ 73 | 74 | public static $picsumPhotosMinImageID = 0; 75 | public static $picsumPhotosMaxImageID = 1084; 76 | 77 | public static $picsumPhotosInvalidImageIDs = [ 78 | 86=>82, 97=>39, 105=>96, 138=>103, 148=>16, 150=>23, 205=>116, 207=>173, 224=>37, 226=>52, 79 | 245=>127, 246=>165, 262=>36, 285=>169, 286=>47, 298=>146, 303=>273, 332=>82, 333=>127, 346=>200, 80 | 359=>42, 394=>356, 414=>269, 422=>131, 438=>254, 462=>114, 463=>419, 470=>198, 489=>104, 540=>249, 81 | 561=>549, 578=>571, 587=>212, 589=>424, 592=>528, 595=>249, 597=>495, 601=>80, 624=>404, 632=>317, 82 | 636=>533, 644=>556, 647=>237, 673=>447, 697=>614, 706=>271, 707=>529, 708=>53, 709=>372, 710=>323, 83 | 711=>18, 712=>403, 713=>425, 714=>488, 720=>30, 725=>264, 734=>81, 745=>251, 746=>437, 747=>158, 84 | 748=>113, 749=>175, 750=>111, 751=>291, 752=>388, 753=>424, 754=>28, 759=>289, 761=>247, 762=>161, 85 | 763=>99, 771=>31, 792=>340, 801=>617, 812=>672, 843=>385, 850=>234, 854=>130, 895=>562, 897=>75, 86 | 899=>594, 917=>445, 920=>501, 934=>485, 956=>886, 963=>371, 968=>913, 1007=>30, 1017=>683, 87 | 1030=>649, 1034=>538, 1046=>47 88 | ]; 89 | 90 | protected static function validPicsumPhotosImageID($id=null) 91 | { 92 | if ( is_int($id) ) { 93 | $id = static::sureBetween($id, static::$picsumPhotosMinImageID, static::$picsumPhotosMaxImageID); 94 | } 95 | 96 | if ( is_null($id) ) { 97 | $id = static::numberBetween(static::$picsumPhotosMinImageID, static::$picsumPhotosMaxImageID); 98 | } 99 | 100 | if ( array_key_exists($id, static::$picsumPhotosInvalidImageIDs) ) { 101 | return static::$picsumPhotosInvalidImageIDs[$id]; 102 | } 103 | 104 | return $id; 105 | } 106 | 107 | 108 | /* 109 | * Helpers 110 | */ 111 | 112 | protected static function sureBetween($value, $min, $max) 113 | { 114 | return min( max($value, $min), $max ); 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "0d663d21ac5852b23453324916cd583f", 8 | "packages": [ 9 | { 10 | "name": "fakerphp/faker", 11 | "version": "v1.13.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/FakerPHP/Faker.git", 15 | "reference": "ab3f5364d01f2c2c16113442fb987d26e4004913" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ab3f5364d01f2c2c16113442fb987d26e4004913", 20 | "reference": "ab3f5364d01f2c2c16113442fb987d26e4004913", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^7.1 || ^8.0" 25 | }, 26 | "conflict": { 27 | "fzaninotto/faker": "*" 28 | }, 29 | "require-dev": { 30 | "bamarni/composer-bin-plugin": "^1.4.1", 31 | "ext-intl": "*", 32 | "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.4.2" 33 | }, 34 | "type": "library", 35 | "autoload": { 36 | "psr-4": { 37 | "Faker\\": "src/Faker/" 38 | } 39 | }, 40 | "notification-url": "https://packagist.org/downloads/", 41 | "license": [ 42 | "MIT" 43 | ], 44 | "authors": [ 45 | { 46 | "name": "François Zaninotto" 47 | } 48 | ], 49 | "description": "Faker is a PHP library that generates fake data for you.", 50 | "keywords": [ 51 | "data", 52 | "faker", 53 | "fixtures" 54 | ], 55 | "time": "2020-12-18T16:50:48+00:00" 56 | } 57 | ], 58 | "packages-dev": [ 59 | { 60 | "name": "doctrine/instantiator", 61 | "version": "1.4.0", 62 | "source": { 63 | "type": "git", 64 | "url": "https://github.com/doctrine/instantiator.git", 65 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" 66 | }, 67 | "dist": { 68 | "type": "zip", 69 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", 70 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", 71 | "shasum": "" 72 | }, 73 | "require": { 74 | "php": "^7.1 || ^8.0" 75 | }, 76 | "require-dev": { 77 | "doctrine/coding-standard": "^8.0", 78 | "ext-pdo": "*", 79 | "ext-phar": "*", 80 | "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", 81 | "phpstan/phpstan": "^0.12", 82 | "phpstan/phpstan-phpunit": "^0.12", 83 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 84 | }, 85 | "type": "library", 86 | "autoload": { 87 | "psr-4": { 88 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 89 | } 90 | }, 91 | "notification-url": "https://packagist.org/downloads/", 92 | "license": [ 93 | "MIT" 94 | ], 95 | "authors": [ 96 | { 97 | "name": "Marco Pivetta", 98 | "email": "ocramius@gmail.com", 99 | "homepage": "https://ocramius.github.io/" 100 | } 101 | ], 102 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 103 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 104 | "keywords": [ 105 | "constructor", 106 | "instantiate" 107 | ], 108 | "funding": [ 109 | { 110 | "url": "https://www.doctrine-project.org/sponsorship.html", 111 | "type": "custom" 112 | }, 113 | { 114 | "url": "https://www.patreon.com/phpdoctrine", 115 | "type": "patreon" 116 | }, 117 | { 118 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 119 | "type": "tidelift" 120 | } 121 | ], 122 | "time": "2020-11-10T18:47:58+00:00" 123 | }, 124 | { 125 | "name": "myclabs/deep-copy", 126 | "version": "1.10.2", 127 | "source": { 128 | "type": "git", 129 | "url": "https://github.com/myclabs/DeepCopy.git", 130 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" 131 | }, 132 | "dist": { 133 | "type": "zip", 134 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", 135 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", 136 | "shasum": "" 137 | }, 138 | "require": { 139 | "php": "^7.1 || ^8.0" 140 | }, 141 | "replace": { 142 | "myclabs/deep-copy": "self.version" 143 | }, 144 | "require-dev": { 145 | "doctrine/collections": "^1.0", 146 | "doctrine/common": "^2.6", 147 | "phpunit/phpunit": "^7.1" 148 | }, 149 | "type": "library", 150 | "autoload": { 151 | "psr-4": { 152 | "DeepCopy\\": "src/DeepCopy/" 153 | }, 154 | "files": [ 155 | "src/DeepCopy/deep_copy.php" 156 | ] 157 | }, 158 | "notification-url": "https://packagist.org/downloads/", 159 | "license": [ 160 | "MIT" 161 | ], 162 | "description": "Create deep copies (clones) of your objects", 163 | "keywords": [ 164 | "clone", 165 | "copy", 166 | "duplicate", 167 | "object", 168 | "object graph" 169 | ], 170 | "funding": [ 171 | { 172 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 173 | "type": "tidelift" 174 | } 175 | ], 176 | "time": "2020-11-13T09:40:50+00:00" 177 | }, 178 | { 179 | "name": "phar-io/manifest", 180 | "version": "2.0.1", 181 | "source": { 182 | "type": "git", 183 | "url": "https://github.com/phar-io/manifest.git", 184 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" 185 | }, 186 | "dist": { 187 | "type": "zip", 188 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 189 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 190 | "shasum": "" 191 | }, 192 | "require": { 193 | "ext-dom": "*", 194 | "ext-phar": "*", 195 | "ext-xmlwriter": "*", 196 | "phar-io/version": "^3.0.1", 197 | "php": "^7.2 || ^8.0" 198 | }, 199 | "type": "library", 200 | "extra": { 201 | "branch-alias": { 202 | "dev-master": "2.0.x-dev" 203 | } 204 | }, 205 | "autoload": { 206 | "classmap": [ 207 | "src/" 208 | ] 209 | }, 210 | "notification-url": "https://packagist.org/downloads/", 211 | "license": [ 212 | "BSD-3-Clause" 213 | ], 214 | "authors": [ 215 | { 216 | "name": "Arne Blankerts", 217 | "email": "arne@blankerts.de", 218 | "role": "Developer" 219 | }, 220 | { 221 | "name": "Sebastian Heuer", 222 | "email": "sebastian@phpeople.de", 223 | "role": "Developer" 224 | }, 225 | { 226 | "name": "Sebastian Bergmann", 227 | "email": "sebastian@phpunit.de", 228 | "role": "Developer" 229 | } 230 | ], 231 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 232 | "time": "2020-06-27T14:33:11+00:00" 233 | }, 234 | { 235 | "name": "phar-io/version", 236 | "version": "3.0.4", 237 | "source": { 238 | "type": "git", 239 | "url": "https://github.com/phar-io/version.git", 240 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" 241 | }, 242 | "dist": { 243 | "type": "zip", 244 | "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", 245 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", 246 | "shasum": "" 247 | }, 248 | "require": { 249 | "php": "^7.2 || ^8.0" 250 | }, 251 | "type": "library", 252 | "autoload": { 253 | "classmap": [ 254 | "src/" 255 | ] 256 | }, 257 | "notification-url": "https://packagist.org/downloads/", 258 | "license": [ 259 | "BSD-3-Clause" 260 | ], 261 | "authors": [ 262 | { 263 | "name": "Arne Blankerts", 264 | "email": "arne@blankerts.de", 265 | "role": "Developer" 266 | }, 267 | { 268 | "name": "Sebastian Heuer", 269 | "email": "sebastian@phpeople.de", 270 | "role": "Developer" 271 | }, 272 | { 273 | "name": "Sebastian Bergmann", 274 | "email": "sebastian@phpunit.de", 275 | "role": "Developer" 276 | } 277 | ], 278 | "description": "Library for handling version information and constraints", 279 | "time": "2020-12-13T23:18:30+00:00" 280 | }, 281 | { 282 | "name": "phpdocumentor/reflection-common", 283 | "version": "2.2.0", 284 | "source": { 285 | "type": "git", 286 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 287 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 288 | }, 289 | "dist": { 290 | "type": "zip", 291 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 292 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 293 | "shasum": "" 294 | }, 295 | "require": { 296 | "php": "^7.2 || ^8.0" 297 | }, 298 | "type": "library", 299 | "extra": { 300 | "branch-alias": { 301 | "dev-2.x": "2.x-dev" 302 | } 303 | }, 304 | "autoload": { 305 | "psr-4": { 306 | "phpDocumentor\\Reflection\\": "src/" 307 | } 308 | }, 309 | "notification-url": "https://packagist.org/downloads/", 310 | "license": [ 311 | "MIT" 312 | ], 313 | "authors": [ 314 | { 315 | "name": "Jaap van Otterdijk", 316 | "email": "opensource@ijaap.nl" 317 | } 318 | ], 319 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 320 | "homepage": "http://www.phpdoc.org", 321 | "keywords": [ 322 | "FQSEN", 323 | "phpDocumentor", 324 | "phpdoc", 325 | "reflection", 326 | "static analysis" 327 | ], 328 | "time": "2020-06-27T09:03:43+00:00" 329 | }, 330 | { 331 | "name": "phpdocumentor/reflection-docblock", 332 | "version": "5.2.2", 333 | "source": { 334 | "type": "git", 335 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 336 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" 337 | }, 338 | "dist": { 339 | "type": "zip", 340 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", 341 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", 342 | "shasum": "" 343 | }, 344 | "require": { 345 | "ext-filter": "*", 346 | "php": "^7.2 || ^8.0", 347 | "phpdocumentor/reflection-common": "^2.2", 348 | "phpdocumentor/type-resolver": "^1.3", 349 | "webmozart/assert": "^1.9.1" 350 | }, 351 | "require-dev": { 352 | "mockery/mockery": "~1.3.2" 353 | }, 354 | "type": "library", 355 | "extra": { 356 | "branch-alias": { 357 | "dev-master": "5.x-dev" 358 | } 359 | }, 360 | "autoload": { 361 | "psr-4": { 362 | "phpDocumentor\\Reflection\\": "src" 363 | } 364 | }, 365 | "notification-url": "https://packagist.org/downloads/", 366 | "license": [ 367 | "MIT" 368 | ], 369 | "authors": [ 370 | { 371 | "name": "Mike van Riel", 372 | "email": "me@mikevanriel.com" 373 | }, 374 | { 375 | "name": "Jaap van Otterdijk", 376 | "email": "account@ijaap.nl" 377 | } 378 | ], 379 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 380 | "time": "2020-09-03T19:13:55+00:00" 381 | }, 382 | { 383 | "name": "phpdocumentor/type-resolver", 384 | "version": "1.4.0", 385 | "source": { 386 | "type": "git", 387 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 388 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" 389 | }, 390 | "dist": { 391 | "type": "zip", 392 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 393 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 394 | "shasum": "" 395 | }, 396 | "require": { 397 | "php": "^7.2 || ^8.0", 398 | "phpdocumentor/reflection-common": "^2.0" 399 | }, 400 | "require-dev": { 401 | "ext-tokenizer": "*" 402 | }, 403 | "type": "library", 404 | "extra": { 405 | "branch-alias": { 406 | "dev-1.x": "1.x-dev" 407 | } 408 | }, 409 | "autoload": { 410 | "psr-4": { 411 | "phpDocumentor\\Reflection\\": "src" 412 | } 413 | }, 414 | "notification-url": "https://packagist.org/downloads/", 415 | "license": [ 416 | "MIT" 417 | ], 418 | "authors": [ 419 | { 420 | "name": "Mike van Riel", 421 | "email": "me@mikevanriel.com" 422 | } 423 | ], 424 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 425 | "time": "2020-09-17T18:55:26+00:00" 426 | }, 427 | { 428 | "name": "phpspec/prophecy", 429 | "version": "1.12.2", 430 | "source": { 431 | "type": "git", 432 | "url": "https://github.com/phpspec/prophecy.git", 433 | "reference": "245710e971a030f42e08f4912863805570f23d39" 434 | }, 435 | "dist": { 436 | "type": "zip", 437 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", 438 | "reference": "245710e971a030f42e08f4912863805570f23d39", 439 | "shasum": "" 440 | }, 441 | "require": { 442 | "doctrine/instantiator": "^1.2", 443 | "php": "^7.2 || ~8.0, <8.1", 444 | "phpdocumentor/reflection-docblock": "^5.2", 445 | "sebastian/comparator": "^3.0 || ^4.0", 446 | "sebastian/recursion-context": "^3.0 || ^4.0" 447 | }, 448 | "require-dev": { 449 | "phpspec/phpspec": "^6.0", 450 | "phpunit/phpunit": "^8.0 || ^9.0" 451 | }, 452 | "type": "library", 453 | "extra": { 454 | "branch-alias": { 455 | "dev-master": "1.11.x-dev" 456 | } 457 | }, 458 | "autoload": { 459 | "psr-4": { 460 | "Prophecy\\": "src/Prophecy" 461 | } 462 | }, 463 | "notification-url": "https://packagist.org/downloads/", 464 | "license": [ 465 | "MIT" 466 | ], 467 | "authors": [ 468 | { 469 | "name": "Konstantin Kudryashov", 470 | "email": "ever.zet@gmail.com", 471 | "homepage": "http://everzet.com" 472 | }, 473 | { 474 | "name": "Marcello Duarte", 475 | "email": "marcello.duarte@gmail.com" 476 | } 477 | ], 478 | "description": "Highly opinionated mocking framework for PHP 5.3+", 479 | "homepage": "https://github.com/phpspec/prophecy", 480 | "keywords": [ 481 | "Double", 482 | "Dummy", 483 | "fake", 484 | "mock", 485 | "spy", 486 | "stub" 487 | ], 488 | "time": "2020-12-19T10:15:11+00:00" 489 | }, 490 | { 491 | "name": "phpunit/php-code-coverage", 492 | "version": "7.0.14", 493 | "source": { 494 | "type": "git", 495 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 496 | "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" 497 | }, 498 | "dist": { 499 | "type": "zip", 500 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", 501 | "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", 502 | "shasum": "" 503 | }, 504 | "require": { 505 | "ext-dom": "*", 506 | "ext-xmlwriter": "*", 507 | "php": ">=7.2", 508 | "phpunit/php-file-iterator": "^2.0.2", 509 | "phpunit/php-text-template": "^1.2.1", 510 | "phpunit/php-token-stream": "^3.1.1 || ^4.0", 511 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 512 | "sebastian/environment": "^4.2.2", 513 | "sebastian/version": "^2.0.1", 514 | "theseer/tokenizer": "^1.1.3" 515 | }, 516 | "require-dev": { 517 | "phpunit/phpunit": "^8.2.2" 518 | }, 519 | "suggest": { 520 | "ext-xdebug": "^2.7.2" 521 | }, 522 | "type": "library", 523 | "extra": { 524 | "branch-alias": { 525 | "dev-master": "7.0-dev" 526 | } 527 | }, 528 | "autoload": { 529 | "classmap": [ 530 | "src/" 531 | ] 532 | }, 533 | "notification-url": "https://packagist.org/downloads/", 534 | "license": [ 535 | "BSD-3-Clause" 536 | ], 537 | "authors": [ 538 | { 539 | "name": "Sebastian Bergmann", 540 | "email": "sebastian@phpunit.de", 541 | "role": "lead" 542 | } 543 | ], 544 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 545 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 546 | "keywords": [ 547 | "coverage", 548 | "testing", 549 | "xunit" 550 | ], 551 | "funding": [ 552 | { 553 | "url": "https://github.com/sebastianbergmann", 554 | "type": "github" 555 | } 556 | ], 557 | "time": "2020-12-02T13:39:03+00:00" 558 | }, 559 | { 560 | "name": "phpunit/php-file-iterator", 561 | "version": "2.0.3", 562 | "source": { 563 | "type": "git", 564 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 565 | "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" 566 | }, 567 | "dist": { 568 | "type": "zip", 569 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", 570 | "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", 571 | "shasum": "" 572 | }, 573 | "require": { 574 | "php": ">=7.1" 575 | }, 576 | "require-dev": { 577 | "phpunit/phpunit": "^8.5" 578 | }, 579 | "type": "library", 580 | "extra": { 581 | "branch-alias": { 582 | "dev-master": "2.0.x-dev" 583 | } 584 | }, 585 | "autoload": { 586 | "classmap": [ 587 | "src/" 588 | ] 589 | }, 590 | "notification-url": "https://packagist.org/downloads/", 591 | "license": [ 592 | "BSD-3-Clause" 593 | ], 594 | "authors": [ 595 | { 596 | "name": "Sebastian Bergmann", 597 | "email": "sebastian@phpunit.de", 598 | "role": "lead" 599 | } 600 | ], 601 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 602 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 603 | "keywords": [ 604 | "filesystem", 605 | "iterator" 606 | ], 607 | "funding": [ 608 | { 609 | "url": "https://github.com/sebastianbergmann", 610 | "type": "github" 611 | } 612 | ], 613 | "time": "2020-11-30T08:25:21+00:00" 614 | }, 615 | { 616 | "name": "phpunit/php-text-template", 617 | "version": "1.2.1", 618 | "source": { 619 | "type": "git", 620 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 621 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 622 | }, 623 | "dist": { 624 | "type": "zip", 625 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 626 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 627 | "shasum": "" 628 | }, 629 | "require": { 630 | "php": ">=5.3.3" 631 | }, 632 | "type": "library", 633 | "autoload": { 634 | "classmap": [ 635 | "src/" 636 | ] 637 | }, 638 | "notification-url": "https://packagist.org/downloads/", 639 | "license": [ 640 | "BSD-3-Clause" 641 | ], 642 | "authors": [ 643 | { 644 | "name": "Sebastian Bergmann", 645 | "email": "sebastian@phpunit.de", 646 | "role": "lead" 647 | } 648 | ], 649 | "description": "Simple template engine.", 650 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 651 | "keywords": [ 652 | "template" 653 | ], 654 | "time": "2015-06-21T13:50:34+00:00" 655 | }, 656 | { 657 | "name": "phpunit/php-timer", 658 | "version": "2.1.3", 659 | "source": { 660 | "type": "git", 661 | "url": "https://github.com/sebastianbergmann/php-timer.git", 662 | "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" 663 | }, 664 | "dist": { 665 | "type": "zip", 666 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", 667 | "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", 668 | "shasum": "" 669 | }, 670 | "require": { 671 | "php": ">=7.1" 672 | }, 673 | "require-dev": { 674 | "phpunit/phpunit": "^8.5" 675 | }, 676 | "type": "library", 677 | "extra": { 678 | "branch-alias": { 679 | "dev-master": "2.1-dev" 680 | } 681 | }, 682 | "autoload": { 683 | "classmap": [ 684 | "src/" 685 | ] 686 | }, 687 | "notification-url": "https://packagist.org/downloads/", 688 | "license": [ 689 | "BSD-3-Clause" 690 | ], 691 | "authors": [ 692 | { 693 | "name": "Sebastian Bergmann", 694 | "email": "sebastian@phpunit.de", 695 | "role": "lead" 696 | } 697 | ], 698 | "description": "Utility class for timing", 699 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 700 | "keywords": [ 701 | "timer" 702 | ], 703 | "funding": [ 704 | { 705 | "url": "https://github.com/sebastianbergmann", 706 | "type": "github" 707 | } 708 | ], 709 | "time": "2020-11-30T08:20:02+00:00" 710 | }, 711 | { 712 | "name": "phpunit/php-token-stream", 713 | "version": "4.0.4", 714 | "source": { 715 | "type": "git", 716 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 717 | "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" 718 | }, 719 | "dist": { 720 | "type": "zip", 721 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", 722 | "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", 723 | "shasum": "" 724 | }, 725 | "require": { 726 | "ext-tokenizer": "*", 727 | "php": "^7.3 || ^8.0" 728 | }, 729 | "require-dev": { 730 | "phpunit/phpunit": "^9.0" 731 | }, 732 | "type": "library", 733 | "extra": { 734 | "branch-alias": { 735 | "dev-master": "4.0-dev" 736 | } 737 | }, 738 | "autoload": { 739 | "classmap": [ 740 | "src/" 741 | ] 742 | }, 743 | "notification-url": "https://packagist.org/downloads/", 744 | "license": [ 745 | "BSD-3-Clause" 746 | ], 747 | "authors": [ 748 | { 749 | "name": "Sebastian Bergmann", 750 | "email": "sebastian@phpunit.de" 751 | } 752 | ], 753 | "description": "Wrapper around PHP's tokenizer extension.", 754 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 755 | "keywords": [ 756 | "tokenizer" 757 | ], 758 | "funding": [ 759 | { 760 | "url": "https://github.com/sebastianbergmann", 761 | "type": "github" 762 | } 763 | ], 764 | "abandoned": true, 765 | "time": "2020-08-04T08:28:15+00:00" 766 | }, 767 | { 768 | "name": "phpunit/phpunit", 769 | "version": "8.5.14", 770 | "source": { 771 | "type": "git", 772 | "url": "https://github.com/sebastianbergmann/phpunit.git", 773 | "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" 774 | }, 775 | "dist": { 776 | "type": "zip", 777 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", 778 | "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", 779 | "shasum": "" 780 | }, 781 | "require": { 782 | "doctrine/instantiator": "^1.3.1", 783 | "ext-dom": "*", 784 | "ext-json": "*", 785 | "ext-libxml": "*", 786 | "ext-mbstring": "*", 787 | "ext-xml": "*", 788 | "ext-xmlwriter": "*", 789 | "myclabs/deep-copy": "^1.10.0", 790 | "phar-io/manifest": "^2.0.1", 791 | "phar-io/version": "^3.0.2", 792 | "php": ">=7.2", 793 | "phpspec/prophecy": "^1.10.3", 794 | "phpunit/php-code-coverage": "^7.0.12", 795 | "phpunit/php-file-iterator": "^2.0.2", 796 | "phpunit/php-text-template": "^1.2.1", 797 | "phpunit/php-timer": "^2.1.2", 798 | "sebastian/comparator": "^3.0.2", 799 | "sebastian/diff": "^3.0.2", 800 | "sebastian/environment": "^4.2.3", 801 | "sebastian/exporter": "^3.1.2", 802 | "sebastian/global-state": "^3.0.0", 803 | "sebastian/object-enumerator": "^3.0.3", 804 | "sebastian/resource-operations": "^2.0.1", 805 | "sebastian/type": "^1.1.3", 806 | "sebastian/version": "^2.0.1" 807 | }, 808 | "require-dev": { 809 | "ext-pdo": "*" 810 | }, 811 | "suggest": { 812 | "ext-soap": "*", 813 | "ext-xdebug": "*", 814 | "phpunit/php-invoker": "^2.0.0" 815 | }, 816 | "bin": [ 817 | "phpunit" 818 | ], 819 | "type": "library", 820 | "extra": { 821 | "branch-alias": { 822 | "dev-master": "8.5-dev" 823 | } 824 | }, 825 | "autoload": { 826 | "classmap": [ 827 | "src/" 828 | ] 829 | }, 830 | "notification-url": "https://packagist.org/downloads/", 831 | "license": [ 832 | "BSD-3-Clause" 833 | ], 834 | "authors": [ 835 | { 836 | "name": "Sebastian Bergmann", 837 | "email": "sebastian@phpunit.de", 838 | "role": "lead" 839 | } 840 | ], 841 | "description": "The PHP Unit Testing framework.", 842 | "homepage": "https://phpunit.de/", 843 | "keywords": [ 844 | "phpunit", 845 | "testing", 846 | "xunit" 847 | ], 848 | "funding": [ 849 | { 850 | "url": "https://phpunit.de/donate.html", 851 | "type": "custom" 852 | }, 853 | { 854 | "url": "https://github.com/sebastianbergmann", 855 | "type": "github" 856 | } 857 | ], 858 | "time": "2021-01-17T07:37:30+00:00" 859 | }, 860 | { 861 | "name": "sebastian/code-unit-reverse-lookup", 862 | "version": "1.0.2", 863 | "source": { 864 | "type": "git", 865 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 866 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" 867 | }, 868 | "dist": { 869 | "type": "zip", 870 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", 871 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", 872 | "shasum": "" 873 | }, 874 | "require": { 875 | "php": ">=5.6" 876 | }, 877 | "require-dev": { 878 | "phpunit/phpunit": "^8.5" 879 | }, 880 | "type": "library", 881 | "extra": { 882 | "branch-alias": { 883 | "dev-master": "1.0.x-dev" 884 | } 885 | }, 886 | "autoload": { 887 | "classmap": [ 888 | "src/" 889 | ] 890 | }, 891 | "notification-url": "https://packagist.org/downloads/", 892 | "license": [ 893 | "BSD-3-Clause" 894 | ], 895 | "authors": [ 896 | { 897 | "name": "Sebastian Bergmann", 898 | "email": "sebastian@phpunit.de" 899 | } 900 | ], 901 | "description": "Looks up which function or method a line of code belongs to", 902 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 903 | "funding": [ 904 | { 905 | "url": "https://github.com/sebastianbergmann", 906 | "type": "github" 907 | } 908 | ], 909 | "time": "2020-11-30T08:15:22+00:00" 910 | }, 911 | { 912 | "name": "sebastian/comparator", 913 | "version": "3.0.3", 914 | "source": { 915 | "type": "git", 916 | "url": "https://github.com/sebastianbergmann/comparator.git", 917 | "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" 918 | }, 919 | "dist": { 920 | "type": "zip", 921 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", 922 | "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", 923 | "shasum": "" 924 | }, 925 | "require": { 926 | "php": ">=7.1", 927 | "sebastian/diff": "^3.0", 928 | "sebastian/exporter": "^3.1" 929 | }, 930 | "require-dev": { 931 | "phpunit/phpunit": "^8.5" 932 | }, 933 | "type": "library", 934 | "extra": { 935 | "branch-alias": { 936 | "dev-master": "3.0-dev" 937 | } 938 | }, 939 | "autoload": { 940 | "classmap": [ 941 | "src/" 942 | ] 943 | }, 944 | "notification-url": "https://packagist.org/downloads/", 945 | "license": [ 946 | "BSD-3-Clause" 947 | ], 948 | "authors": [ 949 | { 950 | "name": "Sebastian Bergmann", 951 | "email": "sebastian@phpunit.de" 952 | }, 953 | { 954 | "name": "Jeff Welch", 955 | "email": "whatthejeff@gmail.com" 956 | }, 957 | { 958 | "name": "Volker Dusch", 959 | "email": "github@wallbash.com" 960 | }, 961 | { 962 | "name": "Bernhard Schussek", 963 | "email": "bschussek@2bepublished.at" 964 | } 965 | ], 966 | "description": "Provides the functionality to compare PHP values for equality", 967 | "homepage": "https://github.com/sebastianbergmann/comparator", 968 | "keywords": [ 969 | "comparator", 970 | "compare", 971 | "equality" 972 | ], 973 | "funding": [ 974 | { 975 | "url": "https://github.com/sebastianbergmann", 976 | "type": "github" 977 | } 978 | ], 979 | "time": "2020-11-30T08:04:30+00:00" 980 | }, 981 | { 982 | "name": "sebastian/diff", 983 | "version": "3.0.3", 984 | "source": { 985 | "type": "git", 986 | "url": "https://github.com/sebastianbergmann/diff.git", 987 | "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" 988 | }, 989 | "dist": { 990 | "type": "zip", 991 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", 992 | "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", 993 | "shasum": "" 994 | }, 995 | "require": { 996 | "php": ">=7.1" 997 | }, 998 | "require-dev": { 999 | "phpunit/phpunit": "^7.5 || ^8.0", 1000 | "symfony/process": "^2 || ^3.3 || ^4" 1001 | }, 1002 | "type": "library", 1003 | "extra": { 1004 | "branch-alias": { 1005 | "dev-master": "3.0-dev" 1006 | } 1007 | }, 1008 | "autoload": { 1009 | "classmap": [ 1010 | "src/" 1011 | ] 1012 | }, 1013 | "notification-url": "https://packagist.org/downloads/", 1014 | "license": [ 1015 | "BSD-3-Clause" 1016 | ], 1017 | "authors": [ 1018 | { 1019 | "name": "Sebastian Bergmann", 1020 | "email": "sebastian@phpunit.de" 1021 | }, 1022 | { 1023 | "name": "Kore Nordmann", 1024 | "email": "mail@kore-nordmann.de" 1025 | } 1026 | ], 1027 | "description": "Diff implementation", 1028 | "homepage": "https://github.com/sebastianbergmann/diff", 1029 | "keywords": [ 1030 | "diff", 1031 | "udiff", 1032 | "unidiff", 1033 | "unified diff" 1034 | ], 1035 | "funding": [ 1036 | { 1037 | "url": "https://github.com/sebastianbergmann", 1038 | "type": "github" 1039 | } 1040 | ], 1041 | "time": "2020-11-30T07:59:04+00:00" 1042 | }, 1043 | { 1044 | "name": "sebastian/environment", 1045 | "version": "4.2.4", 1046 | "source": { 1047 | "type": "git", 1048 | "url": "https://github.com/sebastianbergmann/environment.git", 1049 | "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" 1050 | }, 1051 | "dist": { 1052 | "type": "zip", 1053 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", 1054 | "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", 1055 | "shasum": "" 1056 | }, 1057 | "require": { 1058 | "php": ">=7.1" 1059 | }, 1060 | "require-dev": { 1061 | "phpunit/phpunit": "^7.5" 1062 | }, 1063 | "suggest": { 1064 | "ext-posix": "*" 1065 | }, 1066 | "type": "library", 1067 | "extra": { 1068 | "branch-alias": { 1069 | "dev-master": "4.2-dev" 1070 | } 1071 | }, 1072 | "autoload": { 1073 | "classmap": [ 1074 | "src/" 1075 | ] 1076 | }, 1077 | "notification-url": "https://packagist.org/downloads/", 1078 | "license": [ 1079 | "BSD-3-Clause" 1080 | ], 1081 | "authors": [ 1082 | { 1083 | "name": "Sebastian Bergmann", 1084 | "email": "sebastian@phpunit.de" 1085 | } 1086 | ], 1087 | "description": "Provides functionality to handle HHVM/PHP environments", 1088 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1089 | "keywords": [ 1090 | "Xdebug", 1091 | "environment", 1092 | "hhvm" 1093 | ], 1094 | "funding": [ 1095 | { 1096 | "url": "https://github.com/sebastianbergmann", 1097 | "type": "github" 1098 | } 1099 | ], 1100 | "time": "2020-11-30T07:53:42+00:00" 1101 | }, 1102 | { 1103 | "name": "sebastian/exporter", 1104 | "version": "3.1.3", 1105 | "source": { 1106 | "type": "git", 1107 | "url": "https://github.com/sebastianbergmann/exporter.git", 1108 | "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" 1109 | }, 1110 | "dist": { 1111 | "type": "zip", 1112 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", 1113 | "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", 1114 | "shasum": "" 1115 | }, 1116 | "require": { 1117 | "php": ">=7.0", 1118 | "sebastian/recursion-context": "^3.0" 1119 | }, 1120 | "require-dev": { 1121 | "ext-mbstring": "*", 1122 | "phpunit/phpunit": "^6.0" 1123 | }, 1124 | "type": "library", 1125 | "extra": { 1126 | "branch-alias": { 1127 | "dev-master": "3.1.x-dev" 1128 | } 1129 | }, 1130 | "autoload": { 1131 | "classmap": [ 1132 | "src/" 1133 | ] 1134 | }, 1135 | "notification-url": "https://packagist.org/downloads/", 1136 | "license": [ 1137 | "BSD-3-Clause" 1138 | ], 1139 | "authors": [ 1140 | { 1141 | "name": "Sebastian Bergmann", 1142 | "email": "sebastian@phpunit.de" 1143 | }, 1144 | { 1145 | "name": "Jeff Welch", 1146 | "email": "whatthejeff@gmail.com" 1147 | }, 1148 | { 1149 | "name": "Volker Dusch", 1150 | "email": "github@wallbash.com" 1151 | }, 1152 | { 1153 | "name": "Adam Harvey", 1154 | "email": "aharvey@php.net" 1155 | }, 1156 | { 1157 | "name": "Bernhard Schussek", 1158 | "email": "bschussek@gmail.com" 1159 | } 1160 | ], 1161 | "description": "Provides the functionality to export PHP variables for visualization", 1162 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1163 | "keywords": [ 1164 | "export", 1165 | "exporter" 1166 | ], 1167 | "funding": [ 1168 | { 1169 | "url": "https://github.com/sebastianbergmann", 1170 | "type": "github" 1171 | } 1172 | ], 1173 | "time": "2020-11-30T07:47:53+00:00" 1174 | }, 1175 | { 1176 | "name": "sebastian/global-state", 1177 | "version": "3.0.1", 1178 | "source": { 1179 | "type": "git", 1180 | "url": "https://github.com/sebastianbergmann/global-state.git", 1181 | "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" 1182 | }, 1183 | "dist": { 1184 | "type": "zip", 1185 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", 1186 | "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", 1187 | "shasum": "" 1188 | }, 1189 | "require": { 1190 | "php": ">=7.2", 1191 | "sebastian/object-reflector": "^1.1.1", 1192 | "sebastian/recursion-context": "^3.0" 1193 | }, 1194 | "require-dev": { 1195 | "ext-dom": "*", 1196 | "phpunit/phpunit": "^8.0" 1197 | }, 1198 | "suggest": { 1199 | "ext-uopz": "*" 1200 | }, 1201 | "type": "library", 1202 | "extra": { 1203 | "branch-alias": { 1204 | "dev-master": "3.0-dev" 1205 | } 1206 | }, 1207 | "autoload": { 1208 | "classmap": [ 1209 | "src/" 1210 | ] 1211 | }, 1212 | "notification-url": "https://packagist.org/downloads/", 1213 | "license": [ 1214 | "BSD-3-Clause" 1215 | ], 1216 | "authors": [ 1217 | { 1218 | "name": "Sebastian Bergmann", 1219 | "email": "sebastian@phpunit.de" 1220 | } 1221 | ], 1222 | "description": "Snapshotting of global state", 1223 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1224 | "keywords": [ 1225 | "global state" 1226 | ], 1227 | "funding": [ 1228 | { 1229 | "url": "https://github.com/sebastianbergmann", 1230 | "type": "github" 1231 | } 1232 | ], 1233 | "time": "2020-11-30T07:43:24+00:00" 1234 | }, 1235 | { 1236 | "name": "sebastian/object-enumerator", 1237 | "version": "3.0.4", 1238 | "source": { 1239 | "type": "git", 1240 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1241 | "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" 1242 | }, 1243 | "dist": { 1244 | "type": "zip", 1245 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", 1246 | "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", 1247 | "shasum": "" 1248 | }, 1249 | "require": { 1250 | "php": ">=7.0", 1251 | "sebastian/object-reflector": "^1.1.1", 1252 | "sebastian/recursion-context": "^3.0" 1253 | }, 1254 | "require-dev": { 1255 | "phpunit/phpunit": "^6.0" 1256 | }, 1257 | "type": "library", 1258 | "extra": { 1259 | "branch-alias": { 1260 | "dev-master": "3.0.x-dev" 1261 | } 1262 | }, 1263 | "autoload": { 1264 | "classmap": [ 1265 | "src/" 1266 | ] 1267 | }, 1268 | "notification-url": "https://packagist.org/downloads/", 1269 | "license": [ 1270 | "BSD-3-Clause" 1271 | ], 1272 | "authors": [ 1273 | { 1274 | "name": "Sebastian Bergmann", 1275 | "email": "sebastian@phpunit.de" 1276 | } 1277 | ], 1278 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1279 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1280 | "funding": [ 1281 | { 1282 | "url": "https://github.com/sebastianbergmann", 1283 | "type": "github" 1284 | } 1285 | ], 1286 | "time": "2020-11-30T07:40:27+00:00" 1287 | }, 1288 | { 1289 | "name": "sebastian/object-reflector", 1290 | "version": "1.1.2", 1291 | "source": { 1292 | "type": "git", 1293 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 1294 | "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" 1295 | }, 1296 | "dist": { 1297 | "type": "zip", 1298 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", 1299 | "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", 1300 | "shasum": "" 1301 | }, 1302 | "require": { 1303 | "php": ">=7.0" 1304 | }, 1305 | "require-dev": { 1306 | "phpunit/phpunit": "^6.0" 1307 | }, 1308 | "type": "library", 1309 | "extra": { 1310 | "branch-alias": { 1311 | "dev-master": "1.1-dev" 1312 | } 1313 | }, 1314 | "autoload": { 1315 | "classmap": [ 1316 | "src/" 1317 | ] 1318 | }, 1319 | "notification-url": "https://packagist.org/downloads/", 1320 | "license": [ 1321 | "BSD-3-Clause" 1322 | ], 1323 | "authors": [ 1324 | { 1325 | "name": "Sebastian Bergmann", 1326 | "email": "sebastian@phpunit.de" 1327 | } 1328 | ], 1329 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 1330 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 1331 | "funding": [ 1332 | { 1333 | "url": "https://github.com/sebastianbergmann", 1334 | "type": "github" 1335 | } 1336 | ], 1337 | "time": "2020-11-30T07:37:18+00:00" 1338 | }, 1339 | { 1340 | "name": "sebastian/recursion-context", 1341 | "version": "3.0.1", 1342 | "source": { 1343 | "type": "git", 1344 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1345 | "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" 1346 | }, 1347 | "dist": { 1348 | "type": "zip", 1349 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", 1350 | "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", 1351 | "shasum": "" 1352 | }, 1353 | "require": { 1354 | "php": ">=7.0" 1355 | }, 1356 | "require-dev": { 1357 | "phpunit/phpunit": "^6.0" 1358 | }, 1359 | "type": "library", 1360 | "extra": { 1361 | "branch-alias": { 1362 | "dev-master": "3.0.x-dev" 1363 | } 1364 | }, 1365 | "autoload": { 1366 | "classmap": [ 1367 | "src/" 1368 | ] 1369 | }, 1370 | "notification-url": "https://packagist.org/downloads/", 1371 | "license": [ 1372 | "BSD-3-Clause" 1373 | ], 1374 | "authors": [ 1375 | { 1376 | "name": "Sebastian Bergmann", 1377 | "email": "sebastian@phpunit.de" 1378 | }, 1379 | { 1380 | "name": "Jeff Welch", 1381 | "email": "whatthejeff@gmail.com" 1382 | }, 1383 | { 1384 | "name": "Adam Harvey", 1385 | "email": "aharvey@php.net" 1386 | } 1387 | ], 1388 | "description": "Provides functionality to recursively process PHP variables", 1389 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1390 | "funding": [ 1391 | { 1392 | "url": "https://github.com/sebastianbergmann", 1393 | "type": "github" 1394 | } 1395 | ], 1396 | "time": "2020-11-30T07:34:24+00:00" 1397 | }, 1398 | { 1399 | "name": "sebastian/resource-operations", 1400 | "version": "2.0.2", 1401 | "source": { 1402 | "type": "git", 1403 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1404 | "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" 1405 | }, 1406 | "dist": { 1407 | "type": "zip", 1408 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", 1409 | "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", 1410 | "shasum": "" 1411 | }, 1412 | "require": { 1413 | "php": ">=7.1" 1414 | }, 1415 | "type": "library", 1416 | "extra": { 1417 | "branch-alias": { 1418 | "dev-master": "2.0-dev" 1419 | } 1420 | }, 1421 | "autoload": { 1422 | "classmap": [ 1423 | "src/" 1424 | ] 1425 | }, 1426 | "notification-url": "https://packagist.org/downloads/", 1427 | "license": [ 1428 | "BSD-3-Clause" 1429 | ], 1430 | "authors": [ 1431 | { 1432 | "name": "Sebastian Bergmann", 1433 | "email": "sebastian@phpunit.de" 1434 | } 1435 | ], 1436 | "description": "Provides a list of PHP built-in functions that operate on resources", 1437 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1438 | "funding": [ 1439 | { 1440 | "url": "https://github.com/sebastianbergmann", 1441 | "type": "github" 1442 | } 1443 | ], 1444 | "time": "2020-11-30T07:30:19+00:00" 1445 | }, 1446 | { 1447 | "name": "sebastian/type", 1448 | "version": "1.1.4", 1449 | "source": { 1450 | "type": "git", 1451 | "url": "https://github.com/sebastianbergmann/type.git", 1452 | "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" 1453 | }, 1454 | "dist": { 1455 | "type": "zip", 1456 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", 1457 | "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", 1458 | "shasum": "" 1459 | }, 1460 | "require": { 1461 | "php": ">=7.2" 1462 | }, 1463 | "require-dev": { 1464 | "phpunit/phpunit": "^8.2" 1465 | }, 1466 | "type": "library", 1467 | "extra": { 1468 | "branch-alias": { 1469 | "dev-master": "1.1-dev" 1470 | } 1471 | }, 1472 | "autoload": { 1473 | "classmap": [ 1474 | "src/" 1475 | ] 1476 | }, 1477 | "notification-url": "https://packagist.org/downloads/", 1478 | "license": [ 1479 | "BSD-3-Clause" 1480 | ], 1481 | "authors": [ 1482 | { 1483 | "name": "Sebastian Bergmann", 1484 | "email": "sebastian@phpunit.de", 1485 | "role": "lead" 1486 | } 1487 | ], 1488 | "description": "Collection of value objects that represent the types of the PHP type system", 1489 | "homepage": "https://github.com/sebastianbergmann/type", 1490 | "funding": [ 1491 | { 1492 | "url": "https://github.com/sebastianbergmann", 1493 | "type": "github" 1494 | } 1495 | ], 1496 | "time": "2020-11-30T07:25:11+00:00" 1497 | }, 1498 | { 1499 | "name": "sebastian/version", 1500 | "version": "2.0.1", 1501 | "source": { 1502 | "type": "git", 1503 | "url": "https://github.com/sebastianbergmann/version.git", 1504 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1505 | }, 1506 | "dist": { 1507 | "type": "zip", 1508 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1509 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1510 | "shasum": "" 1511 | }, 1512 | "require": { 1513 | "php": ">=5.6" 1514 | }, 1515 | "type": "library", 1516 | "extra": { 1517 | "branch-alias": { 1518 | "dev-master": "2.0.x-dev" 1519 | } 1520 | }, 1521 | "autoload": { 1522 | "classmap": [ 1523 | "src/" 1524 | ] 1525 | }, 1526 | "notification-url": "https://packagist.org/downloads/", 1527 | "license": [ 1528 | "BSD-3-Clause" 1529 | ], 1530 | "authors": [ 1531 | { 1532 | "name": "Sebastian Bergmann", 1533 | "email": "sebastian@phpunit.de", 1534 | "role": "lead" 1535 | } 1536 | ], 1537 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1538 | "homepage": "https://github.com/sebastianbergmann/version", 1539 | "time": "2016-10-03T07:35:21+00:00" 1540 | }, 1541 | { 1542 | "name": "symfony/polyfill-ctype", 1543 | "version": "v1.22.0", 1544 | "source": { 1545 | "type": "git", 1546 | "url": "https://github.com/symfony/polyfill-ctype.git", 1547 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" 1548 | }, 1549 | "dist": { 1550 | "type": "zip", 1551 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", 1552 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", 1553 | "shasum": "" 1554 | }, 1555 | "require": { 1556 | "php": ">=7.1" 1557 | }, 1558 | "suggest": { 1559 | "ext-ctype": "For best performance" 1560 | }, 1561 | "type": "library", 1562 | "extra": { 1563 | "branch-alias": { 1564 | "dev-main": "1.22-dev" 1565 | }, 1566 | "thanks": { 1567 | "name": "symfony/polyfill", 1568 | "url": "https://github.com/symfony/polyfill" 1569 | } 1570 | }, 1571 | "autoload": { 1572 | "psr-4": { 1573 | "Symfony\\Polyfill\\Ctype\\": "" 1574 | }, 1575 | "files": [ 1576 | "bootstrap.php" 1577 | ] 1578 | }, 1579 | "notification-url": "https://packagist.org/downloads/", 1580 | "license": [ 1581 | "MIT" 1582 | ], 1583 | "authors": [ 1584 | { 1585 | "name": "Gert de Pagter", 1586 | "email": "BackEndTea@gmail.com" 1587 | }, 1588 | { 1589 | "name": "Symfony Community", 1590 | "homepage": "https://symfony.com/contributors" 1591 | } 1592 | ], 1593 | "description": "Symfony polyfill for ctype functions", 1594 | "homepage": "https://symfony.com", 1595 | "keywords": [ 1596 | "compatibility", 1597 | "ctype", 1598 | "polyfill", 1599 | "portable" 1600 | ], 1601 | "funding": [ 1602 | { 1603 | "url": "https://symfony.com/sponsor", 1604 | "type": "custom" 1605 | }, 1606 | { 1607 | "url": "https://github.com/fabpot", 1608 | "type": "github" 1609 | }, 1610 | { 1611 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1612 | "type": "tidelift" 1613 | } 1614 | ], 1615 | "time": "2021-01-07T16:49:33+00:00" 1616 | }, 1617 | { 1618 | "name": "theseer/tokenizer", 1619 | "version": "1.2.0", 1620 | "source": { 1621 | "type": "git", 1622 | "url": "https://github.com/theseer/tokenizer.git", 1623 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 1624 | }, 1625 | "dist": { 1626 | "type": "zip", 1627 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 1628 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 1629 | "shasum": "" 1630 | }, 1631 | "require": { 1632 | "ext-dom": "*", 1633 | "ext-tokenizer": "*", 1634 | "ext-xmlwriter": "*", 1635 | "php": "^7.2 || ^8.0" 1636 | }, 1637 | "type": "library", 1638 | "autoload": { 1639 | "classmap": [ 1640 | "src/" 1641 | ] 1642 | }, 1643 | "notification-url": "https://packagist.org/downloads/", 1644 | "license": [ 1645 | "BSD-3-Clause" 1646 | ], 1647 | "authors": [ 1648 | { 1649 | "name": "Arne Blankerts", 1650 | "email": "arne@blankerts.de", 1651 | "role": "Developer" 1652 | } 1653 | ], 1654 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 1655 | "funding": [ 1656 | { 1657 | "url": "https://github.com/theseer", 1658 | "type": "github" 1659 | } 1660 | ], 1661 | "time": "2020-07-12T23:59:07+00:00" 1662 | }, 1663 | { 1664 | "name": "webmozart/assert", 1665 | "version": "1.9.1", 1666 | "source": { 1667 | "type": "git", 1668 | "url": "https://github.com/webmozarts/assert.git", 1669 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" 1670 | }, 1671 | "dist": { 1672 | "type": "zip", 1673 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", 1674 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", 1675 | "shasum": "" 1676 | }, 1677 | "require": { 1678 | "php": "^5.3.3 || ^7.0 || ^8.0", 1679 | "symfony/polyfill-ctype": "^1.8" 1680 | }, 1681 | "conflict": { 1682 | "phpstan/phpstan": "<0.12.20", 1683 | "vimeo/psalm": "<3.9.1" 1684 | }, 1685 | "require-dev": { 1686 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 1687 | }, 1688 | "type": "library", 1689 | "autoload": { 1690 | "psr-4": { 1691 | "Webmozart\\Assert\\": "src/" 1692 | } 1693 | }, 1694 | "notification-url": "https://packagist.org/downloads/", 1695 | "license": [ 1696 | "MIT" 1697 | ], 1698 | "authors": [ 1699 | { 1700 | "name": "Bernhard Schussek", 1701 | "email": "bschussek@gmail.com" 1702 | } 1703 | ], 1704 | "description": "Assertions to validate method input/output with nice error messages.", 1705 | "keywords": [ 1706 | "assert", 1707 | "check", 1708 | "validate" 1709 | ], 1710 | "time": "2020-07-08T17:02:28+00:00" 1711 | } 1712 | ], 1713 | "aliases": [], 1714 | "minimum-stability": "stable", 1715 | "stability-flags": [], 1716 | "prefer-stable": false, 1717 | "prefer-lowest": false, 1718 | "platform": { 1719 | "php": "^7.1 || ^8.0", 1720 | "ext-json": "*" 1721 | }, 1722 | "platform-dev": [], 1723 | "plugin-api-version": "1.1.0" 1724 | } 1725 | --------------------------------------------------------------------------------