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