├── .github └── workflows │ └── main.yml ├── .gitignore ├── .php_cs.dist ├── .phpcs.xml.dist ├── .scrutinizer.yml ├── .styleci.yml ├── LICENSE.md ├── README.md ├── composer.json ├── composer.lock ├── phpunit.xml.dist ├── resources └── icons │ └── magnet.png ├── src ├── Menus │ └── Entrance.php ├── TorrentMenuItemBuilder.php ├── Workflow.php └── app.php └── tests ├── Feature ├── TagsTest.php └── WorkflowTest.php ├── TestCase.php └── Unit ├── TorrentMenuItemBuilderTest.php └── WorkflowTest.php /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: application tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | php: 13 | name: on macOS, PHP 14 | 15 | runs-on: macos-latest 16 | 17 | strategy: 18 | matrix: 19 | php: [8.0, 7.4, 7.3] 20 | 21 | steps: 22 | - name: checkout code 23 | uses: actions/checkout@v2 24 | 25 | - name: setup PHP 26 | uses: shivammathur/setup-php@v2 27 | with: 28 | php-version: ${{ matrix.php }} 29 | tools: pecl 30 | extensions: fileinfo, sqlite, pdo_sqlite 31 | coverage: xdebug 32 | env: 33 | COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} 34 | 35 | - name: do some magic Composer cache 36 | id: composer-cache 37 | run: echo "::set-output name=dir::$(composer config cache-files-dir)" 38 | - uses: actions/cache@v2 39 | with: 40 | path: ${{ steps.composer-cache.outputs.dir }} 41 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 42 | restore-keys: ${{ runner.os }}-composer- 43 | 44 | - name: install dependencies 45 | run: composer update 46 | 47 | - name: run tests 48 | run: composer test -- --coverage-clover=coverage.clover 49 | 50 | - name: upload code coverage 51 | run: php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | .phpunit.result.cache 3 | .php_cs.cache 4 | 5 | .DS_Store 6 | 7 | build 8 | -------------------------------------------------------------------------------- /.php_cs.dist: -------------------------------------------------------------------------------- 1 | setRules([ 5 | '@PSR2' => true, 6 | 'array_syntax' => ['syntax' => 'short'], 7 | 'binary_operator_spaces' => ['default' => 'single_space'], 8 | 'blank_line_after_opening_tag' => true, 9 | 'blank_line_before_statement' => true, 10 | 'cast_spaces' => ['space' => 'single'], 11 | 'concat_space' => ['spacing' => 'one'], 12 | 'method_chaining_indentation' => true, 13 | 'no_blank_lines_after_phpdoc' => true, 14 | 'no_unused_imports' => true, 15 | 'no_useless_else' => true, 16 | 'ordered_imports' => ['sortAlgorithm' => 'length'], 17 | 'phpdoc_add_missing_param_annotation' => true, 18 | 'phpdoc_order' => true, 19 | 'single_blank_line_before_namespace' => true, 20 | 'whitespace_after_comma_in_array' => true, 21 | ]); 22 | -------------------------------------------------------------------------------- /.phpcs.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hopefully PSR2 standard that works 4 | 5 | 6 | 7 | *Test.php 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- 1 | build: 2 | nodes: 3 | analysis: 4 | tests: 5 | override: 6 | - php-scrutinizer-run 7 | 8 | filter: 9 | excluded_paths: [tests/*] 10 | 11 | tools: 12 | external_code_coverage: 13 | runs: 3 14 | -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: psr12 2 | 3 | risky: true 4 | 5 | finder: 6 | exclude: 7 | - "tests" 8 | - "vendor" 9 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 Guillaume Leclerc 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Alfred KAT

2 | 3 |

4 | GitHub Release 5 | Build Status 6 | Quality Score 7 | Code Coverage 8 | GitHub Downloads 9 |

10 | 11 | ___ 12 | 13 | # UPDATE: Alfred KAT IS NOW WRITTEN IN SWIFT AND HAS A NEW HOME 14 | 15 | There: https://github.com/godbout/AlfredKat 16 | 17 | # WHAT IS THAT 18 | 19 | Get your KAT torrents without all the advertising crap. Type "kat" followed by what you're looking for, wait a bit (it's quick), choose your torrent and make some space on your HD. 20 | 21 | Now you can also use #tags. 22 | 23 | # MANDATORY SCREENSHOT 24 | 25 | ![Beautiful Video](https://github.com/godbout/alfred-kat/blob/media/alfred-kat.gif "Beautiful Video") 26 | 27 | # WHY IS THAT 28 | 29 | There's a [KAT workflow](http://www.packal.org/workflow/kat-search) already on [packal.org](http://www.packal.org), but it doesn't work for me (SSL error). I contacted the author but got no answer, so I built this one. If the other one on Packal works it might be better to use it, it might have more options, or maybe not, I don't know, la la la la la. 30 | 31 | # SETUP 32 | 33 | NO SETUP! But the KAT URL is an Alfred workflow variable so you can replace it with a mirror in case the main site is down. 34 | 35 | # PRO USERS 36 | 37 | The workflow opens the magnet with the magnet default application of your Mac. If you prefer using a command-line client, you can add a `cli` variable in the [Workflow Environment Variables](https://www.alfredapp.com/help/workflows/advanced/variables/#environment). The value should be the full path to your torrent client with a `{magnet}` variable that will be replaced by the selected magnet (e.g. `/usr/local/bin/transmission-remote -a {magnet}`). 38 | 39 | You can also copy the magnet to the clipboard rather than opening it (and starting the download) by using the ⌘ modifier. 40 | 41 | # DOWNLOAD 42 | 43 | [Release page](https://github.com/godbout/alfred-kat/releases/latest) 44 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "godbout/alfred-kat", 3 | "description": "Search and open magnet links on KAT directly from Alfred.", 4 | "keywords": [ 5 | "alfred", 6 | "workflow", 7 | "alfred-workflow", 8 | "torrents", 9 | "kickass", 10 | "kat" 11 | ], 12 | "homepage": "https://github.com/godbout/alfred-kat", 13 | "license": "MIT", 14 | "type": "project", 15 | "authors": [ 16 | { 17 | "name": "Guill Lo", 18 | "email": "guill@sleeplessmind.com.mo", 19 | "role": "Craftsman" 20 | } 21 | ], 22 | "require": { 23 | "php": "^7.3 || ^8.0", 24 | "fabpot/goutte": "^4", 25 | "godbout/alfred-workflow-workflow": "^1.2", 26 | "guzzlehttp/guzzle": "^7.2", 27 | "symfony/css-selector": "^5.0", 28 | "symfony/dom-crawler": "^5.2", 29 | "symfony/http-client": "^5.2" 30 | }, 31 | "require-dev": { 32 | "codedungeon/phpunit-result-printer": "^0.30.1", 33 | "phpunit/phpunit": "^9.5", 34 | "scrutinizer/ocular": "^1.8", 35 | "symfony/yaml": "^5.0" 36 | }, 37 | "autoload": { 38 | "psr-4": { 39 | "Godbout\\Alfred\\Kat\\": "src" 40 | } 41 | }, 42 | "autoload-dev": { 43 | "psr-4": { 44 | "Tests\\": "tests/" 45 | } 46 | }, 47 | "scripts": { 48 | "test": "phpunit --color=always", 49 | "format": "php-cs-fixer fix src tests -vvv --config=.php_cs.dist --ansi" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /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": "3897f143ae1d21f9cae36a4bb7afc54f", 8 | "packages": [ 9 | { 10 | "name": "fabpot/goutte", 11 | "version": "v4.0.1", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/FriendsOfPHP/Goutte.git", 15 | "reference": "293e754f0be2f1e85f9b31262cb811de39874e03" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/293e754f0be2f1e85f9b31262cb811de39874e03", 20 | "reference": "293e754f0be2f1e85f9b31262cb811de39874e03", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=7.1.3", 25 | "symfony/browser-kit": "^4.4|^5.0", 26 | "symfony/css-selector": "^4.4|^5.0", 27 | "symfony/dom-crawler": "^4.4|^5.0", 28 | "symfony/http-client": "^4.4|^5.0", 29 | "symfony/mime": "^4.4|^5.0" 30 | }, 31 | "require-dev": { 32 | "symfony/phpunit-bridge": "^5.0" 33 | }, 34 | "type": "application", 35 | "autoload": { 36 | "psr-4": { 37 | "Goutte\\": "Goutte" 38 | }, 39 | "exclude-from-classmap": [ 40 | "Goutte/Tests" 41 | ] 42 | }, 43 | "notification-url": "https://packagist.org/downloads/", 44 | "license": [ 45 | "MIT" 46 | ], 47 | "authors": [ 48 | { 49 | "name": "Fabien Potencier", 50 | "email": "fabien@symfony.com" 51 | } 52 | ], 53 | "description": "A simple PHP Web Scraper", 54 | "homepage": "https://github.com/FriendsOfPHP/Goutte", 55 | "keywords": [ 56 | "scraper" 57 | ], 58 | "support": { 59 | "issues": "https://github.com/FriendsOfPHP/Goutte/issues", 60 | "source": "https://github.com/FriendsOfPHP/Goutte/tree/v4.0.1" 61 | }, 62 | "time": "2020-10-14T06:49:09+00:00" 63 | }, 64 | { 65 | "name": "godbout/alfred-workflow-scriptfilter", 66 | "version": "2.3.0", 67 | "source": { 68 | "type": "git", 69 | "url": "https://github.com/godbout/alfred-workflow-scriptfilter.git", 70 | "reference": "5d8b41d8f1f73188865f09dfe8403b83d0796155" 71 | }, 72 | "dist": { 73 | "type": "zip", 74 | "url": "https://api.github.com/repos/godbout/alfred-workflow-scriptfilter/zipball/5d8b41d8f1f73188865f09dfe8403b83d0796155", 75 | "reference": "5d8b41d8f1f73188865f09dfe8403b83d0796155", 76 | "shasum": "" 77 | }, 78 | "require": { 79 | "php": "^7.3 || ^8.0" 80 | }, 81 | "require-dev": { 82 | "codedungeon/phpunit-result-printer": "^0.30", 83 | "phpunit/phpunit": "^9.5", 84 | "scrutinizer/ocular": "^1.8", 85 | "symfony/yaml": "^5.0" 86 | }, 87 | "type": "library", 88 | "autoload": { 89 | "psr-4": { 90 | "Godbout\\Alfred\\Workflow\\": "src" 91 | } 92 | }, 93 | "notification-url": "https://packagist.org/downloads/", 94 | "license": [ 95 | "MIT" 96 | ], 97 | "authors": [ 98 | { 99 | "name": "Guillaume Leclerc", 100 | "email": "guill@sleeplessmind.com.mo", 101 | "role": "Craftsman" 102 | } 103 | ], 104 | "description": "Generate Alfred 3 or 4 Workflow Results in PHP with a laugh.", 105 | "homepage": "https://github.com/godbout/alfred-workflow-scriptfilter", 106 | "keywords": [ 107 | "alfred", 108 | "alfred-workflow", 109 | "php", 110 | "results", 111 | "scriptfilter", 112 | "workflow" 113 | ], 114 | "support": { 115 | "issues": "https://github.com/godbout/alfred-workflow-scriptfilter/issues", 116 | "source": "https://github.com/godbout/alfred-workflow-scriptfilter/tree/2.3.0" 117 | }, 118 | "time": "2021-01-23T16:58:38+00:00" 119 | }, 120 | { 121 | "name": "godbout/alfred-workflow-workflow", 122 | "version": "1.2.0", 123 | "source": { 124 | "type": "git", 125 | "url": "https://github.com/godbout/alfred-workflow-workflow.git", 126 | "reference": "830ec1bd2280cf668642064406d3b7d91276bf95" 127 | }, 128 | "dist": { 129 | "type": "zip", 130 | "url": "https://api.github.com/repos/godbout/alfred-workflow-workflow/zipball/830ec1bd2280cf668642064406d3b7d91276bf95", 131 | "reference": "830ec1bd2280cf668642064406d3b7d91276bf95", 132 | "shasum": "" 133 | }, 134 | "require": { 135 | "godbout/alfred-workflow-scriptfilter": "^2.0", 136 | "php": "^7.3 || ^8.0" 137 | }, 138 | "require-dev": { 139 | "codedungeon/phpunit-result-printer": "^0.30", 140 | "phpunit/phpunit": "^9.5", 141 | "scrutinizer/ocular": "^1.8", 142 | "symfony/yaml": "^5" 143 | }, 144 | "type": "library", 145 | "autoload": { 146 | "psr-4": { 147 | "Godbout\\Alfred\\Workflow\\": "src" 148 | } 149 | }, 150 | "notification-url": "https://packagist.org/downloads/", 151 | "license": [ 152 | "MIT" 153 | ], 154 | "authors": [ 155 | { 156 | "name": "Guillaume Leclerc", 157 | "email": "guill@sleeplessmind.com.mo", 158 | "role": "main craftsman" 159 | } 160 | ], 161 | "description": "Takes care of all the Alfred glue for you so that you need to code only what is specific to your Workflow.", 162 | "homepage": "https://github.com/godbout/alfred-workflow-workflow", 163 | "keywords": [ 164 | "alfred", 165 | "alfred-workflow", 166 | "php", 167 | "template", 168 | "workflow" 169 | ], 170 | "support": { 171 | "issues": "https://github.com/godbout/alfred-workflow-workflow/issues", 172 | "source": "https://github.com/godbout/alfred-workflow-workflow/tree/1.2.0" 173 | }, 174 | "time": "2021-01-23T17:01:01+00:00" 175 | }, 176 | { 177 | "name": "guzzlehttp/guzzle", 178 | "version": "7.2.0", 179 | "source": { 180 | "type": "git", 181 | "url": "https://github.com/guzzle/guzzle.git", 182 | "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" 183 | }, 184 | "dist": { 185 | "type": "zip", 186 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", 187 | "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", 188 | "shasum": "" 189 | }, 190 | "require": { 191 | "ext-json": "*", 192 | "guzzlehttp/promises": "^1.4", 193 | "guzzlehttp/psr7": "^1.7", 194 | "php": "^7.2.5 || ^8.0", 195 | "psr/http-client": "^1.0" 196 | }, 197 | "provide": { 198 | "psr/http-client-implementation": "1.0" 199 | }, 200 | "require-dev": { 201 | "ext-curl": "*", 202 | "php-http/client-integration-tests": "^3.0", 203 | "phpunit/phpunit": "^8.5.5 || ^9.3.5", 204 | "psr/log": "^1.1" 205 | }, 206 | "suggest": { 207 | "ext-curl": "Required for CURL handler support", 208 | "ext-intl": "Required for Internationalized Domain Name (IDN) support", 209 | "psr/log": "Required for using the Log middleware" 210 | }, 211 | "type": "library", 212 | "extra": { 213 | "branch-alias": { 214 | "dev-master": "7.1-dev" 215 | } 216 | }, 217 | "autoload": { 218 | "psr-4": { 219 | "GuzzleHttp\\": "src/" 220 | }, 221 | "files": [ 222 | "src/functions_include.php" 223 | ] 224 | }, 225 | "notification-url": "https://packagist.org/downloads/", 226 | "license": [ 227 | "MIT" 228 | ], 229 | "authors": [ 230 | { 231 | "name": "Michael Dowling", 232 | "email": "mtdowling@gmail.com", 233 | "homepage": "https://github.com/mtdowling" 234 | }, 235 | { 236 | "name": "Márk Sági-Kazár", 237 | "email": "mark.sagikazar@gmail.com", 238 | "homepage": "https://sagikazarmark.hu" 239 | } 240 | ], 241 | "description": "Guzzle is a PHP HTTP client library", 242 | "homepage": "http://guzzlephp.org/", 243 | "keywords": [ 244 | "client", 245 | "curl", 246 | "framework", 247 | "http", 248 | "http client", 249 | "psr-18", 250 | "psr-7", 251 | "rest", 252 | "web service" 253 | ], 254 | "support": { 255 | "issues": "https://github.com/guzzle/guzzle/issues", 256 | "source": "https://github.com/guzzle/guzzle/tree/7.2.0" 257 | }, 258 | "funding": [ 259 | { 260 | "url": "https://github.com/GrahamCampbell", 261 | "type": "github" 262 | }, 263 | { 264 | "url": "https://github.com/Nyholm", 265 | "type": "github" 266 | }, 267 | { 268 | "url": "https://github.com/alexeyshockov", 269 | "type": "github" 270 | }, 271 | { 272 | "url": "https://github.com/gmponos", 273 | "type": "github" 274 | } 275 | ], 276 | "time": "2020-10-10T11:47:56+00:00" 277 | }, 278 | { 279 | "name": "guzzlehttp/promises", 280 | "version": "1.4.0", 281 | "source": { 282 | "type": "git", 283 | "url": "https://github.com/guzzle/promises.git", 284 | "reference": "60d379c243457e073cff02bc323a2a86cb355631" 285 | }, 286 | "dist": { 287 | "type": "zip", 288 | "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", 289 | "reference": "60d379c243457e073cff02bc323a2a86cb355631", 290 | "shasum": "" 291 | }, 292 | "require": { 293 | "php": ">=5.5" 294 | }, 295 | "require-dev": { 296 | "symfony/phpunit-bridge": "^4.4 || ^5.1" 297 | }, 298 | "type": "library", 299 | "extra": { 300 | "branch-alias": { 301 | "dev-master": "1.4-dev" 302 | } 303 | }, 304 | "autoload": { 305 | "psr-4": { 306 | "GuzzleHttp\\Promise\\": "src/" 307 | }, 308 | "files": [ 309 | "src/functions_include.php" 310 | ] 311 | }, 312 | "notification-url": "https://packagist.org/downloads/", 313 | "license": [ 314 | "MIT" 315 | ], 316 | "authors": [ 317 | { 318 | "name": "Michael Dowling", 319 | "email": "mtdowling@gmail.com", 320 | "homepage": "https://github.com/mtdowling" 321 | } 322 | ], 323 | "description": "Guzzle promises library", 324 | "keywords": [ 325 | "promise" 326 | ], 327 | "support": { 328 | "issues": "https://github.com/guzzle/promises/issues", 329 | "source": "https://github.com/guzzle/promises/tree/1.4.0" 330 | }, 331 | "time": "2020-09-30T07:37:28+00:00" 332 | }, 333 | { 334 | "name": "guzzlehttp/psr7", 335 | "version": "1.7.0", 336 | "source": { 337 | "type": "git", 338 | "url": "https://github.com/guzzle/psr7.git", 339 | "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" 340 | }, 341 | "dist": { 342 | "type": "zip", 343 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", 344 | "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", 345 | "shasum": "" 346 | }, 347 | "require": { 348 | "php": ">=5.4.0", 349 | "psr/http-message": "~1.0", 350 | "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" 351 | }, 352 | "provide": { 353 | "psr/http-message-implementation": "1.0" 354 | }, 355 | "require-dev": { 356 | "ext-zlib": "*", 357 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" 358 | }, 359 | "suggest": { 360 | "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" 361 | }, 362 | "type": "library", 363 | "extra": { 364 | "branch-alias": { 365 | "dev-master": "1.7-dev" 366 | } 367 | }, 368 | "autoload": { 369 | "psr-4": { 370 | "GuzzleHttp\\Psr7\\": "src/" 371 | }, 372 | "files": [ 373 | "src/functions_include.php" 374 | ] 375 | }, 376 | "notification-url": "https://packagist.org/downloads/", 377 | "license": [ 378 | "MIT" 379 | ], 380 | "authors": [ 381 | { 382 | "name": "Michael Dowling", 383 | "email": "mtdowling@gmail.com", 384 | "homepage": "https://github.com/mtdowling" 385 | }, 386 | { 387 | "name": "Tobias Schultze", 388 | "homepage": "https://github.com/Tobion" 389 | } 390 | ], 391 | "description": "PSR-7 message implementation that also provides common utility methods", 392 | "keywords": [ 393 | "http", 394 | "message", 395 | "psr-7", 396 | "request", 397 | "response", 398 | "stream", 399 | "uri", 400 | "url" 401 | ], 402 | "support": { 403 | "issues": "https://github.com/guzzle/psr7/issues", 404 | "source": "https://github.com/guzzle/psr7/tree/1.7.0" 405 | }, 406 | "time": "2020-09-30T07:37:11+00:00" 407 | }, 408 | { 409 | "name": "psr/container", 410 | "version": "1.0.0", 411 | "source": { 412 | "type": "git", 413 | "url": "https://github.com/php-fig/container.git", 414 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 415 | }, 416 | "dist": { 417 | "type": "zip", 418 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 419 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 420 | "shasum": "" 421 | }, 422 | "require": { 423 | "php": ">=5.3.0" 424 | }, 425 | "type": "library", 426 | "extra": { 427 | "branch-alias": { 428 | "dev-master": "1.0.x-dev" 429 | } 430 | }, 431 | "autoload": { 432 | "psr-4": { 433 | "Psr\\Container\\": "src/" 434 | } 435 | }, 436 | "notification-url": "https://packagist.org/downloads/", 437 | "license": [ 438 | "MIT" 439 | ], 440 | "authors": [ 441 | { 442 | "name": "PHP-FIG", 443 | "homepage": "http://www.php-fig.org/" 444 | } 445 | ], 446 | "description": "Common Container Interface (PHP FIG PSR-11)", 447 | "homepage": "https://github.com/php-fig/container", 448 | "keywords": [ 449 | "PSR-11", 450 | "container", 451 | "container-interface", 452 | "container-interop", 453 | "psr" 454 | ], 455 | "support": { 456 | "issues": "https://github.com/php-fig/container/issues", 457 | "source": "https://github.com/php-fig/container/tree/master" 458 | }, 459 | "time": "2017-02-14T16:28:37+00:00" 460 | }, 461 | { 462 | "name": "psr/http-client", 463 | "version": "1.0.1", 464 | "source": { 465 | "type": "git", 466 | "url": "https://github.com/php-fig/http-client.git", 467 | "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" 468 | }, 469 | "dist": { 470 | "type": "zip", 471 | "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", 472 | "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", 473 | "shasum": "" 474 | }, 475 | "require": { 476 | "php": "^7.0 || ^8.0", 477 | "psr/http-message": "^1.0" 478 | }, 479 | "type": "library", 480 | "extra": { 481 | "branch-alias": { 482 | "dev-master": "1.0.x-dev" 483 | } 484 | }, 485 | "autoload": { 486 | "psr-4": { 487 | "Psr\\Http\\Client\\": "src/" 488 | } 489 | }, 490 | "notification-url": "https://packagist.org/downloads/", 491 | "license": [ 492 | "MIT" 493 | ], 494 | "authors": [ 495 | { 496 | "name": "PHP-FIG", 497 | "homepage": "http://www.php-fig.org/" 498 | } 499 | ], 500 | "description": "Common interface for HTTP clients", 501 | "homepage": "https://github.com/php-fig/http-client", 502 | "keywords": [ 503 | "http", 504 | "http-client", 505 | "psr", 506 | "psr-18" 507 | ], 508 | "support": { 509 | "source": "https://github.com/php-fig/http-client/tree/master" 510 | }, 511 | "time": "2020-06-29T06:28:15+00:00" 512 | }, 513 | { 514 | "name": "psr/http-message", 515 | "version": "1.0.1", 516 | "source": { 517 | "type": "git", 518 | "url": "https://github.com/php-fig/http-message.git", 519 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 520 | }, 521 | "dist": { 522 | "type": "zip", 523 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 524 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 525 | "shasum": "" 526 | }, 527 | "require": { 528 | "php": ">=5.3.0" 529 | }, 530 | "type": "library", 531 | "extra": { 532 | "branch-alias": { 533 | "dev-master": "1.0.x-dev" 534 | } 535 | }, 536 | "autoload": { 537 | "psr-4": { 538 | "Psr\\Http\\Message\\": "src/" 539 | } 540 | }, 541 | "notification-url": "https://packagist.org/downloads/", 542 | "license": [ 543 | "MIT" 544 | ], 545 | "authors": [ 546 | { 547 | "name": "PHP-FIG", 548 | "homepage": "http://www.php-fig.org/" 549 | } 550 | ], 551 | "description": "Common interface for HTTP messages", 552 | "homepage": "https://github.com/php-fig/http-message", 553 | "keywords": [ 554 | "http", 555 | "http-message", 556 | "psr", 557 | "psr-7", 558 | "request", 559 | "response" 560 | ], 561 | "support": { 562 | "source": "https://github.com/php-fig/http-message/tree/master" 563 | }, 564 | "time": "2016-08-06T14:39:51+00:00" 565 | }, 566 | { 567 | "name": "psr/log", 568 | "version": "1.1.3", 569 | "source": { 570 | "type": "git", 571 | "url": "https://github.com/php-fig/log.git", 572 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" 573 | }, 574 | "dist": { 575 | "type": "zip", 576 | "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", 577 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", 578 | "shasum": "" 579 | }, 580 | "require": { 581 | "php": ">=5.3.0" 582 | }, 583 | "type": "library", 584 | "extra": { 585 | "branch-alias": { 586 | "dev-master": "1.1.x-dev" 587 | } 588 | }, 589 | "autoload": { 590 | "psr-4": { 591 | "Psr\\Log\\": "Psr/Log/" 592 | } 593 | }, 594 | "notification-url": "https://packagist.org/downloads/", 595 | "license": [ 596 | "MIT" 597 | ], 598 | "authors": [ 599 | { 600 | "name": "PHP-FIG", 601 | "homepage": "http://www.php-fig.org/" 602 | } 603 | ], 604 | "description": "Common interface for logging libraries", 605 | "homepage": "https://github.com/php-fig/log", 606 | "keywords": [ 607 | "log", 608 | "psr", 609 | "psr-3" 610 | ], 611 | "support": { 612 | "source": "https://github.com/php-fig/log/tree/1.1.3" 613 | }, 614 | "time": "2020-03-23T09:12:05+00:00" 615 | }, 616 | { 617 | "name": "ralouphie/getallheaders", 618 | "version": "3.0.3", 619 | "source": { 620 | "type": "git", 621 | "url": "https://github.com/ralouphie/getallheaders.git", 622 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 623 | }, 624 | "dist": { 625 | "type": "zip", 626 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 627 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 628 | "shasum": "" 629 | }, 630 | "require": { 631 | "php": ">=5.6" 632 | }, 633 | "require-dev": { 634 | "php-coveralls/php-coveralls": "^2.1", 635 | "phpunit/phpunit": "^5 || ^6.5" 636 | }, 637 | "type": "library", 638 | "autoload": { 639 | "files": [ 640 | "src/getallheaders.php" 641 | ] 642 | }, 643 | "notification-url": "https://packagist.org/downloads/", 644 | "license": [ 645 | "MIT" 646 | ], 647 | "authors": [ 648 | { 649 | "name": "Ralph Khattar", 650 | "email": "ralph.khattar@gmail.com" 651 | } 652 | ], 653 | "description": "A polyfill for getallheaders.", 654 | "support": { 655 | "issues": "https://github.com/ralouphie/getallheaders/issues", 656 | "source": "https://github.com/ralouphie/getallheaders/tree/develop" 657 | }, 658 | "time": "2019-03-08T08:55:37+00:00" 659 | }, 660 | { 661 | "name": "symfony/browser-kit", 662 | "version": "v5.2.1", 663 | "source": { 664 | "type": "git", 665 | "url": "https://github.com/symfony/browser-kit.git", 666 | "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a" 667 | }, 668 | "dist": { 669 | "type": "zip", 670 | "url": "https://api.github.com/repos/symfony/browser-kit/zipball/87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a", 671 | "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a", 672 | "shasum": "" 673 | }, 674 | "require": { 675 | "php": ">=7.2.5", 676 | "symfony/dom-crawler": "^4.4|^5.0" 677 | }, 678 | "require-dev": { 679 | "symfony/css-selector": "^4.4|^5.0", 680 | "symfony/http-client": "^4.4|^5.0", 681 | "symfony/mime": "^4.4|^5.0", 682 | "symfony/process": "^4.4|^5.0" 683 | }, 684 | "suggest": { 685 | "symfony/process": "" 686 | }, 687 | "type": "library", 688 | "autoload": { 689 | "psr-4": { 690 | "Symfony\\Component\\BrowserKit\\": "" 691 | }, 692 | "exclude-from-classmap": [ 693 | "/Tests/" 694 | ] 695 | }, 696 | "notification-url": "https://packagist.org/downloads/", 697 | "license": [ 698 | "MIT" 699 | ], 700 | "authors": [ 701 | { 702 | "name": "Fabien Potencier", 703 | "email": "fabien@symfony.com" 704 | }, 705 | { 706 | "name": "Symfony Community", 707 | "homepage": "https://symfony.com/contributors" 708 | } 709 | ], 710 | "description": "Symfony BrowserKit Component", 711 | "homepage": "https://symfony.com", 712 | "support": { 713 | "source": "https://github.com/symfony/browser-kit/tree/v5.2.1" 714 | }, 715 | "funding": [ 716 | { 717 | "url": "https://symfony.com/sponsor", 718 | "type": "custom" 719 | }, 720 | { 721 | "url": "https://github.com/fabpot", 722 | "type": "github" 723 | }, 724 | { 725 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 726 | "type": "tidelift" 727 | } 728 | ], 729 | "time": "2020-12-18T08:03:05+00:00" 730 | }, 731 | { 732 | "name": "symfony/css-selector", 733 | "version": "v5.2.1", 734 | "source": { 735 | "type": "git", 736 | "url": "https://github.com/symfony/css-selector.git", 737 | "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054" 738 | }, 739 | "dist": { 740 | "type": "zip", 741 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054", 742 | "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054", 743 | "shasum": "" 744 | }, 745 | "require": { 746 | "php": ">=7.2.5" 747 | }, 748 | "type": "library", 749 | "autoload": { 750 | "psr-4": { 751 | "Symfony\\Component\\CssSelector\\": "" 752 | }, 753 | "exclude-from-classmap": [ 754 | "/Tests/" 755 | ] 756 | }, 757 | "notification-url": "https://packagist.org/downloads/", 758 | "license": [ 759 | "MIT" 760 | ], 761 | "authors": [ 762 | { 763 | "name": "Fabien Potencier", 764 | "email": "fabien@symfony.com" 765 | }, 766 | { 767 | "name": "Jean-François Simon", 768 | "email": "jeanfrancois.simon@sensiolabs.com" 769 | }, 770 | { 771 | "name": "Symfony Community", 772 | "homepage": "https://symfony.com/contributors" 773 | } 774 | ], 775 | "description": "Symfony CssSelector Component", 776 | "homepage": "https://symfony.com", 777 | "support": { 778 | "source": "https://github.com/symfony/css-selector/tree/v5.2.1" 779 | }, 780 | "funding": [ 781 | { 782 | "url": "https://symfony.com/sponsor", 783 | "type": "custom" 784 | }, 785 | { 786 | "url": "https://github.com/fabpot", 787 | "type": "github" 788 | }, 789 | { 790 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 791 | "type": "tidelift" 792 | } 793 | ], 794 | "time": "2020-12-08T17:02:38+00:00" 795 | }, 796 | { 797 | "name": "symfony/deprecation-contracts", 798 | "version": "v2.2.0", 799 | "source": { 800 | "type": "git", 801 | "url": "https://github.com/symfony/deprecation-contracts.git", 802 | "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" 803 | }, 804 | "dist": { 805 | "type": "zip", 806 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", 807 | "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", 808 | "shasum": "" 809 | }, 810 | "require": { 811 | "php": ">=7.1" 812 | }, 813 | "type": "library", 814 | "extra": { 815 | "branch-alias": { 816 | "dev-master": "2.2-dev" 817 | }, 818 | "thanks": { 819 | "name": "symfony/contracts", 820 | "url": "https://github.com/symfony/contracts" 821 | } 822 | }, 823 | "autoload": { 824 | "files": [ 825 | "function.php" 826 | ] 827 | }, 828 | "notification-url": "https://packagist.org/downloads/", 829 | "license": [ 830 | "MIT" 831 | ], 832 | "authors": [ 833 | { 834 | "name": "Nicolas Grekas", 835 | "email": "p@tchwork.com" 836 | }, 837 | { 838 | "name": "Symfony Community", 839 | "homepage": "https://symfony.com/contributors" 840 | } 841 | ], 842 | "description": "A generic function and convention to trigger deprecation notices", 843 | "homepage": "https://symfony.com", 844 | "support": { 845 | "source": "https://github.com/symfony/deprecation-contracts/tree/master" 846 | }, 847 | "funding": [ 848 | { 849 | "url": "https://symfony.com/sponsor", 850 | "type": "custom" 851 | }, 852 | { 853 | "url": "https://github.com/fabpot", 854 | "type": "github" 855 | }, 856 | { 857 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 858 | "type": "tidelift" 859 | } 860 | ], 861 | "time": "2020-09-07T11:33:47+00:00" 862 | }, 863 | { 864 | "name": "symfony/dom-crawler", 865 | "version": "v5.2.1", 866 | "source": { 867 | "type": "git", 868 | "url": "https://github.com/symfony/dom-crawler.git", 869 | "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea" 870 | }, 871 | "dist": { 872 | "type": "zip", 873 | "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ee7cf316fb0de786cfe5ae32ee79502b290c81ea", 874 | "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea", 875 | "shasum": "" 876 | }, 877 | "require": { 878 | "php": ">=7.2.5", 879 | "symfony/polyfill-ctype": "~1.8", 880 | "symfony/polyfill-mbstring": "~1.0", 881 | "symfony/polyfill-php80": "^1.15" 882 | }, 883 | "conflict": { 884 | "masterminds/html5": "<2.6" 885 | }, 886 | "require-dev": { 887 | "masterminds/html5": "^2.6", 888 | "symfony/css-selector": "^4.4|^5.0" 889 | }, 890 | "suggest": { 891 | "symfony/css-selector": "" 892 | }, 893 | "type": "library", 894 | "autoload": { 895 | "psr-4": { 896 | "Symfony\\Component\\DomCrawler\\": "" 897 | }, 898 | "exclude-from-classmap": [ 899 | "/Tests/" 900 | ] 901 | }, 902 | "notification-url": "https://packagist.org/downloads/", 903 | "license": [ 904 | "MIT" 905 | ], 906 | "authors": [ 907 | { 908 | "name": "Fabien Potencier", 909 | "email": "fabien@symfony.com" 910 | }, 911 | { 912 | "name": "Symfony Community", 913 | "homepage": "https://symfony.com/contributors" 914 | } 915 | ], 916 | "description": "Symfony DomCrawler Component", 917 | "homepage": "https://symfony.com", 918 | "support": { 919 | "source": "https://github.com/symfony/dom-crawler/tree/v5.2.1" 920 | }, 921 | "funding": [ 922 | { 923 | "url": "https://symfony.com/sponsor", 924 | "type": "custom" 925 | }, 926 | { 927 | "url": "https://github.com/fabpot", 928 | "type": "github" 929 | }, 930 | { 931 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 932 | "type": "tidelift" 933 | } 934 | ], 935 | "time": "2020-12-18T08:02:46+00:00" 936 | }, 937 | { 938 | "name": "symfony/http-client", 939 | "version": "v5.2.1", 940 | "source": { 941 | "type": "git", 942 | "url": "https://github.com/symfony/http-client.git", 943 | "reference": "a77cbec69ea90dea509beef29b79748c0df33a83" 944 | }, 945 | "dist": { 946 | "type": "zip", 947 | "url": "https://api.github.com/repos/symfony/http-client/zipball/a77cbec69ea90dea509beef29b79748c0df33a83", 948 | "reference": "a77cbec69ea90dea509beef29b79748c0df33a83", 949 | "shasum": "" 950 | }, 951 | "require": { 952 | "php": ">=7.2.5", 953 | "psr/log": "^1.0", 954 | "symfony/http-client-contracts": "^2.2", 955 | "symfony/polyfill-php73": "^1.11", 956 | "symfony/polyfill-php80": "^1.15", 957 | "symfony/service-contracts": "^1.0|^2" 958 | }, 959 | "provide": { 960 | "php-http/async-client-implementation": "*", 961 | "php-http/client-implementation": "*", 962 | "psr/http-client-implementation": "1.0", 963 | "symfony/http-client-implementation": "1.1" 964 | }, 965 | "require-dev": { 966 | "amphp/amp": "^2.5", 967 | "amphp/http-client": "^4.2.1", 968 | "amphp/http-tunnel": "^1.0", 969 | "amphp/socket": "^1.1", 970 | "guzzlehttp/promises": "^1.3.1", 971 | "nyholm/psr7": "^1.0", 972 | "php-http/httplug": "^1.0|^2.0", 973 | "psr/http-client": "^1.0", 974 | "symfony/dependency-injection": "^4.4|^5.0", 975 | "symfony/http-kernel": "^4.4.13|^5.1.5", 976 | "symfony/process": "^4.4|^5.0", 977 | "symfony/stopwatch": "^4.4|^5.0" 978 | }, 979 | "type": "library", 980 | "autoload": { 981 | "psr-4": { 982 | "Symfony\\Component\\HttpClient\\": "" 983 | }, 984 | "exclude-from-classmap": [ 985 | "/Tests/" 986 | ] 987 | }, 988 | "notification-url": "https://packagist.org/downloads/", 989 | "license": [ 990 | "MIT" 991 | ], 992 | "authors": [ 993 | { 994 | "name": "Nicolas Grekas", 995 | "email": "p@tchwork.com" 996 | }, 997 | { 998 | "name": "Symfony Community", 999 | "homepage": "https://symfony.com/contributors" 1000 | } 1001 | ], 1002 | "description": "Symfony HttpClient component", 1003 | "homepage": "https://symfony.com", 1004 | "support": { 1005 | "source": "https://github.com/symfony/http-client/tree/v5.2.1" 1006 | }, 1007 | "funding": [ 1008 | { 1009 | "url": "https://symfony.com/sponsor", 1010 | "type": "custom" 1011 | }, 1012 | { 1013 | "url": "https://github.com/fabpot", 1014 | "type": "github" 1015 | }, 1016 | { 1017 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1018 | "type": "tidelift" 1019 | } 1020 | ], 1021 | "time": "2020-12-14T10:56:50+00:00" 1022 | }, 1023 | { 1024 | "name": "symfony/http-client-contracts", 1025 | "version": "v2.3.1", 1026 | "source": { 1027 | "type": "git", 1028 | "url": "https://github.com/symfony/http-client-contracts.git", 1029 | "reference": "41db680a15018f9c1d4b23516059633ce280ca33" 1030 | }, 1031 | "dist": { 1032 | "type": "zip", 1033 | "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", 1034 | "reference": "41db680a15018f9c1d4b23516059633ce280ca33", 1035 | "shasum": "" 1036 | }, 1037 | "require": { 1038 | "php": ">=7.2.5" 1039 | }, 1040 | "suggest": { 1041 | "symfony/http-client-implementation": "" 1042 | }, 1043 | "type": "library", 1044 | "extra": { 1045 | "branch-version": "2.3", 1046 | "branch-alias": { 1047 | "dev-main": "2.3-dev" 1048 | }, 1049 | "thanks": { 1050 | "name": "symfony/contracts", 1051 | "url": "https://github.com/symfony/contracts" 1052 | } 1053 | }, 1054 | "autoload": { 1055 | "psr-4": { 1056 | "Symfony\\Contracts\\HttpClient\\": "" 1057 | } 1058 | }, 1059 | "notification-url": "https://packagist.org/downloads/", 1060 | "license": [ 1061 | "MIT" 1062 | ], 1063 | "authors": [ 1064 | { 1065 | "name": "Nicolas Grekas", 1066 | "email": "p@tchwork.com" 1067 | }, 1068 | { 1069 | "name": "Symfony Community", 1070 | "homepage": "https://symfony.com/contributors" 1071 | } 1072 | ], 1073 | "description": "Generic abstractions related to HTTP clients", 1074 | "homepage": "https://symfony.com", 1075 | "keywords": [ 1076 | "abstractions", 1077 | "contracts", 1078 | "decoupling", 1079 | "interfaces", 1080 | "interoperability", 1081 | "standards" 1082 | ], 1083 | "support": { 1084 | "source": "https://github.com/symfony/http-client-contracts/tree/v2.3.1" 1085 | }, 1086 | "funding": [ 1087 | { 1088 | "url": "https://symfony.com/sponsor", 1089 | "type": "custom" 1090 | }, 1091 | { 1092 | "url": "https://github.com/fabpot", 1093 | "type": "github" 1094 | }, 1095 | { 1096 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1097 | "type": "tidelift" 1098 | } 1099 | ], 1100 | "time": "2020-10-14T17:08:19+00:00" 1101 | }, 1102 | { 1103 | "name": "symfony/mime", 1104 | "version": "v5.2.1", 1105 | "source": { 1106 | "type": "git", 1107 | "url": "https://github.com/symfony/mime.git", 1108 | "reference": "de97005aef7426ba008c46ba840fc301df577ada" 1109 | }, 1110 | "dist": { 1111 | "type": "zip", 1112 | "url": "https://api.github.com/repos/symfony/mime/zipball/de97005aef7426ba008c46ba840fc301df577ada", 1113 | "reference": "de97005aef7426ba008c46ba840fc301df577ada", 1114 | "shasum": "" 1115 | }, 1116 | "require": { 1117 | "php": ">=7.2.5", 1118 | "symfony/deprecation-contracts": "^2.1", 1119 | "symfony/polyfill-intl-idn": "^1.10", 1120 | "symfony/polyfill-mbstring": "^1.0", 1121 | "symfony/polyfill-php80": "^1.15" 1122 | }, 1123 | "conflict": { 1124 | "symfony/mailer": "<4.4" 1125 | }, 1126 | "require-dev": { 1127 | "egulias/email-validator": "^2.1.10", 1128 | "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", 1129 | "symfony/dependency-injection": "^4.4|^5.0", 1130 | "symfony/property-access": "^4.4|^5.1", 1131 | "symfony/property-info": "^4.4|^5.1", 1132 | "symfony/serializer": "^5.2" 1133 | }, 1134 | "type": "library", 1135 | "autoload": { 1136 | "psr-4": { 1137 | "Symfony\\Component\\Mime\\": "" 1138 | }, 1139 | "exclude-from-classmap": [ 1140 | "/Tests/" 1141 | ] 1142 | }, 1143 | "notification-url": "https://packagist.org/downloads/", 1144 | "license": [ 1145 | "MIT" 1146 | ], 1147 | "authors": [ 1148 | { 1149 | "name": "Fabien Potencier", 1150 | "email": "fabien@symfony.com" 1151 | }, 1152 | { 1153 | "name": "Symfony Community", 1154 | "homepage": "https://symfony.com/contributors" 1155 | } 1156 | ], 1157 | "description": "A library to manipulate MIME messages", 1158 | "homepage": "https://symfony.com", 1159 | "keywords": [ 1160 | "mime", 1161 | "mime-type" 1162 | ], 1163 | "support": { 1164 | "source": "https://github.com/symfony/mime/tree/v5.2.1" 1165 | }, 1166 | "funding": [ 1167 | { 1168 | "url": "https://symfony.com/sponsor", 1169 | "type": "custom" 1170 | }, 1171 | { 1172 | "url": "https://github.com/fabpot", 1173 | "type": "github" 1174 | }, 1175 | { 1176 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1177 | "type": "tidelift" 1178 | } 1179 | ], 1180 | "time": "2020-12-09T18:54:12+00:00" 1181 | }, 1182 | { 1183 | "name": "symfony/polyfill-ctype", 1184 | "version": "v1.22.0", 1185 | "source": { 1186 | "type": "git", 1187 | "url": "https://github.com/symfony/polyfill-ctype.git", 1188 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" 1189 | }, 1190 | "dist": { 1191 | "type": "zip", 1192 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", 1193 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", 1194 | "shasum": "" 1195 | }, 1196 | "require": { 1197 | "php": ">=7.1" 1198 | }, 1199 | "suggest": { 1200 | "ext-ctype": "For best performance" 1201 | }, 1202 | "type": "library", 1203 | "extra": { 1204 | "branch-alias": { 1205 | "dev-main": "1.22-dev" 1206 | }, 1207 | "thanks": { 1208 | "name": "symfony/polyfill", 1209 | "url": "https://github.com/symfony/polyfill" 1210 | } 1211 | }, 1212 | "autoload": { 1213 | "psr-4": { 1214 | "Symfony\\Polyfill\\Ctype\\": "" 1215 | }, 1216 | "files": [ 1217 | "bootstrap.php" 1218 | ] 1219 | }, 1220 | "notification-url": "https://packagist.org/downloads/", 1221 | "license": [ 1222 | "MIT" 1223 | ], 1224 | "authors": [ 1225 | { 1226 | "name": "Gert de Pagter", 1227 | "email": "BackEndTea@gmail.com" 1228 | }, 1229 | { 1230 | "name": "Symfony Community", 1231 | "homepage": "https://symfony.com/contributors" 1232 | } 1233 | ], 1234 | "description": "Symfony polyfill for ctype functions", 1235 | "homepage": "https://symfony.com", 1236 | "keywords": [ 1237 | "compatibility", 1238 | "ctype", 1239 | "polyfill", 1240 | "portable" 1241 | ], 1242 | "support": { 1243 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" 1244 | }, 1245 | "funding": [ 1246 | { 1247 | "url": "https://symfony.com/sponsor", 1248 | "type": "custom" 1249 | }, 1250 | { 1251 | "url": "https://github.com/fabpot", 1252 | "type": "github" 1253 | }, 1254 | { 1255 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1256 | "type": "tidelift" 1257 | } 1258 | ], 1259 | "time": "2021-01-07T16:49:33+00:00" 1260 | }, 1261 | { 1262 | "name": "symfony/polyfill-intl-idn", 1263 | "version": "v1.22.0", 1264 | "source": { 1265 | "type": "git", 1266 | "url": "https://github.com/symfony/polyfill-intl-idn.git", 1267 | "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44" 1268 | }, 1269 | "dist": { 1270 | "type": "zip", 1271 | "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", 1272 | "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", 1273 | "shasum": "" 1274 | }, 1275 | "require": { 1276 | "php": ">=7.1", 1277 | "symfony/polyfill-intl-normalizer": "^1.10", 1278 | "symfony/polyfill-php72": "^1.10" 1279 | }, 1280 | "suggest": { 1281 | "ext-intl": "For best performance" 1282 | }, 1283 | "type": "library", 1284 | "extra": { 1285 | "branch-alias": { 1286 | "dev-main": "1.22-dev" 1287 | }, 1288 | "thanks": { 1289 | "name": "symfony/polyfill", 1290 | "url": "https://github.com/symfony/polyfill" 1291 | } 1292 | }, 1293 | "autoload": { 1294 | "psr-4": { 1295 | "Symfony\\Polyfill\\Intl\\Idn\\": "" 1296 | }, 1297 | "files": [ 1298 | "bootstrap.php" 1299 | ] 1300 | }, 1301 | "notification-url": "https://packagist.org/downloads/", 1302 | "license": [ 1303 | "MIT" 1304 | ], 1305 | "authors": [ 1306 | { 1307 | "name": "Laurent Bassin", 1308 | "email": "laurent@bassin.info" 1309 | }, 1310 | { 1311 | "name": "Trevor Rowbotham", 1312 | "email": "trevor.rowbotham@pm.me" 1313 | }, 1314 | { 1315 | "name": "Symfony Community", 1316 | "homepage": "https://symfony.com/contributors" 1317 | } 1318 | ], 1319 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", 1320 | "homepage": "https://symfony.com", 1321 | "keywords": [ 1322 | "compatibility", 1323 | "idn", 1324 | "intl", 1325 | "polyfill", 1326 | "portable", 1327 | "shim" 1328 | ], 1329 | "support": { 1330 | "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0" 1331 | }, 1332 | "funding": [ 1333 | { 1334 | "url": "https://symfony.com/sponsor", 1335 | "type": "custom" 1336 | }, 1337 | { 1338 | "url": "https://github.com/fabpot", 1339 | "type": "github" 1340 | }, 1341 | { 1342 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1343 | "type": "tidelift" 1344 | } 1345 | ], 1346 | "time": "2021-01-07T16:49:33+00:00" 1347 | }, 1348 | { 1349 | "name": "symfony/polyfill-intl-normalizer", 1350 | "version": "v1.22.0", 1351 | "source": { 1352 | "type": "git", 1353 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 1354 | "reference": "6e971c891537eb617a00bb07a43d182a6915faba" 1355 | }, 1356 | "dist": { 1357 | "type": "zip", 1358 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", 1359 | "reference": "6e971c891537eb617a00bb07a43d182a6915faba", 1360 | "shasum": "" 1361 | }, 1362 | "require": { 1363 | "php": ">=7.1" 1364 | }, 1365 | "suggest": { 1366 | "ext-intl": "For best performance" 1367 | }, 1368 | "type": "library", 1369 | "extra": { 1370 | "branch-alias": { 1371 | "dev-main": "1.22-dev" 1372 | }, 1373 | "thanks": { 1374 | "name": "symfony/polyfill", 1375 | "url": "https://github.com/symfony/polyfill" 1376 | } 1377 | }, 1378 | "autoload": { 1379 | "psr-4": { 1380 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 1381 | }, 1382 | "files": [ 1383 | "bootstrap.php" 1384 | ], 1385 | "classmap": [ 1386 | "Resources/stubs" 1387 | ] 1388 | }, 1389 | "notification-url": "https://packagist.org/downloads/", 1390 | "license": [ 1391 | "MIT" 1392 | ], 1393 | "authors": [ 1394 | { 1395 | "name": "Nicolas Grekas", 1396 | "email": "p@tchwork.com" 1397 | }, 1398 | { 1399 | "name": "Symfony Community", 1400 | "homepage": "https://symfony.com/contributors" 1401 | } 1402 | ], 1403 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 1404 | "homepage": "https://symfony.com", 1405 | "keywords": [ 1406 | "compatibility", 1407 | "intl", 1408 | "normalizer", 1409 | "polyfill", 1410 | "portable", 1411 | "shim" 1412 | ], 1413 | "support": { 1414 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0" 1415 | }, 1416 | "funding": [ 1417 | { 1418 | "url": "https://symfony.com/sponsor", 1419 | "type": "custom" 1420 | }, 1421 | { 1422 | "url": "https://github.com/fabpot", 1423 | "type": "github" 1424 | }, 1425 | { 1426 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1427 | "type": "tidelift" 1428 | } 1429 | ], 1430 | "time": "2021-01-07T17:09:11+00:00" 1431 | }, 1432 | { 1433 | "name": "symfony/polyfill-mbstring", 1434 | "version": "v1.22.0", 1435 | "source": { 1436 | "type": "git", 1437 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1438 | "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" 1439 | }, 1440 | "dist": { 1441 | "type": "zip", 1442 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", 1443 | "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", 1444 | "shasum": "" 1445 | }, 1446 | "require": { 1447 | "php": ">=7.1" 1448 | }, 1449 | "suggest": { 1450 | "ext-mbstring": "For best performance" 1451 | }, 1452 | "type": "library", 1453 | "extra": { 1454 | "branch-alias": { 1455 | "dev-main": "1.22-dev" 1456 | }, 1457 | "thanks": { 1458 | "name": "symfony/polyfill", 1459 | "url": "https://github.com/symfony/polyfill" 1460 | } 1461 | }, 1462 | "autoload": { 1463 | "psr-4": { 1464 | "Symfony\\Polyfill\\Mbstring\\": "" 1465 | }, 1466 | "files": [ 1467 | "bootstrap.php" 1468 | ] 1469 | }, 1470 | "notification-url": "https://packagist.org/downloads/", 1471 | "license": [ 1472 | "MIT" 1473 | ], 1474 | "authors": [ 1475 | { 1476 | "name": "Nicolas Grekas", 1477 | "email": "p@tchwork.com" 1478 | }, 1479 | { 1480 | "name": "Symfony Community", 1481 | "homepage": "https://symfony.com/contributors" 1482 | } 1483 | ], 1484 | "description": "Symfony polyfill for the Mbstring extension", 1485 | "homepage": "https://symfony.com", 1486 | "keywords": [ 1487 | "compatibility", 1488 | "mbstring", 1489 | "polyfill", 1490 | "portable", 1491 | "shim" 1492 | ], 1493 | "support": { 1494 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" 1495 | }, 1496 | "funding": [ 1497 | { 1498 | "url": "https://symfony.com/sponsor", 1499 | "type": "custom" 1500 | }, 1501 | { 1502 | "url": "https://github.com/fabpot", 1503 | "type": "github" 1504 | }, 1505 | { 1506 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1507 | "type": "tidelift" 1508 | } 1509 | ], 1510 | "time": "2021-01-07T16:49:33+00:00" 1511 | }, 1512 | { 1513 | "name": "symfony/polyfill-php72", 1514 | "version": "v1.22.0", 1515 | "source": { 1516 | "type": "git", 1517 | "url": "https://github.com/symfony/polyfill-php72.git", 1518 | "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" 1519 | }, 1520 | "dist": { 1521 | "type": "zip", 1522 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", 1523 | "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", 1524 | "shasum": "" 1525 | }, 1526 | "require": { 1527 | "php": ">=7.1" 1528 | }, 1529 | "type": "library", 1530 | "extra": { 1531 | "branch-alias": { 1532 | "dev-main": "1.22-dev" 1533 | }, 1534 | "thanks": { 1535 | "name": "symfony/polyfill", 1536 | "url": "https://github.com/symfony/polyfill" 1537 | } 1538 | }, 1539 | "autoload": { 1540 | "psr-4": { 1541 | "Symfony\\Polyfill\\Php72\\": "" 1542 | }, 1543 | "files": [ 1544 | "bootstrap.php" 1545 | ] 1546 | }, 1547 | "notification-url": "https://packagist.org/downloads/", 1548 | "license": [ 1549 | "MIT" 1550 | ], 1551 | "authors": [ 1552 | { 1553 | "name": "Nicolas Grekas", 1554 | "email": "p@tchwork.com" 1555 | }, 1556 | { 1557 | "name": "Symfony Community", 1558 | "homepage": "https://symfony.com/contributors" 1559 | } 1560 | ], 1561 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1562 | "homepage": "https://symfony.com", 1563 | "keywords": [ 1564 | "compatibility", 1565 | "polyfill", 1566 | "portable", 1567 | "shim" 1568 | ], 1569 | "support": { 1570 | "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0" 1571 | }, 1572 | "funding": [ 1573 | { 1574 | "url": "https://symfony.com/sponsor", 1575 | "type": "custom" 1576 | }, 1577 | { 1578 | "url": "https://github.com/fabpot", 1579 | "type": "github" 1580 | }, 1581 | { 1582 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1583 | "type": "tidelift" 1584 | } 1585 | ], 1586 | "time": "2021-01-07T16:49:33+00:00" 1587 | }, 1588 | { 1589 | "name": "symfony/polyfill-php73", 1590 | "version": "v1.22.0", 1591 | "source": { 1592 | "type": "git", 1593 | "url": "https://github.com/symfony/polyfill-php73.git", 1594 | "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" 1595 | }, 1596 | "dist": { 1597 | "type": "zip", 1598 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", 1599 | "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", 1600 | "shasum": "" 1601 | }, 1602 | "require": { 1603 | "php": ">=7.1" 1604 | }, 1605 | "type": "library", 1606 | "extra": { 1607 | "branch-alias": { 1608 | "dev-main": "1.22-dev" 1609 | }, 1610 | "thanks": { 1611 | "name": "symfony/polyfill", 1612 | "url": "https://github.com/symfony/polyfill" 1613 | } 1614 | }, 1615 | "autoload": { 1616 | "psr-4": { 1617 | "Symfony\\Polyfill\\Php73\\": "" 1618 | }, 1619 | "files": [ 1620 | "bootstrap.php" 1621 | ], 1622 | "classmap": [ 1623 | "Resources/stubs" 1624 | ] 1625 | }, 1626 | "notification-url": "https://packagist.org/downloads/", 1627 | "license": [ 1628 | "MIT" 1629 | ], 1630 | "authors": [ 1631 | { 1632 | "name": "Nicolas Grekas", 1633 | "email": "p@tchwork.com" 1634 | }, 1635 | { 1636 | "name": "Symfony Community", 1637 | "homepage": "https://symfony.com/contributors" 1638 | } 1639 | ], 1640 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 1641 | "homepage": "https://symfony.com", 1642 | "keywords": [ 1643 | "compatibility", 1644 | "polyfill", 1645 | "portable", 1646 | "shim" 1647 | ], 1648 | "support": { 1649 | "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0" 1650 | }, 1651 | "funding": [ 1652 | { 1653 | "url": "https://symfony.com/sponsor", 1654 | "type": "custom" 1655 | }, 1656 | { 1657 | "url": "https://github.com/fabpot", 1658 | "type": "github" 1659 | }, 1660 | { 1661 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1662 | "type": "tidelift" 1663 | } 1664 | ], 1665 | "time": "2021-01-07T16:49:33+00:00" 1666 | }, 1667 | { 1668 | "name": "symfony/polyfill-php80", 1669 | "version": "v1.22.0", 1670 | "source": { 1671 | "type": "git", 1672 | "url": "https://github.com/symfony/polyfill-php80.git", 1673 | "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" 1674 | }, 1675 | "dist": { 1676 | "type": "zip", 1677 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", 1678 | "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", 1679 | "shasum": "" 1680 | }, 1681 | "require": { 1682 | "php": ">=7.1" 1683 | }, 1684 | "type": "library", 1685 | "extra": { 1686 | "branch-alias": { 1687 | "dev-main": "1.22-dev" 1688 | }, 1689 | "thanks": { 1690 | "name": "symfony/polyfill", 1691 | "url": "https://github.com/symfony/polyfill" 1692 | } 1693 | }, 1694 | "autoload": { 1695 | "psr-4": { 1696 | "Symfony\\Polyfill\\Php80\\": "" 1697 | }, 1698 | "files": [ 1699 | "bootstrap.php" 1700 | ], 1701 | "classmap": [ 1702 | "Resources/stubs" 1703 | ] 1704 | }, 1705 | "notification-url": "https://packagist.org/downloads/", 1706 | "license": [ 1707 | "MIT" 1708 | ], 1709 | "authors": [ 1710 | { 1711 | "name": "Ion Bazan", 1712 | "email": "ion.bazan@gmail.com" 1713 | }, 1714 | { 1715 | "name": "Nicolas Grekas", 1716 | "email": "p@tchwork.com" 1717 | }, 1718 | { 1719 | "name": "Symfony Community", 1720 | "homepage": "https://symfony.com/contributors" 1721 | } 1722 | ], 1723 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 1724 | "homepage": "https://symfony.com", 1725 | "keywords": [ 1726 | "compatibility", 1727 | "polyfill", 1728 | "portable", 1729 | "shim" 1730 | ], 1731 | "support": { 1732 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" 1733 | }, 1734 | "funding": [ 1735 | { 1736 | "url": "https://symfony.com/sponsor", 1737 | "type": "custom" 1738 | }, 1739 | { 1740 | "url": "https://github.com/fabpot", 1741 | "type": "github" 1742 | }, 1743 | { 1744 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1745 | "type": "tidelift" 1746 | } 1747 | ], 1748 | "time": "2021-01-07T16:49:33+00:00" 1749 | }, 1750 | { 1751 | "name": "symfony/service-contracts", 1752 | "version": "v2.2.0", 1753 | "source": { 1754 | "type": "git", 1755 | "url": "https://github.com/symfony/service-contracts.git", 1756 | "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" 1757 | }, 1758 | "dist": { 1759 | "type": "zip", 1760 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", 1761 | "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", 1762 | "shasum": "" 1763 | }, 1764 | "require": { 1765 | "php": ">=7.2.5", 1766 | "psr/container": "^1.0" 1767 | }, 1768 | "suggest": { 1769 | "symfony/service-implementation": "" 1770 | }, 1771 | "type": "library", 1772 | "extra": { 1773 | "branch-alias": { 1774 | "dev-master": "2.2-dev" 1775 | }, 1776 | "thanks": { 1777 | "name": "symfony/contracts", 1778 | "url": "https://github.com/symfony/contracts" 1779 | } 1780 | }, 1781 | "autoload": { 1782 | "psr-4": { 1783 | "Symfony\\Contracts\\Service\\": "" 1784 | } 1785 | }, 1786 | "notification-url": "https://packagist.org/downloads/", 1787 | "license": [ 1788 | "MIT" 1789 | ], 1790 | "authors": [ 1791 | { 1792 | "name": "Nicolas Grekas", 1793 | "email": "p@tchwork.com" 1794 | }, 1795 | { 1796 | "name": "Symfony Community", 1797 | "homepage": "https://symfony.com/contributors" 1798 | } 1799 | ], 1800 | "description": "Generic abstractions related to writing services", 1801 | "homepage": "https://symfony.com", 1802 | "keywords": [ 1803 | "abstractions", 1804 | "contracts", 1805 | "decoupling", 1806 | "interfaces", 1807 | "interoperability", 1808 | "standards" 1809 | ], 1810 | "support": { 1811 | "source": "https://github.com/symfony/service-contracts/tree/master" 1812 | }, 1813 | "funding": [ 1814 | { 1815 | "url": "https://symfony.com/sponsor", 1816 | "type": "custom" 1817 | }, 1818 | { 1819 | "url": "https://github.com/fabpot", 1820 | "type": "github" 1821 | }, 1822 | { 1823 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1824 | "type": "tidelift" 1825 | } 1826 | ], 1827 | "time": "2020-09-07T11:33:47+00:00" 1828 | } 1829 | ], 1830 | "packages-dev": [ 1831 | { 1832 | "name": "2bj/phanybar", 1833 | "version": "v1.0.0", 1834 | "source": { 1835 | "type": "git", 1836 | "url": "https://github.com/2bj/Phanybar.git", 1837 | "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b" 1838 | }, 1839 | "dist": { 1840 | "type": "zip", 1841 | "url": "https://api.github.com/repos/2bj/Phanybar/zipball/88ff671e18f30c2047a34f8cf2465a7ff93c819b", 1842 | "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b", 1843 | "shasum": "" 1844 | }, 1845 | "require": { 1846 | "php": ">=5.3.0" 1847 | }, 1848 | "bin": [ 1849 | "bin/phanybar" 1850 | ], 1851 | "type": "library", 1852 | "autoload": { 1853 | "psr-4": { 1854 | "Bakyt\\": [ 1855 | "src/" 1856 | ] 1857 | } 1858 | }, 1859 | "notification-url": "https://packagist.org/downloads/", 1860 | "license": [ 1861 | "MIT" 1862 | ], 1863 | "authors": [ 1864 | { 1865 | "name": "Bakyt Turgumbaev", 1866 | "email": "dev2bj@gmail.com" 1867 | } 1868 | ], 1869 | "description": "Control AnyBar from your php", 1870 | "keywords": [ 1871 | "anybar", 1872 | "phanybar" 1873 | ], 1874 | "support": { 1875 | "issues": "https://github.com/2bj/Phanybar/issues", 1876 | "source": "https://github.com/2bj/Phanybar/tree/master" 1877 | }, 1878 | "time": "2015-03-06T12:14:28+00:00" 1879 | }, 1880 | { 1881 | "name": "codedungeon/php-cli-colors", 1882 | "version": "1.12.2", 1883 | "source": { 1884 | "type": "git", 1885 | "url": "https://github.com/mikeerickson/php-cli-colors.git", 1886 | "reference": "e346156f75717140a3dd622124d2ec686aa7ff8e" 1887 | }, 1888 | "dist": { 1889 | "type": "zip", 1890 | "url": "https://api.github.com/repos/mikeerickson/php-cli-colors/zipball/e346156f75717140a3dd622124d2ec686aa7ff8e", 1891 | "reference": "e346156f75717140a3dd622124d2ec686aa7ff8e", 1892 | "shasum": "" 1893 | }, 1894 | "require-dev": { 1895 | "phpunit/phpunit": ">=5.2" 1896 | }, 1897 | "type": "library", 1898 | "autoload": { 1899 | "psr-4": { 1900 | "Codedungeon\\PHPCliColors\\": "src/" 1901 | } 1902 | }, 1903 | "notification-url": "https://packagist.org/downloads/", 1904 | "license": [ 1905 | "MIT" 1906 | ], 1907 | "authors": [ 1908 | { 1909 | "name": "Mike Erickson", 1910 | "email": "codedungeon@gmail.com" 1911 | } 1912 | ], 1913 | "description": "Liven up you PHP Console Apps with standard colors", 1914 | "homepage": "https://github.com/mikeerickson/php-cli-colors", 1915 | "keywords": [ 1916 | "color", 1917 | "colors", 1918 | "composer", 1919 | "package", 1920 | "php" 1921 | ], 1922 | "support": { 1923 | "issues": "https://github.com/mikeerickson/php-cli-colors/issues", 1924 | "source": "https://github.com/mikeerickson/php-cli-colors/tree/1.12.2" 1925 | }, 1926 | "time": "2021-01-05T04:48:27+00:00" 1927 | }, 1928 | { 1929 | "name": "codedungeon/phpunit-result-printer", 1930 | "version": "0.30.1", 1931 | "source": { 1932 | "type": "git", 1933 | "url": "https://github.com/mikeerickson/phpunit-pretty-result-printer.git", 1934 | "reference": "a361009eeb7078c1478ba835976f7722a4952870" 1935 | }, 1936 | "dist": { 1937 | "type": "zip", 1938 | "url": "https://api.github.com/repos/mikeerickson/phpunit-pretty-result-printer/zipball/a361009eeb7078c1478ba835976f7722a4952870", 1939 | "reference": "a361009eeb7078c1478ba835976f7722a4952870", 1940 | "shasum": "" 1941 | }, 1942 | "require": { 1943 | "2bj/phanybar": "^1.0", 1944 | "codedungeon/php-cli-colors": "^1.10.2", 1945 | "hassankhan/config": "^0.11.2|^1.0|^2.0", 1946 | "php": "^7.1 | ^8.0", 1947 | "symfony/yaml": "^2.7|^3.0|^4.0|^5.0" 1948 | }, 1949 | "require-dev": { 1950 | "spatie/phpunit-watcher": "^1.6" 1951 | }, 1952 | "type": "library", 1953 | "autoload": { 1954 | "psr-4": { 1955 | "Codedungeon\\PHPUnitPrettyResultPrinter\\": "src/" 1956 | } 1957 | }, 1958 | "notification-url": "https://packagist.org/downloads/", 1959 | "license": [ 1960 | "MIT" 1961 | ], 1962 | "authors": [ 1963 | { 1964 | "name": "Mike Erickson", 1965 | "email": "codedungeon@gmail.com" 1966 | } 1967 | ], 1968 | "description": "PHPUnit Pretty Result Printer", 1969 | "keywords": [ 1970 | "TDD", 1971 | "composer", 1972 | "package", 1973 | "phpunit", 1974 | "printer", 1975 | "result-printer", 1976 | "testing" 1977 | ], 1978 | "support": { 1979 | "issues": "https://github.com/mikeerickson/phpunit-pretty-result-printer/issues", 1980 | "source": "https://github.com/mikeerickson/phpunit-pretty-result-printer/tree/0.30.1" 1981 | }, 1982 | "time": "2020-12-24T20:19:03+00:00" 1983 | }, 1984 | { 1985 | "name": "doctrine/annotations", 1986 | "version": "1.11.1", 1987 | "source": { 1988 | "type": "git", 1989 | "url": "https://github.com/doctrine/annotations.git", 1990 | "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" 1991 | }, 1992 | "dist": { 1993 | "type": "zip", 1994 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", 1995 | "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", 1996 | "shasum": "" 1997 | }, 1998 | "require": { 1999 | "doctrine/lexer": "1.*", 2000 | "ext-tokenizer": "*", 2001 | "php": "^7.1 || ^8.0" 2002 | }, 2003 | "require-dev": { 2004 | "doctrine/cache": "1.*", 2005 | "doctrine/coding-standard": "^6.0 || ^8.1", 2006 | "phpstan/phpstan": "^0.12.20", 2007 | "phpunit/phpunit": "^7.5 || ^9.1.5" 2008 | }, 2009 | "type": "library", 2010 | "extra": { 2011 | "branch-alias": { 2012 | "dev-master": "1.11.x-dev" 2013 | } 2014 | }, 2015 | "autoload": { 2016 | "psr-4": { 2017 | "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" 2018 | } 2019 | }, 2020 | "notification-url": "https://packagist.org/downloads/", 2021 | "license": [ 2022 | "MIT" 2023 | ], 2024 | "authors": [ 2025 | { 2026 | "name": "Guilherme Blanco", 2027 | "email": "guilhermeblanco@gmail.com" 2028 | }, 2029 | { 2030 | "name": "Roman Borschel", 2031 | "email": "roman@code-factory.org" 2032 | }, 2033 | { 2034 | "name": "Benjamin Eberlei", 2035 | "email": "kontakt@beberlei.de" 2036 | }, 2037 | { 2038 | "name": "Jonathan Wage", 2039 | "email": "jonwage@gmail.com" 2040 | }, 2041 | { 2042 | "name": "Johannes Schmitt", 2043 | "email": "schmittjoh@gmail.com" 2044 | } 2045 | ], 2046 | "description": "Docblock Annotations Parser", 2047 | "homepage": "https://www.doctrine-project.org/projects/annotations.html", 2048 | "keywords": [ 2049 | "annotations", 2050 | "docblock", 2051 | "parser" 2052 | ], 2053 | "support": { 2054 | "issues": "https://github.com/doctrine/annotations/issues", 2055 | "source": "https://github.com/doctrine/annotations/tree/1.11.1" 2056 | }, 2057 | "time": "2020-10-26T10:28:16+00:00" 2058 | }, 2059 | { 2060 | "name": "doctrine/instantiator", 2061 | "version": "1.4.0", 2062 | "source": { 2063 | "type": "git", 2064 | "url": "https://github.com/doctrine/instantiator.git", 2065 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" 2066 | }, 2067 | "dist": { 2068 | "type": "zip", 2069 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", 2070 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", 2071 | "shasum": "" 2072 | }, 2073 | "require": { 2074 | "php": "^7.1 || ^8.0" 2075 | }, 2076 | "require-dev": { 2077 | "doctrine/coding-standard": "^8.0", 2078 | "ext-pdo": "*", 2079 | "ext-phar": "*", 2080 | "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", 2081 | "phpstan/phpstan": "^0.12", 2082 | "phpstan/phpstan-phpunit": "^0.12", 2083 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 2084 | }, 2085 | "type": "library", 2086 | "autoload": { 2087 | "psr-4": { 2088 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 2089 | } 2090 | }, 2091 | "notification-url": "https://packagist.org/downloads/", 2092 | "license": [ 2093 | "MIT" 2094 | ], 2095 | "authors": [ 2096 | { 2097 | "name": "Marco Pivetta", 2098 | "email": "ocramius@gmail.com", 2099 | "homepage": "https://ocramius.github.io/" 2100 | } 2101 | ], 2102 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 2103 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 2104 | "keywords": [ 2105 | "constructor", 2106 | "instantiate" 2107 | ], 2108 | "support": { 2109 | "issues": "https://github.com/doctrine/instantiator/issues", 2110 | "source": "https://github.com/doctrine/instantiator/tree/1.4.0" 2111 | }, 2112 | "funding": [ 2113 | { 2114 | "url": "https://www.doctrine-project.org/sponsorship.html", 2115 | "type": "custom" 2116 | }, 2117 | { 2118 | "url": "https://www.patreon.com/phpdoctrine", 2119 | "type": "patreon" 2120 | }, 2121 | { 2122 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 2123 | "type": "tidelift" 2124 | } 2125 | ], 2126 | "time": "2020-11-10T18:47:58+00:00" 2127 | }, 2128 | { 2129 | "name": "doctrine/lexer", 2130 | "version": "1.2.1", 2131 | "source": { 2132 | "type": "git", 2133 | "url": "https://github.com/doctrine/lexer.git", 2134 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" 2135 | }, 2136 | "dist": { 2137 | "type": "zip", 2138 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", 2139 | "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", 2140 | "shasum": "" 2141 | }, 2142 | "require": { 2143 | "php": "^7.2 || ^8.0" 2144 | }, 2145 | "require-dev": { 2146 | "doctrine/coding-standard": "^6.0", 2147 | "phpstan/phpstan": "^0.11.8", 2148 | "phpunit/phpunit": "^8.2" 2149 | }, 2150 | "type": "library", 2151 | "extra": { 2152 | "branch-alias": { 2153 | "dev-master": "1.2.x-dev" 2154 | } 2155 | }, 2156 | "autoload": { 2157 | "psr-4": { 2158 | "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" 2159 | } 2160 | }, 2161 | "notification-url": "https://packagist.org/downloads/", 2162 | "license": [ 2163 | "MIT" 2164 | ], 2165 | "authors": [ 2166 | { 2167 | "name": "Guilherme Blanco", 2168 | "email": "guilhermeblanco@gmail.com" 2169 | }, 2170 | { 2171 | "name": "Roman Borschel", 2172 | "email": "roman@code-factory.org" 2173 | }, 2174 | { 2175 | "name": "Johannes Schmitt", 2176 | "email": "schmittjoh@gmail.com" 2177 | } 2178 | ], 2179 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", 2180 | "homepage": "https://www.doctrine-project.org/projects/lexer.html", 2181 | "keywords": [ 2182 | "annotations", 2183 | "docblock", 2184 | "lexer", 2185 | "parser", 2186 | "php" 2187 | ], 2188 | "support": { 2189 | "issues": "https://github.com/doctrine/lexer/issues", 2190 | "source": "https://github.com/doctrine/lexer/tree/1.2.1" 2191 | }, 2192 | "funding": [ 2193 | { 2194 | "url": "https://www.doctrine-project.org/sponsorship.html", 2195 | "type": "custom" 2196 | }, 2197 | { 2198 | "url": "https://www.patreon.com/phpdoctrine", 2199 | "type": "patreon" 2200 | }, 2201 | { 2202 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", 2203 | "type": "tidelift" 2204 | } 2205 | ], 2206 | "time": "2020-05-25T17:44:05+00:00" 2207 | }, 2208 | { 2209 | "name": "hassankhan/config", 2210 | "version": "2.2.0", 2211 | "source": { 2212 | "type": "git", 2213 | "url": "https://github.com/hassankhan/config.git", 2214 | "reference": "62b0fd17540136efa94ab6b39f04044c6dc5e4a7" 2215 | }, 2216 | "dist": { 2217 | "type": "zip", 2218 | "url": "https://api.github.com/repos/hassankhan/config/zipball/62b0fd17540136efa94ab6b39f04044c6dc5e4a7", 2219 | "reference": "62b0fd17540136efa94ab6b39f04044c6dc5e4a7", 2220 | "shasum": "" 2221 | }, 2222 | "require": { 2223 | "php": ">=5.5.9" 2224 | }, 2225 | "require-dev": { 2226 | "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.5 || ~7.5", 2227 | "scrutinizer/ocular": "~1.1", 2228 | "squizlabs/php_codesniffer": "~2.2", 2229 | "symfony/yaml": "~3.4" 2230 | }, 2231 | "suggest": { 2232 | "symfony/yaml": "~3.4" 2233 | }, 2234 | "type": "library", 2235 | "autoload": { 2236 | "psr-4": { 2237 | "Noodlehaus\\": "src" 2238 | } 2239 | }, 2240 | "notification-url": "https://packagist.org/downloads/", 2241 | "license": [ 2242 | "MIT" 2243 | ], 2244 | "authors": [ 2245 | { 2246 | "name": "Hassan Khan", 2247 | "homepage": "http://hassankhan.me/", 2248 | "role": "Developer" 2249 | } 2250 | ], 2251 | "description": "Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files", 2252 | "homepage": "http://hassankhan.me/config/", 2253 | "keywords": [ 2254 | "config", 2255 | "configuration", 2256 | "ini", 2257 | "json", 2258 | "microphp", 2259 | "unframework", 2260 | "xml", 2261 | "yaml", 2262 | "yml" 2263 | ], 2264 | "support": { 2265 | "issues": "https://github.com/hassankhan/config/issues", 2266 | "source": "https://github.com/hassankhan/config/tree/2.2.0" 2267 | }, 2268 | "time": "2020-12-07T16:04:15+00:00" 2269 | }, 2270 | { 2271 | "name": "jms/metadata", 2272 | "version": "1.7.0", 2273 | "source": { 2274 | "type": "git", 2275 | "url": "https://github.com/schmittjoh/metadata.git", 2276 | "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8" 2277 | }, 2278 | "dist": { 2279 | "type": "zip", 2280 | "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/e5854ab1aa643623dc64adde718a8eec32b957a8", 2281 | "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8", 2282 | "shasum": "" 2283 | }, 2284 | "require": { 2285 | "php": ">=5.3.0" 2286 | }, 2287 | "require-dev": { 2288 | "doctrine/cache": "~1.0", 2289 | "symfony/cache": "~3.1" 2290 | }, 2291 | "type": "library", 2292 | "extra": { 2293 | "branch-alias": { 2294 | "dev-master": "1.5.x-dev" 2295 | } 2296 | }, 2297 | "autoload": { 2298 | "psr-0": { 2299 | "Metadata\\": "src/" 2300 | } 2301 | }, 2302 | "notification-url": "https://packagist.org/downloads/", 2303 | "license": [ 2304 | "MIT" 2305 | ], 2306 | "authors": [ 2307 | { 2308 | "name": "Asmir Mustafic", 2309 | "email": "goetas@gmail.com" 2310 | }, 2311 | { 2312 | "name": "Johannes M. Schmitt", 2313 | "email": "schmittjoh@gmail.com" 2314 | } 2315 | ], 2316 | "description": "Class/method/property metadata management in PHP", 2317 | "keywords": [ 2318 | "annotations", 2319 | "metadata", 2320 | "xml", 2321 | "yaml" 2322 | ], 2323 | "support": { 2324 | "issues": "https://github.com/schmittjoh/metadata/issues", 2325 | "source": "https://github.com/schmittjoh/metadata/tree/1.x" 2326 | }, 2327 | "time": "2018-10-26T12:40:10+00:00" 2328 | }, 2329 | { 2330 | "name": "jms/parser-lib", 2331 | "version": "1.0.0", 2332 | "source": { 2333 | "type": "git", 2334 | "url": "https://github.com/schmittjoh/parser-lib.git", 2335 | "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" 2336 | }, 2337 | "dist": { 2338 | "type": "zip", 2339 | "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", 2340 | "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", 2341 | "shasum": "" 2342 | }, 2343 | "require": { 2344 | "phpoption/phpoption": ">=0.9,<2.0-dev" 2345 | }, 2346 | "type": "library", 2347 | "extra": { 2348 | "branch-alias": { 2349 | "dev-master": "1.0-dev" 2350 | } 2351 | }, 2352 | "autoload": { 2353 | "psr-0": { 2354 | "JMS\\": "src/" 2355 | } 2356 | }, 2357 | "notification-url": "https://packagist.org/downloads/", 2358 | "license": [ 2359 | "Apache2" 2360 | ], 2361 | "description": "A library for easily creating recursive-descent parsers.", 2362 | "support": { 2363 | "issues": "https://github.com/schmittjoh/parser-lib/issues", 2364 | "source": "https://github.com/schmittjoh/parser-lib/tree/1.0.0" 2365 | }, 2366 | "time": "2012-11-18T18:08:43+00:00" 2367 | }, 2368 | { 2369 | "name": "jms/serializer", 2370 | "version": "1.14.1", 2371 | "source": { 2372 | "type": "git", 2373 | "url": "https://github.com/schmittjoh/serializer.git", 2374 | "reference": "ba908d278fff27ec01fb4349f372634ffcd697c0" 2375 | }, 2376 | "dist": { 2377 | "type": "zip", 2378 | "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/ba908d278fff27ec01fb4349f372634ffcd697c0", 2379 | "reference": "ba908d278fff27ec01fb4349f372634ffcd697c0", 2380 | "shasum": "" 2381 | }, 2382 | "require": { 2383 | "doctrine/annotations": "^1.0", 2384 | "doctrine/instantiator": "^1.0.3", 2385 | "jms/metadata": "^1.3", 2386 | "jms/parser-lib": "1.*", 2387 | "php": "^5.5|^7.0", 2388 | "phpcollection/phpcollection": "~0.1", 2389 | "phpoption/phpoption": "^1.1" 2390 | }, 2391 | "conflict": { 2392 | "twig/twig": "<1.12" 2393 | }, 2394 | "require-dev": { 2395 | "doctrine/orm": "~2.1", 2396 | "doctrine/phpcr-odm": "^1.3|^2.0", 2397 | "ext-pdo_sqlite": "*", 2398 | "jackalope/jackalope-doctrine-dbal": "^1.1.5", 2399 | "phpunit/phpunit": "^4.8|^5.0", 2400 | "propel/propel1": "~1.7", 2401 | "psr/container": "^1.0", 2402 | "symfony/dependency-injection": "^2.7|^3.3|^4.0", 2403 | "symfony/expression-language": "^2.6|^3.0", 2404 | "symfony/filesystem": "^2.1", 2405 | "symfony/form": "~2.1|^3.0", 2406 | "symfony/translation": "^2.1|^3.0", 2407 | "symfony/validator": "^2.2|^3.0", 2408 | "symfony/yaml": "^2.1|^3.0", 2409 | "twig/twig": "~1.12|~2.0" 2410 | }, 2411 | "suggest": { 2412 | "doctrine/cache": "Required if you like to use cache functionality.", 2413 | "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", 2414 | "symfony/yaml": "Required if you'd like to serialize data to YAML format." 2415 | }, 2416 | "type": "library", 2417 | "extra": { 2418 | "branch-alias": { 2419 | "dev-1.x": "1.14-dev" 2420 | } 2421 | }, 2422 | "autoload": { 2423 | "psr-0": { 2424 | "JMS\\Serializer": "src/" 2425 | } 2426 | }, 2427 | "notification-url": "https://packagist.org/downloads/", 2428 | "license": [ 2429 | "MIT" 2430 | ], 2431 | "authors": [ 2432 | { 2433 | "name": "Johannes M. Schmitt", 2434 | "email": "schmittjoh@gmail.com" 2435 | }, 2436 | { 2437 | "name": "Asmir Mustafic", 2438 | "email": "goetas@gmail.com" 2439 | } 2440 | ], 2441 | "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", 2442 | "homepage": "http://jmsyst.com/libs/serializer", 2443 | "keywords": [ 2444 | "deserialization", 2445 | "jaxb", 2446 | "json", 2447 | "serialization", 2448 | "xml" 2449 | ], 2450 | "support": { 2451 | "issues": "https://github.com/schmittjoh/serializer/issues", 2452 | "source": "https://github.com/schmittjoh/serializer/tree/1.14.1" 2453 | }, 2454 | "time": "2020-02-22T20:59:37+00:00" 2455 | }, 2456 | { 2457 | "name": "myclabs/deep-copy", 2458 | "version": "1.10.2", 2459 | "source": { 2460 | "type": "git", 2461 | "url": "https://github.com/myclabs/DeepCopy.git", 2462 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" 2463 | }, 2464 | "dist": { 2465 | "type": "zip", 2466 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", 2467 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", 2468 | "shasum": "" 2469 | }, 2470 | "require": { 2471 | "php": "^7.1 || ^8.0" 2472 | }, 2473 | "replace": { 2474 | "myclabs/deep-copy": "self.version" 2475 | }, 2476 | "require-dev": { 2477 | "doctrine/collections": "^1.0", 2478 | "doctrine/common": "^2.6", 2479 | "phpunit/phpunit": "^7.1" 2480 | }, 2481 | "type": "library", 2482 | "autoload": { 2483 | "psr-4": { 2484 | "DeepCopy\\": "src/DeepCopy/" 2485 | }, 2486 | "files": [ 2487 | "src/DeepCopy/deep_copy.php" 2488 | ] 2489 | }, 2490 | "notification-url": "https://packagist.org/downloads/", 2491 | "license": [ 2492 | "MIT" 2493 | ], 2494 | "description": "Create deep copies (clones) of your objects", 2495 | "keywords": [ 2496 | "clone", 2497 | "copy", 2498 | "duplicate", 2499 | "object", 2500 | "object graph" 2501 | ], 2502 | "support": { 2503 | "issues": "https://github.com/myclabs/DeepCopy/issues", 2504 | "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" 2505 | }, 2506 | "funding": [ 2507 | { 2508 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 2509 | "type": "tidelift" 2510 | } 2511 | ], 2512 | "time": "2020-11-13T09:40:50+00:00" 2513 | }, 2514 | { 2515 | "name": "nikic/php-parser", 2516 | "version": "v4.10.4", 2517 | "source": { 2518 | "type": "git", 2519 | "url": "https://github.com/nikic/PHP-Parser.git", 2520 | "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" 2521 | }, 2522 | "dist": { 2523 | "type": "zip", 2524 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", 2525 | "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", 2526 | "shasum": "" 2527 | }, 2528 | "require": { 2529 | "ext-tokenizer": "*", 2530 | "php": ">=7.0" 2531 | }, 2532 | "require-dev": { 2533 | "ircmaxell/php-yacc": "^0.0.7", 2534 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 2535 | }, 2536 | "bin": [ 2537 | "bin/php-parse" 2538 | ], 2539 | "type": "library", 2540 | "extra": { 2541 | "branch-alias": { 2542 | "dev-master": "4.9-dev" 2543 | } 2544 | }, 2545 | "autoload": { 2546 | "psr-4": { 2547 | "PhpParser\\": "lib/PhpParser" 2548 | } 2549 | }, 2550 | "notification-url": "https://packagist.org/downloads/", 2551 | "license": [ 2552 | "BSD-3-Clause" 2553 | ], 2554 | "authors": [ 2555 | { 2556 | "name": "Nikita Popov" 2557 | } 2558 | ], 2559 | "description": "A PHP parser written in PHP", 2560 | "keywords": [ 2561 | "parser", 2562 | "php" 2563 | ], 2564 | "support": { 2565 | "issues": "https://github.com/nikic/PHP-Parser/issues", 2566 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" 2567 | }, 2568 | "time": "2020-12-20T10:01:03+00:00" 2569 | }, 2570 | { 2571 | "name": "phar-io/manifest", 2572 | "version": "2.0.1", 2573 | "source": { 2574 | "type": "git", 2575 | "url": "https://github.com/phar-io/manifest.git", 2576 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" 2577 | }, 2578 | "dist": { 2579 | "type": "zip", 2580 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 2581 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 2582 | "shasum": "" 2583 | }, 2584 | "require": { 2585 | "ext-dom": "*", 2586 | "ext-phar": "*", 2587 | "ext-xmlwriter": "*", 2588 | "phar-io/version": "^3.0.1", 2589 | "php": "^7.2 || ^8.0" 2590 | }, 2591 | "type": "library", 2592 | "extra": { 2593 | "branch-alias": { 2594 | "dev-master": "2.0.x-dev" 2595 | } 2596 | }, 2597 | "autoload": { 2598 | "classmap": [ 2599 | "src/" 2600 | ] 2601 | }, 2602 | "notification-url": "https://packagist.org/downloads/", 2603 | "license": [ 2604 | "BSD-3-Clause" 2605 | ], 2606 | "authors": [ 2607 | { 2608 | "name": "Arne Blankerts", 2609 | "email": "arne@blankerts.de", 2610 | "role": "Developer" 2611 | }, 2612 | { 2613 | "name": "Sebastian Heuer", 2614 | "email": "sebastian@phpeople.de", 2615 | "role": "Developer" 2616 | }, 2617 | { 2618 | "name": "Sebastian Bergmann", 2619 | "email": "sebastian@phpunit.de", 2620 | "role": "Developer" 2621 | } 2622 | ], 2623 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 2624 | "support": { 2625 | "issues": "https://github.com/phar-io/manifest/issues", 2626 | "source": "https://github.com/phar-io/manifest/tree/master" 2627 | }, 2628 | "time": "2020-06-27T14:33:11+00:00" 2629 | }, 2630 | { 2631 | "name": "phar-io/version", 2632 | "version": "3.0.4", 2633 | "source": { 2634 | "type": "git", 2635 | "url": "https://github.com/phar-io/version.git", 2636 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" 2637 | }, 2638 | "dist": { 2639 | "type": "zip", 2640 | "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", 2641 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", 2642 | "shasum": "" 2643 | }, 2644 | "require": { 2645 | "php": "^7.2 || ^8.0" 2646 | }, 2647 | "type": "library", 2648 | "autoload": { 2649 | "classmap": [ 2650 | "src/" 2651 | ] 2652 | }, 2653 | "notification-url": "https://packagist.org/downloads/", 2654 | "license": [ 2655 | "BSD-3-Clause" 2656 | ], 2657 | "authors": [ 2658 | { 2659 | "name": "Arne Blankerts", 2660 | "email": "arne@blankerts.de", 2661 | "role": "Developer" 2662 | }, 2663 | { 2664 | "name": "Sebastian Heuer", 2665 | "email": "sebastian@phpeople.de", 2666 | "role": "Developer" 2667 | }, 2668 | { 2669 | "name": "Sebastian Bergmann", 2670 | "email": "sebastian@phpunit.de", 2671 | "role": "Developer" 2672 | } 2673 | ], 2674 | "description": "Library for handling version information and constraints", 2675 | "support": { 2676 | "issues": "https://github.com/phar-io/version/issues", 2677 | "source": "https://github.com/phar-io/version/tree/3.0.4" 2678 | }, 2679 | "time": "2020-12-13T23:18:30+00:00" 2680 | }, 2681 | { 2682 | "name": "phpcollection/phpcollection", 2683 | "version": "0.5.0", 2684 | "source": { 2685 | "type": "git", 2686 | "url": "https://github.com/schmittjoh/php-collection.git", 2687 | "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6" 2688 | }, 2689 | "dist": { 2690 | "type": "zip", 2691 | "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", 2692 | "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", 2693 | "shasum": "" 2694 | }, 2695 | "require": { 2696 | "phpoption/phpoption": "1.*" 2697 | }, 2698 | "type": "library", 2699 | "extra": { 2700 | "branch-alias": { 2701 | "dev-master": "0.4-dev" 2702 | } 2703 | }, 2704 | "autoload": { 2705 | "psr-0": { 2706 | "PhpCollection": "src/" 2707 | } 2708 | }, 2709 | "notification-url": "https://packagist.org/downloads/", 2710 | "license": [ 2711 | "Apache2" 2712 | ], 2713 | "authors": [ 2714 | { 2715 | "name": "Johannes M. Schmitt", 2716 | "email": "schmittjoh@gmail.com" 2717 | } 2718 | ], 2719 | "description": "General-Purpose Collection Library for PHP", 2720 | "keywords": [ 2721 | "collection", 2722 | "list", 2723 | "map", 2724 | "sequence", 2725 | "set" 2726 | ], 2727 | "support": { 2728 | "issues": "https://github.com/schmittjoh/php-collection/issues", 2729 | "source": "https://github.com/schmittjoh/php-collection/tree/master" 2730 | }, 2731 | "time": "2015-05-17T12:39:23+00:00" 2732 | }, 2733 | { 2734 | "name": "phpdocumentor/reflection-common", 2735 | "version": "2.2.0", 2736 | "source": { 2737 | "type": "git", 2738 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 2739 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 2740 | }, 2741 | "dist": { 2742 | "type": "zip", 2743 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 2744 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 2745 | "shasum": "" 2746 | }, 2747 | "require": { 2748 | "php": "^7.2 || ^8.0" 2749 | }, 2750 | "type": "library", 2751 | "extra": { 2752 | "branch-alias": { 2753 | "dev-2.x": "2.x-dev" 2754 | } 2755 | }, 2756 | "autoload": { 2757 | "psr-4": { 2758 | "phpDocumentor\\Reflection\\": "src/" 2759 | } 2760 | }, 2761 | "notification-url": "https://packagist.org/downloads/", 2762 | "license": [ 2763 | "MIT" 2764 | ], 2765 | "authors": [ 2766 | { 2767 | "name": "Jaap van Otterdijk", 2768 | "email": "opensource@ijaap.nl" 2769 | } 2770 | ], 2771 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 2772 | "homepage": "http://www.phpdoc.org", 2773 | "keywords": [ 2774 | "FQSEN", 2775 | "phpDocumentor", 2776 | "phpdoc", 2777 | "reflection", 2778 | "static analysis" 2779 | ], 2780 | "support": { 2781 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 2782 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 2783 | }, 2784 | "time": "2020-06-27T09:03:43+00:00" 2785 | }, 2786 | { 2787 | "name": "phpdocumentor/reflection-docblock", 2788 | "version": "5.2.2", 2789 | "source": { 2790 | "type": "git", 2791 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 2792 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" 2793 | }, 2794 | "dist": { 2795 | "type": "zip", 2796 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", 2797 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", 2798 | "shasum": "" 2799 | }, 2800 | "require": { 2801 | "ext-filter": "*", 2802 | "php": "^7.2 || ^8.0", 2803 | "phpdocumentor/reflection-common": "^2.2", 2804 | "phpdocumentor/type-resolver": "^1.3", 2805 | "webmozart/assert": "^1.9.1" 2806 | }, 2807 | "require-dev": { 2808 | "mockery/mockery": "~1.3.2" 2809 | }, 2810 | "type": "library", 2811 | "extra": { 2812 | "branch-alias": { 2813 | "dev-master": "5.x-dev" 2814 | } 2815 | }, 2816 | "autoload": { 2817 | "psr-4": { 2818 | "phpDocumentor\\Reflection\\": "src" 2819 | } 2820 | }, 2821 | "notification-url": "https://packagist.org/downloads/", 2822 | "license": [ 2823 | "MIT" 2824 | ], 2825 | "authors": [ 2826 | { 2827 | "name": "Mike van Riel", 2828 | "email": "me@mikevanriel.com" 2829 | }, 2830 | { 2831 | "name": "Jaap van Otterdijk", 2832 | "email": "account@ijaap.nl" 2833 | } 2834 | ], 2835 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 2836 | "support": { 2837 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 2838 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" 2839 | }, 2840 | "time": "2020-09-03T19:13:55+00:00" 2841 | }, 2842 | { 2843 | "name": "phpdocumentor/type-resolver", 2844 | "version": "1.4.0", 2845 | "source": { 2846 | "type": "git", 2847 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 2848 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" 2849 | }, 2850 | "dist": { 2851 | "type": "zip", 2852 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 2853 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 2854 | "shasum": "" 2855 | }, 2856 | "require": { 2857 | "php": "^7.2 || ^8.0", 2858 | "phpdocumentor/reflection-common": "^2.0" 2859 | }, 2860 | "require-dev": { 2861 | "ext-tokenizer": "*" 2862 | }, 2863 | "type": "library", 2864 | "extra": { 2865 | "branch-alias": { 2866 | "dev-1.x": "1.x-dev" 2867 | } 2868 | }, 2869 | "autoload": { 2870 | "psr-4": { 2871 | "phpDocumentor\\Reflection\\": "src" 2872 | } 2873 | }, 2874 | "notification-url": "https://packagist.org/downloads/", 2875 | "license": [ 2876 | "MIT" 2877 | ], 2878 | "authors": [ 2879 | { 2880 | "name": "Mike van Riel", 2881 | "email": "me@mikevanriel.com" 2882 | } 2883 | ], 2884 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 2885 | "support": { 2886 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 2887 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" 2888 | }, 2889 | "time": "2020-09-17T18:55:26+00:00" 2890 | }, 2891 | { 2892 | "name": "phpoption/phpoption", 2893 | "version": "1.7.5", 2894 | "source": { 2895 | "type": "git", 2896 | "url": "https://github.com/schmittjoh/php-option.git", 2897 | "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" 2898 | }, 2899 | "dist": { 2900 | "type": "zip", 2901 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", 2902 | "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", 2903 | "shasum": "" 2904 | }, 2905 | "require": { 2906 | "php": "^5.5.9 || ^7.0 || ^8.0" 2907 | }, 2908 | "require-dev": { 2909 | "bamarni/composer-bin-plugin": "^1.4.1", 2910 | "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" 2911 | }, 2912 | "type": "library", 2913 | "extra": { 2914 | "branch-alias": { 2915 | "dev-master": "1.7-dev" 2916 | } 2917 | }, 2918 | "autoload": { 2919 | "psr-4": { 2920 | "PhpOption\\": "src/PhpOption/" 2921 | } 2922 | }, 2923 | "notification-url": "https://packagist.org/downloads/", 2924 | "license": [ 2925 | "Apache-2.0" 2926 | ], 2927 | "authors": [ 2928 | { 2929 | "name": "Johannes M. Schmitt", 2930 | "email": "schmittjoh@gmail.com" 2931 | }, 2932 | { 2933 | "name": "Graham Campbell", 2934 | "email": "graham@alt-three.com" 2935 | } 2936 | ], 2937 | "description": "Option Type for PHP", 2938 | "keywords": [ 2939 | "language", 2940 | "option", 2941 | "php", 2942 | "type" 2943 | ], 2944 | "support": { 2945 | "issues": "https://github.com/schmittjoh/php-option/issues", 2946 | "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" 2947 | }, 2948 | "funding": [ 2949 | { 2950 | "url": "https://github.com/GrahamCampbell", 2951 | "type": "github" 2952 | }, 2953 | { 2954 | "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", 2955 | "type": "tidelift" 2956 | } 2957 | ], 2958 | "time": "2020-07-20T17:29:33+00:00" 2959 | }, 2960 | { 2961 | "name": "phpspec/prophecy", 2962 | "version": "1.12.2", 2963 | "source": { 2964 | "type": "git", 2965 | "url": "https://github.com/phpspec/prophecy.git", 2966 | "reference": "245710e971a030f42e08f4912863805570f23d39" 2967 | }, 2968 | "dist": { 2969 | "type": "zip", 2970 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", 2971 | "reference": "245710e971a030f42e08f4912863805570f23d39", 2972 | "shasum": "" 2973 | }, 2974 | "require": { 2975 | "doctrine/instantiator": "^1.2", 2976 | "php": "^7.2 || ~8.0, <8.1", 2977 | "phpdocumentor/reflection-docblock": "^5.2", 2978 | "sebastian/comparator": "^3.0 || ^4.0", 2979 | "sebastian/recursion-context": "^3.0 || ^4.0" 2980 | }, 2981 | "require-dev": { 2982 | "phpspec/phpspec": "^6.0", 2983 | "phpunit/phpunit": "^8.0 || ^9.0" 2984 | }, 2985 | "type": "library", 2986 | "extra": { 2987 | "branch-alias": { 2988 | "dev-master": "1.11.x-dev" 2989 | } 2990 | }, 2991 | "autoload": { 2992 | "psr-4": { 2993 | "Prophecy\\": "src/Prophecy" 2994 | } 2995 | }, 2996 | "notification-url": "https://packagist.org/downloads/", 2997 | "license": [ 2998 | "MIT" 2999 | ], 3000 | "authors": [ 3001 | { 3002 | "name": "Konstantin Kudryashov", 3003 | "email": "ever.zet@gmail.com", 3004 | "homepage": "http://everzet.com" 3005 | }, 3006 | { 3007 | "name": "Marcello Duarte", 3008 | "email": "marcello.duarte@gmail.com" 3009 | } 3010 | ], 3011 | "description": "Highly opinionated mocking framework for PHP 5.3+", 3012 | "homepage": "https://github.com/phpspec/prophecy", 3013 | "keywords": [ 3014 | "Double", 3015 | "Dummy", 3016 | "fake", 3017 | "mock", 3018 | "spy", 3019 | "stub" 3020 | ], 3021 | "support": { 3022 | "issues": "https://github.com/phpspec/prophecy/issues", 3023 | "source": "https://github.com/phpspec/prophecy/tree/1.12.2" 3024 | }, 3025 | "time": "2020-12-19T10:15:11+00:00" 3026 | }, 3027 | { 3028 | "name": "phpunit/php-code-coverage", 3029 | "version": "9.2.5", 3030 | "source": { 3031 | "type": "git", 3032 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 3033 | "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" 3034 | }, 3035 | "dist": { 3036 | "type": "zip", 3037 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", 3038 | "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", 3039 | "shasum": "" 3040 | }, 3041 | "require": { 3042 | "ext-dom": "*", 3043 | "ext-libxml": "*", 3044 | "ext-xmlwriter": "*", 3045 | "nikic/php-parser": "^4.10.2", 3046 | "php": ">=7.3", 3047 | "phpunit/php-file-iterator": "^3.0.3", 3048 | "phpunit/php-text-template": "^2.0.2", 3049 | "sebastian/code-unit-reverse-lookup": "^2.0.2", 3050 | "sebastian/complexity": "^2.0", 3051 | "sebastian/environment": "^5.1.2", 3052 | "sebastian/lines-of-code": "^1.0.3", 3053 | "sebastian/version": "^3.0.1", 3054 | "theseer/tokenizer": "^1.2.0" 3055 | }, 3056 | "require-dev": { 3057 | "phpunit/phpunit": "^9.3" 3058 | }, 3059 | "suggest": { 3060 | "ext-pcov": "*", 3061 | "ext-xdebug": "*" 3062 | }, 3063 | "type": "library", 3064 | "extra": { 3065 | "branch-alias": { 3066 | "dev-master": "9.2-dev" 3067 | } 3068 | }, 3069 | "autoload": { 3070 | "classmap": [ 3071 | "src/" 3072 | ] 3073 | }, 3074 | "notification-url": "https://packagist.org/downloads/", 3075 | "license": [ 3076 | "BSD-3-Clause" 3077 | ], 3078 | "authors": [ 3079 | { 3080 | "name": "Sebastian Bergmann", 3081 | "email": "sebastian@phpunit.de", 3082 | "role": "lead" 3083 | } 3084 | ], 3085 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 3086 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 3087 | "keywords": [ 3088 | "coverage", 3089 | "testing", 3090 | "xunit" 3091 | ], 3092 | "support": { 3093 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 3094 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" 3095 | }, 3096 | "funding": [ 3097 | { 3098 | "url": "https://github.com/sebastianbergmann", 3099 | "type": "github" 3100 | } 3101 | ], 3102 | "time": "2020-11-28T06:44:49+00:00" 3103 | }, 3104 | { 3105 | "name": "phpunit/php-file-iterator", 3106 | "version": "3.0.5", 3107 | "source": { 3108 | "type": "git", 3109 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 3110 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" 3111 | }, 3112 | "dist": { 3113 | "type": "zip", 3114 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", 3115 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", 3116 | "shasum": "" 3117 | }, 3118 | "require": { 3119 | "php": ">=7.3" 3120 | }, 3121 | "require-dev": { 3122 | "phpunit/phpunit": "^9.3" 3123 | }, 3124 | "type": "library", 3125 | "extra": { 3126 | "branch-alias": { 3127 | "dev-master": "3.0-dev" 3128 | } 3129 | }, 3130 | "autoload": { 3131 | "classmap": [ 3132 | "src/" 3133 | ] 3134 | }, 3135 | "notification-url": "https://packagist.org/downloads/", 3136 | "license": [ 3137 | "BSD-3-Clause" 3138 | ], 3139 | "authors": [ 3140 | { 3141 | "name": "Sebastian Bergmann", 3142 | "email": "sebastian@phpunit.de", 3143 | "role": "lead" 3144 | } 3145 | ], 3146 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 3147 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 3148 | "keywords": [ 3149 | "filesystem", 3150 | "iterator" 3151 | ], 3152 | "support": { 3153 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 3154 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" 3155 | }, 3156 | "funding": [ 3157 | { 3158 | "url": "https://github.com/sebastianbergmann", 3159 | "type": "github" 3160 | } 3161 | ], 3162 | "time": "2020-09-28T05:57:25+00:00" 3163 | }, 3164 | { 3165 | "name": "phpunit/php-invoker", 3166 | "version": "3.1.1", 3167 | "source": { 3168 | "type": "git", 3169 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 3170 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" 3171 | }, 3172 | "dist": { 3173 | "type": "zip", 3174 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 3175 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 3176 | "shasum": "" 3177 | }, 3178 | "require": { 3179 | "php": ">=7.3" 3180 | }, 3181 | "require-dev": { 3182 | "ext-pcntl": "*", 3183 | "phpunit/phpunit": "^9.3" 3184 | }, 3185 | "suggest": { 3186 | "ext-pcntl": "*" 3187 | }, 3188 | "type": "library", 3189 | "extra": { 3190 | "branch-alias": { 3191 | "dev-master": "3.1-dev" 3192 | } 3193 | }, 3194 | "autoload": { 3195 | "classmap": [ 3196 | "src/" 3197 | ] 3198 | }, 3199 | "notification-url": "https://packagist.org/downloads/", 3200 | "license": [ 3201 | "BSD-3-Clause" 3202 | ], 3203 | "authors": [ 3204 | { 3205 | "name": "Sebastian Bergmann", 3206 | "email": "sebastian@phpunit.de", 3207 | "role": "lead" 3208 | } 3209 | ], 3210 | "description": "Invoke callables with a timeout", 3211 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 3212 | "keywords": [ 3213 | "process" 3214 | ], 3215 | "support": { 3216 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 3217 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" 3218 | }, 3219 | "funding": [ 3220 | { 3221 | "url": "https://github.com/sebastianbergmann", 3222 | "type": "github" 3223 | } 3224 | ], 3225 | "time": "2020-09-28T05:58:55+00:00" 3226 | }, 3227 | { 3228 | "name": "phpunit/php-text-template", 3229 | "version": "2.0.4", 3230 | "source": { 3231 | "type": "git", 3232 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 3233 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" 3234 | }, 3235 | "dist": { 3236 | "type": "zip", 3237 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 3238 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 3239 | "shasum": "" 3240 | }, 3241 | "require": { 3242 | "php": ">=7.3" 3243 | }, 3244 | "require-dev": { 3245 | "phpunit/phpunit": "^9.3" 3246 | }, 3247 | "type": "library", 3248 | "extra": { 3249 | "branch-alias": { 3250 | "dev-master": "2.0-dev" 3251 | } 3252 | }, 3253 | "autoload": { 3254 | "classmap": [ 3255 | "src/" 3256 | ] 3257 | }, 3258 | "notification-url": "https://packagist.org/downloads/", 3259 | "license": [ 3260 | "BSD-3-Clause" 3261 | ], 3262 | "authors": [ 3263 | { 3264 | "name": "Sebastian Bergmann", 3265 | "email": "sebastian@phpunit.de", 3266 | "role": "lead" 3267 | } 3268 | ], 3269 | "description": "Simple template engine.", 3270 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 3271 | "keywords": [ 3272 | "template" 3273 | ], 3274 | "support": { 3275 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 3276 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" 3277 | }, 3278 | "funding": [ 3279 | { 3280 | "url": "https://github.com/sebastianbergmann", 3281 | "type": "github" 3282 | } 3283 | ], 3284 | "time": "2020-10-26T05:33:50+00:00" 3285 | }, 3286 | { 3287 | "name": "phpunit/php-timer", 3288 | "version": "5.0.3", 3289 | "source": { 3290 | "type": "git", 3291 | "url": "https://github.com/sebastianbergmann/php-timer.git", 3292 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" 3293 | }, 3294 | "dist": { 3295 | "type": "zip", 3296 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 3297 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 3298 | "shasum": "" 3299 | }, 3300 | "require": { 3301 | "php": ">=7.3" 3302 | }, 3303 | "require-dev": { 3304 | "phpunit/phpunit": "^9.3" 3305 | }, 3306 | "type": "library", 3307 | "extra": { 3308 | "branch-alias": { 3309 | "dev-master": "5.0-dev" 3310 | } 3311 | }, 3312 | "autoload": { 3313 | "classmap": [ 3314 | "src/" 3315 | ] 3316 | }, 3317 | "notification-url": "https://packagist.org/downloads/", 3318 | "license": [ 3319 | "BSD-3-Clause" 3320 | ], 3321 | "authors": [ 3322 | { 3323 | "name": "Sebastian Bergmann", 3324 | "email": "sebastian@phpunit.de", 3325 | "role": "lead" 3326 | } 3327 | ], 3328 | "description": "Utility class for timing", 3329 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 3330 | "keywords": [ 3331 | "timer" 3332 | ], 3333 | "support": { 3334 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 3335 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" 3336 | }, 3337 | "funding": [ 3338 | { 3339 | "url": "https://github.com/sebastianbergmann", 3340 | "type": "github" 3341 | } 3342 | ], 3343 | "time": "2020-10-26T13:16:10+00:00" 3344 | }, 3345 | { 3346 | "name": "phpunit/phpunit", 3347 | "version": "9.5.1", 3348 | "source": { 3349 | "type": "git", 3350 | "url": "https://github.com/sebastianbergmann/phpunit.git", 3351 | "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" 3352 | }, 3353 | "dist": { 3354 | "type": "zip", 3355 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", 3356 | "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", 3357 | "shasum": "" 3358 | }, 3359 | "require": { 3360 | "doctrine/instantiator": "^1.3.1", 3361 | "ext-dom": "*", 3362 | "ext-json": "*", 3363 | "ext-libxml": "*", 3364 | "ext-mbstring": "*", 3365 | "ext-xml": "*", 3366 | "ext-xmlwriter": "*", 3367 | "myclabs/deep-copy": "^1.10.1", 3368 | "phar-io/manifest": "^2.0.1", 3369 | "phar-io/version": "^3.0.2", 3370 | "php": ">=7.3", 3371 | "phpspec/prophecy": "^1.12.1", 3372 | "phpunit/php-code-coverage": "^9.2.3", 3373 | "phpunit/php-file-iterator": "^3.0.5", 3374 | "phpunit/php-invoker": "^3.1.1", 3375 | "phpunit/php-text-template": "^2.0.3", 3376 | "phpunit/php-timer": "^5.0.2", 3377 | "sebastian/cli-parser": "^1.0.1", 3378 | "sebastian/code-unit": "^1.0.6", 3379 | "sebastian/comparator": "^4.0.5", 3380 | "sebastian/diff": "^4.0.3", 3381 | "sebastian/environment": "^5.1.3", 3382 | "sebastian/exporter": "^4.0.3", 3383 | "sebastian/global-state": "^5.0.1", 3384 | "sebastian/object-enumerator": "^4.0.3", 3385 | "sebastian/resource-operations": "^3.0.3", 3386 | "sebastian/type": "^2.3", 3387 | "sebastian/version": "^3.0.2" 3388 | }, 3389 | "require-dev": { 3390 | "ext-pdo": "*", 3391 | "phpspec/prophecy-phpunit": "^2.0.1" 3392 | }, 3393 | "suggest": { 3394 | "ext-soap": "*", 3395 | "ext-xdebug": "*" 3396 | }, 3397 | "bin": [ 3398 | "phpunit" 3399 | ], 3400 | "type": "library", 3401 | "extra": { 3402 | "branch-alias": { 3403 | "dev-master": "9.5-dev" 3404 | } 3405 | }, 3406 | "autoload": { 3407 | "classmap": [ 3408 | "src/" 3409 | ], 3410 | "files": [ 3411 | "src/Framework/Assert/Functions.php" 3412 | ] 3413 | }, 3414 | "notification-url": "https://packagist.org/downloads/", 3415 | "license": [ 3416 | "BSD-3-Clause" 3417 | ], 3418 | "authors": [ 3419 | { 3420 | "name": "Sebastian Bergmann", 3421 | "email": "sebastian@phpunit.de", 3422 | "role": "lead" 3423 | } 3424 | ], 3425 | "description": "The PHP Unit Testing framework.", 3426 | "homepage": "https://phpunit.de/", 3427 | "keywords": [ 3428 | "phpunit", 3429 | "testing", 3430 | "xunit" 3431 | ], 3432 | "support": { 3433 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 3434 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1" 3435 | }, 3436 | "funding": [ 3437 | { 3438 | "url": "https://phpunit.de/donate.html", 3439 | "type": "custom" 3440 | }, 3441 | { 3442 | "url": "https://github.com/sebastianbergmann", 3443 | "type": "github" 3444 | } 3445 | ], 3446 | "time": "2021-01-17T07:42:25+00:00" 3447 | }, 3448 | { 3449 | "name": "scrutinizer/ocular", 3450 | "version": "1.8.0", 3451 | "source": { 3452 | "type": "git", 3453 | "url": "https://github.com/scrutinizer-ci/ocular.git", 3454 | "reference": "142a84a131d622e79a1d5b527f2c5a9f6812f2d9" 3455 | }, 3456 | "dist": { 3457 | "type": "zip", 3458 | "url": "https://api.github.com/repos/scrutinizer-ci/ocular/zipball/142a84a131d622e79a1d5b527f2c5a9f6812f2d9", 3459 | "reference": "142a84a131d622e79a1d5b527f2c5a9f6812f2d9", 3460 | "shasum": "" 3461 | }, 3462 | "require": { 3463 | "guzzlehttp/guzzle": "~6.3|^7.0", 3464 | "jms/serializer": "^1.0.0", 3465 | "phpoption/phpoption": "~1.0", 3466 | "symfony/console": "^2.1.0|~3.0|~4.0|~5.0", 3467 | "symfony/process": "~2.3|~3.0|~4.0|~5.0" 3468 | }, 3469 | "require-dev": { 3470 | "bamarni/composer-bin-plugin": "^1.2", 3471 | "phpunit/phpunit": "^9.0.0", 3472 | "symfony/filesystem": "~2.0|~3.0|~4.0|~5.0" 3473 | }, 3474 | "bin": [ 3475 | "bin/ocular" 3476 | ], 3477 | "type": "library", 3478 | "autoload": { 3479 | "psr-4": { 3480 | "Scrutinizer\\Ocular\\": "src/Scrutinizer/Ocular" 3481 | } 3482 | }, 3483 | "notification-url": "https://packagist.org/downloads/", 3484 | "license": [ 3485 | "Apache-2.0" 3486 | ], 3487 | "support": { 3488 | "issues": "https://github.com/scrutinizer-ci/ocular/issues", 3489 | "source": "https://github.com/scrutinizer-ci/ocular/tree/1.8.0" 3490 | }, 3491 | "time": "2020-12-11T10:39:03+00:00" 3492 | }, 3493 | { 3494 | "name": "sebastian/cli-parser", 3495 | "version": "1.0.1", 3496 | "source": { 3497 | "type": "git", 3498 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 3499 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" 3500 | }, 3501 | "dist": { 3502 | "type": "zip", 3503 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", 3504 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", 3505 | "shasum": "" 3506 | }, 3507 | "require": { 3508 | "php": ">=7.3" 3509 | }, 3510 | "require-dev": { 3511 | "phpunit/phpunit": "^9.3" 3512 | }, 3513 | "type": "library", 3514 | "extra": { 3515 | "branch-alias": { 3516 | "dev-master": "1.0-dev" 3517 | } 3518 | }, 3519 | "autoload": { 3520 | "classmap": [ 3521 | "src/" 3522 | ] 3523 | }, 3524 | "notification-url": "https://packagist.org/downloads/", 3525 | "license": [ 3526 | "BSD-3-Clause" 3527 | ], 3528 | "authors": [ 3529 | { 3530 | "name": "Sebastian Bergmann", 3531 | "email": "sebastian@phpunit.de", 3532 | "role": "lead" 3533 | } 3534 | ], 3535 | "description": "Library for parsing CLI options", 3536 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 3537 | "support": { 3538 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 3539 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" 3540 | }, 3541 | "funding": [ 3542 | { 3543 | "url": "https://github.com/sebastianbergmann", 3544 | "type": "github" 3545 | } 3546 | ], 3547 | "time": "2020-09-28T06:08:49+00:00" 3548 | }, 3549 | { 3550 | "name": "sebastian/code-unit", 3551 | "version": "1.0.8", 3552 | "source": { 3553 | "type": "git", 3554 | "url": "https://github.com/sebastianbergmann/code-unit.git", 3555 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" 3556 | }, 3557 | "dist": { 3558 | "type": "zip", 3559 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", 3560 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", 3561 | "shasum": "" 3562 | }, 3563 | "require": { 3564 | "php": ">=7.3" 3565 | }, 3566 | "require-dev": { 3567 | "phpunit/phpunit": "^9.3" 3568 | }, 3569 | "type": "library", 3570 | "extra": { 3571 | "branch-alias": { 3572 | "dev-master": "1.0-dev" 3573 | } 3574 | }, 3575 | "autoload": { 3576 | "classmap": [ 3577 | "src/" 3578 | ] 3579 | }, 3580 | "notification-url": "https://packagist.org/downloads/", 3581 | "license": [ 3582 | "BSD-3-Clause" 3583 | ], 3584 | "authors": [ 3585 | { 3586 | "name": "Sebastian Bergmann", 3587 | "email": "sebastian@phpunit.de", 3588 | "role": "lead" 3589 | } 3590 | ], 3591 | "description": "Collection of value objects that represent the PHP code units", 3592 | "homepage": "https://github.com/sebastianbergmann/code-unit", 3593 | "support": { 3594 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 3595 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" 3596 | }, 3597 | "funding": [ 3598 | { 3599 | "url": "https://github.com/sebastianbergmann", 3600 | "type": "github" 3601 | } 3602 | ], 3603 | "time": "2020-10-26T13:08:54+00:00" 3604 | }, 3605 | { 3606 | "name": "sebastian/code-unit-reverse-lookup", 3607 | "version": "2.0.3", 3608 | "source": { 3609 | "type": "git", 3610 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 3611 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" 3612 | }, 3613 | "dist": { 3614 | "type": "zip", 3615 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 3616 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 3617 | "shasum": "" 3618 | }, 3619 | "require": { 3620 | "php": ">=7.3" 3621 | }, 3622 | "require-dev": { 3623 | "phpunit/phpunit": "^9.3" 3624 | }, 3625 | "type": "library", 3626 | "extra": { 3627 | "branch-alias": { 3628 | "dev-master": "2.0-dev" 3629 | } 3630 | }, 3631 | "autoload": { 3632 | "classmap": [ 3633 | "src/" 3634 | ] 3635 | }, 3636 | "notification-url": "https://packagist.org/downloads/", 3637 | "license": [ 3638 | "BSD-3-Clause" 3639 | ], 3640 | "authors": [ 3641 | { 3642 | "name": "Sebastian Bergmann", 3643 | "email": "sebastian@phpunit.de" 3644 | } 3645 | ], 3646 | "description": "Looks up which function or method a line of code belongs to", 3647 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 3648 | "support": { 3649 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 3650 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" 3651 | }, 3652 | "funding": [ 3653 | { 3654 | "url": "https://github.com/sebastianbergmann", 3655 | "type": "github" 3656 | } 3657 | ], 3658 | "time": "2020-09-28T05:30:19+00:00" 3659 | }, 3660 | { 3661 | "name": "sebastian/comparator", 3662 | "version": "4.0.6", 3663 | "source": { 3664 | "type": "git", 3665 | "url": "https://github.com/sebastianbergmann/comparator.git", 3666 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382" 3667 | }, 3668 | "dist": { 3669 | "type": "zip", 3670 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", 3671 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382", 3672 | "shasum": "" 3673 | }, 3674 | "require": { 3675 | "php": ">=7.3", 3676 | "sebastian/diff": "^4.0", 3677 | "sebastian/exporter": "^4.0" 3678 | }, 3679 | "require-dev": { 3680 | "phpunit/phpunit": "^9.3" 3681 | }, 3682 | "type": "library", 3683 | "extra": { 3684 | "branch-alias": { 3685 | "dev-master": "4.0-dev" 3686 | } 3687 | }, 3688 | "autoload": { 3689 | "classmap": [ 3690 | "src/" 3691 | ] 3692 | }, 3693 | "notification-url": "https://packagist.org/downloads/", 3694 | "license": [ 3695 | "BSD-3-Clause" 3696 | ], 3697 | "authors": [ 3698 | { 3699 | "name": "Sebastian Bergmann", 3700 | "email": "sebastian@phpunit.de" 3701 | }, 3702 | { 3703 | "name": "Jeff Welch", 3704 | "email": "whatthejeff@gmail.com" 3705 | }, 3706 | { 3707 | "name": "Volker Dusch", 3708 | "email": "github@wallbash.com" 3709 | }, 3710 | { 3711 | "name": "Bernhard Schussek", 3712 | "email": "bschussek@2bepublished.at" 3713 | } 3714 | ], 3715 | "description": "Provides the functionality to compare PHP values for equality", 3716 | "homepage": "https://github.com/sebastianbergmann/comparator", 3717 | "keywords": [ 3718 | "comparator", 3719 | "compare", 3720 | "equality" 3721 | ], 3722 | "support": { 3723 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 3724 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" 3725 | }, 3726 | "funding": [ 3727 | { 3728 | "url": "https://github.com/sebastianbergmann", 3729 | "type": "github" 3730 | } 3731 | ], 3732 | "time": "2020-10-26T15:49:45+00:00" 3733 | }, 3734 | { 3735 | "name": "sebastian/complexity", 3736 | "version": "2.0.2", 3737 | "source": { 3738 | "type": "git", 3739 | "url": "https://github.com/sebastianbergmann/complexity.git", 3740 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" 3741 | }, 3742 | "dist": { 3743 | "type": "zip", 3744 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", 3745 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", 3746 | "shasum": "" 3747 | }, 3748 | "require": { 3749 | "nikic/php-parser": "^4.7", 3750 | "php": ">=7.3" 3751 | }, 3752 | "require-dev": { 3753 | "phpunit/phpunit": "^9.3" 3754 | }, 3755 | "type": "library", 3756 | "extra": { 3757 | "branch-alias": { 3758 | "dev-master": "2.0-dev" 3759 | } 3760 | }, 3761 | "autoload": { 3762 | "classmap": [ 3763 | "src/" 3764 | ] 3765 | }, 3766 | "notification-url": "https://packagist.org/downloads/", 3767 | "license": [ 3768 | "BSD-3-Clause" 3769 | ], 3770 | "authors": [ 3771 | { 3772 | "name": "Sebastian Bergmann", 3773 | "email": "sebastian@phpunit.de", 3774 | "role": "lead" 3775 | } 3776 | ], 3777 | "description": "Library for calculating the complexity of PHP code units", 3778 | "homepage": "https://github.com/sebastianbergmann/complexity", 3779 | "support": { 3780 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 3781 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" 3782 | }, 3783 | "funding": [ 3784 | { 3785 | "url": "https://github.com/sebastianbergmann", 3786 | "type": "github" 3787 | } 3788 | ], 3789 | "time": "2020-10-26T15:52:27+00:00" 3790 | }, 3791 | { 3792 | "name": "sebastian/diff", 3793 | "version": "4.0.4", 3794 | "source": { 3795 | "type": "git", 3796 | "url": "https://github.com/sebastianbergmann/diff.git", 3797 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" 3798 | }, 3799 | "dist": { 3800 | "type": "zip", 3801 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", 3802 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", 3803 | "shasum": "" 3804 | }, 3805 | "require": { 3806 | "php": ">=7.3" 3807 | }, 3808 | "require-dev": { 3809 | "phpunit/phpunit": "^9.3", 3810 | "symfony/process": "^4.2 || ^5" 3811 | }, 3812 | "type": "library", 3813 | "extra": { 3814 | "branch-alias": { 3815 | "dev-master": "4.0-dev" 3816 | } 3817 | }, 3818 | "autoload": { 3819 | "classmap": [ 3820 | "src/" 3821 | ] 3822 | }, 3823 | "notification-url": "https://packagist.org/downloads/", 3824 | "license": [ 3825 | "BSD-3-Clause" 3826 | ], 3827 | "authors": [ 3828 | { 3829 | "name": "Sebastian Bergmann", 3830 | "email": "sebastian@phpunit.de" 3831 | }, 3832 | { 3833 | "name": "Kore Nordmann", 3834 | "email": "mail@kore-nordmann.de" 3835 | } 3836 | ], 3837 | "description": "Diff implementation", 3838 | "homepage": "https://github.com/sebastianbergmann/diff", 3839 | "keywords": [ 3840 | "diff", 3841 | "udiff", 3842 | "unidiff", 3843 | "unified diff" 3844 | ], 3845 | "support": { 3846 | "issues": "https://github.com/sebastianbergmann/diff/issues", 3847 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" 3848 | }, 3849 | "funding": [ 3850 | { 3851 | "url": "https://github.com/sebastianbergmann", 3852 | "type": "github" 3853 | } 3854 | ], 3855 | "time": "2020-10-26T13:10:38+00:00" 3856 | }, 3857 | { 3858 | "name": "sebastian/environment", 3859 | "version": "5.1.3", 3860 | "source": { 3861 | "type": "git", 3862 | "url": "https://github.com/sebastianbergmann/environment.git", 3863 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac" 3864 | }, 3865 | "dist": { 3866 | "type": "zip", 3867 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", 3868 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac", 3869 | "shasum": "" 3870 | }, 3871 | "require": { 3872 | "php": ">=7.3" 3873 | }, 3874 | "require-dev": { 3875 | "phpunit/phpunit": "^9.3" 3876 | }, 3877 | "suggest": { 3878 | "ext-posix": "*" 3879 | }, 3880 | "type": "library", 3881 | "extra": { 3882 | "branch-alias": { 3883 | "dev-master": "5.1-dev" 3884 | } 3885 | }, 3886 | "autoload": { 3887 | "classmap": [ 3888 | "src/" 3889 | ] 3890 | }, 3891 | "notification-url": "https://packagist.org/downloads/", 3892 | "license": [ 3893 | "BSD-3-Clause" 3894 | ], 3895 | "authors": [ 3896 | { 3897 | "name": "Sebastian Bergmann", 3898 | "email": "sebastian@phpunit.de" 3899 | } 3900 | ], 3901 | "description": "Provides functionality to handle HHVM/PHP environments", 3902 | "homepage": "http://www.github.com/sebastianbergmann/environment", 3903 | "keywords": [ 3904 | "Xdebug", 3905 | "environment", 3906 | "hhvm" 3907 | ], 3908 | "support": { 3909 | "issues": "https://github.com/sebastianbergmann/environment/issues", 3910 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" 3911 | }, 3912 | "funding": [ 3913 | { 3914 | "url": "https://github.com/sebastianbergmann", 3915 | "type": "github" 3916 | } 3917 | ], 3918 | "time": "2020-09-28T05:52:38+00:00" 3919 | }, 3920 | { 3921 | "name": "sebastian/exporter", 3922 | "version": "4.0.3", 3923 | "source": { 3924 | "type": "git", 3925 | "url": "https://github.com/sebastianbergmann/exporter.git", 3926 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" 3927 | }, 3928 | "dist": { 3929 | "type": "zip", 3930 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", 3931 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", 3932 | "shasum": "" 3933 | }, 3934 | "require": { 3935 | "php": ">=7.3", 3936 | "sebastian/recursion-context": "^4.0" 3937 | }, 3938 | "require-dev": { 3939 | "ext-mbstring": "*", 3940 | "phpunit/phpunit": "^9.3" 3941 | }, 3942 | "type": "library", 3943 | "extra": { 3944 | "branch-alias": { 3945 | "dev-master": "4.0-dev" 3946 | } 3947 | }, 3948 | "autoload": { 3949 | "classmap": [ 3950 | "src/" 3951 | ] 3952 | }, 3953 | "notification-url": "https://packagist.org/downloads/", 3954 | "license": [ 3955 | "BSD-3-Clause" 3956 | ], 3957 | "authors": [ 3958 | { 3959 | "name": "Sebastian Bergmann", 3960 | "email": "sebastian@phpunit.de" 3961 | }, 3962 | { 3963 | "name": "Jeff Welch", 3964 | "email": "whatthejeff@gmail.com" 3965 | }, 3966 | { 3967 | "name": "Volker Dusch", 3968 | "email": "github@wallbash.com" 3969 | }, 3970 | { 3971 | "name": "Adam Harvey", 3972 | "email": "aharvey@php.net" 3973 | }, 3974 | { 3975 | "name": "Bernhard Schussek", 3976 | "email": "bschussek@gmail.com" 3977 | } 3978 | ], 3979 | "description": "Provides the functionality to export PHP variables for visualization", 3980 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3981 | "keywords": [ 3982 | "export", 3983 | "exporter" 3984 | ], 3985 | "support": { 3986 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 3987 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" 3988 | }, 3989 | "funding": [ 3990 | { 3991 | "url": "https://github.com/sebastianbergmann", 3992 | "type": "github" 3993 | } 3994 | ], 3995 | "time": "2020-09-28T05:24:23+00:00" 3996 | }, 3997 | { 3998 | "name": "sebastian/global-state", 3999 | "version": "5.0.2", 4000 | "source": { 4001 | "type": "git", 4002 | "url": "https://github.com/sebastianbergmann/global-state.git", 4003 | "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" 4004 | }, 4005 | "dist": { 4006 | "type": "zip", 4007 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", 4008 | "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", 4009 | "shasum": "" 4010 | }, 4011 | "require": { 4012 | "php": ">=7.3", 4013 | "sebastian/object-reflector": "^2.0", 4014 | "sebastian/recursion-context": "^4.0" 4015 | }, 4016 | "require-dev": { 4017 | "ext-dom": "*", 4018 | "phpunit/phpunit": "^9.3" 4019 | }, 4020 | "suggest": { 4021 | "ext-uopz": "*" 4022 | }, 4023 | "type": "library", 4024 | "extra": { 4025 | "branch-alias": { 4026 | "dev-master": "5.0-dev" 4027 | } 4028 | }, 4029 | "autoload": { 4030 | "classmap": [ 4031 | "src/" 4032 | ] 4033 | }, 4034 | "notification-url": "https://packagist.org/downloads/", 4035 | "license": [ 4036 | "BSD-3-Clause" 4037 | ], 4038 | "authors": [ 4039 | { 4040 | "name": "Sebastian Bergmann", 4041 | "email": "sebastian@phpunit.de" 4042 | } 4043 | ], 4044 | "description": "Snapshotting of global state", 4045 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 4046 | "keywords": [ 4047 | "global state" 4048 | ], 4049 | "support": { 4050 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 4051 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" 4052 | }, 4053 | "funding": [ 4054 | { 4055 | "url": "https://github.com/sebastianbergmann", 4056 | "type": "github" 4057 | } 4058 | ], 4059 | "time": "2020-10-26T15:55:19+00:00" 4060 | }, 4061 | { 4062 | "name": "sebastian/lines-of-code", 4063 | "version": "1.0.3", 4064 | "source": { 4065 | "type": "git", 4066 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 4067 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" 4068 | }, 4069 | "dist": { 4070 | "type": "zip", 4071 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", 4072 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", 4073 | "shasum": "" 4074 | }, 4075 | "require": { 4076 | "nikic/php-parser": "^4.6", 4077 | "php": ">=7.3" 4078 | }, 4079 | "require-dev": { 4080 | "phpunit/phpunit": "^9.3" 4081 | }, 4082 | "type": "library", 4083 | "extra": { 4084 | "branch-alias": { 4085 | "dev-master": "1.0-dev" 4086 | } 4087 | }, 4088 | "autoload": { 4089 | "classmap": [ 4090 | "src/" 4091 | ] 4092 | }, 4093 | "notification-url": "https://packagist.org/downloads/", 4094 | "license": [ 4095 | "BSD-3-Clause" 4096 | ], 4097 | "authors": [ 4098 | { 4099 | "name": "Sebastian Bergmann", 4100 | "email": "sebastian@phpunit.de", 4101 | "role": "lead" 4102 | } 4103 | ], 4104 | "description": "Library for counting the lines of code in PHP source code", 4105 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 4106 | "support": { 4107 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 4108 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" 4109 | }, 4110 | "funding": [ 4111 | { 4112 | "url": "https://github.com/sebastianbergmann", 4113 | "type": "github" 4114 | } 4115 | ], 4116 | "time": "2020-11-28T06:42:11+00:00" 4117 | }, 4118 | { 4119 | "name": "sebastian/object-enumerator", 4120 | "version": "4.0.4", 4121 | "source": { 4122 | "type": "git", 4123 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 4124 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" 4125 | }, 4126 | "dist": { 4127 | "type": "zip", 4128 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", 4129 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", 4130 | "shasum": "" 4131 | }, 4132 | "require": { 4133 | "php": ">=7.3", 4134 | "sebastian/object-reflector": "^2.0", 4135 | "sebastian/recursion-context": "^4.0" 4136 | }, 4137 | "require-dev": { 4138 | "phpunit/phpunit": "^9.3" 4139 | }, 4140 | "type": "library", 4141 | "extra": { 4142 | "branch-alias": { 4143 | "dev-master": "4.0-dev" 4144 | } 4145 | }, 4146 | "autoload": { 4147 | "classmap": [ 4148 | "src/" 4149 | ] 4150 | }, 4151 | "notification-url": "https://packagist.org/downloads/", 4152 | "license": [ 4153 | "BSD-3-Clause" 4154 | ], 4155 | "authors": [ 4156 | { 4157 | "name": "Sebastian Bergmann", 4158 | "email": "sebastian@phpunit.de" 4159 | } 4160 | ], 4161 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 4162 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 4163 | "support": { 4164 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 4165 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" 4166 | }, 4167 | "funding": [ 4168 | { 4169 | "url": "https://github.com/sebastianbergmann", 4170 | "type": "github" 4171 | } 4172 | ], 4173 | "time": "2020-10-26T13:12:34+00:00" 4174 | }, 4175 | { 4176 | "name": "sebastian/object-reflector", 4177 | "version": "2.0.4", 4178 | "source": { 4179 | "type": "git", 4180 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 4181 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" 4182 | }, 4183 | "dist": { 4184 | "type": "zip", 4185 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 4186 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 4187 | "shasum": "" 4188 | }, 4189 | "require": { 4190 | "php": ">=7.3" 4191 | }, 4192 | "require-dev": { 4193 | "phpunit/phpunit": "^9.3" 4194 | }, 4195 | "type": "library", 4196 | "extra": { 4197 | "branch-alias": { 4198 | "dev-master": "2.0-dev" 4199 | } 4200 | }, 4201 | "autoload": { 4202 | "classmap": [ 4203 | "src/" 4204 | ] 4205 | }, 4206 | "notification-url": "https://packagist.org/downloads/", 4207 | "license": [ 4208 | "BSD-3-Clause" 4209 | ], 4210 | "authors": [ 4211 | { 4212 | "name": "Sebastian Bergmann", 4213 | "email": "sebastian@phpunit.de" 4214 | } 4215 | ], 4216 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 4217 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 4218 | "support": { 4219 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 4220 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" 4221 | }, 4222 | "funding": [ 4223 | { 4224 | "url": "https://github.com/sebastianbergmann", 4225 | "type": "github" 4226 | } 4227 | ], 4228 | "time": "2020-10-26T13:14:26+00:00" 4229 | }, 4230 | { 4231 | "name": "sebastian/recursion-context", 4232 | "version": "4.0.4", 4233 | "source": { 4234 | "type": "git", 4235 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 4236 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" 4237 | }, 4238 | "dist": { 4239 | "type": "zip", 4240 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", 4241 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", 4242 | "shasum": "" 4243 | }, 4244 | "require": { 4245 | "php": ">=7.3" 4246 | }, 4247 | "require-dev": { 4248 | "phpunit/phpunit": "^9.3" 4249 | }, 4250 | "type": "library", 4251 | "extra": { 4252 | "branch-alias": { 4253 | "dev-master": "4.0-dev" 4254 | } 4255 | }, 4256 | "autoload": { 4257 | "classmap": [ 4258 | "src/" 4259 | ] 4260 | }, 4261 | "notification-url": "https://packagist.org/downloads/", 4262 | "license": [ 4263 | "BSD-3-Clause" 4264 | ], 4265 | "authors": [ 4266 | { 4267 | "name": "Sebastian Bergmann", 4268 | "email": "sebastian@phpunit.de" 4269 | }, 4270 | { 4271 | "name": "Jeff Welch", 4272 | "email": "whatthejeff@gmail.com" 4273 | }, 4274 | { 4275 | "name": "Adam Harvey", 4276 | "email": "aharvey@php.net" 4277 | } 4278 | ], 4279 | "description": "Provides functionality to recursively process PHP variables", 4280 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 4281 | "support": { 4282 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 4283 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" 4284 | }, 4285 | "funding": [ 4286 | { 4287 | "url": "https://github.com/sebastianbergmann", 4288 | "type": "github" 4289 | } 4290 | ], 4291 | "time": "2020-10-26T13:17:30+00:00" 4292 | }, 4293 | { 4294 | "name": "sebastian/resource-operations", 4295 | "version": "3.0.3", 4296 | "source": { 4297 | "type": "git", 4298 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 4299 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" 4300 | }, 4301 | "dist": { 4302 | "type": "zip", 4303 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 4304 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 4305 | "shasum": "" 4306 | }, 4307 | "require": { 4308 | "php": ">=7.3" 4309 | }, 4310 | "require-dev": { 4311 | "phpunit/phpunit": "^9.0" 4312 | }, 4313 | "type": "library", 4314 | "extra": { 4315 | "branch-alias": { 4316 | "dev-master": "3.0-dev" 4317 | } 4318 | }, 4319 | "autoload": { 4320 | "classmap": [ 4321 | "src/" 4322 | ] 4323 | }, 4324 | "notification-url": "https://packagist.org/downloads/", 4325 | "license": [ 4326 | "BSD-3-Clause" 4327 | ], 4328 | "authors": [ 4329 | { 4330 | "name": "Sebastian Bergmann", 4331 | "email": "sebastian@phpunit.de" 4332 | } 4333 | ], 4334 | "description": "Provides a list of PHP built-in functions that operate on resources", 4335 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 4336 | "support": { 4337 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 4338 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" 4339 | }, 4340 | "funding": [ 4341 | { 4342 | "url": "https://github.com/sebastianbergmann", 4343 | "type": "github" 4344 | } 4345 | ], 4346 | "time": "2020-09-28T06:45:17+00:00" 4347 | }, 4348 | { 4349 | "name": "sebastian/type", 4350 | "version": "2.3.1", 4351 | "source": { 4352 | "type": "git", 4353 | "url": "https://github.com/sebastianbergmann/type.git", 4354 | "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" 4355 | }, 4356 | "dist": { 4357 | "type": "zip", 4358 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", 4359 | "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", 4360 | "shasum": "" 4361 | }, 4362 | "require": { 4363 | "php": ">=7.3" 4364 | }, 4365 | "require-dev": { 4366 | "phpunit/phpunit": "^9.3" 4367 | }, 4368 | "type": "library", 4369 | "extra": { 4370 | "branch-alias": { 4371 | "dev-master": "2.3-dev" 4372 | } 4373 | }, 4374 | "autoload": { 4375 | "classmap": [ 4376 | "src/" 4377 | ] 4378 | }, 4379 | "notification-url": "https://packagist.org/downloads/", 4380 | "license": [ 4381 | "BSD-3-Clause" 4382 | ], 4383 | "authors": [ 4384 | { 4385 | "name": "Sebastian Bergmann", 4386 | "email": "sebastian@phpunit.de", 4387 | "role": "lead" 4388 | } 4389 | ], 4390 | "description": "Collection of value objects that represent the types of the PHP type system", 4391 | "homepage": "https://github.com/sebastianbergmann/type", 4392 | "support": { 4393 | "issues": "https://github.com/sebastianbergmann/type/issues", 4394 | "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" 4395 | }, 4396 | "funding": [ 4397 | { 4398 | "url": "https://github.com/sebastianbergmann", 4399 | "type": "github" 4400 | } 4401 | ], 4402 | "time": "2020-10-26T13:18:59+00:00" 4403 | }, 4404 | { 4405 | "name": "sebastian/version", 4406 | "version": "3.0.2", 4407 | "source": { 4408 | "type": "git", 4409 | "url": "https://github.com/sebastianbergmann/version.git", 4410 | "reference": "c6c1022351a901512170118436c764e473f6de8c" 4411 | }, 4412 | "dist": { 4413 | "type": "zip", 4414 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", 4415 | "reference": "c6c1022351a901512170118436c764e473f6de8c", 4416 | "shasum": "" 4417 | }, 4418 | "require": { 4419 | "php": ">=7.3" 4420 | }, 4421 | "type": "library", 4422 | "extra": { 4423 | "branch-alias": { 4424 | "dev-master": "3.0-dev" 4425 | } 4426 | }, 4427 | "autoload": { 4428 | "classmap": [ 4429 | "src/" 4430 | ] 4431 | }, 4432 | "notification-url": "https://packagist.org/downloads/", 4433 | "license": [ 4434 | "BSD-3-Clause" 4435 | ], 4436 | "authors": [ 4437 | { 4438 | "name": "Sebastian Bergmann", 4439 | "email": "sebastian@phpunit.de", 4440 | "role": "lead" 4441 | } 4442 | ], 4443 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 4444 | "homepage": "https://github.com/sebastianbergmann/version", 4445 | "support": { 4446 | "issues": "https://github.com/sebastianbergmann/version/issues", 4447 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" 4448 | }, 4449 | "funding": [ 4450 | { 4451 | "url": "https://github.com/sebastianbergmann", 4452 | "type": "github" 4453 | } 4454 | ], 4455 | "time": "2020-09-28T06:39:44+00:00" 4456 | }, 4457 | { 4458 | "name": "symfony/console", 4459 | "version": "v5.2.1", 4460 | "source": { 4461 | "type": "git", 4462 | "url": "https://github.com/symfony/console.git", 4463 | "reference": "47c02526c532fb381374dab26df05e7313978976" 4464 | }, 4465 | "dist": { 4466 | "type": "zip", 4467 | "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", 4468 | "reference": "47c02526c532fb381374dab26df05e7313978976", 4469 | "shasum": "" 4470 | }, 4471 | "require": { 4472 | "php": ">=7.2.5", 4473 | "symfony/polyfill-mbstring": "~1.0", 4474 | "symfony/polyfill-php73": "^1.8", 4475 | "symfony/polyfill-php80": "^1.15", 4476 | "symfony/service-contracts": "^1.1|^2", 4477 | "symfony/string": "^5.1" 4478 | }, 4479 | "conflict": { 4480 | "symfony/dependency-injection": "<4.4", 4481 | "symfony/dotenv": "<5.1", 4482 | "symfony/event-dispatcher": "<4.4", 4483 | "symfony/lock": "<4.4", 4484 | "symfony/process": "<4.4" 4485 | }, 4486 | "provide": { 4487 | "psr/log-implementation": "1.0" 4488 | }, 4489 | "require-dev": { 4490 | "psr/log": "~1.0", 4491 | "symfony/config": "^4.4|^5.0", 4492 | "symfony/dependency-injection": "^4.4|^5.0", 4493 | "symfony/event-dispatcher": "^4.4|^5.0", 4494 | "symfony/lock": "^4.4|^5.0", 4495 | "symfony/process": "^4.4|^5.0", 4496 | "symfony/var-dumper": "^4.4|^5.0" 4497 | }, 4498 | "suggest": { 4499 | "psr/log": "For using the console logger", 4500 | "symfony/event-dispatcher": "", 4501 | "symfony/lock": "", 4502 | "symfony/process": "" 4503 | }, 4504 | "type": "library", 4505 | "autoload": { 4506 | "psr-4": { 4507 | "Symfony\\Component\\Console\\": "" 4508 | }, 4509 | "exclude-from-classmap": [ 4510 | "/Tests/" 4511 | ] 4512 | }, 4513 | "notification-url": "https://packagist.org/downloads/", 4514 | "license": [ 4515 | "MIT" 4516 | ], 4517 | "authors": [ 4518 | { 4519 | "name": "Fabien Potencier", 4520 | "email": "fabien@symfony.com" 4521 | }, 4522 | { 4523 | "name": "Symfony Community", 4524 | "homepage": "https://symfony.com/contributors" 4525 | } 4526 | ], 4527 | "description": "Symfony Console Component", 4528 | "homepage": "https://symfony.com", 4529 | "keywords": [ 4530 | "cli", 4531 | "command line", 4532 | "console", 4533 | "terminal" 4534 | ], 4535 | "support": { 4536 | "source": "https://github.com/symfony/console/tree/v5.2.1" 4537 | }, 4538 | "funding": [ 4539 | { 4540 | "url": "https://symfony.com/sponsor", 4541 | "type": "custom" 4542 | }, 4543 | { 4544 | "url": "https://github.com/fabpot", 4545 | "type": "github" 4546 | }, 4547 | { 4548 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4549 | "type": "tidelift" 4550 | } 4551 | ], 4552 | "time": "2020-12-18T08:03:05+00:00" 4553 | }, 4554 | { 4555 | "name": "symfony/polyfill-intl-grapheme", 4556 | "version": "v1.22.0", 4557 | "source": { 4558 | "type": "git", 4559 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 4560 | "reference": "267a9adeb8ecb8071040a740930e077cdfb987af" 4561 | }, 4562 | "dist": { 4563 | "type": "zip", 4564 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af", 4565 | "reference": "267a9adeb8ecb8071040a740930e077cdfb987af", 4566 | "shasum": "" 4567 | }, 4568 | "require": { 4569 | "php": ">=7.1" 4570 | }, 4571 | "suggest": { 4572 | "ext-intl": "For best performance" 4573 | }, 4574 | "type": "library", 4575 | "extra": { 4576 | "branch-alias": { 4577 | "dev-main": "1.22-dev" 4578 | }, 4579 | "thanks": { 4580 | "name": "symfony/polyfill", 4581 | "url": "https://github.com/symfony/polyfill" 4582 | } 4583 | }, 4584 | "autoload": { 4585 | "psr-4": { 4586 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 4587 | }, 4588 | "files": [ 4589 | "bootstrap.php" 4590 | ] 4591 | }, 4592 | "notification-url": "https://packagist.org/downloads/", 4593 | "license": [ 4594 | "MIT" 4595 | ], 4596 | "authors": [ 4597 | { 4598 | "name": "Nicolas Grekas", 4599 | "email": "p@tchwork.com" 4600 | }, 4601 | { 4602 | "name": "Symfony Community", 4603 | "homepage": "https://symfony.com/contributors" 4604 | } 4605 | ], 4606 | "description": "Symfony polyfill for intl's grapheme_* functions", 4607 | "homepage": "https://symfony.com", 4608 | "keywords": [ 4609 | "compatibility", 4610 | "grapheme", 4611 | "intl", 4612 | "polyfill", 4613 | "portable", 4614 | "shim" 4615 | ], 4616 | "support": { 4617 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0" 4618 | }, 4619 | "funding": [ 4620 | { 4621 | "url": "https://symfony.com/sponsor", 4622 | "type": "custom" 4623 | }, 4624 | { 4625 | "url": "https://github.com/fabpot", 4626 | "type": "github" 4627 | }, 4628 | { 4629 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4630 | "type": "tidelift" 4631 | } 4632 | ], 4633 | "time": "2021-01-07T16:49:33+00:00" 4634 | }, 4635 | { 4636 | "name": "symfony/process", 4637 | "version": "v5.2.1", 4638 | "source": { 4639 | "type": "git", 4640 | "url": "https://github.com/symfony/process.git", 4641 | "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" 4642 | }, 4643 | "dist": { 4644 | "type": "zip", 4645 | "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", 4646 | "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", 4647 | "shasum": "" 4648 | }, 4649 | "require": { 4650 | "php": ">=7.2.5", 4651 | "symfony/polyfill-php80": "^1.15" 4652 | }, 4653 | "type": "library", 4654 | "autoload": { 4655 | "psr-4": { 4656 | "Symfony\\Component\\Process\\": "" 4657 | }, 4658 | "exclude-from-classmap": [ 4659 | "/Tests/" 4660 | ] 4661 | }, 4662 | "notification-url": "https://packagist.org/downloads/", 4663 | "license": [ 4664 | "MIT" 4665 | ], 4666 | "authors": [ 4667 | { 4668 | "name": "Fabien Potencier", 4669 | "email": "fabien@symfony.com" 4670 | }, 4671 | { 4672 | "name": "Symfony Community", 4673 | "homepage": "https://symfony.com/contributors" 4674 | } 4675 | ], 4676 | "description": "Symfony Process Component", 4677 | "homepage": "https://symfony.com", 4678 | "support": { 4679 | "source": "https://github.com/symfony/process/tree/v5.2.1" 4680 | }, 4681 | "funding": [ 4682 | { 4683 | "url": "https://symfony.com/sponsor", 4684 | "type": "custom" 4685 | }, 4686 | { 4687 | "url": "https://github.com/fabpot", 4688 | "type": "github" 4689 | }, 4690 | { 4691 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4692 | "type": "tidelift" 4693 | } 4694 | ], 4695 | "time": "2020-12-08T17:03:37+00:00" 4696 | }, 4697 | { 4698 | "name": "symfony/string", 4699 | "version": "v5.2.1", 4700 | "source": { 4701 | "type": "git", 4702 | "url": "https://github.com/symfony/string.git", 4703 | "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" 4704 | }, 4705 | "dist": { 4706 | "type": "zip", 4707 | "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", 4708 | "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", 4709 | "shasum": "" 4710 | }, 4711 | "require": { 4712 | "php": ">=7.2.5", 4713 | "symfony/polyfill-ctype": "~1.8", 4714 | "symfony/polyfill-intl-grapheme": "~1.0", 4715 | "symfony/polyfill-intl-normalizer": "~1.0", 4716 | "symfony/polyfill-mbstring": "~1.0", 4717 | "symfony/polyfill-php80": "~1.15" 4718 | }, 4719 | "require-dev": { 4720 | "symfony/error-handler": "^4.4|^5.0", 4721 | "symfony/http-client": "^4.4|^5.0", 4722 | "symfony/translation-contracts": "^1.1|^2", 4723 | "symfony/var-exporter": "^4.4|^5.0" 4724 | }, 4725 | "type": "library", 4726 | "autoload": { 4727 | "psr-4": { 4728 | "Symfony\\Component\\String\\": "" 4729 | }, 4730 | "files": [ 4731 | "Resources/functions.php" 4732 | ], 4733 | "exclude-from-classmap": [ 4734 | "/Tests/" 4735 | ] 4736 | }, 4737 | "notification-url": "https://packagist.org/downloads/", 4738 | "license": [ 4739 | "MIT" 4740 | ], 4741 | "authors": [ 4742 | { 4743 | "name": "Nicolas Grekas", 4744 | "email": "p@tchwork.com" 4745 | }, 4746 | { 4747 | "name": "Symfony Community", 4748 | "homepage": "https://symfony.com/contributors" 4749 | } 4750 | ], 4751 | "description": "Symfony String component", 4752 | "homepage": "https://symfony.com", 4753 | "keywords": [ 4754 | "grapheme", 4755 | "i18n", 4756 | "string", 4757 | "unicode", 4758 | "utf-8", 4759 | "utf8" 4760 | ], 4761 | "support": { 4762 | "source": "https://github.com/symfony/string/tree/v5.2.1" 4763 | }, 4764 | "funding": [ 4765 | { 4766 | "url": "https://symfony.com/sponsor", 4767 | "type": "custom" 4768 | }, 4769 | { 4770 | "url": "https://github.com/fabpot", 4771 | "type": "github" 4772 | }, 4773 | { 4774 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4775 | "type": "tidelift" 4776 | } 4777 | ], 4778 | "time": "2020-12-05T07:33:16+00:00" 4779 | }, 4780 | { 4781 | "name": "symfony/yaml", 4782 | "version": "v5.2.1", 4783 | "source": { 4784 | "type": "git", 4785 | "url": "https://github.com/symfony/yaml.git", 4786 | "reference": "290ea5e03b8cf9b42c783163123f54441fb06939" 4787 | }, 4788 | "dist": { 4789 | "type": "zip", 4790 | "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939", 4791 | "reference": "290ea5e03b8cf9b42c783163123f54441fb06939", 4792 | "shasum": "" 4793 | }, 4794 | "require": { 4795 | "php": ">=7.2.5", 4796 | "symfony/deprecation-contracts": "^2.1", 4797 | "symfony/polyfill-ctype": "~1.8" 4798 | }, 4799 | "conflict": { 4800 | "symfony/console": "<4.4" 4801 | }, 4802 | "require-dev": { 4803 | "symfony/console": "^4.4|^5.0" 4804 | }, 4805 | "suggest": { 4806 | "symfony/console": "For validating YAML files using the lint command" 4807 | }, 4808 | "bin": [ 4809 | "Resources/bin/yaml-lint" 4810 | ], 4811 | "type": "library", 4812 | "autoload": { 4813 | "psr-4": { 4814 | "Symfony\\Component\\Yaml\\": "" 4815 | }, 4816 | "exclude-from-classmap": [ 4817 | "/Tests/" 4818 | ] 4819 | }, 4820 | "notification-url": "https://packagist.org/downloads/", 4821 | "license": [ 4822 | "MIT" 4823 | ], 4824 | "authors": [ 4825 | { 4826 | "name": "Fabien Potencier", 4827 | "email": "fabien@symfony.com" 4828 | }, 4829 | { 4830 | "name": "Symfony Community", 4831 | "homepage": "https://symfony.com/contributors" 4832 | } 4833 | ], 4834 | "description": "Symfony Yaml Component", 4835 | "homepage": "https://symfony.com", 4836 | "support": { 4837 | "source": "https://github.com/symfony/yaml/tree/v5.2.1" 4838 | }, 4839 | "funding": [ 4840 | { 4841 | "url": "https://symfony.com/sponsor", 4842 | "type": "custom" 4843 | }, 4844 | { 4845 | "url": "https://github.com/fabpot", 4846 | "type": "github" 4847 | }, 4848 | { 4849 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4850 | "type": "tidelift" 4851 | } 4852 | ], 4853 | "time": "2020-12-08T17:02:38+00:00" 4854 | }, 4855 | { 4856 | "name": "theseer/tokenizer", 4857 | "version": "1.2.0", 4858 | "source": { 4859 | "type": "git", 4860 | "url": "https://github.com/theseer/tokenizer.git", 4861 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 4862 | }, 4863 | "dist": { 4864 | "type": "zip", 4865 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 4866 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 4867 | "shasum": "" 4868 | }, 4869 | "require": { 4870 | "ext-dom": "*", 4871 | "ext-tokenizer": "*", 4872 | "ext-xmlwriter": "*", 4873 | "php": "^7.2 || ^8.0" 4874 | }, 4875 | "type": "library", 4876 | "autoload": { 4877 | "classmap": [ 4878 | "src/" 4879 | ] 4880 | }, 4881 | "notification-url": "https://packagist.org/downloads/", 4882 | "license": [ 4883 | "BSD-3-Clause" 4884 | ], 4885 | "authors": [ 4886 | { 4887 | "name": "Arne Blankerts", 4888 | "email": "arne@blankerts.de", 4889 | "role": "Developer" 4890 | } 4891 | ], 4892 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4893 | "support": { 4894 | "issues": "https://github.com/theseer/tokenizer/issues", 4895 | "source": "https://github.com/theseer/tokenizer/tree/master" 4896 | }, 4897 | "funding": [ 4898 | { 4899 | "url": "https://github.com/theseer", 4900 | "type": "github" 4901 | } 4902 | ], 4903 | "time": "2020-07-12T23:59:07+00:00" 4904 | }, 4905 | { 4906 | "name": "webmozart/assert", 4907 | "version": "1.9.1", 4908 | "source": { 4909 | "type": "git", 4910 | "url": "https://github.com/webmozarts/assert.git", 4911 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" 4912 | }, 4913 | "dist": { 4914 | "type": "zip", 4915 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", 4916 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", 4917 | "shasum": "" 4918 | }, 4919 | "require": { 4920 | "php": "^5.3.3 || ^7.0 || ^8.0", 4921 | "symfony/polyfill-ctype": "^1.8" 4922 | }, 4923 | "conflict": { 4924 | "phpstan/phpstan": "<0.12.20", 4925 | "vimeo/psalm": "<3.9.1" 4926 | }, 4927 | "require-dev": { 4928 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 4929 | }, 4930 | "type": "library", 4931 | "autoload": { 4932 | "psr-4": { 4933 | "Webmozart\\Assert\\": "src/" 4934 | } 4935 | }, 4936 | "notification-url": "https://packagist.org/downloads/", 4937 | "license": [ 4938 | "MIT" 4939 | ], 4940 | "authors": [ 4941 | { 4942 | "name": "Bernhard Schussek", 4943 | "email": "bschussek@gmail.com" 4944 | } 4945 | ], 4946 | "description": "Assertions to validate method input/output with nice error messages.", 4947 | "keywords": [ 4948 | "assert", 4949 | "check", 4950 | "validate" 4951 | ], 4952 | "support": { 4953 | "issues": "https://github.com/webmozarts/assert/issues", 4954 | "source": "https://github.com/webmozarts/assert/tree/1.9.1" 4955 | }, 4956 | "time": "2020-07-08T17:02:28+00:00" 4957 | } 4958 | ], 4959 | "aliases": [], 4960 | "minimum-stability": "stable", 4961 | "stability-flags": [], 4962 | "prefer-stable": false, 4963 | "prefer-lowest": false, 4964 | "platform": { 4965 | "php": "^7.3 || ^8.0" 4966 | }, 4967 | "platform-dev": [], 4968 | "plugin-api-version": "2.0.0" 4969 | } 4970 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ./src 6 | 7 | 8 | ./src/app.php 9 | 10 | 11 | 12 | 13 | ./tests 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /resources/icons/magnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/godbout/alfred-kat/2d45ff9c16a0ac65f61eb042bc8a2366e2df476d/resources/icons/magnet.png -------------------------------------------------------------------------------- /src/Menus/Entrance.php: -------------------------------------------------------------------------------- 1 | request('GET', self::buildURLFrom($userInput)); 33 | 34 | return $crawler->filter('.frontPageWidget tr'); 35 | } 36 | 37 | protected static function buildURLFrom($userInput) 38 | { 39 | if (($tag = strstr($userInput, '#')) !== false) { 40 | $term = strstr($userInput, '#', true); 41 | 42 | return getenv('url') . '/search/' . urlencode($term) . '/category/' . ltrim($tag, '#') . '/'; 43 | } 44 | 45 | return getenv('url') . '/usearch/' . urlencode($userInput); 46 | } 47 | 48 | protected static function menuFor(Crawler $torrents) 49 | { 50 | if ($torrents->count()) { 51 | $torrents->nextAll()->each(function ($row) { 52 | ScriptFilter::add( 53 | Item::create() 54 | ->title(TorrentMenuItemBuilder::title($row)) 55 | ->subtitle(TorrentMenuItemBuilder::subtitle($row)) 56 | ->icon(Icon::create("resources/icons/magnet.png")) 57 | ->arg('do') 58 | ->variable('action', 'download') 59 | ->variable('torrent_page_link', TorrentMenuItemBuilder::pageLink($row)) 60 | ->variable('torrent_name', TorrentMenuItemBuilder::subtitle($row)) 61 | ->mod( 62 | Cmd::create() 63 | ->arg('do') 64 | ->subtitle('Copy magnet link') 65 | ->variable('action', 'copy') 66 | ->variable('torrent_page_link', TorrentMenuItemBuilder::pageLink($row)) 67 | ->variable('torrent_name', TorrentMenuItemBuilder::subtitle($row)) 68 | ) 69 | ); 70 | }); 71 | } else { 72 | ScriptFilter::add( 73 | Item::create() 74 | ->title('404 for ' . self::userInput() . ' ☹️') 75 | ->subtitle('Try some other terms maybe?') 76 | ); 77 | } 78 | 79 | return ScriptFilter::output(); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/TorrentMenuItemBuilder.php: -------------------------------------------------------------------------------- 1 | children('td')->nextAll()->each(function ($column) use (&$itemMetada) { 14 | $itemMetada[] = trim($column->text()); 15 | }); 16 | 17 | return trim(self::buildTitle($itemMetada)); 18 | } 19 | 20 | public static function subtitle(Crawler $row) 21 | { 22 | return trim(strstr(trim($row->text('', false)), PHP_EOL, true)); 23 | } 24 | 25 | public static function pageLink(Crawler $row) 26 | { 27 | return $row->children('td a.cellMainLink')->eq(0)->attr('href'); 28 | } 29 | 30 | protected static function buildTitle($metadata) 31 | { 32 | [$timeagoNumericPart, $timeagoAlphaPart] = self::buildTimeagoValue($metadata[2]); 33 | 34 | return "$timeagoNumericPart $timeagoAlphaPart ago by $metadata[1], $metadata[0], $metadata[3] seeders ($metadata[4] l)"; 35 | } 36 | 37 | protected static function buildTimeagoValue($timeago) 38 | { 39 | $numbericPart = intval($timeago); 40 | 41 | $alphaPart = str_replace($numbericPart, '', $timeago); 42 | 43 | return [$numbericPart, $alphaPart]; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/Workflow.php: -------------------------------------------------------------------------------- 1 | &1", $result); 58 | 59 | return $result === 0; 60 | } 61 | 62 | protected static function copy($torrentPageLink = '') 63 | { 64 | $magnetLink = self::findMagnetLinkOn($torrentPageLink); 65 | 66 | system("echo '$magnetLink' | pbcopy 2>&1", $result); 67 | 68 | return $result === 0; 69 | } 70 | 71 | protected static function findMagnetLinkOn($torrentPageLink = '') 72 | { 73 | $crawler = (new Client())->request('GET', getenv('url') . $torrentPageLink); 74 | 75 | return $crawler->filter('#tab-technical a.siteButton.giantButton')->attr('href'); 76 | } 77 | 78 | protected static function notifyDownload($torrentName = '') 79 | { 80 | return '"' . $torrentName . '" will soon be at home!'; 81 | } 82 | 83 | protected static function notifyCopy($torrentName = '') 84 | { 85 | return 'Magnet link for "' . substr($torrentName, 0, 30) . '..." has been copied to clipboard!'; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /src/app.php: -------------------------------------------------------------------------------- 1 | spoofUserInputInAlfredWith('blonde redhead #music'); 14 | 15 | $this->assertStringContainsString( 16 | 'Blonde Redhead 2007 23', 17 | Workflow::currentMenu() 18 | ); 19 | 20 | $this->assertStringNotContainsString( 21 | 'Porno', 22 | Workflow::currentMenu() 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /tests/Feature/WorkflowTest.php: -------------------------------------------------------------------------------- 1 | spoofUserInputInAlfredWith('fight club'); 14 | 15 | $this->assertStringContainsString( 16 | 'Fight Club (1999)', 17 | Workflow::currentMenu() 18 | ); 19 | } 20 | 21 | /** @test */ 22 | public function it_tells_the_user_that_there_is_no_item_found_if_well_there_is_no_item_found() 23 | { 24 | $this->spoofUserInputInAlfredWith('kjeriuhsdvfiuqherfiushvsliudfhgsidlugf'); 25 | 26 | $this->assertStringContainsString( 27 | '404', 28 | Workflow::currentMenu() 29 | ); 30 | } 31 | 32 | /** @test */ 33 | public function it_can_get_the_torrent_page_link() 34 | { 35 | $this->spoofUserInputInAlfredWith('fight club'); 36 | 37 | $this->assertStringContainsString( 38 | '/fight-club-1999-1080p-brrip-x264-yify-t446902.html', 39 | Workflow::currentMenu() 40 | ); 41 | } 42 | 43 | /** @test */ 44 | public function it_can_download_a_chosen_torrent_through_the_default_application() 45 | { 46 | putenv('action=download'); 47 | putenv('torrent_page_link=/fight-club-1999-1080p-brrip-x264-yify-t446902.html'); 48 | 49 | $this->assertTrue( 50 | Workflow::do() 51 | ); 52 | } 53 | 54 | /** @test */ 55 | public function it_can_download_a_chosen_torrent_through_a_cli_command() 56 | { 57 | putenv('action=download'); 58 | putenv('torrent_page_link=/fight-club-1999-1080p-brrip-x264-yify-t446902.html'); 59 | 60 | putenv('cli=: {magnet}'); 61 | 62 | $this->assertTrue( 63 | Workflow::do() 64 | ); 65 | } 66 | 67 | /** @test */ 68 | public function it_can_copy_the_magnet_link_of_a_chosen_torrent() 69 | { 70 | $this->markTestSkipped('This test needs to run under an osx environment'); 71 | 72 | putenv('action=copy'); 73 | putenv('torrent_page_link=/fight-club-1999-1080p-brrip-x264-yify-t446902.html'); 74 | 75 | $this->assertTrue( 76 | Workflow::do() 77 | ); 78 | } 79 | 80 | /** @test */ 81 | public function it_can_notify_the_user_when_download() 82 | { 83 | putenv('action=download'); 84 | putenv('torrent_name=Fight Club (1999) 1080p BrRip x264 - YIFY'); 85 | 86 | $this->assertStringContainsString( 87 | 'Fight Club (1999) 1080p BrRip x264 - YIFY', 88 | Workflow::notify() 89 | ); 90 | } 91 | 92 | /** @test */ 93 | public function the_user_receives_the_correct_notification_according_to_its_action() 94 | { 95 | putenv('torrent_name=Fight Club (1999) 1080p BrRip x264 - YIFY'); 96 | 97 | putenv('action=download'); 98 | $this->assertStringContainsString( 99 | 'will soon be at home', 100 | Workflow::notify() 101 | ); 102 | 103 | putenv('action=copy'); 104 | $this->assertStringContainsString( 105 | 'has been copied to clipboard', 106 | Workflow::notify() 107 | ); 108 | } 109 | 110 | /** @test */ 111 | public function it_can_notify_the_user_when_copy() 112 | { 113 | putenv('action=copy'); 114 | putenv('torrent_name=Fight Club (1999) 1080p BrRip x264 - YIFY'); 115 | 116 | $this->assertStringContainsString( 117 | 'Fight Club (1999)', 118 | Workflow::notify('Fight Club (1999) 1080p BrRip x264 - YIFY') 119 | ); 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | setUpAlfredEnvVariables(); 14 | } 15 | 16 | protected function setUpAlfredEnvVariables() 17 | { 18 | putenv('url=https://kickasstorrents.to'); 19 | } 20 | 21 | protected function spoofUserInputInAlfredWith($userInput = 'bullshit') 22 | { 23 | global $argv; 24 | 25 | $argv[1] = $userInput; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/Unit/TorrentMenuItemBuilderTest.php: -------------------------------------------------------------------------------- 1 | row = (new Client()) 15 | ->request('GET', getenv('url') . '/usearch/ponyo') 16 | ->filter('.frontPageWidget tr') 17 | ->nextAll() 18 | ->eq(0); 19 | } 20 | 21 | /** @test */ 22 | public function it_can_build_the_item_title() 23 | { 24 | $this->assertStringContainsString( 25 | 'ago by YTSAGx, 1.7 GB', 26 | TorrentMenuItemBuilder::title($this->row) 27 | ); 28 | } 29 | 30 | /** @test */ 31 | public function it_can_build_the_item_subtitle() 32 | { 33 | $this->assertSame( 34 | 'Ponyo (2008) BluRay 1080p YTS YIFY', 35 | TorrentMenuItemBuilder::subtitle($this->row) 36 | ); 37 | } 38 | 39 | /** @test */ 40 | public function it_can_build_the_page_link() 41 | { 42 | $this->assertSame( 43 | '/ponyo-2008-bluray-1080p-yts-yify-t3657848.html', 44 | TorrentMenuItemBuilder::pageLink($this->row) 45 | ); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /tests/Unit/WorkflowTest.php: -------------------------------------------------------------------------------- 1 | assertFalse(Workflow::do()); 16 | } 17 | 18 | /** @test */ 19 | public function calling_a_workflow_action_that_does_not_exists_sends_a_notification_that_huh_you_wrong() 20 | { 21 | putenv('action=LOOOLLLOLL'); 22 | 23 | $this->assertStringContainsString( 24 | 'huh.', 25 | Workflow::notify() 26 | ); 27 | } 28 | } 29 | --------------------------------------------------------------------------------