├── .github └── workflows │ ├── php-cs-fixer.yml │ ├── php.yml │ └── update-changelog.yml ├── .gitignore ├── .php-cs-fixer.cache ├── .php-cs-fixer.dist.php ├── CHANGELOG.md ├── LICENSE ├── README.md ├── assets └── logo.png ├── composer.json ├── composer.lock ├── docs └── feature.md ├── phpunit.xml ├── src ├── Abstracts │ └── ArabicDiffForHumansAbstract.php ├── Classes │ └── ArabicDiffForHumans.php └── Interfaces │ └── ArabicDiffForHumansInterface.php └── tests └── Feature └── ArabicDiffForHumansTest.php /.github/workflows/php-cs-fixer.yml: -------------------------------------------------------------------------------- 1 | name: Check & fix styling 2 | 3 | on: [push,pull_request] 4 | 5 | jobs: 6 | php-cs-fixer: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - name: Checkout code 11 | uses: actions/checkout@v2 12 | with: 13 | ref: ${{ github.head_ref }} 14 | 15 | - name: Run PHP Code Style Fixer 16 | uses: docker://oskarstark/php-cs-fixer-ga 17 | with: 18 | args: --config=.php-cs-fixer.dist.php --allow-risky=yes 19 | 20 | - name: Commit changes 21 | uses: stefanzweifel/git-auto-commit-action@v4 22 | with: 23 | commit_message: Fix styling 24 | -------------------------------------------------------------------------------- /.github/workflows/php.yml: -------------------------------------------------------------------------------- 1 | name: PHP Composer 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | pull_request: 7 | branches: [main] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | 17 | - name: Validate composer.json and composer.lock 18 | run: composer validate --strict 19 | 20 | - name: Cache Composer packages 21 | id: composer-cache 22 | uses: actions/cache@v2 23 | with: 24 | path: vendor 25 | key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} 26 | restore-keys: | 27 | ${{ runner.os }}-php- 28 | - name: Install dependencies 29 | run: composer install --prefer-dist --no-progress 30 | -------------------------------------------------------------------------------- /.github/workflows/update-changelog.yml: -------------------------------------------------------------------------------- 1 | name: "Update Changelog" 2 | 3 | on: 4 | release: 5 | types: [released] 6 | 7 | jobs: 8 | update: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Checkout code 13 | uses: actions/checkout@v2 14 | with: 15 | ref: main 16 | 17 | - name: Update Changelog 18 | uses: stefanzweifel/changelog-updater-action@v1 19 | with: 20 | latest-version: ${{ github.event.release.name }} 21 | release-notes: ${{ github.event.release.body }} 22 | 23 | - name: Commit updated CHANGELOG 24 | uses: stefanzweifel/git-auto-commit-action@v4 25 | with: 26 | branch: main 27 | commit_message: Update CHANGELOG 28 | file_pattern: CHANGELOG.md 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | -------------------------------------------------------------------------------- /.php-cs-fixer.cache: -------------------------------------------------------------------------------- 1 | {"php":"8.1.3","version":"3.7.0","indent":" ","lineEnding":"\n","rules":{"blank_line_after_opening_tag":true,"braces":{"allow_single_line_anonymous_class_with_empty_body":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"sort_algorithm":"alpha"},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline","keep_multiple_spaces_after_comma":true},"no_break_comment":true,"no_closing_tag":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"no_unused_imports":true,"not_operator_with_successor_space":true,"trailing_comma_in_multiline":true,"phpdoc_scalar":true,"unary_operator_spaces":true,"binary_operator_spaces":true,"blank_line_before_statement":{"statements":["break","continue","declare","return","throw","try"]},"phpdoc_single_line_var_spacing":true,"phpdoc_var_without_name":true,"class_attributes_separation":{"elements":{"method":"one"}}},"hashes":{"src\/Abstracts\/ArabicDiffForHumansAbstract.php":3955580789,"src\/Interfaces\/ArabicDiffForHumansInterface.php":1279869002,"src\/Classes\/ArabicDiffForHumans.php":4096291110,"tests\/Feature\/ArabicDiffForHumansTest.php":754316182}} -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | in([ 5 | __DIR__ . '/src', 6 | __DIR__ . '/tests', 7 | ]) 8 | ->name('*.php') 9 | ->ignoreDotFiles(true) 10 | ->ignoreVCS(true); 11 | 12 | return (new PhpCsFixer\Config()) 13 | ->setRules([ 14 | '@PSR12' => true, 15 | 'array_syntax' => ['syntax' => 'short'], 16 | 'ordered_imports' => ['sort_algorithm' => 'alpha'], 17 | 'no_unused_imports' => true, 18 | 'not_operator_with_successor_space' => true, 19 | 'trailing_comma_in_multiline' => true, 20 | 'phpdoc_scalar' => true, 21 | 'unary_operator_spaces' => true, 22 | 'binary_operator_spaces' => true, 23 | 'blank_line_before_statement' => [ 24 | 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'], 25 | ], 26 | 'phpdoc_single_line_var_spacing' => true, 27 | 'phpdoc_var_without_name' => true, 28 | 'class_attributes_separation' => [ 29 | 'elements' => [ 30 | 'method' => 'one', 31 | ], 32 | ], 33 | 'method_argument_space' => [ 34 | 'on_multiline' => 'ensure_fully_multiline', 35 | 'keep_multiple_spaces_after_comma' => true, 36 | ], 37 | 'single_trait_insert_per_statement' => true, 38 | ]) 39 | ->setFinder($finder); 40 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 - 2021-12-31 2 | 3 | - Refactor the package core. 4 | 5 | ## v1.0.1 - 2021-12-30 6 | 7 | - Fix composer.json 8 | 9 | ## v.1.0.0 - 2021-12-30 10 | 11 | The first release. 12 | 13 | ## v1.1.0 14 | 15 | - Some features. 16 | 17 | ## v1.0.0 18 | 19 | - First release 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Syrian Open Source 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Arabic Diff For Humans 2 | PHP Package to convert time difference to Arabic human readable string 3 | 4 | ##### 1 - Dependency 5 | The first step is using composer to install the package and automatically update your composer.json file, you can do this by running: 6 | 7 | ```shell 8 | composer require syrian-open-source/php-arabic-diff-for-human 9 | ``` 10 | 11 | Usage 12 | ----------- 13 | Convert from string date, this feature will work to compare years, months,days,minutes, and seconds. 14 | You can pass the date as a string with any format. 15 | ```php 16 | $instance = (new ArabicDiffForHumans()); 17 | $time = "2018-1-1"; 18 | echo $instance->getFromDateString($time); 19 | // if the current date 2022-1-1 forexample, the result should be: "منذ 4 سنين" 20 | ``` 21 | Convert from string date, this feature will work to compare years, months,days,minutes, and seconds. 22 | You can pass the date as a string with any format. 23 | ```php 24 | $instance = (new ArabicDiffForHumans()); 25 | $time = "2018-1-1"; 26 | echo $instance->get(strtotime($time)); 27 | // if the current date 2022-1-1 forexample, the result should be: "منذ 4 سنين" 28 | ``` 29 | 30 | Changelog 31 | --------- 32 | Please see the [CHANGELOG](https://github.com/syrian-open-source/php-arabic-diff-for-human/blob/master/CHANGELOG.md) for more information about what has changed or updated or added recently. 33 | 34 | Security 35 | -------- 36 | If you discover any security related issues, please email them first to alali.abdusslam@gmail.com, 37 | if we do not fix it within a short period of time please open a new issue describing your problem. 38 | 39 | Credits 40 | ------- 41 | * [Abdussalam M. Al-Ali](https://www.linkedin.com/in/abdussalam-alali/) 42 | * [All contributors](https://github.com/syrian-open-source/php-arabic-diff-for-human/graphs/contributors) 43 | 44 | About Syrian Open Source 45 | ------- 46 | The Syrian Open Source platform is the first platform on GitHub dedicated to bringing Syrian developers from different cultures and experiences together, to work on projects in different languages, tasks, and versions, and works to attract Syrian developers to contribute more under one platform to open source software, work on it, and issue it with high quality and advanced engineering features, which It stimulates the dissemination of the open-source concept in the Syrian software community, and also contributes to raising the efficiency of developers by working on distributed systems and teams. 47 | -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Syrian-Open-Source/php-arabic-diff-for-human/69d4be3324224d5b6100681775ac3544830c41bc/assets/logo.png -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "syrian-open-source/php-arabic-diff-for-human", 3 | "description": "PHP Package to convert time difference to Arabic human readable string", 4 | "license": "MIT", 5 | "keywords": [ 6 | "laravel", 7 | "syrian open source" 8 | ], 9 | "authors": [ 10 | { 11 | "name": "Abdussalam Al-Ali", 12 | "email": "alali.abdusslam@gmail.com", 13 | "homepage": "https://github.com/abdussalam-alali", 14 | "role": "Developer" 15 | } 16 | ], 17 | "require": { 18 | "phpunit/phpunit": "^9.5", 19 | "friendsofphp/php-cs-fixer": "^3.0" 20 | }, 21 | "require-dev": { 22 | "ext-curl": "*", 23 | "ext-dom": "*", 24 | "ext-json": "*" 25 | }, 26 | "autoload" : { 27 | "psr-4": { 28 | "SOS\\ArabicDiffForHumans\\" : "src", 29 | "SOS\\ArabicDiffForHumans\\Tests\\": "src/tests" 30 | } 31 | }, 32 | "scripts": { 33 | "test": "vendor/bin/phpunit", 34 | "test-coverage": "phpunit --coverage-html coverage", 35 | "format": "vendor/bin/php-cs-fixer fix --allow-risky=yes" 36 | }, 37 | "minimum-stability": "dev", 38 | "prefer-stable": true 39 | } 40 | -------------------------------------------------------------------------------- /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": "97887993e67d14a9945fb942fa50c31c", 8 | "packages": [ 9 | { 10 | "name": "composer/pcre", 11 | "version": "1.0.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/composer/pcre.git", 15 | "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", 20 | "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^5.3.2 || ^7.0 || ^8.0" 25 | }, 26 | "require-dev": { 27 | "phpstan/phpstan": "^1", 28 | "phpstan/phpstan-strict-rules": "^1.1", 29 | "symfony/phpunit-bridge": "^4.2 || ^5" 30 | }, 31 | "type": "library", 32 | "extra": { 33 | "branch-alias": { 34 | "dev-main": "1.x-dev" 35 | } 36 | }, 37 | "autoload": { 38 | "psr-4": { 39 | "Composer\\Pcre\\": "src" 40 | } 41 | }, 42 | "notification-url": "https://packagist.org/downloads/", 43 | "license": [ 44 | "MIT" 45 | ], 46 | "authors": [ 47 | { 48 | "name": "Jordi Boggiano", 49 | "email": "j.boggiano@seld.be", 50 | "homepage": "http://seld.be" 51 | } 52 | ], 53 | "description": "PCRE wrapping library that offers type-safe preg_* replacements.", 54 | "keywords": [ 55 | "PCRE", 56 | "preg", 57 | "regex", 58 | "regular expression" 59 | ], 60 | "support": { 61 | "issues": "https://github.com/composer/pcre/issues", 62 | "source": "https://github.com/composer/pcre/tree/1.0.0" 63 | }, 64 | "funding": [ 65 | { 66 | "url": "https://packagist.com", 67 | "type": "custom" 68 | }, 69 | { 70 | "url": "https://github.com/composer", 71 | "type": "github" 72 | }, 73 | { 74 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 75 | "type": "tidelift" 76 | } 77 | ], 78 | "time": "2021-12-06T15:17:27+00:00" 79 | }, 80 | { 81 | "name": "composer/semver", 82 | "version": "3.2.6", 83 | "source": { 84 | "type": "git", 85 | "url": "https://github.com/composer/semver.git", 86 | "reference": "83e511e247de329283478496f7a1e114c9517506" 87 | }, 88 | "dist": { 89 | "type": "zip", 90 | "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", 91 | "reference": "83e511e247de329283478496f7a1e114c9517506", 92 | "shasum": "" 93 | }, 94 | "require": { 95 | "php": "^5.3.2 || ^7.0 || ^8.0" 96 | }, 97 | "require-dev": { 98 | "phpstan/phpstan": "^0.12.54", 99 | "symfony/phpunit-bridge": "^4.2 || ^5" 100 | }, 101 | "type": "library", 102 | "extra": { 103 | "branch-alias": { 104 | "dev-main": "3.x-dev" 105 | } 106 | }, 107 | "autoload": { 108 | "psr-4": { 109 | "Composer\\Semver\\": "src" 110 | } 111 | }, 112 | "notification-url": "https://packagist.org/downloads/", 113 | "license": [ 114 | "MIT" 115 | ], 116 | "authors": [ 117 | { 118 | "name": "Nils Adermann", 119 | "email": "naderman@naderman.de", 120 | "homepage": "http://www.naderman.de" 121 | }, 122 | { 123 | "name": "Jordi Boggiano", 124 | "email": "j.boggiano@seld.be", 125 | "homepage": "http://seld.be" 126 | }, 127 | { 128 | "name": "Rob Bast", 129 | "email": "rob.bast@gmail.com", 130 | "homepage": "http://robbast.nl" 131 | } 132 | ], 133 | "description": "Semver library that offers utilities, version constraint parsing and validation.", 134 | "keywords": [ 135 | "semantic", 136 | "semver", 137 | "validation", 138 | "versioning" 139 | ], 140 | "support": { 141 | "irc": "irc://irc.freenode.org/composer", 142 | "issues": "https://github.com/composer/semver/issues", 143 | "source": "https://github.com/composer/semver/tree/3.2.6" 144 | }, 145 | "funding": [ 146 | { 147 | "url": "https://packagist.com", 148 | "type": "custom" 149 | }, 150 | { 151 | "url": "https://github.com/composer", 152 | "type": "github" 153 | }, 154 | { 155 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 156 | "type": "tidelift" 157 | } 158 | ], 159 | "time": "2021-10-25T11:34:17+00:00" 160 | }, 161 | { 162 | "name": "composer/xdebug-handler", 163 | "version": "2.0.3", 164 | "source": { 165 | "type": "git", 166 | "url": "https://github.com/composer/xdebug-handler.git", 167 | "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e" 168 | }, 169 | "dist": { 170 | "type": "zip", 171 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6555461e76962fd0379c444c46fd558a0fcfb65e", 172 | "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e", 173 | "shasum": "" 174 | }, 175 | "require": { 176 | "composer/pcre": "^1", 177 | "php": "^5.3.2 || ^7.0 || ^8.0", 178 | "psr/log": "^1 || ^2 || ^3" 179 | }, 180 | "require-dev": { 181 | "phpstan/phpstan": "^1.0", 182 | "phpstan/phpstan-strict-rules": "^1.1", 183 | "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" 184 | }, 185 | "type": "library", 186 | "autoload": { 187 | "psr-4": { 188 | "Composer\\XdebugHandler\\": "src" 189 | } 190 | }, 191 | "notification-url": "https://packagist.org/downloads/", 192 | "license": [ 193 | "MIT" 194 | ], 195 | "authors": [ 196 | { 197 | "name": "John Stevenson", 198 | "email": "john-stevenson@blueyonder.co.uk" 199 | } 200 | ], 201 | "description": "Restarts a process without Xdebug.", 202 | "keywords": [ 203 | "Xdebug", 204 | "performance" 205 | ], 206 | "support": { 207 | "irc": "irc://irc.freenode.org/composer", 208 | "issues": "https://github.com/composer/xdebug-handler/issues", 209 | "source": "https://github.com/composer/xdebug-handler/tree/2.0.3" 210 | }, 211 | "funding": [ 212 | { 213 | "url": "https://packagist.com", 214 | "type": "custom" 215 | }, 216 | { 217 | "url": "https://github.com/composer", 218 | "type": "github" 219 | }, 220 | { 221 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 222 | "type": "tidelift" 223 | } 224 | ], 225 | "time": "2021-12-08T13:07:32+00:00" 226 | }, 227 | { 228 | "name": "doctrine/annotations", 229 | "version": "1.13.2", 230 | "source": { 231 | "type": "git", 232 | "url": "https://github.com/doctrine/annotations.git", 233 | "reference": "5b668aef16090008790395c02c893b1ba13f7e08" 234 | }, 235 | "dist": { 236 | "type": "zip", 237 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", 238 | "reference": "5b668aef16090008790395c02c893b1ba13f7e08", 239 | "shasum": "" 240 | }, 241 | "require": { 242 | "doctrine/lexer": "1.*", 243 | "ext-tokenizer": "*", 244 | "php": "^7.1 || ^8.0", 245 | "psr/cache": "^1 || ^2 || ^3" 246 | }, 247 | "require-dev": { 248 | "doctrine/cache": "^1.11 || ^2.0", 249 | "doctrine/coding-standard": "^6.0 || ^8.1", 250 | "phpstan/phpstan": "^0.12.20", 251 | "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", 252 | "symfony/cache": "^4.4 || ^5.2" 253 | }, 254 | "type": "library", 255 | "autoload": { 256 | "psr-4": { 257 | "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" 258 | } 259 | }, 260 | "notification-url": "https://packagist.org/downloads/", 261 | "license": [ 262 | "MIT" 263 | ], 264 | "authors": [ 265 | { 266 | "name": "Guilherme Blanco", 267 | "email": "guilhermeblanco@gmail.com" 268 | }, 269 | { 270 | "name": "Roman Borschel", 271 | "email": "roman@code-factory.org" 272 | }, 273 | { 274 | "name": "Benjamin Eberlei", 275 | "email": "kontakt@beberlei.de" 276 | }, 277 | { 278 | "name": "Jonathan Wage", 279 | "email": "jonwage@gmail.com" 280 | }, 281 | { 282 | "name": "Johannes Schmitt", 283 | "email": "schmittjoh@gmail.com" 284 | } 285 | ], 286 | "description": "Docblock Annotations Parser", 287 | "homepage": "https://www.doctrine-project.org/projects/annotations.html", 288 | "keywords": [ 289 | "annotations", 290 | "docblock", 291 | "parser" 292 | ], 293 | "support": { 294 | "issues": "https://github.com/doctrine/annotations/issues", 295 | "source": "https://github.com/doctrine/annotations/tree/1.13.2" 296 | }, 297 | "time": "2021-08-05T19:00:23+00:00" 298 | }, 299 | { 300 | "name": "doctrine/instantiator", 301 | "version": "1.4.0", 302 | "source": { 303 | "type": "git", 304 | "url": "https://github.com/doctrine/instantiator.git", 305 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" 306 | }, 307 | "dist": { 308 | "type": "zip", 309 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", 310 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", 311 | "shasum": "" 312 | }, 313 | "require": { 314 | "php": "^7.1 || ^8.0" 315 | }, 316 | "require-dev": { 317 | "doctrine/coding-standard": "^8.0", 318 | "ext-pdo": "*", 319 | "ext-phar": "*", 320 | "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", 321 | "phpstan/phpstan": "^0.12", 322 | "phpstan/phpstan-phpunit": "^0.12", 323 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 324 | }, 325 | "type": "library", 326 | "autoload": { 327 | "psr-4": { 328 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 329 | } 330 | }, 331 | "notification-url": "https://packagist.org/downloads/", 332 | "license": [ 333 | "MIT" 334 | ], 335 | "authors": [ 336 | { 337 | "name": "Marco Pivetta", 338 | "email": "ocramius@gmail.com", 339 | "homepage": "https://ocramius.github.io/" 340 | } 341 | ], 342 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 343 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 344 | "keywords": [ 345 | "constructor", 346 | "instantiate" 347 | ], 348 | "support": { 349 | "issues": "https://github.com/doctrine/instantiator/issues", 350 | "source": "https://github.com/doctrine/instantiator/tree/1.4.0" 351 | }, 352 | "funding": [ 353 | { 354 | "url": "https://www.doctrine-project.org/sponsorship.html", 355 | "type": "custom" 356 | }, 357 | { 358 | "url": "https://www.patreon.com/phpdoctrine", 359 | "type": "patreon" 360 | }, 361 | { 362 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 363 | "type": "tidelift" 364 | } 365 | ], 366 | "time": "2020-11-10T18:47:58+00:00" 367 | }, 368 | { 369 | "name": "doctrine/lexer", 370 | "version": "1.2.1", 371 | "source": { 372 | "type": "git", 373 | "url": "https://github.com/doctrine/lexer.git", 374 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" 375 | }, 376 | "dist": { 377 | "type": "zip", 378 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", 379 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", 380 | "shasum": "" 381 | }, 382 | "require": { 383 | "php": "^7.2 || ^8.0" 384 | }, 385 | "require-dev": { 386 | "doctrine/coding-standard": "^6.0", 387 | "phpstan/phpstan": "^0.11.8", 388 | "phpunit/phpunit": "^8.2" 389 | }, 390 | "type": "library", 391 | "extra": { 392 | "branch-alias": { 393 | "dev-master": "1.2.x-dev" 394 | } 395 | }, 396 | "autoload": { 397 | "psr-4": { 398 | "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" 399 | } 400 | }, 401 | "notification-url": "https://packagist.org/downloads/", 402 | "license": [ 403 | "MIT" 404 | ], 405 | "authors": [ 406 | { 407 | "name": "Guilherme Blanco", 408 | "email": "guilhermeblanco@gmail.com" 409 | }, 410 | { 411 | "name": "Roman Borschel", 412 | "email": "roman@code-factory.org" 413 | }, 414 | { 415 | "name": "Johannes Schmitt", 416 | "email": "schmittjoh@gmail.com" 417 | } 418 | ], 419 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", 420 | "homepage": "https://www.doctrine-project.org/projects/lexer.html", 421 | "keywords": [ 422 | "annotations", 423 | "docblock", 424 | "lexer", 425 | "parser", 426 | "php" 427 | ], 428 | "support": { 429 | "issues": "https://github.com/doctrine/lexer/issues", 430 | "source": "https://github.com/doctrine/lexer/tree/1.2.1" 431 | }, 432 | "funding": [ 433 | { 434 | "url": "https://www.doctrine-project.org/sponsorship.html", 435 | "type": "custom" 436 | }, 437 | { 438 | "url": "https://www.patreon.com/phpdoctrine", 439 | "type": "patreon" 440 | }, 441 | { 442 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", 443 | "type": "tidelift" 444 | } 445 | ], 446 | "time": "2020-05-25T17:44:05+00:00" 447 | }, 448 | { 449 | "name": "friendsofphp/php-cs-fixer", 450 | "version": "v3.4.0", 451 | "source": { 452 | "type": "git", 453 | "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", 454 | "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad" 455 | }, 456 | "dist": { 457 | "type": "zip", 458 | "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", 459 | "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", 460 | "shasum": "" 461 | }, 462 | "require": { 463 | "composer/semver": "^3.2", 464 | "composer/xdebug-handler": "^2.0", 465 | "doctrine/annotations": "^1.12", 466 | "ext-json": "*", 467 | "ext-tokenizer": "*", 468 | "php": "^7.2.5 || ^8.0", 469 | "php-cs-fixer/diff": "^2.0", 470 | "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0", 471 | "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0", 472 | "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0", 473 | "symfony/finder": "^4.4.20 || ^5.0 || ^6.0", 474 | "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0", 475 | "symfony/polyfill-mbstring": "^1.23", 476 | "symfony/polyfill-php80": "^1.23", 477 | "symfony/polyfill-php81": "^1.23", 478 | "symfony/process": "^4.4.20 || ^5.0 || ^6.0", 479 | "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0" 480 | }, 481 | "require-dev": { 482 | "justinrainbow/json-schema": "^5.2", 483 | "keradus/cli-executor": "^1.5", 484 | "mikey179/vfsstream": "^1.6.8", 485 | "php-coveralls/php-coveralls": "^2.5.2", 486 | "php-cs-fixer/accessible-object": "^1.1", 487 | "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", 488 | "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", 489 | "phpspec/prophecy": "^1.15", 490 | "phpspec/prophecy-phpunit": "^1.1 || ^2.0", 491 | "phpunit/phpunit": "^8.5.21 || ^9.5", 492 | "phpunitgoodpractices/polyfill": "^1.5", 493 | "phpunitgoodpractices/traits": "^1.9.1", 494 | "symfony/phpunit-bridge": "^5.2.4 || ^6.0", 495 | "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0" 496 | }, 497 | "suggest": { 498 | "ext-dom": "For handling output formats in XML", 499 | "ext-mbstring": "For handling non-UTF8 characters." 500 | }, 501 | "bin": [ 502 | "php-cs-fixer" 503 | ], 504 | "type": "application", 505 | "autoload": { 506 | "psr-4": { 507 | "PhpCsFixer\\": "src/" 508 | } 509 | }, 510 | "notification-url": "https://packagist.org/downloads/", 511 | "license": [ 512 | "MIT" 513 | ], 514 | "authors": [ 515 | { 516 | "name": "Fabien Potencier", 517 | "email": "fabien@symfony.com" 518 | }, 519 | { 520 | "name": "Dariusz Rumiński", 521 | "email": "dariusz.ruminski@gmail.com" 522 | } 523 | ], 524 | "description": "A tool to automatically fix PHP code style", 525 | "support": { 526 | "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", 527 | "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0" 528 | }, 529 | "funding": [ 530 | { 531 | "url": "https://github.com/keradus", 532 | "type": "github" 533 | } 534 | ], 535 | "time": "2021-12-11T16:25:08+00:00" 536 | }, 537 | { 538 | "name": "myclabs/deep-copy", 539 | "version": "1.10.2", 540 | "source": { 541 | "type": "git", 542 | "url": "https://github.com/myclabs/DeepCopy.git", 543 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" 544 | }, 545 | "dist": { 546 | "type": "zip", 547 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", 548 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", 549 | "shasum": "" 550 | }, 551 | "require": { 552 | "php": "^7.1 || ^8.0" 553 | }, 554 | "replace": { 555 | "myclabs/deep-copy": "self.version" 556 | }, 557 | "require-dev": { 558 | "doctrine/collections": "^1.0", 559 | "doctrine/common": "^2.6", 560 | "phpunit/phpunit": "^7.1" 561 | }, 562 | "type": "library", 563 | "autoload": { 564 | "psr-4": { 565 | "DeepCopy\\": "src/DeepCopy/" 566 | }, 567 | "files": [ 568 | "src/DeepCopy/deep_copy.php" 569 | ] 570 | }, 571 | "notification-url": "https://packagist.org/downloads/", 572 | "license": [ 573 | "MIT" 574 | ], 575 | "description": "Create deep copies (clones) of your objects", 576 | "keywords": [ 577 | "clone", 578 | "copy", 579 | "duplicate", 580 | "object", 581 | "object graph" 582 | ], 583 | "support": { 584 | "issues": "https://github.com/myclabs/DeepCopy/issues", 585 | "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" 586 | }, 587 | "funding": [ 588 | { 589 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 590 | "type": "tidelift" 591 | } 592 | ], 593 | "time": "2020-11-13T09:40:50+00:00" 594 | }, 595 | { 596 | "name": "nikic/php-parser", 597 | "version": "v4.13.2", 598 | "source": { 599 | "type": "git", 600 | "url": "https://github.com/nikic/PHP-Parser.git", 601 | "reference": "210577fe3cf7badcc5814d99455df46564f3c077" 602 | }, 603 | "dist": { 604 | "type": "zip", 605 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", 606 | "reference": "210577fe3cf7badcc5814d99455df46564f3c077", 607 | "shasum": "" 608 | }, 609 | "require": { 610 | "ext-tokenizer": "*", 611 | "php": ">=7.0" 612 | }, 613 | "require-dev": { 614 | "ircmaxell/php-yacc": "^0.0.7", 615 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 616 | }, 617 | "bin": [ 618 | "bin/php-parse" 619 | ], 620 | "type": "library", 621 | "extra": { 622 | "branch-alias": { 623 | "dev-master": "4.9-dev" 624 | } 625 | }, 626 | "autoload": { 627 | "psr-4": { 628 | "PhpParser\\": "lib/PhpParser" 629 | } 630 | }, 631 | "notification-url": "https://packagist.org/downloads/", 632 | "license": [ 633 | "BSD-3-Clause" 634 | ], 635 | "authors": [ 636 | { 637 | "name": "Nikita Popov" 638 | } 639 | ], 640 | "description": "A PHP parser written in PHP", 641 | "keywords": [ 642 | "parser", 643 | "php" 644 | ], 645 | "support": { 646 | "issues": "https://github.com/nikic/PHP-Parser/issues", 647 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" 648 | }, 649 | "time": "2021-11-30T19:35:32+00:00" 650 | }, 651 | { 652 | "name": "phar-io/manifest", 653 | "version": "2.0.3", 654 | "source": { 655 | "type": "git", 656 | "url": "https://github.com/phar-io/manifest.git", 657 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53" 658 | }, 659 | "dist": { 660 | "type": "zip", 661 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", 662 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53", 663 | "shasum": "" 664 | }, 665 | "require": { 666 | "ext-dom": "*", 667 | "ext-phar": "*", 668 | "ext-xmlwriter": "*", 669 | "phar-io/version": "^3.0.1", 670 | "php": "^7.2 || ^8.0" 671 | }, 672 | "type": "library", 673 | "extra": { 674 | "branch-alias": { 675 | "dev-master": "2.0.x-dev" 676 | } 677 | }, 678 | "autoload": { 679 | "classmap": [ 680 | "src/" 681 | ] 682 | }, 683 | "notification-url": "https://packagist.org/downloads/", 684 | "license": [ 685 | "BSD-3-Clause" 686 | ], 687 | "authors": [ 688 | { 689 | "name": "Arne Blankerts", 690 | "email": "arne@blankerts.de", 691 | "role": "Developer" 692 | }, 693 | { 694 | "name": "Sebastian Heuer", 695 | "email": "sebastian@phpeople.de", 696 | "role": "Developer" 697 | }, 698 | { 699 | "name": "Sebastian Bergmann", 700 | "email": "sebastian@phpunit.de", 701 | "role": "Developer" 702 | } 703 | ], 704 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 705 | "support": { 706 | "issues": "https://github.com/phar-io/manifest/issues", 707 | "source": "https://github.com/phar-io/manifest/tree/2.0.3" 708 | }, 709 | "time": "2021-07-20T11:28:43+00:00" 710 | }, 711 | { 712 | "name": "phar-io/version", 713 | "version": "3.1.0", 714 | "source": { 715 | "type": "git", 716 | "url": "https://github.com/phar-io/version.git", 717 | "reference": "bae7c545bef187884426f042434e561ab1ddb182" 718 | }, 719 | "dist": { 720 | "type": "zip", 721 | "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", 722 | "reference": "bae7c545bef187884426f042434e561ab1ddb182", 723 | "shasum": "" 724 | }, 725 | "require": { 726 | "php": "^7.2 || ^8.0" 727 | }, 728 | "type": "library", 729 | "autoload": { 730 | "classmap": [ 731 | "src/" 732 | ] 733 | }, 734 | "notification-url": "https://packagist.org/downloads/", 735 | "license": [ 736 | "BSD-3-Clause" 737 | ], 738 | "authors": [ 739 | { 740 | "name": "Arne Blankerts", 741 | "email": "arne@blankerts.de", 742 | "role": "Developer" 743 | }, 744 | { 745 | "name": "Sebastian Heuer", 746 | "email": "sebastian@phpeople.de", 747 | "role": "Developer" 748 | }, 749 | { 750 | "name": "Sebastian Bergmann", 751 | "email": "sebastian@phpunit.de", 752 | "role": "Developer" 753 | } 754 | ], 755 | "description": "Library for handling version information and constraints", 756 | "support": { 757 | "issues": "https://github.com/phar-io/version/issues", 758 | "source": "https://github.com/phar-io/version/tree/3.1.0" 759 | }, 760 | "time": "2021-02-23T14:00:09+00:00" 761 | }, 762 | { 763 | "name": "php-cs-fixer/diff", 764 | "version": "v2.0.2", 765 | "source": { 766 | "type": "git", 767 | "url": "https://github.com/PHP-CS-Fixer/diff.git", 768 | "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3" 769 | }, 770 | "dist": { 771 | "type": "zip", 772 | "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3", 773 | "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3", 774 | "shasum": "" 775 | }, 776 | "require": { 777 | "php": "^5.6 || ^7.0 || ^8.0" 778 | }, 779 | "require-dev": { 780 | "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", 781 | "symfony/process": "^3.3" 782 | }, 783 | "type": "library", 784 | "autoload": { 785 | "classmap": [ 786 | "src/" 787 | ] 788 | }, 789 | "notification-url": "https://packagist.org/downloads/", 790 | "license": [ 791 | "BSD-3-Clause" 792 | ], 793 | "authors": [ 794 | { 795 | "name": "Sebastian Bergmann", 796 | "email": "sebastian@phpunit.de" 797 | }, 798 | { 799 | "name": "Kore Nordmann", 800 | "email": "mail@kore-nordmann.de" 801 | } 802 | ], 803 | "description": "sebastian/diff v3 backport support for PHP 5.6+", 804 | "homepage": "https://github.com/PHP-CS-Fixer", 805 | "keywords": [ 806 | "diff" 807 | ], 808 | "support": { 809 | "issues": "https://github.com/PHP-CS-Fixer/diff/issues", 810 | "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2" 811 | }, 812 | "time": "2020-10-14T08:32:19+00:00" 813 | }, 814 | { 815 | "name": "phpdocumentor/reflection-common", 816 | "version": "2.2.0", 817 | "source": { 818 | "type": "git", 819 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 820 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 821 | }, 822 | "dist": { 823 | "type": "zip", 824 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 825 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 826 | "shasum": "" 827 | }, 828 | "require": { 829 | "php": "^7.2 || ^8.0" 830 | }, 831 | "type": "library", 832 | "extra": { 833 | "branch-alias": { 834 | "dev-2.x": "2.x-dev" 835 | } 836 | }, 837 | "autoload": { 838 | "psr-4": { 839 | "phpDocumentor\\Reflection\\": "src/" 840 | } 841 | }, 842 | "notification-url": "https://packagist.org/downloads/", 843 | "license": [ 844 | "MIT" 845 | ], 846 | "authors": [ 847 | { 848 | "name": "Jaap van Otterdijk", 849 | "email": "opensource@ijaap.nl" 850 | } 851 | ], 852 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 853 | "homepage": "http://www.phpdoc.org", 854 | "keywords": [ 855 | "FQSEN", 856 | "phpDocumentor", 857 | "phpdoc", 858 | "reflection", 859 | "static analysis" 860 | ], 861 | "support": { 862 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 863 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 864 | }, 865 | "time": "2020-06-27T09:03:43+00:00" 866 | }, 867 | { 868 | "name": "phpdocumentor/reflection-docblock", 869 | "version": "5.3.0", 870 | "source": { 871 | "type": "git", 872 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 873 | "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" 874 | }, 875 | "dist": { 876 | "type": "zip", 877 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", 878 | "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", 879 | "shasum": "" 880 | }, 881 | "require": { 882 | "ext-filter": "*", 883 | "php": "^7.2 || ^8.0", 884 | "phpdocumentor/reflection-common": "^2.2", 885 | "phpdocumentor/type-resolver": "^1.3", 886 | "webmozart/assert": "^1.9.1" 887 | }, 888 | "require-dev": { 889 | "mockery/mockery": "~1.3.2", 890 | "psalm/phar": "^4.8" 891 | }, 892 | "type": "library", 893 | "extra": { 894 | "branch-alias": { 895 | "dev-master": "5.x-dev" 896 | } 897 | }, 898 | "autoload": { 899 | "psr-4": { 900 | "phpDocumentor\\Reflection\\": "src" 901 | } 902 | }, 903 | "notification-url": "https://packagist.org/downloads/", 904 | "license": [ 905 | "MIT" 906 | ], 907 | "authors": [ 908 | { 909 | "name": "Mike van Riel", 910 | "email": "me@mikevanriel.com" 911 | }, 912 | { 913 | "name": "Jaap van Otterdijk", 914 | "email": "account@ijaap.nl" 915 | } 916 | ], 917 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 918 | "support": { 919 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 920 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" 921 | }, 922 | "time": "2021-10-19T17:43:47+00:00" 923 | }, 924 | { 925 | "name": "phpdocumentor/type-resolver", 926 | "version": "1.5.1", 927 | "source": { 928 | "type": "git", 929 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 930 | "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" 931 | }, 932 | "dist": { 933 | "type": "zip", 934 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", 935 | "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", 936 | "shasum": "" 937 | }, 938 | "require": { 939 | "php": "^7.2 || ^8.0", 940 | "phpdocumentor/reflection-common": "^2.0" 941 | }, 942 | "require-dev": { 943 | "ext-tokenizer": "*", 944 | "psalm/phar": "^4.8" 945 | }, 946 | "type": "library", 947 | "extra": { 948 | "branch-alias": { 949 | "dev-1.x": "1.x-dev" 950 | } 951 | }, 952 | "autoload": { 953 | "psr-4": { 954 | "phpDocumentor\\Reflection\\": "src" 955 | } 956 | }, 957 | "notification-url": "https://packagist.org/downloads/", 958 | "license": [ 959 | "MIT" 960 | ], 961 | "authors": [ 962 | { 963 | "name": "Mike van Riel", 964 | "email": "me@mikevanriel.com" 965 | } 966 | ], 967 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 968 | "support": { 969 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 970 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" 971 | }, 972 | "time": "2021-10-02T14:08:47+00:00" 973 | }, 974 | { 975 | "name": "phpspec/prophecy", 976 | "version": "v1.15.0", 977 | "source": { 978 | "type": "git", 979 | "url": "https://github.com/phpspec/prophecy.git", 980 | "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" 981 | }, 982 | "dist": { 983 | "type": "zip", 984 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", 985 | "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", 986 | "shasum": "" 987 | }, 988 | "require": { 989 | "doctrine/instantiator": "^1.2", 990 | "php": "^7.2 || ~8.0, <8.2", 991 | "phpdocumentor/reflection-docblock": "^5.2", 992 | "sebastian/comparator": "^3.0 || ^4.0", 993 | "sebastian/recursion-context": "^3.0 || ^4.0" 994 | }, 995 | "require-dev": { 996 | "phpspec/phpspec": "^6.0 || ^7.0", 997 | "phpunit/phpunit": "^8.0 || ^9.0" 998 | }, 999 | "type": "library", 1000 | "extra": { 1001 | "branch-alias": { 1002 | "dev-master": "1.x-dev" 1003 | } 1004 | }, 1005 | "autoload": { 1006 | "psr-4": { 1007 | "Prophecy\\": "src/Prophecy" 1008 | } 1009 | }, 1010 | "notification-url": "https://packagist.org/downloads/", 1011 | "license": [ 1012 | "MIT" 1013 | ], 1014 | "authors": [ 1015 | { 1016 | "name": "Konstantin Kudryashov", 1017 | "email": "ever.zet@gmail.com", 1018 | "homepage": "http://everzet.com" 1019 | }, 1020 | { 1021 | "name": "Marcello Duarte", 1022 | "email": "marcello.duarte@gmail.com" 1023 | } 1024 | ], 1025 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1026 | "homepage": "https://github.com/phpspec/prophecy", 1027 | "keywords": [ 1028 | "Double", 1029 | "Dummy", 1030 | "fake", 1031 | "mock", 1032 | "spy", 1033 | "stub" 1034 | ], 1035 | "support": { 1036 | "issues": "https://github.com/phpspec/prophecy/issues", 1037 | "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" 1038 | }, 1039 | "time": "2021-12-08T12:19:24+00:00" 1040 | }, 1041 | { 1042 | "name": "phpunit/php-code-coverage", 1043 | "version": "9.2.10", 1044 | "source": { 1045 | "type": "git", 1046 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1047 | "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" 1048 | }, 1049 | "dist": { 1050 | "type": "zip", 1051 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", 1052 | "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", 1053 | "shasum": "" 1054 | }, 1055 | "require": { 1056 | "ext-dom": "*", 1057 | "ext-libxml": "*", 1058 | "ext-xmlwriter": "*", 1059 | "nikic/php-parser": "^4.13.0", 1060 | "php": ">=7.3", 1061 | "phpunit/php-file-iterator": "^3.0.3", 1062 | "phpunit/php-text-template": "^2.0.2", 1063 | "sebastian/code-unit-reverse-lookup": "^2.0.2", 1064 | "sebastian/complexity": "^2.0", 1065 | "sebastian/environment": "^5.1.2", 1066 | "sebastian/lines-of-code": "^1.0.3", 1067 | "sebastian/version": "^3.0.1", 1068 | "theseer/tokenizer": "^1.2.0" 1069 | }, 1070 | "require-dev": { 1071 | "phpunit/phpunit": "^9.3" 1072 | }, 1073 | "suggest": { 1074 | "ext-pcov": "*", 1075 | "ext-xdebug": "*" 1076 | }, 1077 | "type": "library", 1078 | "extra": { 1079 | "branch-alias": { 1080 | "dev-master": "9.2-dev" 1081 | } 1082 | }, 1083 | "autoload": { 1084 | "classmap": [ 1085 | "src/" 1086 | ] 1087 | }, 1088 | "notification-url": "https://packagist.org/downloads/", 1089 | "license": [ 1090 | "BSD-3-Clause" 1091 | ], 1092 | "authors": [ 1093 | { 1094 | "name": "Sebastian Bergmann", 1095 | "email": "sebastian@phpunit.de", 1096 | "role": "lead" 1097 | } 1098 | ], 1099 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1100 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1101 | "keywords": [ 1102 | "coverage", 1103 | "testing", 1104 | "xunit" 1105 | ], 1106 | "support": { 1107 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 1108 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" 1109 | }, 1110 | "funding": [ 1111 | { 1112 | "url": "https://github.com/sebastianbergmann", 1113 | "type": "github" 1114 | } 1115 | ], 1116 | "time": "2021-12-05T09:12:13+00:00" 1117 | }, 1118 | { 1119 | "name": "phpunit/php-file-iterator", 1120 | "version": "3.0.6", 1121 | "source": { 1122 | "type": "git", 1123 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1124 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" 1125 | }, 1126 | "dist": { 1127 | "type": "zip", 1128 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", 1129 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", 1130 | "shasum": "" 1131 | }, 1132 | "require": { 1133 | "php": ">=7.3" 1134 | }, 1135 | "require-dev": { 1136 | "phpunit/phpunit": "^9.3" 1137 | }, 1138 | "type": "library", 1139 | "extra": { 1140 | "branch-alias": { 1141 | "dev-master": "3.0-dev" 1142 | } 1143 | }, 1144 | "autoload": { 1145 | "classmap": [ 1146 | "src/" 1147 | ] 1148 | }, 1149 | "notification-url": "https://packagist.org/downloads/", 1150 | "license": [ 1151 | "BSD-3-Clause" 1152 | ], 1153 | "authors": [ 1154 | { 1155 | "name": "Sebastian Bergmann", 1156 | "email": "sebastian@phpunit.de", 1157 | "role": "lead" 1158 | } 1159 | ], 1160 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1161 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1162 | "keywords": [ 1163 | "filesystem", 1164 | "iterator" 1165 | ], 1166 | "support": { 1167 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 1168 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" 1169 | }, 1170 | "funding": [ 1171 | { 1172 | "url": "https://github.com/sebastianbergmann", 1173 | "type": "github" 1174 | } 1175 | ], 1176 | "time": "2021-12-02T12:48:52+00:00" 1177 | }, 1178 | { 1179 | "name": "phpunit/php-invoker", 1180 | "version": "3.1.1", 1181 | "source": { 1182 | "type": "git", 1183 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 1184 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" 1185 | }, 1186 | "dist": { 1187 | "type": "zip", 1188 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 1189 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 1190 | "shasum": "" 1191 | }, 1192 | "require": { 1193 | "php": ">=7.3" 1194 | }, 1195 | "require-dev": { 1196 | "ext-pcntl": "*", 1197 | "phpunit/phpunit": "^9.3" 1198 | }, 1199 | "suggest": { 1200 | "ext-pcntl": "*" 1201 | }, 1202 | "type": "library", 1203 | "extra": { 1204 | "branch-alias": { 1205 | "dev-master": "3.1-dev" 1206 | } 1207 | }, 1208 | "autoload": { 1209 | "classmap": [ 1210 | "src/" 1211 | ] 1212 | }, 1213 | "notification-url": "https://packagist.org/downloads/", 1214 | "license": [ 1215 | "BSD-3-Clause" 1216 | ], 1217 | "authors": [ 1218 | { 1219 | "name": "Sebastian Bergmann", 1220 | "email": "sebastian@phpunit.de", 1221 | "role": "lead" 1222 | } 1223 | ], 1224 | "description": "Invoke callables with a timeout", 1225 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 1226 | "keywords": [ 1227 | "process" 1228 | ], 1229 | "support": { 1230 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 1231 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" 1232 | }, 1233 | "funding": [ 1234 | { 1235 | "url": "https://github.com/sebastianbergmann", 1236 | "type": "github" 1237 | } 1238 | ], 1239 | "time": "2020-09-28T05:58:55+00:00" 1240 | }, 1241 | { 1242 | "name": "phpunit/php-text-template", 1243 | "version": "2.0.4", 1244 | "source": { 1245 | "type": "git", 1246 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1247 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" 1248 | }, 1249 | "dist": { 1250 | "type": "zip", 1251 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 1252 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 1253 | "shasum": "" 1254 | }, 1255 | "require": { 1256 | "php": ">=7.3" 1257 | }, 1258 | "require-dev": { 1259 | "phpunit/phpunit": "^9.3" 1260 | }, 1261 | "type": "library", 1262 | "extra": { 1263 | "branch-alias": { 1264 | "dev-master": "2.0-dev" 1265 | } 1266 | }, 1267 | "autoload": { 1268 | "classmap": [ 1269 | "src/" 1270 | ] 1271 | }, 1272 | "notification-url": "https://packagist.org/downloads/", 1273 | "license": [ 1274 | "BSD-3-Clause" 1275 | ], 1276 | "authors": [ 1277 | { 1278 | "name": "Sebastian Bergmann", 1279 | "email": "sebastian@phpunit.de", 1280 | "role": "lead" 1281 | } 1282 | ], 1283 | "description": "Simple template engine.", 1284 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1285 | "keywords": [ 1286 | "template" 1287 | ], 1288 | "support": { 1289 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 1290 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" 1291 | }, 1292 | "funding": [ 1293 | { 1294 | "url": "https://github.com/sebastianbergmann", 1295 | "type": "github" 1296 | } 1297 | ], 1298 | "time": "2020-10-26T05:33:50+00:00" 1299 | }, 1300 | { 1301 | "name": "phpunit/php-timer", 1302 | "version": "5.0.3", 1303 | "source": { 1304 | "type": "git", 1305 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1306 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" 1307 | }, 1308 | "dist": { 1309 | "type": "zip", 1310 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 1311 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 1312 | "shasum": "" 1313 | }, 1314 | "require": { 1315 | "php": ">=7.3" 1316 | }, 1317 | "require-dev": { 1318 | "phpunit/phpunit": "^9.3" 1319 | }, 1320 | "type": "library", 1321 | "extra": { 1322 | "branch-alias": { 1323 | "dev-master": "5.0-dev" 1324 | } 1325 | }, 1326 | "autoload": { 1327 | "classmap": [ 1328 | "src/" 1329 | ] 1330 | }, 1331 | "notification-url": "https://packagist.org/downloads/", 1332 | "license": [ 1333 | "BSD-3-Clause" 1334 | ], 1335 | "authors": [ 1336 | { 1337 | "name": "Sebastian Bergmann", 1338 | "email": "sebastian@phpunit.de", 1339 | "role": "lead" 1340 | } 1341 | ], 1342 | "description": "Utility class for timing", 1343 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1344 | "keywords": [ 1345 | "timer" 1346 | ], 1347 | "support": { 1348 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 1349 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" 1350 | }, 1351 | "funding": [ 1352 | { 1353 | "url": "https://github.com/sebastianbergmann", 1354 | "type": "github" 1355 | } 1356 | ], 1357 | "time": "2020-10-26T13:16:10+00:00" 1358 | }, 1359 | { 1360 | "name": "phpunit/phpunit", 1361 | "version": "9.5.11", 1362 | "source": { 1363 | "type": "git", 1364 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1365 | "reference": "2406855036db1102126125537adb1406f7242fdd" 1366 | }, 1367 | "dist": { 1368 | "type": "zip", 1369 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2406855036db1102126125537adb1406f7242fdd", 1370 | "reference": "2406855036db1102126125537adb1406f7242fdd", 1371 | "shasum": "" 1372 | }, 1373 | "require": { 1374 | "doctrine/instantiator": "^1.3.1", 1375 | "ext-dom": "*", 1376 | "ext-json": "*", 1377 | "ext-libxml": "*", 1378 | "ext-mbstring": "*", 1379 | "ext-xml": "*", 1380 | "ext-xmlwriter": "*", 1381 | "myclabs/deep-copy": "^1.10.1", 1382 | "phar-io/manifest": "^2.0.3", 1383 | "phar-io/version": "^3.0.2", 1384 | "php": ">=7.3", 1385 | "phpspec/prophecy": "^1.12.1", 1386 | "phpunit/php-code-coverage": "^9.2.7", 1387 | "phpunit/php-file-iterator": "^3.0.5", 1388 | "phpunit/php-invoker": "^3.1.1", 1389 | "phpunit/php-text-template": "^2.0.3", 1390 | "phpunit/php-timer": "^5.0.2", 1391 | "sebastian/cli-parser": "^1.0.1", 1392 | "sebastian/code-unit": "^1.0.6", 1393 | "sebastian/comparator": "^4.0.5", 1394 | "sebastian/diff": "^4.0.3", 1395 | "sebastian/environment": "^5.1.3", 1396 | "sebastian/exporter": "^4.0.3", 1397 | "sebastian/global-state": "^5.0.1", 1398 | "sebastian/object-enumerator": "^4.0.3", 1399 | "sebastian/resource-operations": "^3.0.3", 1400 | "sebastian/type": "^2.3.4", 1401 | "sebastian/version": "^3.0.2" 1402 | }, 1403 | "require-dev": { 1404 | "ext-pdo": "*", 1405 | "phpspec/prophecy-phpunit": "^2.0.1" 1406 | }, 1407 | "suggest": { 1408 | "ext-soap": "*", 1409 | "ext-xdebug": "*" 1410 | }, 1411 | "bin": [ 1412 | "phpunit" 1413 | ], 1414 | "type": "library", 1415 | "extra": { 1416 | "branch-alias": { 1417 | "dev-master": "9.5-dev" 1418 | } 1419 | }, 1420 | "autoload": { 1421 | "classmap": [ 1422 | "src/" 1423 | ], 1424 | "files": [ 1425 | "src/Framework/Assert/Functions.php" 1426 | ] 1427 | }, 1428 | "notification-url": "https://packagist.org/downloads/", 1429 | "license": [ 1430 | "BSD-3-Clause" 1431 | ], 1432 | "authors": [ 1433 | { 1434 | "name": "Sebastian Bergmann", 1435 | "email": "sebastian@phpunit.de", 1436 | "role": "lead" 1437 | } 1438 | ], 1439 | "description": "The PHP Unit Testing framework.", 1440 | "homepage": "https://phpunit.de/", 1441 | "keywords": [ 1442 | "phpunit", 1443 | "testing", 1444 | "xunit" 1445 | ], 1446 | "support": { 1447 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 1448 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.11" 1449 | }, 1450 | "funding": [ 1451 | { 1452 | "url": "https://phpunit.de/sponsors.html", 1453 | "type": "custom" 1454 | }, 1455 | { 1456 | "url": "https://github.com/sebastianbergmann", 1457 | "type": "github" 1458 | } 1459 | ], 1460 | "time": "2021-12-25T07:07:57+00:00" 1461 | }, 1462 | { 1463 | "name": "psr/cache", 1464 | "version": "1.0.1", 1465 | "source": { 1466 | "type": "git", 1467 | "url": "https://github.com/php-fig/cache.git", 1468 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" 1469 | }, 1470 | "dist": { 1471 | "type": "zip", 1472 | "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", 1473 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", 1474 | "shasum": "" 1475 | }, 1476 | "require": { 1477 | "php": ">=5.3.0" 1478 | }, 1479 | "type": "library", 1480 | "extra": { 1481 | "branch-alias": { 1482 | "dev-master": "1.0.x-dev" 1483 | } 1484 | }, 1485 | "autoload": { 1486 | "psr-4": { 1487 | "Psr\\Cache\\": "src/" 1488 | } 1489 | }, 1490 | "notification-url": "https://packagist.org/downloads/", 1491 | "license": [ 1492 | "MIT" 1493 | ], 1494 | "authors": [ 1495 | { 1496 | "name": "PHP-FIG", 1497 | "homepage": "http://www.php-fig.org/" 1498 | } 1499 | ], 1500 | "description": "Common interface for caching libraries", 1501 | "keywords": [ 1502 | "cache", 1503 | "psr", 1504 | "psr-6" 1505 | ], 1506 | "support": { 1507 | "source": "https://github.com/php-fig/cache/tree/master" 1508 | }, 1509 | "time": "2016-08-06T20:24:11+00:00" 1510 | }, 1511 | { 1512 | "name": "psr/container", 1513 | "version": "1.1.1", 1514 | "source": { 1515 | "type": "git", 1516 | "url": "https://github.com/php-fig/container.git", 1517 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" 1518 | }, 1519 | "dist": { 1520 | "type": "zip", 1521 | "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", 1522 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", 1523 | "shasum": "" 1524 | }, 1525 | "require": { 1526 | "php": ">=7.2.0" 1527 | }, 1528 | "type": "library", 1529 | "autoload": { 1530 | "psr-4": { 1531 | "Psr\\Container\\": "src/" 1532 | } 1533 | }, 1534 | "notification-url": "https://packagist.org/downloads/", 1535 | "license": [ 1536 | "MIT" 1537 | ], 1538 | "authors": [ 1539 | { 1540 | "name": "PHP-FIG", 1541 | "homepage": "https://www.php-fig.org/" 1542 | } 1543 | ], 1544 | "description": "Common Container Interface (PHP FIG PSR-11)", 1545 | "homepage": "https://github.com/php-fig/container", 1546 | "keywords": [ 1547 | "PSR-11", 1548 | "container", 1549 | "container-interface", 1550 | "container-interop", 1551 | "psr" 1552 | ], 1553 | "support": { 1554 | "issues": "https://github.com/php-fig/container/issues", 1555 | "source": "https://github.com/php-fig/container/tree/1.1.1" 1556 | }, 1557 | "time": "2021-03-05T17:36:06+00:00" 1558 | }, 1559 | { 1560 | "name": "psr/event-dispatcher", 1561 | "version": "1.0.0", 1562 | "source": { 1563 | "type": "git", 1564 | "url": "https://github.com/php-fig/event-dispatcher.git", 1565 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" 1566 | }, 1567 | "dist": { 1568 | "type": "zip", 1569 | "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", 1570 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", 1571 | "shasum": "" 1572 | }, 1573 | "require": { 1574 | "php": ">=7.2.0" 1575 | }, 1576 | "type": "library", 1577 | "extra": { 1578 | "branch-alias": { 1579 | "dev-master": "1.0.x-dev" 1580 | } 1581 | }, 1582 | "autoload": { 1583 | "psr-4": { 1584 | "Psr\\EventDispatcher\\": "src/" 1585 | } 1586 | }, 1587 | "notification-url": "https://packagist.org/downloads/", 1588 | "license": [ 1589 | "MIT" 1590 | ], 1591 | "authors": [ 1592 | { 1593 | "name": "PHP-FIG", 1594 | "homepage": "http://www.php-fig.org/" 1595 | } 1596 | ], 1597 | "description": "Standard interfaces for event handling.", 1598 | "keywords": [ 1599 | "events", 1600 | "psr", 1601 | "psr-14" 1602 | ], 1603 | "support": { 1604 | "issues": "https://github.com/php-fig/event-dispatcher/issues", 1605 | "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" 1606 | }, 1607 | "time": "2019-01-08T18:20:26+00:00" 1608 | }, 1609 | { 1610 | "name": "psr/log", 1611 | "version": "1.1.4", 1612 | "source": { 1613 | "type": "git", 1614 | "url": "https://github.com/php-fig/log.git", 1615 | "reference": "d49695b909c3b7628b6289db5479a1c204601f11" 1616 | }, 1617 | "dist": { 1618 | "type": "zip", 1619 | "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", 1620 | "reference": "d49695b909c3b7628b6289db5479a1c204601f11", 1621 | "shasum": "" 1622 | }, 1623 | "require": { 1624 | "php": ">=5.3.0" 1625 | }, 1626 | "type": "library", 1627 | "extra": { 1628 | "branch-alias": { 1629 | "dev-master": "1.1.x-dev" 1630 | } 1631 | }, 1632 | "autoload": { 1633 | "psr-4": { 1634 | "Psr\\Log\\": "Psr/Log/" 1635 | } 1636 | }, 1637 | "notification-url": "https://packagist.org/downloads/", 1638 | "license": [ 1639 | "MIT" 1640 | ], 1641 | "authors": [ 1642 | { 1643 | "name": "PHP-FIG", 1644 | "homepage": "https://www.php-fig.org/" 1645 | } 1646 | ], 1647 | "description": "Common interface for logging libraries", 1648 | "homepage": "https://github.com/php-fig/log", 1649 | "keywords": [ 1650 | "log", 1651 | "psr", 1652 | "psr-3" 1653 | ], 1654 | "support": { 1655 | "source": "https://github.com/php-fig/log/tree/1.1.4" 1656 | }, 1657 | "time": "2021-05-03T11:20:27+00:00" 1658 | }, 1659 | { 1660 | "name": "sebastian/cli-parser", 1661 | "version": "1.0.1", 1662 | "source": { 1663 | "type": "git", 1664 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 1665 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" 1666 | }, 1667 | "dist": { 1668 | "type": "zip", 1669 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", 1670 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", 1671 | "shasum": "" 1672 | }, 1673 | "require": { 1674 | "php": ">=7.3" 1675 | }, 1676 | "require-dev": { 1677 | "phpunit/phpunit": "^9.3" 1678 | }, 1679 | "type": "library", 1680 | "extra": { 1681 | "branch-alias": { 1682 | "dev-master": "1.0-dev" 1683 | } 1684 | }, 1685 | "autoload": { 1686 | "classmap": [ 1687 | "src/" 1688 | ] 1689 | }, 1690 | "notification-url": "https://packagist.org/downloads/", 1691 | "license": [ 1692 | "BSD-3-Clause" 1693 | ], 1694 | "authors": [ 1695 | { 1696 | "name": "Sebastian Bergmann", 1697 | "email": "sebastian@phpunit.de", 1698 | "role": "lead" 1699 | } 1700 | ], 1701 | "description": "Library for parsing CLI options", 1702 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 1703 | "support": { 1704 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 1705 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" 1706 | }, 1707 | "funding": [ 1708 | { 1709 | "url": "https://github.com/sebastianbergmann", 1710 | "type": "github" 1711 | } 1712 | ], 1713 | "time": "2020-09-28T06:08:49+00:00" 1714 | }, 1715 | { 1716 | "name": "sebastian/code-unit", 1717 | "version": "1.0.8", 1718 | "source": { 1719 | "type": "git", 1720 | "url": "https://github.com/sebastianbergmann/code-unit.git", 1721 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" 1722 | }, 1723 | "dist": { 1724 | "type": "zip", 1725 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", 1726 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", 1727 | "shasum": "" 1728 | }, 1729 | "require": { 1730 | "php": ">=7.3" 1731 | }, 1732 | "require-dev": { 1733 | "phpunit/phpunit": "^9.3" 1734 | }, 1735 | "type": "library", 1736 | "extra": { 1737 | "branch-alias": { 1738 | "dev-master": "1.0-dev" 1739 | } 1740 | }, 1741 | "autoload": { 1742 | "classmap": [ 1743 | "src/" 1744 | ] 1745 | }, 1746 | "notification-url": "https://packagist.org/downloads/", 1747 | "license": [ 1748 | "BSD-3-Clause" 1749 | ], 1750 | "authors": [ 1751 | { 1752 | "name": "Sebastian Bergmann", 1753 | "email": "sebastian@phpunit.de", 1754 | "role": "lead" 1755 | } 1756 | ], 1757 | "description": "Collection of value objects that represent the PHP code units", 1758 | "homepage": "https://github.com/sebastianbergmann/code-unit", 1759 | "support": { 1760 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 1761 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" 1762 | }, 1763 | "funding": [ 1764 | { 1765 | "url": "https://github.com/sebastianbergmann", 1766 | "type": "github" 1767 | } 1768 | ], 1769 | "time": "2020-10-26T13:08:54+00:00" 1770 | }, 1771 | { 1772 | "name": "sebastian/code-unit-reverse-lookup", 1773 | "version": "2.0.3", 1774 | "source": { 1775 | "type": "git", 1776 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 1777 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" 1778 | }, 1779 | "dist": { 1780 | "type": "zip", 1781 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 1782 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 1783 | "shasum": "" 1784 | }, 1785 | "require": { 1786 | "php": ">=7.3" 1787 | }, 1788 | "require-dev": { 1789 | "phpunit/phpunit": "^9.3" 1790 | }, 1791 | "type": "library", 1792 | "extra": { 1793 | "branch-alias": { 1794 | "dev-master": "2.0-dev" 1795 | } 1796 | }, 1797 | "autoload": { 1798 | "classmap": [ 1799 | "src/" 1800 | ] 1801 | }, 1802 | "notification-url": "https://packagist.org/downloads/", 1803 | "license": [ 1804 | "BSD-3-Clause" 1805 | ], 1806 | "authors": [ 1807 | { 1808 | "name": "Sebastian Bergmann", 1809 | "email": "sebastian@phpunit.de" 1810 | } 1811 | ], 1812 | "description": "Looks up which function or method a line of code belongs to", 1813 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1814 | "support": { 1815 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 1816 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" 1817 | }, 1818 | "funding": [ 1819 | { 1820 | "url": "https://github.com/sebastianbergmann", 1821 | "type": "github" 1822 | } 1823 | ], 1824 | "time": "2020-09-28T05:30:19+00:00" 1825 | }, 1826 | { 1827 | "name": "sebastian/comparator", 1828 | "version": "4.0.6", 1829 | "source": { 1830 | "type": "git", 1831 | "url": "https://github.com/sebastianbergmann/comparator.git", 1832 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382" 1833 | }, 1834 | "dist": { 1835 | "type": "zip", 1836 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", 1837 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382", 1838 | "shasum": "" 1839 | }, 1840 | "require": { 1841 | "php": ">=7.3", 1842 | "sebastian/diff": "^4.0", 1843 | "sebastian/exporter": "^4.0" 1844 | }, 1845 | "require-dev": { 1846 | "phpunit/phpunit": "^9.3" 1847 | }, 1848 | "type": "library", 1849 | "extra": { 1850 | "branch-alias": { 1851 | "dev-master": "4.0-dev" 1852 | } 1853 | }, 1854 | "autoload": { 1855 | "classmap": [ 1856 | "src/" 1857 | ] 1858 | }, 1859 | "notification-url": "https://packagist.org/downloads/", 1860 | "license": [ 1861 | "BSD-3-Clause" 1862 | ], 1863 | "authors": [ 1864 | { 1865 | "name": "Sebastian Bergmann", 1866 | "email": "sebastian@phpunit.de" 1867 | }, 1868 | { 1869 | "name": "Jeff Welch", 1870 | "email": "whatthejeff@gmail.com" 1871 | }, 1872 | { 1873 | "name": "Volker Dusch", 1874 | "email": "github@wallbash.com" 1875 | }, 1876 | { 1877 | "name": "Bernhard Schussek", 1878 | "email": "bschussek@2bepublished.at" 1879 | } 1880 | ], 1881 | "description": "Provides the functionality to compare PHP values for equality", 1882 | "homepage": "https://github.com/sebastianbergmann/comparator", 1883 | "keywords": [ 1884 | "comparator", 1885 | "compare", 1886 | "equality" 1887 | ], 1888 | "support": { 1889 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 1890 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" 1891 | }, 1892 | "funding": [ 1893 | { 1894 | "url": "https://github.com/sebastianbergmann", 1895 | "type": "github" 1896 | } 1897 | ], 1898 | "time": "2020-10-26T15:49:45+00:00" 1899 | }, 1900 | { 1901 | "name": "sebastian/complexity", 1902 | "version": "2.0.2", 1903 | "source": { 1904 | "type": "git", 1905 | "url": "https://github.com/sebastianbergmann/complexity.git", 1906 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" 1907 | }, 1908 | "dist": { 1909 | "type": "zip", 1910 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", 1911 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", 1912 | "shasum": "" 1913 | }, 1914 | "require": { 1915 | "nikic/php-parser": "^4.7", 1916 | "php": ">=7.3" 1917 | }, 1918 | "require-dev": { 1919 | "phpunit/phpunit": "^9.3" 1920 | }, 1921 | "type": "library", 1922 | "extra": { 1923 | "branch-alias": { 1924 | "dev-master": "2.0-dev" 1925 | } 1926 | }, 1927 | "autoload": { 1928 | "classmap": [ 1929 | "src/" 1930 | ] 1931 | }, 1932 | "notification-url": "https://packagist.org/downloads/", 1933 | "license": [ 1934 | "BSD-3-Clause" 1935 | ], 1936 | "authors": [ 1937 | { 1938 | "name": "Sebastian Bergmann", 1939 | "email": "sebastian@phpunit.de", 1940 | "role": "lead" 1941 | } 1942 | ], 1943 | "description": "Library for calculating the complexity of PHP code units", 1944 | "homepage": "https://github.com/sebastianbergmann/complexity", 1945 | "support": { 1946 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 1947 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" 1948 | }, 1949 | "funding": [ 1950 | { 1951 | "url": "https://github.com/sebastianbergmann", 1952 | "type": "github" 1953 | } 1954 | ], 1955 | "time": "2020-10-26T15:52:27+00:00" 1956 | }, 1957 | { 1958 | "name": "sebastian/diff", 1959 | "version": "4.0.4", 1960 | "source": { 1961 | "type": "git", 1962 | "url": "https://github.com/sebastianbergmann/diff.git", 1963 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" 1964 | }, 1965 | "dist": { 1966 | "type": "zip", 1967 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", 1968 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", 1969 | "shasum": "" 1970 | }, 1971 | "require": { 1972 | "php": ">=7.3" 1973 | }, 1974 | "require-dev": { 1975 | "phpunit/phpunit": "^9.3", 1976 | "symfony/process": "^4.2 || ^5" 1977 | }, 1978 | "type": "library", 1979 | "extra": { 1980 | "branch-alias": { 1981 | "dev-master": "4.0-dev" 1982 | } 1983 | }, 1984 | "autoload": { 1985 | "classmap": [ 1986 | "src/" 1987 | ] 1988 | }, 1989 | "notification-url": "https://packagist.org/downloads/", 1990 | "license": [ 1991 | "BSD-3-Clause" 1992 | ], 1993 | "authors": [ 1994 | { 1995 | "name": "Sebastian Bergmann", 1996 | "email": "sebastian@phpunit.de" 1997 | }, 1998 | { 1999 | "name": "Kore Nordmann", 2000 | "email": "mail@kore-nordmann.de" 2001 | } 2002 | ], 2003 | "description": "Diff implementation", 2004 | "homepage": "https://github.com/sebastianbergmann/diff", 2005 | "keywords": [ 2006 | "diff", 2007 | "udiff", 2008 | "unidiff", 2009 | "unified diff" 2010 | ], 2011 | "support": { 2012 | "issues": "https://github.com/sebastianbergmann/diff/issues", 2013 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" 2014 | }, 2015 | "funding": [ 2016 | { 2017 | "url": "https://github.com/sebastianbergmann", 2018 | "type": "github" 2019 | } 2020 | ], 2021 | "time": "2020-10-26T13:10:38+00:00" 2022 | }, 2023 | { 2024 | "name": "sebastian/environment", 2025 | "version": "5.1.3", 2026 | "source": { 2027 | "type": "git", 2028 | "url": "https://github.com/sebastianbergmann/environment.git", 2029 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac" 2030 | }, 2031 | "dist": { 2032 | "type": "zip", 2033 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", 2034 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac", 2035 | "shasum": "" 2036 | }, 2037 | "require": { 2038 | "php": ">=7.3" 2039 | }, 2040 | "require-dev": { 2041 | "phpunit/phpunit": "^9.3" 2042 | }, 2043 | "suggest": { 2044 | "ext-posix": "*" 2045 | }, 2046 | "type": "library", 2047 | "extra": { 2048 | "branch-alias": { 2049 | "dev-master": "5.1-dev" 2050 | } 2051 | }, 2052 | "autoload": { 2053 | "classmap": [ 2054 | "src/" 2055 | ] 2056 | }, 2057 | "notification-url": "https://packagist.org/downloads/", 2058 | "license": [ 2059 | "BSD-3-Clause" 2060 | ], 2061 | "authors": [ 2062 | { 2063 | "name": "Sebastian Bergmann", 2064 | "email": "sebastian@phpunit.de" 2065 | } 2066 | ], 2067 | "description": "Provides functionality to handle HHVM/PHP environments", 2068 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2069 | "keywords": [ 2070 | "Xdebug", 2071 | "environment", 2072 | "hhvm" 2073 | ], 2074 | "support": { 2075 | "issues": "https://github.com/sebastianbergmann/environment/issues", 2076 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" 2077 | }, 2078 | "funding": [ 2079 | { 2080 | "url": "https://github.com/sebastianbergmann", 2081 | "type": "github" 2082 | } 2083 | ], 2084 | "time": "2020-09-28T05:52:38+00:00" 2085 | }, 2086 | { 2087 | "name": "sebastian/exporter", 2088 | "version": "4.0.4", 2089 | "source": { 2090 | "type": "git", 2091 | "url": "https://github.com/sebastianbergmann/exporter.git", 2092 | "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" 2093 | }, 2094 | "dist": { 2095 | "type": "zip", 2096 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", 2097 | "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", 2098 | "shasum": "" 2099 | }, 2100 | "require": { 2101 | "php": ">=7.3", 2102 | "sebastian/recursion-context": "^4.0" 2103 | }, 2104 | "require-dev": { 2105 | "ext-mbstring": "*", 2106 | "phpunit/phpunit": "^9.3" 2107 | }, 2108 | "type": "library", 2109 | "extra": { 2110 | "branch-alias": { 2111 | "dev-master": "4.0-dev" 2112 | } 2113 | }, 2114 | "autoload": { 2115 | "classmap": [ 2116 | "src/" 2117 | ] 2118 | }, 2119 | "notification-url": "https://packagist.org/downloads/", 2120 | "license": [ 2121 | "BSD-3-Clause" 2122 | ], 2123 | "authors": [ 2124 | { 2125 | "name": "Sebastian Bergmann", 2126 | "email": "sebastian@phpunit.de" 2127 | }, 2128 | { 2129 | "name": "Jeff Welch", 2130 | "email": "whatthejeff@gmail.com" 2131 | }, 2132 | { 2133 | "name": "Volker Dusch", 2134 | "email": "github@wallbash.com" 2135 | }, 2136 | { 2137 | "name": "Adam Harvey", 2138 | "email": "aharvey@php.net" 2139 | }, 2140 | { 2141 | "name": "Bernhard Schussek", 2142 | "email": "bschussek@gmail.com" 2143 | } 2144 | ], 2145 | "description": "Provides the functionality to export PHP variables for visualization", 2146 | "homepage": "https://www.github.com/sebastianbergmann/exporter", 2147 | "keywords": [ 2148 | "export", 2149 | "exporter" 2150 | ], 2151 | "support": { 2152 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 2153 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" 2154 | }, 2155 | "funding": [ 2156 | { 2157 | "url": "https://github.com/sebastianbergmann", 2158 | "type": "github" 2159 | } 2160 | ], 2161 | "time": "2021-11-11T14:18:36+00:00" 2162 | }, 2163 | { 2164 | "name": "sebastian/global-state", 2165 | "version": "5.0.3", 2166 | "source": { 2167 | "type": "git", 2168 | "url": "https://github.com/sebastianbergmann/global-state.git", 2169 | "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" 2170 | }, 2171 | "dist": { 2172 | "type": "zip", 2173 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", 2174 | "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", 2175 | "shasum": "" 2176 | }, 2177 | "require": { 2178 | "php": ">=7.3", 2179 | "sebastian/object-reflector": "^2.0", 2180 | "sebastian/recursion-context": "^4.0" 2181 | }, 2182 | "require-dev": { 2183 | "ext-dom": "*", 2184 | "phpunit/phpunit": "^9.3" 2185 | }, 2186 | "suggest": { 2187 | "ext-uopz": "*" 2188 | }, 2189 | "type": "library", 2190 | "extra": { 2191 | "branch-alias": { 2192 | "dev-master": "5.0-dev" 2193 | } 2194 | }, 2195 | "autoload": { 2196 | "classmap": [ 2197 | "src/" 2198 | ] 2199 | }, 2200 | "notification-url": "https://packagist.org/downloads/", 2201 | "license": [ 2202 | "BSD-3-Clause" 2203 | ], 2204 | "authors": [ 2205 | { 2206 | "name": "Sebastian Bergmann", 2207 | "email": "sebastian@phpunit.de" 2208 | } 2209 | ], 2210 | "description": "Snapshotting of global state", 2211 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 2212 | "keywords": [ 2213 | "global state" 2214 | ], 2215 | "support": { 2216 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 2217 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" 2218 | }, 2219 | "funding": [ 2220 | { 2221 | "url": "https://github.com/sebastianbergmann", 2222 | "type": "github" 2223 | } 2224 | ], 2225 | "time": "2021-06-11T13:31:12+00:00" 2226 | }, 2227 | { 2228 | "name": "sebastian/lines-of-code", 2229 | "version": "1.0.3", 2230 | "source": { 2231 | "type": "git", 2232 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 2233 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" 2234 | }, 2235 | "dist": { 2236 | "type": "zip", 2237 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", 2238 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", 2239 | "shasum": "" 2240 | }, 2241 | "require": { 2242 | "nikic/php-parser": "^4.6", 2243 | "php": ">=7.3" 2244 | }, 2245 | "require-dev": { 2246 | "phpunit/phpunit": "^9.3" 2247 | }, 2248 | "type": "library", 2249 | "extra": { 2250 | "branch-alias": { 2251 | "dev-master": "1.0-dev" 2252 | } 2253 | }, 2254 | "autoload": { 2255 | "classmap": [ 2256 | "src/" 2257 | ] 2258 | }, 2259 | "notification-url": "https://packagist.org/downloads/", 2260 | "license": [ 2261 | "BSD-3-Clause" 2262 | ], 2263 | "authors": [ 2264 | { 2265 | "name": "Sebastian Bergmann", 2266 | "email": "sebastian@phpunit.de", 2267 | "role": "lead" 2268 | } 2269 | ], 2270 | "description": "Library for counting the lines of code in PHP source code", 2271 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 2272 | "support": { 2273 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 2274 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" 2275 | }, 2276 | "funding": [ 2277 | { 2278 | "url": "https://github.com/sebastianbergmann", 2279 | "type": "github" 2280 | } 2281 | ], 2282 | "time": "2020-11-28T06:42:11+00:00" 2283 | }, 2284 | { 2285 | "name": "sebastian/object-enumerator", 2286 | "version": "4.0.4", 2287 | "source": { 2288 | "type": "git", 2289 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2290 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" 2291 | }, 2292 | "dist": { 2293 | "type": "zip", 2294 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", 2295 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", 2296 | "shasum": "" 2297 | }, 2298 | "require": { 2299 | "php": ">=7.3", 2300 | "sebastian/object-reflector": "^2.0", 2301 | "sebastian/recursion-context": "^4.0" 2302 | }, 2303 | "require-dev": { 2304 | "phpunit/phpunit": "^9.3" 2305 | }, 2306 | "type": "library", 2307 | "extra": { 2308 | "branch-alias": { 2309 | "dev-master": "4.0-dev" 2310 | } 2311 | }, 2312 | "autoload": { 2313 | "classmap": [ 2314 | "src/" 2315 | ] 2316 | }, 2317 | "notification-url": "https://packagist.org/downloads/", 2318 | "license": [ 2319 | "BSD-3-Clause" 2320 | ], 2321 | "authors": [ 2322 | { 2323 | "name": "Sebastian Bergmann", 2324 | "email": "sebastian@phpunit.de" 2325 | } 2326 | ], 2327 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2328 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2329 | "support": { 2330 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 2331 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" 2332 | }, 2333 | "funding": [ 2334 | { 2335 | "url": "https://github.com/sebastianbergmann", 2336 | "type": "github" 2337 | } 2338 | ], 2339 | "time": "2020-10-26T13:12:34+00:00" 2340 | }, 2341 | { 2342 | "name": "sebastian/object-reflector", 2343 | "version": "2.0.4", 2344 | "source": { 2345 | "type": "git", 2346 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2347 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" 2348 | }, 2349 | "dist": { 2350 | "type": "zip", 2351 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 2352 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 2353 | "shasum": "" 2354 | }, 2355 | "require": { 2356 | "php": ">=7.3" 2357 | }, 2358 | "require-dev": { 2359 | "phpunit/phpunit": "^9.3" 2360 | }, 2361 | "type": "library", 2362 | "extra": { 2363 | "branch-alias": { 2364 | "dev-master": "2.0-dev" 2365 | } 2366 | }, 2367 | "autoload": { 2368 | "classmap": [ 2369 | "src/" 2370 | ] 2371 | }, 2372 | "notification-url": "https://packagist.org/downloads/", 2373 | "license": [ 2374 | "BSD-3-Clause" 2375 | ], 2376 | "authors": [ 2377 | { 2378 | "name": "Sebastian Bergmann", 2379 | "email": "sebastian@phpunit.de" 2380 | } 2381 | ], 2382 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2383 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2384 | "support": { 2385 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 2386 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" 2387 | }, 2388 | "funding": [ 2389 | { 2390 | "url": "https://github.com/sebastianbergmann", 2391 | "type": "github" 2392 | } 2393 | ], 2394 | "time": "2020-10-26T13:14:26+00:00" 2395 | }, 2396 | { 2397 | "name": "sebastian/recursion-context", 2398 | "version": "4.0.4", 2399 | "source": { 2400 | "type": "git", 2401 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2402 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" 2403 | }, 2404 | "dist": { 2405 | "type": "zip", 2406 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", 2407 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", 2408 | "shasum": "" 2409 | }, 2410 | "require": { 2411 | "php": ">=7.3" 2412 | }, 2413 | "require-dev": { 2414 | "phpunit/phpunit": "^9.3" 2415 | }, 2416 | "type": "library", 2417 | "extra": { 2418 | "branch-alias": { 2419 | "dev-master": "4.0-dev" 2420 | } 2421 | }, 2422 | "autoload": { 2423 | "classmap": [ 2424 | "src/" 2425 | ] 2426 | }, 2427 | "notification-url": "https://packagist.org/downloads/", 2428 | "license": [ 2429 | "BSD-3-Clause" 2430 | ], 2431 | "authors": [ 2432 | { 2433 | "name": "Sebastian Bergmann", 2434 | "email": "sebastian@phpunit.de" 2435 | }, 2436 | { 2437 | "name": "Jeff Welch", 2438 | "email": "whatthejeff@gmail.com" 2439 | }, 2440 | { 2441 | "name": "Adam Harvey", 2442 | "email": "aharvey@php.net" 2443 | } 2444 | ], 2445 | "description": "Provides functionality to recursively process PHP variables", 2446 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 2447 | "support": { 2448 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 2449 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" 2450 | }, 2451 | "funding": [ 2452 | { 2453 | "url": "https://github.com/sebastianbergmann", 2454 | "type": "github" 2455 | } 2456 | ], 2457 | "time": "2020-10-26T13:17:30+00:00" 2458 | }, 2459 | { 2460 | "name": "sebastian/resource-operations", 2461 | "version": "3.0.3", 2462 | "source": { 2463 | "type": "git", 2464 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 2465 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" 2466 | }, 2467 | "dist": { 2468 | "type": "zip", 2469 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 2470 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 2471 | "shasum": "" 2472 | }, 2473 | "require": { 2474 | "php": ">=7.3" 2475 | }, 2476 | "require-dev": { 2477 | "phpunit/phpunit": "^9.0" 2478 | }, 2479 | "type": "library", 2480 | "extra": { 2481 | "branch-alias": { 2482 | "dev-master": "3.0-dev" 2483 | } 2484 | }, 2485 | "autoload": { 2486 | "classmap": [ 2487 | "src/" 2488 | ] 2489 | }, 2490 | "notification-url": "https://packagist.org/downloads/", 2491 | "license": [ 2492 | "BSD-3-Clause" 2493 | ], 2494 | "authors": [ 2495 | { 2496 | "name": "Sebastian Bergmann", 2497 | "email": "sebastian@phpunit.de" 2498 | } 2499 | ], 2500 | "description": "Provides a list of PHP built-in functions that operate on resources", 2501 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 2502 | "support": { 2503 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 2504 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" 2505 | }, 2506 | "funding": [ 2507 | { 2508 | "url": "https://github.com/sebastianbergmann", 2509 | "type": "github" 2510 | } 2511 | ], 2512 | "time": "2020-09-28T06:45:17+00:00" 2513 | }, 2514 | { 2515 | "name": "sebastian/type", 2516 | "version": "2.3.4", 2517 | "source": { 2518 | "type": "git", 2519 | "url": "https://github.com/sebastianbergmann/type.git", 2520 | "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" 2521 | }, 2522 | "dist": { 2523 | "type": "zip", 2524 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", 2525 | "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", 2526 | "shasum": "" 2527 | }, 2528 | "require": { 2529 | "php": ">=7.3" 2530 | }, 2531 | "require-dev": { 2532 | "phpunit/phpunit": "^9.3" 2533 | }, 2534 | "type": "library", 2535 | "extra": { 2536 | "branch-alias": { 2537 | "dev-master": "2.3-dev" 2538 | } 2539 | }, 2540 | "autoload": { 2541 | "classmap": [ 2542 | "src/" 2543 | ] 2544 | }, 2545 | "notification-url": "https://packagist.org/downloads/", 2546 | "license": [ 2547 | "BSD-3-Clause" 2548 | ], 2549 | "authors": [ 2550 | { 2551 | "name": "Sebastian Bergmann", 2552 | "email": "sebastian@phpunit.de", 2553 | "role": "lead" 2554 | } 2555 | ], 2556 | "description": "Collection of value objects that represent the types of the PHP type system", 2557 | "homepage": "https://github.com/sebastianbergmann/type", 2558 | "support": { 2559 | "issues": "https://github.com/sebastianbergmann/type/issues", 2560 | "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" 2561 | }, 2562 | "funding": [ 2563 | { 2564 | "url": "https://github.com/sebastianbergmann", 2565 | "type": "github" 2566 | } 2567 | ], 2568 | "time": "2021-06-15T12:49:02+00:00" 2569 | }, 2570 | { 2571 | "name": "sebastian/version", 2572 | "version": "3.0.2", 2573 | "source": { 2574 | "type": "git", 2575 | "url": "https://github.com/sebastianbergmann/version.git", 2576 | "reference": "c6c1022351a901512170118436c764e473f6de8c" 2577 | }, 2578 | "dist": { 2579 | "type": "zip", 2580 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", 2581 | "reference": "c6c1022351a901512170118436c764e473f6de8c", 2582 | "shasum": "" 2583 | }, 2584 | "require": { 2585 | "php": ">=7.3" 2586 | }, 2587 | "type": "library", 2588 | "extra": { 2589 | "branch-alias": { 2590 | "dev-master": "3.0-dev" 2591 | } 2592 | }, 2593 | "autoload": { 2594 | "classmap": [ 2595 | "src/" 2596 | ] 2597 | }, 2598 | "notification-url": "https://packagist.org/downloads/", 2599 | "license": [ 2600 | "BSD-3-Clause" 2601 | ], 2602 | "authors": [ 2603 | { 2604 | "name": "Sebastian Bergmann", 2605 | "email": "sebastian@phpunit.de", 2606 | "role": "lead" 2607 | } 2608 | ], 2609 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2610 | "homepage": "https://github.com/sebastianbergmann/version", 2611 | "support": { 2612 | "issues": "https://github.com/sebastianbergmann/version/issues", 2613 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" 2614 | }, 2615 | "funding": [ 2616 | { 2617 | "url": "https://github.com/sebastianbergmann", 2618 | "type": "github" 2619 | } 2620 | ], 2621 | "time": "2020-09-28T06:39:44+00:00" 2622 | }, 2623 | { 2624 | "name": "symfony/console", 2625 | "version": "v5.4.2", 2626 | "source": { 2627 | "type": "git", 2628 | "url": "https://github.com/symfony/console.git", 2629 | "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" 2630 | }, 2631 | "dist": { 2632 | "type": "zip", 2633 | "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", 2634 | "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", 2635 | "shasum": "" 2636 | }, 2637 | "require": { 2638 | "php": ">=7.2.5", 2639 | "symfony/deprecation-contracts": "^2.1|^3", 2640 | "symfony/polyfill-mbstring": "~1.0", 2641 | "symfony/polyfill-php73": "^1.9", 2642 | "symfony/polyfill-php80": "^1.16", 2643 | "symfony/service-contracts": "^1.1|^2|^3", 2644 | "symfony/string": "^5.1|^6.0" 2645 | }, 2646 | "conflict": { 2647 | "psr/log": ">=3", 2648 | "symfony/dependency-injection": "<4.4", 2649 | "symfony/dotenv": "<5.1", 2650 | "symfony/event-dispatcher": "<4.4", 2651 | "symfony/lock": "<4.4", 2652 | "symfony/process": "<4.4" 2653 | }, 2654 | "provide": { 2655 | "psr/log-implementation": "1.0|2.0" 2656 | }, 2657 | "require-dev": { 2658 | "psr/log": "^1|^2", 2659 | "symfony/config": "^4.4|^5.0|^6.0", 2660 | "symfony/dependency-injection": "^4.4|^5.0|^6.0", 2661 | "symfony/event-dispatcher": "^4.4|^5.0|^6.0", 2662 | "symfony/lock": "^4.4|^5.0|^6.0", 2663 | "symfony/process": "^4.4|^5.0|^6.0", 2664 | "symfony/var-dumper": "^4.4|^5.0|^6.0" 2665 | }, 2666 | "suggest": { 2667 | "psr/log": "For using the console logger", 2668 | "symfony/event-dispatcher": "", 2669 | "symfony/lock": "", 2670 | "symfony/process": "" 2671 | }, 2672 | "type": "library", 2673 | "autoload": { 2674 | "psr-4": { 2675 | "Symfony\\Component\\Console\\": "" 2676 | }, 2677 | "exclude-from-classmap": [ 2678 | "/Tests/" 2679 | ] 2680 | }, 2681 | "notification-url": "https://packagist.org/downloads/", 2682 | "license": [ 2683 | "MIT" 2684 | ], 2685 | "authors": [ 2686 | { 2687 | "name": "Fabien Potencier", 2688 | "email": "fabien@symfony.com" 2689 | }, 2690 | { 2691 | "name": "Symfony Community", 2692 | "homepage": "https://symfony.com/contributors" 2693 | } 2694 | ], 2695 | "description": "Eases the creation of beautiful and testable command line interfaces", 2696 | "homepage": "https://symfony.com", 2697 | "keywords": [ 2698 | "cli", 2699 | "command line", 2700 | "console", 2701 | "terminal" 2702 | ], 2703 | "support": { 2704 | "source": "https://github.com/symfony/console/tree/v5.4.2" 2705 | }, 2706 | "funding": [ 2707 | { 2708 | "url": "https://symfony.com/sponsor", 2709 | "type": "custom" 2710 | }, 2711 | { 2712 | "url": "https://github.com/fabpot", 2713 | "type": "github" 2714 | }, 2715 | { 2716 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2717 | "type": "tidelift" 2718 | } 2719 | ], 2720 | "time": "2021-12-20T16:11:12+00:00" 2721 | }, 2722 | { 2723 | "name": "symfony/deprecation-contracts", 2724 | "version": "v2.5.0", 2725 | "source": { 2726 | "type": "git", 2727 | "url": "https://github.com/symfony/deprecation-contracts.git", 2728 | "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" 2729 | }, 2730 | "dist": { 2731 | "type": "zip", 2732 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", 2733 | "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", 2734 | "shasum": "" 2735 | }, 2736 | "require": { 2737 | "php": ">=7.1" 2738 | }, 2739 | "type": "library", 2740 | "extra": { 2741 | "branch-alias": { 2742 | "dev-main": "2.5-dev" 2743 | }, 2744 | "thanks": { 2745 | "name": "symfony/contracts", 2746 | "url": "https://github.com/symfony/contracts" 2747 | } 2748 | }, 2749 | "autoload": { 2750 | "files": [ 2751 | "function.php" 2752 | ] 2753 | }, 2754 | "notification-url": "https://packagist.org/downloads/", 2755 | "license": [ 2756 | "MIT" 2757 | ], 2758 | "authors": [ 2759 | { 2760 | "name": "Nicolas Grekas", 2761 | "email": "p@tchwork.com" 2762 | }, 2763 | { 2764 | "name": "Symfony Community", 2765 | "homepage": "https://symfony.com/contributors" 2766 | } 2767 | ], 2768 | "description": "A generic function and convention to trigger deprecation notices", 2769 | "homepage": "https://symfony.com", 2770 | "support": { 2771 | "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" 2772 | }, 2773 | "funding": [ 2774 | { 2775 | "url": "https://symfony.com/sponsor", 2776 | "type": "custom" 2777 | }, 2778 | { 2779 | "url": "https://github.com/fabpot", 2780 | "type": "github" 2781 | }, 2782 | { 2783 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2784 | "type": "tidelift" 2785 | } 2786 | ], 2787 | "time": "2021-07-12T14:48:14+00:00" 2788 | }, 2789 | { 2790 | "name": "symfony/event-dispatcher", 2791 | "version": "v5.4.0", 2792 | "source": { 2793 | "type": "git", 2794 | "url": "https://github.com/symfony/event-dispatcher.git", 2795 | "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb" 2796 | }, 2797 | "dist": { 2798 | "type": "zip", 2799 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb", 2800 | "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb", 2801 | "shasum": "" 2802 | }, 2803 | "require": { 2804 | "php": ">=7.2.5", 2805 | "symfony/deprecation-contracts": "^2.1|^3", 2806 | "symfony/event-dispatcher-contracts": "^2|^3", 2807 | "symfony/polyfill-php80": "^1.16" 2808 | }, 2809 | "conflict": { 2810 | "symfony/dependency-injection": "<4.4" 2811 | }, 2812 | "provide": { 2813 | "psr/event-dispatcher-implementation": "1.0", 2814 | "symfony/event-dispatcher-implementation": "2.0" 2815 | }, 2816 | "require-dev": { 2817 | "psr/log": "^1|^2|^3", 2818 | "symfony/config": "^4.4|^5.0|^6.0", 2819 | "symfony/dependency-injection": "^4.4|^5.0|^6.0", 2820 | "symfony/error-handler": "^4.4|^5.0|^6.0", 2821 | "symfony/expression-language": "^4.4|^5.0|^6.0", 2822 | "symfony/http-foundation": "^4.4|^5.0|^6.0", 2823 | "symfony/service-contracts": "^1.1|^2|^3", 2824 | "symfony/stopwatch": "^4.4|^5.0|^6.0" 2825 | }, 2826 | "suggest": { 2827 | "symfony/dependency-injection": "", 2828 | "symfony/http-kernel": "" 2829 | }, 2830 | "type": "library", 2831 | "autoload": { 2832 | "psr-4": { 2833 | "Symfony\\Component\\EventDispatcher\\": "" 2834 | }, 2835 | "exclude-from-classmap": [ 2836 | "/Tests/" 2837 | ] 2838 | }, 2839 | "notification-url": "https://packagist.org/downloads/", 2840 | "license": [ 2841 | "MIT" 2842 | ], 2843 | "authors": [ 2844 | { 2845 | "name": "Fabien Potencier", 2846 | "email": "fabien@symfony.com" 2847 | }, 2848 | { 2849 | "name": "Symfony Community", 2850 | "homepage": "https://symfony.com/contributors" 2851 | } 2852 | ], 2853 | "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", 2854 | "homepage": "https://symfony.com", 2855 | "support": { 2856 | "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0" 2857 | }, 2858 | "funding": [ 2859 | { 2860 | "url": "https://symfony.com/sponsor", 2861 | "type": "custom" 2862 | }, 2863 | { 2864 | "url": "https://github.com/fabpot", 2865 | "type": "github" 2866 | }, 2867 | { 2868 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2869 | "type": "tidelift" 2870 | } 2871 | ], 2872 | "time": "2021-11-23T10:19:22+00:00" 2873 | }, 2874 | { 2875 | "name": "symfony/event-dispatcher-contracts", 2876 | "version": "v2.5.0", 2877 | "source": { 2878 | "type": "git", 2879 | "url": "https://github.com/symfony/event-dispatcher-contracts.git", 2880 | "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a" 2881 | }, 2882 | "dist": { 2883 | "type": "zip", 2884 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", 2885 | "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", 2886 | "shasum": "" 2887 | }, 2888 | "require": { 2889 | "php": ">=7.2.5", 2890 | "psr/event-dispatcher": "^1" 2891 | }, 2892 | "suggest": { 2893 | "symfony/event-dispatcher-implementation": "" 2894 | }, 2895 | "type": "library", 2896 | "extra": { 2897 | "branch-alias": { 2898 | "dev-main": "2.5-dev" 2899 | }, 2900 | "thanks": { 2901 | "name": "symfony/contracts", 2902 | "url": "https://github.com/symfony/contracts" 2903 | } 2904 | }, 2905 | "autoload": { 2906 | "psr-4": { 2907 | "Symfony\\Contracts\\EventDispatcher\\": "" 2908 | } 2909 | }, 2910 | "notification-url": "https://packagist.org/downloads/", 2911 | "license": [ 2912 | "MIT" 2913 | ], 2914 | "authors": [ 2915 | { 2916 | "name": "Nicolas Grekas", 2917 | "email": "p@tchwork.com" 2918 | }, 2919 | { 2920 | "name": "Symfony Community", 2921 | "homepage": "https://symfony.com/contributors" 2922 | } 2923 | ], 2924 | "description": "Generic abstractions related to dispatching event", 2925 | "homepage": "https://symfony.com", 2926 | "keywords": [ 2927 | "abstractions", 2928 | "contracts", 2929 | "decoupling", 2930 | "interfaces", 2931 | "interoperability", 2932 | "standards" 2933 | ], 2934 | "support": { 2935 | "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0" 2936 | }, 2937 | "funding": [ 2938 | { 2939 | "url": "https://symfony.com/sponsor", 2940 | "type": "custom" 2941 | }, 2942 | { 2943 | "url": "https://github.com/fabpot", 2944 | "type": "github" 2945 | }, 2946 | { 2947 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2948 | "type": "tidelift" 2949 | } 2950 | ], 2951 | "time": "2021-07-12T14:48:14+00:00" 2952 | }, 2953 | { 2954 | "name": "symfony/filesystem", 2955 | "version": "v5.4.0", 2956 | "source": { 2957 | "type": "git", 2958 | "url": "https://github.com/symfony/filesystem.git", 2959 | "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01" 2960 | }, 2961 | "dist": { 2962 | "type": "zip", 2963 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01", 2964 | "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01", 2965 | "shasum": "" 2966 | }, 2967 | "require": { 2968 | "php": ">=7.2.5", 2969 | "symfony/polyfill-ctype": "~1.8", 2970 | "symfony/polyfill-mbstring": "~1.8", 2971 | "symfony/polyfill-php80": "^1.16" 2972 | }, 2973 | "type": "library", 2974 | "autoload": { 2975 | "psr-4": { 2976 | "Symfony\\Component\\Filesystem\\": "" 2977 | }, 2978 | "exclude-from-classmap": [ 2979 | "/Tests/" 2980 | ] 2981 | }, 2982 | "notification-url": "https://packagist.org/downloads/", 2983 | "license": [ 2984 | "MIT" 2985 | ], 2986 | "authors": [ 2987 | { 2988 | "name": "Fabien Potencier", 2989 | "email": "fabien@symfony.com" 2990 | }, 2991 | { 2992 | "name": "Symfony Community", 2993 | "homepage": "https://symfony.com/contributors" 2994 | } 2995 | ], 2996 | "description": "Provides basic utilities for the filesystem", 2997 | "homepage": "https://symfony.com", 2998 | "support": { 2999 | "source": "https://github.com/symfony/filesystem/tree/v5.4.0" 3000 | }, 3001 | "funding": [ 3002 | { 3003 | "url": "https://symfony.com/sponsor", 3004 | "type": "custom" 3005 | }, 3006 | { 3007 | "url": "https://github.com/fabpot", 3008 | "type": "github" 3009 | }, 3010 | { 3011 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3012 | "type": "tidelift" 3013 | } 3014 | ], 3015 | "time": "2021-10-28T13:39:27+00:00" 3016 | }, 3017 | { 3018 | "name": "symfony/finder", 3019 | "version": "v5.4.2", 3020 | "source": { 3021 | "type": "git", 3022 | "url": "https://github.com/symfony/finder.git", 3023 | "reference": "e77046c252be48c48a40816187ed527703c8f76c" 3024 | }, 3025 | "dist": { 3026 | "type": "zip", 3027 | "url": "https://api.github.com/repos/symfony/finder/zipball/e77046c252be48c48a40816187ed527703c8f76c", 3028 | "reference": "e77046c252be48c48a40816187ed527703c8f76c", 3029 | "shasum": "" 3030 | }, 3031 | "require": { 3032 | "php": ">=7.2.5", 3033 | "symfony/deprecation-contracts": "^2.1|^3", 3034 | "symfony/polyfill-php80": "^1.16" 3035 | }, 3036 | "type": "library", 3037 | "autoload": { 3038 | "psr-4": { 3039 | "Symfony\\Component\\Finder\\": "" 3040 | }, 3041 | "exclude-from-classmap": [ 3042 | "/Tests/" 3043 | ] 3044 | }, 3045 | "notification-url": "https://packagist.org/downloads/", 3046 | "license": [ 3047 | "MIT" 3048 | ], 3049 | "authors": [ 3050 | { 3051 | "name": "Fabien Potencier", 3052 | "email": "fabien@symfony.com" 3053 | }, 3054 | { 3055 | "name": "Symfony Community", 3056 | "homepage": "https://symfony.com/contributors" 3057 | } 3058 | ], 3059 | "description": "Finds files and directories via an intuitive fluent interface", 3060 | "homepage": "https://symfony.com", 3061 | "support": { 3062 | "source": "https://github.com/symfony/finder/tree/v5.4.2" 3063 | }, 3064 | "funding": [ 3065 | { 3066 | "url": "https://symfony.com/sponsor", 3067 | "type": "custom" 3068 | }, 3069 | { 3070 | "url": "https://github.com/fabpot", 3071 | "type": "github" 3072 | }, 3073 | { 3074 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3075 | "type": "tidelift" 3076 | } 3077 | ], 3078 | "time": "2021-12-15T11:06:13+00:00" 3079 | }, 3080 | { 3081 | "name": "symfony/options-resolver", 3082 | "version": "v5.4.0", 3083 | "source": { 3084 | "type": "git", 3085 | "url": "https://github.com/symfony/options-resolver.git", 3086 | "reference": "b0fb78576487af19c500aaddb269fd36701d4847" 3087 | }, 3088 | "dist": { 3089 | "type": "zip", 3090 | "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b0fb78576487af19c500aaddb269fd36701d4847", 3091 | "reference": "b0fb78576487af19c500aaddb269fd36701d4847", 3092 | "shasum": "" 3093 | }, 3094 | "require": { 3095 | "php": ">=7.2.5", 3096 | "symfony/deprecation-contracts": "^2.1|^3", 3097 | "symfony/polyfill-php73": "~1.0", 3098 | "symfony/polyfill-php80": "^1.16" 3099 | }, 3100 | "type": "library", 3101 | "autoload": { 3102 | "psr-4": { 3103 | "Symfony\\Component\\OptionsResolver\\": "" 3104 | }, 3105 | "exclude-from-classmap": [ 3106 | "/Tests/" 3107 | ] 3108 | }, 3109 | "notification-url": "https://packagist.org/downloads/", 3110 | "license": [ 3111 | "MIT" 3112 | ], 3113 | "authors": [ 3114 | { 3115 | "name": "Fabien Potencier", 3116 | "email": "fabien@symfony.com" 3117 | }, 3118 | { 3119 | "name": "Symfony Community", 3120 | "homepage": "https://symfony.com/contributors" 3121 | } 3122 | ], 3123 | "description": "Provides an improved replacement for the array_replace PHP function", 3124 | "homepage": "https://symfony.com", 3125 | "keywords": [ 3126 | "config", 3127 | "configuration", 3128 | "options" 3129 | ], 3130 | "support": { 3131 | "source": "https://github.com/symfony/options-resolver/tree/v5.4.0" 3132 | }, 3133 | "funding": [ 3134 | { 3135 | "url": "https://symfony.com/sponsor", 3136 | "type": "custom" 3137 | }, 3138 | { 3139 | "url": "https://github.com/fabpot", 3140 | "type": "github" 3141 | }, 3142 | { 3143 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3144 | "type": "tidelift" 3145 | } 3146 | ], 3147 | "time": "2021-11-23T10:19:22+00:00" 3148 | }, 3149 | { 3150 | "name": "symfony/polyfill-ctype", 3151 | "version": "v1.23.0", 3152 | "source": { 3153 | "type": "git", 3154 | "url": "https://github.com/symfony/polyfill-ctype.git", 3155 | "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" 3156 | }, 3157 | "dist": { 3158 | "type": "zip", 3159 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", 3160 | "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", 3161 | "shasum": "" 3162 | }, 3163 | "require": { 3164 | "php": ">=7.1" 3165 | }, 3166 | "suggest": { 3167 | "ext-ctype": "For best performance" 3168 | }, 3169 | "type": "library", 3170 | "extra": { 3171 | "branch-alias": { 3172 | "dev-main": "1.23-dev" 3173 | }, 3174 | "thanks": { 3175 | "name": "symfony/polyfill", 3176 | "url": "https://github.com/symfony/polyfill" 3177 | } 3178 | }, 3179 | "autoload": { 3180 | "psr-4": { 3181 | "Symfony\\Polyfill\\Ctype\\": "" 3182 | }, 3183 | "files": [ 3184 | "bootstrap.php" 3185 | ] 3186 | }, 3187 | "notification-url": "https://packagist.org/downloads/", 3188 | "license": [ 3189 | "MIT" 3190 | ], 3191 | "authors": [ 3192 | { 3193 | "name": "Gert de Pagter", 3194 | "email": "BackEndTea@gmail.com" 3195 | }, 3196 | { 3197 | "name": "Symfony Community", 3198 | "homepage": "https://symfony.com/contributors" 3199 | } 3200 | ], 3201 | "description": "Symfony polyfill for ctype functions", 3202 | "homepage": "https://symfony.com", 3203 | "keywords": [ 3204 | "compatibility", 3205 | "ctype", 3206 | "polyfill", 3207 | "portable" 3208 | ], 3209 | "support": { 3210 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" 3211 | }, 3212 | "funding": [ 3213 | { 3214 | "url": "https://symfony.com/sponsor", 3215 | "type": "custom" 3216 | }, 3217 | { 3218 | "url": "https://github.com/fabpot", 3219 | "type": "github" 3220 | }, 3221 | { 3222 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3223 | "type": "tidelift" 3224 | } 3225 | ], 3226 | "time": "2021-02-19T12:13:01+00:00" 3227 | }, 3228 | { 3229 | "name": "symfony/polyfill-intl-grapheme", 3230 | "version": "v1.23.1", 3231 | "source": { 3232 | "type": "git", 3233 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 3234 | "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" 3235 | }, 3236 | "dist": { 3237 | "type": "zip", 3238 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", 3239 | "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", 3240 | "shasum": "" 3241 | }, 3242 | "require": { 3243 | "php": ">=7.1" 3244 | }, 3245 | "suggest": { 3246 | "ext-intl": "For best performance" 3247 | }, 3248 | "type": "library", 3249 | "extra": { 3250 | "branch-alias": { 3251 | "dev-main": "1.23-dev" 3252 | }, 3253 | "thanks": { 3254 | "name": "symfony/polyfill", 3255 | "url": "https://github.com/symfony/polyfill" 3256 | } 3257 | }, 3258 | "autoload": { 3259 | "psr-4": { 3260 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 3261 | }, 3262 | "files": [ 3263 | "bootstrap.php" 3264 | ] 3265 | }, 3266 | "notification-url": "https://packagist.org/downloads/", 3267 | "license": [ 3268 | "MIT" 3269 | ], 3270 | "authors": [ 3271 | { 3272 | "name": "Nicolas Grekas", 3273 | "email": "p@tchwork.com" 3274 | }, 3275 | { 3276 | "name": "Symfony Community", 3277 | "homepage": "https://symfony.com/contributors" 3278 | } 3279 | ], 3280 | "description": "Symfony polyfill for intl's grapheme_* functions", 3281 | "homepage": "https://symfony.com", 3282 | "keywords": [ 3283 | "compatibility", 3284 | "grapheme", 3285 | "intl", 3286 | "polyfill", 3287 | "portable", 3288 | "shim" 3289 | ], 3290 | "support": { 3291 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1" 3292 | }, 3293 | "funding": [ 3294 | { 3295 | "url": "https://symfony.com/sponsor", 3296 | "type": "custom" 3297 | }, 3298 | { 3299 | "url": "https://github.com/fabpot", 3300 | "type": "github" 3301 | }, 3302 | { 3303 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3304 | "type": "tidelift" 3305 | } 3306 | ], 3307 | "time": "2021-05-27T12:26:48+00:00" 3308 | }, 3309 | { 3310 | "name": "symfony/polyfill-intl-normalizer", 3311 | "version": "v1.23.0", 3312 | "source": { 3313 | "type": "git", 3314 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 3315 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" 3316 | }, 3317 | "dist": { 3318 | "type": "zip", 3319 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", 3320 | "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", 3321 | "shasum": "" 3322 | }, 3323 | "require": { 3324 | "php": ">=7.1" 3325 | }, 3326 | "suggest": { 3327 | "ext-intl": "For best performance" 3328 | }, 3329 | "type": "library", 3330 | "extra": { 3331 | "branch-alias": { 3332 | "dev-main": "1.23-dev" 3333 | }, 3334 | "thanks": { 3335 | "name": "symfony/polyfill", 3336 | "url": "https://github.com/symfony/polyfill" 3337 | } 3338 | }, 3339 | "autoload": { 3340 | "psr-4": { 3341 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 3342 | }, 3343 | "files": [ 3344 | "bootstrap.php" 3345 | ], 3346 | "classmap": [ 3347 | "Resources/stubs" 3348 | ] 3349 | }, 3350 | "notification-url": "https://packagist.org/downloads/", 3351 | "license": [ 3352 | "MIT" 3353 | ], 3354 | "authors": [ 3355 | { 3356 | "name": "Nicolas Grekas", 3357 | "email": "p@tchwork.com" 3358 | }, 3359 | { 3360 | "name": "Symfony Community", 3361 | "homepage": "https://symfony.com/contributors" 3362 | } 3363 | ], 3364 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 3365 | "homepage": "https://symfony.com", 3366 | "keywords": [ 3367 | "compatibility", 3368 | "intl", 3369 | "normalizer", 3370 | "polyfill", 3371 | "portable", 3372 | "shim" 3373 | ], 3374 | "support": { 3375 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" 3376 | }, 3377 | "funding": [ 3378 | { 3379 | "url": "https://symfony.com/sponsor", 3380 | "type": "custom" 3381 | }, 3382 | { 3383 | "url": "https://github.com/fabpot", 3384 | "type": "github" 3385 | }, 3386 | { 3387 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3388 | "type": "tidelift" 3389 | } 3390 | ], 3391 | "time": "2021-02-19T12:13:01+00:00" 3392 | }, 3393 | { 3394 | "name": "symfony/polyfill-mbstring", 3395 | "version": "v1.23.1", 3396 | "source": { 3397 | "type": "git", 3398 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3399 | "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" 3400 | }, 3401 | "dist": { 3402 | "type": "zip", 3403 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", 3404 | "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", 3405 | "shasum": "" 3406 | }, 3407 | "require": { 3408 | "php": ">=7.1" 3409 | }, 3410 | "suggest": { 3411 | "ext-mbstring": "For best performance" 3412 | }, 3413 | "type": "library", 3414 | "extra": { 3415 | "branch-alias": { 3416 | "dev-main": "1.23-dev" 3417 | }, 3418 | "thanks": { 3419 | "name": "symfony/polyfill", 3420 | "url": "https://github.com/symfony/polyfill" 3421 | } 3422 | }, 3423 | "autoload": { 3424 | "psr-4": { 3425 | "Symfony\\Polyfill\\Mbstring\\": "" 3426 | }, 3427 | "files": [ 3428 | "bootstrap.php" 3429 | ] 3430 | }, 3431 | "notification-url": "https://packagist.org/downloads/", 3432 | "license": [ 3433 | "MIT" 3434 | ], 3435 | "authors": [ 3436 | { 3437 | "name": "Nicolas Grekas", 3438 | "email": "p@tchwork.com" 3439 | }, 3440 | { 3441 | "name": "Symfony Community", 3442 | "homepage": "https://symfony.com/contributors" 3443 | } 3444 | ], 3445 | "description": "Symfony polyfill for the Mbstring extension", 3446 | "homepage": "https://symfony.com", 3447 | "keywords": [ 3448 | "compatibility", 3449 | "mbstring", 3450 | "polyfill", 3451 | "portable", 3452 | "shim" 3453 | ], 3454 | "support": { 3455 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" 3456 | }, 3457 | "funding": [ 3458 | { 3459 | "url": "https://symfony.com/sponsor", 3460 | "type": "custom" 3461 | }, 3462 | { 3463 | "url": "https://github.com/fabpot", 3464 | "type": "github" 3465 | }, 3466 | { 3467 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3468 | "type": "tidelift" 3469 | } 3470 | ], 3471 | "time": "2021-05-27T12:26:48+00:00" 3472 | }, 3473 | { 3474 | "name": "symfony/polyfill-php73", 3475 | "version": "v1.23.0", 3476 | "source": { 3477 | "type": "git", 3478 | "url": "https://github.com/symfony/polyfill-php73.git", 3479 | "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" 3480 | }, 3481 | "dist": { 3482 | "type": "zip", 3483 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", 3484 | "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", 3485 | "shasum": "" 3486 | }, 3487 | "require": { 3488 | "php": ">=7.1" 3489 | }, 3490 | "type": "library", 3491 | "extra": { 3492 | "branch-alias": { 3493 | "dev-main": "1.23-dev" 3494 | }, 3495 | "thanks": { 3496 | "name": "symfony/polyfill", 3497 | "url": "https://github.com/symfony/polyfill" 3498 | } 3499 | }, 3500 | "autoload": { 3501 | "psr-4": { 3502 | "Symfony\\Polyfill\\Php73\\": "" 3503 | }, 3504 | "files": [ 3505 | "bootstrap.php" 3506 | ], 3507 | "classmap": [ 3508 | "Resources/stubs" 3509 | ] 3510 | }, 3511 | "notification-url": "https://packagist.org/downloads/", 3512 | "license": [ 3513 | "MIT" 3514 | ], 3515 | "authors": [ 3516 | { 3517 | "name": "Nicolas Grekas", 3518 | "email": "p@tchwork.com" 3519 | }, 3520 | { 3521 | "name": "Symfony Community", 3522 | "homepage": "https://symfony.com/contributors" 3523 | } 3524 | ], 3525 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 3526 | "homepage": "https://symfony.com", 3527 | "keywords": [ 3528 | "compatibility", 3529 | "polyfill", 3530 | "portable", 3531 | "shim" 3532 | ], 3533 | "support": { 3534 | "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" 3535 | }, 3536 | "funding": [ 3537 | { 3538 | "url": "https://symfony.com/sponsor", 3539 | "type": "custom" 3540 | }, 3541 | { 3542 | "url": "https://github.com/fabpot", 3543 | "type": "github" 3544 | }, 3545 | { 3546 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3547 | "type": "tidelift" 3548 | } 3549 | ], 3550 | "time": "2021-02-19T12:13:01+00:00" 3551 | }, 3552 | { 3553 | "name": "symfony/polyfill-php80", 3554 | "version": "v1.23.1", 3555 | "source": { 3556 | "type": "git", 3557 | "url": "https://github.com/symfony/polyfill-php80.git", 3558 | "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" 3559 | }, 3560 | "dist": { 3561 | "type": "zip", 3562 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", 3563 | "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", 3564 | "shasum": "" 3565 | }, 3566 | "require": { 3567 | "php": ">=7.1" 3568 | }, 3569 | "type": "library", 3570 | "extra": { 3571 | "branch-alias": { 3572 | "dev-main": "1.23-dev" 3573 | }, 3574 | "thanks": { 3575 | "name": "symfony/polyfill", 3576 | "url": "https://github.com/symfony/polyfill" 3577 | } 3578 | }, 3579 | "autoload": { 3580 | "psr-4": { 3581 | "Symfony\\Polyfill\\Php80\\": "" 3582 | }, 3583 | "files": [ 3584 | "bootstrap.php" 3585 | ], 3586 | "classmap": [ 3587 | "Resources/stubs" 3588 | ] 3589 | }, 3590 | "notification-url": "https://packagist.org/downloads/", 3591 | "license": [ 3592 | "MIT" 3593 | ], 3594 | "authors": [ 3595 | { 3596 | "name": "Ion Bazan", 3597 | "email": "ion.bazan@gmail.com" 3598 | }, 3599 | { 3600 | "name": "Nicolas Grekas", 3601 | "email": "p@tchwork.com" 3602 | }, 3603 | { 3604 | "name": "Symfony Community", 3605 | "homepage": "https://symfony.com/contributors" 3606 | } 3607 | ], 3608 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 3609 | "homepage": "https://symfony.com", 3610 | "keywords": [ 3611 | "compatibility", 3612 | "polyfill", 3613 | "portable", 3614 | "shim" 3615 | ], 3616 | "support": { 3617 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" 3618 | }, 3619 | "funding": [ 3620 | { 3621 | "url": "https://symfony.com/sponsor", 3622 | "type": "custom" 3623 | }, 3624 | { 3625 | "url": "https://github.com/fabpot", 3626 | "type": "github" 3627 | }, 3628 | { 3629 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3630 | "type": "tidelift" 3631 | } 3632 | ], 3633 | "time": "2021-07-28T13:41:28+00:00" 3634 | }, 3635 | { 3636 | "name": "symfony/polyfill-php81", 3637 | "version": "v1.23.0", 3638 | "source": { 3639 | "type": "git", 3640 | "url": "https://github.com/symfony/polyfill-php81.git", 3641 | "reference": "e66119f3de95efc359483f810c4c3e6436279436" 3642 | }, 3643 | "dist": { 3644 | "type": "zip", 3645 | "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", 3646 | "reference": "e66119f3de95efc359483f810c4c3e6436279436", 3647 | "shasum": "" 3648 | }, 3649 | "require": { 3650 | "php": ">=7.1" 3651 | }, 3652 | "type": "library", 3653 | "extra": { 3654 | "branch-alias": { 3655 | "dev-main": "1.23-dev" 3656 | }, 3657 | "thanks": { 3658 | "name": "symfony/polyfill", 3659 | "url": "https://github.com/symfony/polyfill" 3660 | } 3661 | }, 3662 | "autoload": { 3663 | "psr-4": { 3664 | "Symfony\\Polyfill\\Php81\\": "" 3665 | }, 3666 | "files": [ 3667 | "bootstrap.php" 3668 | ], 3669 | "classmap": [ 3670 | "Resources/stubs" 3671 | ] 3672 | }, 3673 | "notification-url": "https://packagist.org/downloads/", 3674 | "license": [ 3675 | "MIT" 3676 | ], 3677 | "authors": [ 3678 | { 3679 | "name": "Nicolas Grekas", 3680 | "email": "p@tchwork.com" 3681 | }, 3682 | { 3683 | "name": "Symfony Community", 3684 | "homepage": "https://symfony.com/contributors" 3685 | } 3686 | ], 3687 | "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", 3688 | "homepage": "https://symfony.com", 3689 | "keywords": [ 3690 | "compatibility", 3691 | "polyfill", 3692 | "portable", 3693 | "shim" 3694 | ], 3695 | "support": { 3696 | "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" 3697 | }, 3698 | "funding": [ 3699 | { 3700 | "url": "https://symfony.com/sponsor", 3701 | "type": "custom" 3702 | }, 3703 | { 3704 | "url": "https://github.com/fabpot", 3705 | "type": "github" 3706 | }, 3707 | { 3708 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3709 | "type": "tidelift" 3710 | } 3711 | ], 3712 | "time": "2021-05-21T13:25:03+00:00" 3713 | }, 3714 | { 3715 | "name": "symfony/process", 3716 | "version": "v5.4.2", 3717 | "source": { 3718 | "type": "git", 3719 | "url": "https://github.com/symfony/process.git", 3720 | "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4" 3721 | }, 3722 | "dist": { 3723 | "type": "zip", 3724 | "url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", 3725 | "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", 3726 | "shasum": "" 3727 | }, 3728 | "require": { 3729 | "php": ">=7.2.5", 3730 | "symfony/polyfill-php80": "^1.16" 3731 | }, 3732 | "type": "library", 3733 | "autoload": { 3734 | "psr-4": { 3735 | "Symfony\\Component\\Process\\": "" 3736 | }, 3737 | "exclude-from-classmap": [ 3738 | "/Tests/" 3739 | ] 3740 | }, 3741 | "notification-url": "https://packagist.org/downloads/", 3742 | "license": [ 3743 | "MIT" 3744 | ], 3745 | "authors": [ 3746 | { 3747 | "name": "Fabien Potencier", 3748 | "email": "fabien@symfony.com" 3749 | }, 3750 | { 3751 | "name": "Symfony Community", 3752 | "homepage": "https://symfony.com/contributors" 3753 | } 3754 | ], 3755 | "description": "Executes commands in sub-processes", 3756 | "homepage": "https://symfony.com", 3757 | "support": { 3758 | "source": "https://github.com/symfony/process/tree/v5.4.2" 3759 | }, 3760 | "funding": [ 3761 | { 3762 | "url": "https://symfony.com/sponsor", 3763 | "type": "custom" 3764 | }, 3765 | { 3766 | "url": "https://github.com/fabpot", 3767 | "type": "github" 3768 | }, 3769 | { 3770 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3771 | "type": "tidelift" 3772 | } 3773 | ], 3774 | "time": "2021-12-27T21:01:00+00:00" 3775 | }, 3776 | { 3777 | "name": "symfony/service-contracts", 3778 | "version": "v2.5.0", 3779 | "source": { 3780 | "type": "git", 3781 | "url": "https://github.com/symfony/service-contracts.git", 3782 | "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" 3783 | }, 3784 | "dist": { 3785 | "type": "zip", 3786 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", 3787 | "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", 3788 | "shasum": "" 3789 | }, 3790 | "require": { 3791 | "php": ">=7.2.5", 3792 | "psr/container": "^1.1", 3793 | "symfony/deprecation-contracts": "^2.1" 3794 | }, 3795 | "conflict": { 3796 | "ext-psr": "<1.1|>=2" 3797 | }, 3798 | "suggest": { 3799 | "symfony/service-implementation": "" 3800 | }, 3801 | "type": "library", 3802 | "extra": { 3803 | "branch-alias": { 3804 | "dev-main": "2.5-dev" 3805 | }, 3806 | "thanks": { 3807 | "name": "symfony/contracts", 3808 | "url": "https://github.com/symfony/contracts" 3809 | } 3810 | }, 3811 | "autoload": { 3812 | "psr-4": { 3813 | "Symfony\\Contracts\\Service\\": "" 3814 | } 3815 | }, 3816 | "notification-url": "https://packagist.org/downloads/", 3817 | "license": [ 3818 | "MIT" 3819 | ], 3820 | "authors": [ 3821 | { 3822 | "name": "Nicolas Grekas", 3823 | "email": "p@tchwork.com" 3824 | }, 3825 | { 3826 | "name": "Symfony Community", 3827 | "homepage": "https://symfony.com/contributors" 3828 | } 3829 | ], 3830 | "description": "Generic abstractions related to writing services", 3831 | "homepage": "https://symfony.com", 3832 | "keywords": [ 3833 | "abstractions", 3834 | "contracts", 3835 | "decoupling", 3836 | "interfaces", 3837 | "interoperability", 3838 | "standards" 3839 | ], 3840 | "support": { 3841 | "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" 3842 | }, 3843 | "funding": [ 3844 | { 3845 | "url": "https://symfony.com/sponsor", 3846 | "type": "custom" 3847 | }, 3848 | { 3849 | "url": "https://github.com/fabpot", 3850 | "type": "github" 3851 | }, 3852 | { 3853 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3854 | "type": "tidelift" 3855 | } 3856 | ], 3857 | "time": "2021-11-04T16:48:04+00:00" 3858 | }, 3859 | { 3860 | "name": "symfony/stopwatch", 3861 | "version": "v5.4.0", 3862 | "source": { 3863 | "type": "git", 3864 | "url": "https://github.com/symfony/stopwatch.git", 3865 | "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe" 3866 | }, 3867 | "dist": { 3868 | "type": "zip", 3869 | "url": "https://api.github.com/repos/symfony/stopwatch/zipball/208ef96122bfed82a8f3a61458a07113a08bdcfe", 3870 | "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe", 3871 | "shasum": "" 3872 | }, 3873 | "require": { 3874 | "php": ">=7.2.5", 3875 | "symfony/service-contracts": "^1|^2|^3" 3876 | }, 3877 | "type": "library", 3878 | "autoload": { 3879 | "psr-4": { 3880 | "Symfony\\Component\\Stopwatch\\": "" 3881 | }, 3882 | "exclude-from-classmap": [ 3883 | "/Tests/" 3884 | ] 3885 | }, 3886 | "notification-url": "https://packagist.org/downloads/", 3887 | "license": [ 3888 | "MIT" 3889 | ], 3890 | "authors": [ 3891 | { 3892 | "name": "Fabien Potencier", 3893 | "email": "fabien@symfony.com" 3894 | }, 3895 | { 3896 | "name": "Symfony Community", 3897 | "homepage": "https://symfony.com/contributors" 3898 | } 3899 | ], 3900 | "description": "Provides a way to profile code", 3901 | "homepage": "https://symfony.com", 3902 | "support": { 3903 | "source": "https://github.com/symfony/stopwatch/tree/v5.4.0" 3904 | }, 3905 | "funding": [ 3906 | { 3907 | "url": "https://symfony.com/sponsor", 3908 | "type": "custom" 3909 | }, 3910 | { 3911 | "url": "https://github.com/fabpot", 3912 | "type": "github" 3913 | }, 3914 | { 3915 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3916 | "type": "tidelift" 3917 | } 3918 | ], 3919 | "time": "2021-11-23T10:19:22+00:00" 3920 | }, 3921 | { 3922 | "name": "symfony/string", 3923 | "version": "v5.4.2", 3924 | "source": { 3925 | "type": "git", 3926 | "url": "https://github.com/symfony/string.git", 3927 | "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d" 3928 | }, 3929 | "dist": { 3930 | "type": "zip", 3931 | "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", 3932 | "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", 3933 | "shasum": "" 3934 | }, 3935 | "require": { 3936 | "php": ">=7.2.5", 3937 | "symfony/polyfill-ctype": "~1.8", 3938 | "symfony/polyfill-intl-grapheme": "~1.0", 3939 | "symfony/polyfill-intl-normalizer": "~1.0", 3940 | "symfony/polyfill-mbstring": "~1.0", 3941 | "symfony/polyfill-php80": "~1.15" 3942 | }, 3943 | "conflict": { 3944 | "symfony/translation-contracts": ">=3.0" 3945 | }, 3946 | "require-dev": { 3947 | "symfony/error-handler": "^4.4|^5.0|^6.0", 3948 | "symfony/http-client": "^4.4|^5.0|^6.0", 3949 | "symfony/translation-contracts": "^1.1|^2", 3950 | "symfony/var-exporter": "^4.4|^5.0|^6.0" 3951 | }, 3952 | "type": "library", 3953 | "autoload": { 3954 | "psr-4": { 3955 | "Symfony\\Component\\String\\": "" 3956 | }, 3957 | "files": [ 3958 | "Resources/functions.php" 3959 | ], 3960 | "exclude-from-classmap": [ 3961 | "/Tests/" 3962 | ] 3963 | }, 3964 | "notification-url": "https://packagist.org/downloads/", 3965 | "license": [ 3966 | "MIT" 3967 | ], 3968 | "authors": [ 3969 | { 3970 | "name": "Nicolas Grekas", 3971 | "email": "p@tchwork.com" 3972 | }, 3973 | { 3974 | "name": "Symfony Community", 3975 | "homepage": "https://symfony.com/contributors" 3976 | } 3977 | ], 3978 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", 3979 | "homepage": "https://symfony.com", 3980 | "keywords": [ 3981 | "grapheme", 3982 | "i18n", 3983 | "string", 3984 | "unicode", 3985 | "utf-8", 3986 | "utf8" 3987 | ], 3988 | "support": { 3989 | "source": "https://github.com/symfony/string/tree/v5.4.2" 3990 | }, 3991 | "funding": [ 3992 | { 3993 | "url": "https://symfony.com/sponsor", 3994 | "type": "custom" 3995 | }, 3996 | { 3997 | "url": "https://github.com/fabpot", 3998 | "type": "github" 3999 | }, 4000 | { 4001 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4002 | "type": "tidelift" 4003 | } 4004 | ], 4005 | "time": "2021-12-16T21:52:00+00:00" 4006 | }, 4007 | { 4008 | "name": "theseer/tokenizer", 4009 | "version": "1.2.1", 4010 | "source": { 4011 | "type": "git", 4012 | "url": "https://github.com/theseer/tokenizer.git", 4013 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" 4014 | }, 4015 | "dist": { 4016 | "type": "zip", 4017 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", 4018 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", 4019 | "shasum": "" 4020 | }, 4021 | "require": { 4022 | "ext-dom": "*", 4023 | "ext-tokenizer": "*", 4024 | "ext-xmlwriter": "*", 4025 | "php": "^7.2 || ^8.0" 4026 | }, 4027 | "type": "library", 4028 | "autoload": { 4029 | "classmap": [ 4030 | "src/" 4031 | ] 4032 | }, 4033 | "notification-url": "https://packagist.org/downloads/", 4034 | "license": [ 4035 | "BSD-3-Clause" 4036 | ], 4037 | "authors": [ 4038 | { 4039 | "name": "Arne Blankerts", 4040 | "email": "arne@blankerts.de", 4041 | "role": "Developer" 4042 | } 4043 | ], 4044 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4045 | "support": { 4046 | "issues": "https://github.com/theseer/tokenizer/issues", 4047 | "source": "https://github.com/theseer/tokenizer/tree/1.2.1" 4048 | }, 4049 | "funding": [ 4050 | { 4051 | "url": "https://github.com/theseer", 4052 | "type": "github" 4053 | } 4054 | ], 4055 | "time": "2021-07-28T10:34:58+00:00" 4056 | }, 4057 | { 4058 | "name": "webmozart/assert", 4059 | "version": "1.10.0", 4060 | "source": { 4061 | "type": "git", 4062 | "url": "https://github.com/webmozarts/assert.git", 4063 | "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" 4064 | }, 4065 | "dist": { 4066 | "type": "zip", 4067 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", 4068 | "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", 4069 | "shasum": "" 4070 | }, 4071 | "require": { 4072 | "php": "^7.2 || ^8.0", 4073 | "symfony/polyfill-ctype": "^1.8" 4074 | }, 4075 | "conflict": { 4076 | "phpstan/phpstan": "<0.12.20", 4077 | "vimeo/psalm": "<4.6.1 || 4.6.2" 4078 | }, 4079 | "require-dev": { 4080 | "phpunit/phpunit": "^8.5.13" 4081 | }, 4082 | "type": "library", 4083 | "extra": { 4084 | "branch-alias": { 4085 | "dev-master": "1.10-dev" 4086 | } 4087 | }, 4088 | "autoload": { 4089 | "psr-4": { 4090 | "Webmozart\\Assert\\": "src/" 4091 | } 4092 | }, 4093 | "notification-url": "https://packagist.org/downloads/", 4094 | "license": [ 4095 | "MIT" 4096 | ], 4097 | "authors": [ 4098 | { 4099 | "name": "Bernhard Schussek", 4100 | "email": "bschussek@gmail.com" 4101 | } 4102 | ], 4103 | "description": "Assertions to validate method input/output with nice error messages.", 4104 | "keywords": [ 4105 | "assert", 4106 | "check", 4107 | "validate" 4108 | ], 4109 | "support": { 4110 | "issues": "https://github.com/webmozarts/assert/issues", 4111 | "source": "https://github.com/webmozarts/assert/tree/1.10.0" 4112 | }, 4113 | "time": "2021-03-09T10:59:23+00:00" 4114 | } 4115 | ], 4116 | "packages-dev": [], 4117 | "aliases": [], 4118 | "minimum-stability": "dev", 4119 | "stability-flags": [], 4120 | "prefer-stable": true, 4121 | "prefer-lowest": false, 4122 | "platform": [], 4123 | "platform-dev": { 4124 | "ext-curl": "*", 4125 | "ext-dom": "*", 4126 | "ext-json": "*" 4127 | }, 4128 | "plugin-api-version": "2.0.0" 4129 | } 4130 | -------------------------------------------------------------------------------- /docs/feature.md: -------------------------------------------------------------------------------- 1 | Usage 2 | -------- 3 | We recommend that you code with clean principles and separate responsibilities as possible, to maintain quality documentation, use, maintenance and testing. 4 | ```php 5 | // your php code 6 | ``` 7 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ../../src 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | . 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Abstracts/ArabicDiffForHumansAbstract.php: -------------------------------------------------------------------------------- 1 | toDivideBy[$unit - 1]); 35 | } 36 | 37 | /** 38 | * 39 | * 40 | * @param $timestamp 41 | * 42 | * @return float|int 43 | * @author karam mustafa 44 | */ 45 | protected function getDifference($timestamp) 46 | { 47 | return abs(time() - $timestamp); 48 | } 49 | 50 | /** 51 | * 52 | * 53 | * @param $diff 54 | * 55 | * @return int 56 | * @author Abdussalam Al-Ali 57 | */ 58 | protected function unit($diff) 59 | { 60 | if ($diff < 60) { 61 | return 1; 62 | } // seconds 63 | if ($diff < 60 * 60) { 64 | return 2; 65 | } // minutes 66 | if ($diff < 24 * 60 * 60) { 67 | return 3; 68 | } // hours 69 | if ($diff < 24 * 60 * 60 * 30) { 70 | return 4; 71 | } //days 72 | if ($diff < 24 * 60 * 60 * 365) { 73 | return 5; 74 | } // months 75 | 76 | return 6; //years 77 | } 78 | 79 | /** 80 | * 81 | * 82 | * @param $valueOfDifference 83 | * @param $single 84 | * @param $double 85 | * @param $plural 86 | * 87 | * @return string 88 | * @author karam mustafa 89 | */ 90 | protected function formatResult($valueOfDifference, $single, $double, $plural) 91 | { 92 | if ($valueOfDifference == 1) { 93 | return "منذ ".$single; 94 | } 95 | 96 | if ($valueOfDifference == 2) { 97 | return " منذ ".$double; 98 | } 99 | 100 | if ($valueOfDifference <= 10) { 101 | return "منذ ".$valueOfDifference." ".$plural; 102 | } 103 | 104 | return "منذ ".$valueOfDifference." ".$single; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/Classes/ArabicDiffForHumans.php: -------------------------------------------------------------------------------- 1 | get($timeStamp); 33 | } 34 | 35 | /** 36 | * @inheritDoc 37 | */ 38 | public function get($timeStamp) 39 | { 40 | $diff = $this->getDifference($timeStamp); 41 | 42 | $unit = $this->unit($diff); 43 | $valueOfDifference = floor($this->DiffValue($diff, $unit)); 44 | $result = ""; 45 | 46 | foreach ($this->formatted as $key => $value) { 47 | if (($key + 1) == $unit) { 48 | $result = $this->formatResult($valueOfDifference, ...$value); 49 | } 50 | } 51 | 52 | return $result; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Interfaces/ArabicDiffForHumansInterface.php: -------------------------------------------------------------------------------- 1 | assertEquals('منذ 3 سنين', $instance->getFromDateString($time)); 25 | 26 | $this->assertEquals('منذ 3 سنين', $instance->get($timeStamp)); 27 | } 28 | } 29 | --------------------------------------------------------------------------------