├── .editorconfig ├── .github ├── FUNDING.yml └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── ecs.php ├── phpunit.xml ├── psalm.xml ├── src └── Codelyber.php └── tests └── CodelyberTest.php /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.php] 13 | indent_size = 4 14 | indent_style = tab 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false 18 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://bit.ly/CodelyTvPro 2 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: 🐘 Setup PHP 17 | uses: shivammathur/setup-php@v2 18 | with: 19 | php-version: '8.3' 20 | coverage: none 21 | 22 | - name: ⬇️ Install dependencies 23 | run: composer install --ignore-platform-reqs 24 | 25 | - name: 💅 Lint 26 | run: composer lint 27 | 28 | - name: 🏁 Static analysis 29 | run: composer static-analysis --output-format=github --shepherd 30 | 31 | - name: ✅ Run the tests 32 | run: composer test 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | .phpunit.result.cache 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2018 CodelyTV. https://codely.tv 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🐘 PHP Bootstrap (base / project skeleton) 2 | 3 | [![Latest Version on Packagist][ico-version]][link-packagist] 4 | [![Software License][ico-license]][link-license] 5 | [![Build Status][ico-gh-actions]][link-gh-actions] 6 | [![Total Downloads][ico-downloads]][link-downloads] 7 | 8 | ## Introduction 9 | 10 | This is a repository intended to serve as a starting point if you want to bootstrap a project in PHP. This repository 11 | has been explained in 12 | the [CodelyTV video "Introducción a PHP: Cómo configurar tu entorno de desarrollo 🐘" (Spanish)](https://www.youtube.com/watch?v=v2IjMrpZog4). 13 | 14 | It could be useful if you want to start from scratch a kata or a little exercise or project. The idea is that you don't 15 | have to worry about the boilerplate, just run `composer create-project codelytv/php-bootstrap your-project-name` and 16 | there you go: 17 | 18 | * Latest versions of PHP and PHPUnit 19 | * Best practices applied: 20 | * [`README.md`][link-readme] 21 | * [`LICENSE`][link-license] 22 | * [`composer.json`][link-composer-json] 23 | * [`ecs.php`](./ecs.php) 24 | * [`phpunit.xml`][link-phpunit] 25 | * [`psalm.xml`](./psalm.xml) 26 | * [`.gitignore`][link-gitignore] 27 | * [`.editorconfig`][link-editorconfig] 28 | * Some useful resources to start coding 29 | 30 | ## How To Start 31 | 32 | You have 2 different alternatives: Using our [Packagist project](https://packagist.org/packages/codelytv/php-bootstrap) 33 | with Composer, or manually cloning [this repo](https://github.com/CodelyTV/php-bootstrap/): 34 | 35 | ### Using Composer 36 | 37 | Start completely from scratch without having to delete this bootstrap project Git history: 38 | 39 | 1. If you don't have it already, [install Composer](https://getcomposer.org/download/). 40 | 2. Create your project based on the [Packagist project](https://packagist.org/packages/codelytv/php-bootstrap). This 41 | will also download the project dependencies: `composer create-project codelytv/php-bootstrap your-project-name`. 42 | 3. Move to the project directory: `cd your-project-name` 43 | 4. Run all the checks: `composer test`. This will do some checks that you can perform with isolated commands: 44 | 1. [Codely Style](https://github.com/CodelyTV/php-coding_style-codely): `composer lint`. 45 | 2. [Easy coding standard](https://github.com/easy-coding-standard/easy-coding-standard): `composer style`. If you 46 | want to fix style issues automatically: `composer lint:fix`. 47 | 3. [Static Analysis](https://github.com/vimeo/psalm): `composer static-analysis`. 48 | 4. [PHP Unit](https://phpunit.de/): `composer phpunit`. 49 | 5. Create your own repository: 50 | 1. Initialize your own Git repository: `git init` 51 | 2. Add the bootstrap files: `git add .` 52 | 3. Commit: `git commit -m "Initial commit with project boilerplate based on https://github.com/CodelyTV/php-bootstrap"` 53 | 4. Add your remote repository: `git remote add origin git@github.com:your-username/your-project-name` 54 | 5. Upload your local commits to the new remote repo: `git push -u origin master` 55 | 6. Start coding! 56 | 57 | ### Cloning the repository 58 | 59 | Just in case you prefer to avoid dealing with `composer create-project`, you can also clone this repository. We 60 | recommend to follow the next step-by-step process in order to avoid adding the bootstrap project commits to your project 61 | Git history: 62 | 63 | 1. [Use this repository template](https://github.com/CodelyTV/php-basic-skeleton/generate) 64 | 2. Clone your project 65 | 3. Move to the project directory: `cd your-project-name` 66 | 4. If you don't have it already, [install Composer](https://getcomposer.org/download/). 67 | 5. Install the project dependencies: `composer install` 68 | 6. Run the tests: `composer test`. 69 | 7. Start coding! 70 | 71 | ## Related skeleton templates 72 | 73 | This very same basic skeleton philosophy implemented in other programming languages: 74 | 75 | - [🔷🕸️ TypeScript Web Skeleton](https://github.com/CodelyTV/typescript-web-skeleton) 76 | - [🔷🌍 TypeScript API Skeleton](https://github.com/CodelyTV/typescript-api-skeleton) 77 | - [🔷✨ TypeScript DDD Skeleton](https://github.com/CodelyTV/typescript-ddd-skeleton) 78 | - [✨ JavaScript Basic Skeleton](https://github.com/CodelyTV/javascript-basic-skeleton) 79 | - [☕ Java Basic Skeleton](https://github.com/CodelyTV/java-basic-skeleton) 80 | - [📍 Kotlin Basic Skeleton](https://github.com/CodelyTV/kotlin-basic-skeleton) 81 | - [🧬 Scala Basic Skeleton](https://github.com/CodelyTV/scala-basic-skeleton) 82 | - [🦈 C# Basic Skeleton](https://github.com/CodelyTV/csharp-basic-skeleton) 83 | 84 | [ico-version]: https://img.shields.io/packagist/v/codelytv/php-bootstrap.svg?style=flat-square 85 | 86 | [ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square 87 | 88 | [ico-gh-actions]: https://github.com/CodelyTV/php-basic-skeleton/actions/workflows/ci.yml/badge.svg 89 | 90 | [ico-code-quality]: https://img.shields.io/scrutinizer/g/CodelyTV/php-bootstrap.svg?style=flat-square 91 | 92 | [ico-downloads]: https://img.shields.io/packagist/dt/codelytv/php-bootstrap.svg?style=flat-square 93 | 94 | [link-packagist]: https://packagist.org/packages/codelytv/php-bootstrap 95 | 96 | [link-license]: LICENSE 97 | 98 | [link-gh-actions]: https://github.com/CodelyTV/php-basic-skeleton/actions 99 | 100 | [link-downloads]: https://packagist.org/packages/codelytv/php-bootstrap 101 | 102 | [link-readme]: README.md 103 | 104 | [link-composer-json]: composer.json 105 | 106 | [link-phpunit]: phpunit.xml 107 | 108 | [link-gitignore]: .gitignore 109 | 110 | [link-editorconfig]: .editorconfig 111 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codelytv/php-bootstrap", 3 | "description": "Starting point if you want to bootstrap a project in PHP following best practices.", 4 | "type": "project", 5 | "keywords": ["bootstrap", "skeleton", "kata", "TDD", "boilerplate"], 6 | "homepage": "https://codely.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "CodelyTV", 11 | "homepage": "https://codely.com" 12 | } 13 | ], 14 | "require": { 15 | "php": "^8.3" 16 | }, 17 | "require-dev": { 18 | "phpunit/phpunit": "^10", 19 | "codelytv/coding-style": "^1.2", 20 | "vimeo/psalm": "^5.24" 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "CodelyTv\\": "src/" 25 | } 26 | }, 27 | "autoload-dev": { 28 | "psr-4": { 29 | "CodelyTv\\Tests\\": "tests/" 30 | } 31 | }, 32 | "minimum-stability": "stable", 33 | "prefer-stable": true, 34 | "scripts": { 35 | "test": "phpunit --configuration phpunit.xml", 36 | "lint": "ecs check", 37 | "lint:fix": "ecs check --fix", 38 | "static-analysis": "psalm" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /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": "5ec560a47adaf83d8657f3a532b7fa26", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "amphp/amp", 12 | "version": "v2.6.4", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/amphp/amp.git", 16 | "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", 21 | "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=7.1" 26 | }, 27 | "require-dev": { 28 | "amphp/php-cs-fixer-config": "dev-master", 29 | "amphp/phpunit-util": "^1", 30 | "ext-json": "*", 31 | "jetbrains/phpstorm-stubs": "^2019.3", 32 | "phpunit/phpunit": "^7 | ^8 | ^9", 33 | "react/promise": "^2", 34 | "vimeo/psalm": "^3.12" 35 | }, 36 | "type": "library", 37 | "extra": { 38 | "branch-alias": { 39 | "dev-master": "2.x-dev" 40 | } 41 | }, 42 | "autoload": { 43 | "files": [ 44 | "lib/functions.php", 45 | "lib/Internal/functions.php" 46 | ], 47 | "psr-4": { 48 | "Amp\\": "lib" 49 | } 50 | }, 51 | "notification-url": "https://packagist.org/downloads/", 52 | "license": [ 53 | "MIT" 54 | ], 55 | "authors": [ 56 | { 57 | "name": "Daniel Lowrey", 58 | "email": "rdlowrey@php.net" 59 | }, 60 | { 61 | "name": "Aaron Piotrowski", 62 | "email": "aaron@trowski.com" 63 | }, 64 | { 65 | "name": "Bob Weinand", 66 | "email": "bobwei9@hotmail.com" 67 | }, 68 | { 69 | "name": "Niklas Keller", 70 | "email": "me@kelunik.com" 71 | } 72 | ], 73 | "description": "A non-blocking concurrency framework for PHP applications.", 74 | "homepage": "https://amphp.org/amp", 75 | "keywords": [ 76 | "async", 77 | "asynchronous", 78 | "awaitable", 79 | "concurrency", 80 | "event", 81 | "event-loop", 82 | "future", 83 | "non-blocking", 84 | "promise" 85 | ], 86 | "support": { 87 | "irc": "irc://irc.freenode.org/amphp", 88 | "issues": "https://github.com/amphp/amp/issues", 89 | "source": "https://github.com/amphp/amp/tree/v2.6.4" 90 | }, 91 | "funding": [ 92 | { 93 | "url": "https://github.com/amphp", 94 | "type": "github" 95 | } 96 | ], 97 | "time": "2024-03-21T18:52:26+00:00" 98 | }, 99 | { 100 | "name": "amphp/byte-stream", 101 | "version": "v1.8.2", 102 | "source": { 103 | "type": "git", 104 | "url": "https://github.com/amphp/byte-stream.git", 105 | "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" 106 | }, 107 | "dist": { 108 | "type": "zip", 109 | "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", 110 | "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", 111 | "shasum": "" 112 | }, 113 | "require": { 114 | "amphp/amp": "^2", 115 | "php": ">=7.1" 116 | }, 117 | "require-dev": { 118 | "amphp/php-cs-fixer-config": "dev-master", 119 | "amphp/phpunit-util": "^1.4", 120 | "friendsofphp/php-cs-fixer": "^2.3", 121 | "jetbrains/phpstorm-stubs": "^2019.3", 122 | "phpunit/phpunit": "^6 || ^7 || ^8", 123 | "psalm/phar": "^3.11.4" 124 | }, 125 | "type": "library", 126 | "autoload": { 127 | "files": [ 128 | "lib/functions.php" 129 | ], 130 | "psr-4": { 131 | "Amp\\ByteStream\\": "lib" 132 | } 133 | }, 134 | "notification-url": "https://packagist.org/downloads/", 135 | "license": [ 136 | "MIT" 137 | ], 138 | "authors": [ 139 | { 140 | "name": "Aaron Piotrowski", 141 | "email": "aaron@trowski.com" 142 | }, 143 | { 144 | "name": "Niklas Keller", 145 | "email": "me@kelunik.com" 146 | } 147 | ], 148 | "description": "A stream abstraction to make working with non-blocking I/O simple.", 149 | "homepage": "https://amphp.org/byte-stream", 150 | "keywords": [ 151 | "amp", 152 | "amphp", 153 | "async", 154 | "io", 155 | "non-blocking", 156 | "stream" 157 | ], 158 | "support": { 159 | "issues": "https://github.com/amphp/byte-stream/issues", 160 | "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" 161 | }, 162 | "funding": [ 163 | { 164 | "url": "https://github.com/amphp", 165 | "type": "github" 166 | } 167 | ], 168 | "time": "2024-04-13T18:00:56+00:00" 169 | }, 170 | { 171 | "name": "codelytv/coding-style", 172 | "version": "1.2.0", 173 | "source": { 174 | "type": "git", 175 | "url": "https://github.com/CodelyTV/php-coding_style-codely.git", 176 | "reference": "ffd9d00d85360350ffc07a81bc9e25abf75a59f6" 177 | }, 178 | "dist": { 179 | "type": "zip", 180 | "url": "https://api.github.com/repos/CodelyTV/php-coding_style-codely/zipball/ffd9d00d85360350ffc07a81bc9e25abf75a59f6", 181 | "reference": "ffd9d00d85360350ffc07a81bc9e25abf75a59f6", 182 | "shasum": "" 183 | }, 184 | "require": { 185 | "symplify/easy-coding-standard": "^12.0" 186 | }, 187 | "type": "library", 188 | "autoload": { 189 | "psr-4": { 190 | "CodelyTv\\": "src/" 191 | } 192 | }, 193 | "notification-url": "https://packagist.org/downloads/", 194 | "license": [ 195 | "AGPL-3.0-or-later" 196 | ], 197 | "authors": [ 198 | { 199 | "name": "Codely", 200 | "homepage": "https://codely.com" 201 | } 202 | ], 203 | "description": "PHP Coding Style rules we use in Codely", 204 | "keywords": [ 205 | "Code style", 206 | "static analysis" 207 | ], 208 | "support": { 209 | "issues": "https://github.com/CodelyTV/php-coding_style-codely/issues", 210 | "source": "https://github.com/CodelyTV/php-coding_style-codely/tree/1.2.0" 211 | }, 212 | "funding": [ 213 | { 214 | "url": "https://bit.ly/CodelyTvPro", 215 | "type": "custom" 216 | } 217 | ], 218 | "time": "2023-10-24T09:12:06+00:00" 219 | }, 220 | { 221 | "name": "composer/pcre", 222 | "version": "3.1.3", 223 | "source": { 224 | "type": "git", 225 | "url": "https://github.com/composer/pcre.git", 226 | "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" 227 | }, 228 | "dist": { 229 | "type": "zip", 230 | "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", 231 | "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", 232 | "shasum": "" 233 | }, 234 | "require": { 235 | "php": "^7.4 || ^8.0" 236 | }, 237 | "require-dev": { 238 | "phpstan/phpstan": "^1.3", 239 | "phpstan/phpstan-strict-rules": "^1.1", 240 | "symfony/phpunit-bridge": "^5" 241 | }, 242 | "type": "library", 243 | "extra": { 244 | "branch-alias": { 245 | "dev-main": "3.x-dev" 246 | } 247 | }, 248 | "autoload": { 249 | "psr-4": { 250 | "Composer\\Pcre\\": "src" 251 | } 252 | }, 253 | "notification-url": "https://packagist.org/downloads/", 254 | "license": [ 255 | "MIT" 256 | ], 257 | "authors": [ 258 | { 259 | "name": "Jordi Boggiano", 260 | "email": "j.boggiano@seld.be", 261 | "homepage": "http://seld.be" 262 | } 263 | ], 264 | "description": "PCRE wrapping library that offers type-safe preg_* replacements.", 265 | "keywords": [ 266 | "PCRE", 267 | "preg", 268 | "regex", 269 | "regular expression" 270 | ], 271 | "support": { 272 | "issues": "https://github.com/composer/pcre/issues", 273 | "source": "https://github.com/composer/pcre/tree/3.1.3" 274 | }, 275 | "funding": [ 276 | { 277 | "url": "https://packagist.com", 278 | "type": "custom" 279 | }, 280 | { 281 | "url": "https://github.com/composer", 282 | "type": "github" 283 | }, 284 | { 285 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 286 | "type": "tidelift" 287 | } 288 | ], 289 | "time": "2024-03-19T10:26:25+00:00" 290 | }, 291 | { 292 | "name": "composer/semver", 293 | "version": "3.4.0", 294 | "source": { 295 | "type": "git", 296 | "url": "https://github.com/composer/semver.git", 297 | "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" 298 | }, 299 | "dist": { 300 | "type": "zip", 301 | "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", 302 | "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", 303 | "shasum": "" 304 | }, 305 | "require": { 306 | "php": "^5.3.2 || ^7.0 || ^8.0" 307 | }, 308 | "require-dev": { 309 | "phpstan/phpstan": "^1.4", 310 | "symfony/phpunit-bridge": "^4.2 || ^5" 311 | }, 312 | "type": "library", 313 | "extra": { 314 | "branch-alias": { 315 | "dev-main": "3.x-dev" 316 | } 317 | }, 318 | "autoload": { 319 | "psr-4": { 320 | "Composer\\Semver\\": "src" 321 | } 322 | }, 323 | "notification-url": "https://packagist.org/downloads/", 324 | "license": [ 325 | "MIT" 326 | ], 327 | "authors": [ 328 | { 329 | "name": "Nils Adermann", 330 | "email": "naderman@naderman.de", 331 | "homepage": "http://www.naderman.de" 332 | }, 333 | { 334 | "name": "Jordi Boggiano", 335 | "email": "j.boggiano@seld.be", 336 | "homepage": "http://seld.be" 337 | }, 338 | { 339 | "name": "Rob Bast", 340 | "email": "rob.bast@gmail.com", 341 | "homepage": "http://robbast.nl" 342 | } 343 | ], 344 | "description": "Semver library that offers utilities, version constraint parsing and validation.", 345 | "keywords": [ 346 | "semantic", 347 | "semver", 348 | "validation", 349 | "versioning" 350 | ], 351 | "support": { 352 | "irc": "ircs://irc.libera.chat:6697/composer", 353 | "issues": "https://github.com/composer/semver/issues", 354 | "source": "https://github.com/composer/semver/tree/3.4.0" 355 | }, 356 | "funding": [ 357 | { 358 | "url": "https://packagist.com", 359 | "type": "custom" 360 | }, 361 | { 362 | "url": "https://github.com/composer", 363 | "type": "github" 364 | }, 365 | { 366 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 367 | "type": "tidelift" 368 | } 369 | ], 370 | "time": "2023-08-31T09:50:34+00:00" 371 | }, 372 | { 373 | "name": "composer/xdebug-handler", 374 | "version": "3.0.5", 375 | "source": { 376 | "type": "git", 377 | "url": "https://github.com/composer/xdebug-handler.git", 378 | "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" 379 | }, 380 | "dist": { 381 | "type": "zip", 382 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", 383 | "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", 384 | "shasum": "" 385 | }, 386 | "require": { 387 | "composer/pcre": "^1 || ^2 || ^3", 388 | "php": "^7.2.5 || ^8.0", 389 | "psr/log": "^1 || ^2 || ^3" 390 | }, 391 | "require-dev": { 392 | "phpstan/phpstan": "^1.0", 393 | "phpstan/phpstan-strict-rules": "^1.1", 394 | "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" 395 | }, 396 | "type": "library", 397 | "autoload": { 398 | "psr-4": { 399 | "Composer\\XdebugHandler\\": "src" 400 | } 401 | }, 402 | "notification-url": "https://packagist.org/downloads/", 403 | "license": [ 404 | "MIT" 405 | ], 406 | "authors": [ 407 | { 408 | "name": "John Stevenson", 409 | "email": "john-stevenson@blueyonder.co.uk" 410 | } 411 | ], 412 | "description": "Restarts a process without Xdebug.", 413 | "keywords": [ 414 | "Xdebug", 415 | "performance" 416 | ], 417 | "support": { 418 | "irc": "ircs://irc.libera.chat:6697/composer", 419 | "issues": "https://github.com/composer/xdebug-handler/issues", 420 | "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" 421 | }, 422 | "funding": [ 423 | { 424 | "url": "https://packagist.com", 425 | "type": "custom" 426 | }, 427 | { 428 | "url": "https://github.com/composer", 429 | "type": "github" 430 | }, 431 | { 432 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 433 | "type": "tidelift" 434 | } 435 | ], 436 | "time": "2024-05-06T16:37:16+00:00" 437 | }, 438 | { 439 | "name": "dnoegel/php-xdg-base-dir", 440 | "version": "v0.1.1", 441 | "source": { 442 | "type": "git", 443 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git", 444 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" 445 | }, 446 | "dist": { 447 | "type": "zip", 448 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 449 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 450 | "shasum": "" 451 | }, 452 | "require": { 453 | "php": ">=5.3.2" 454 | }, 455 | "require-dev": { 456 | "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" 457 | }, 458 | "type": "library", 459 | "autoload": { 460 | "psr-4": { 461 | "XdgBaseDir\\": "src/" 462 | } 463 | }, 464 | "notification-url": "https://packagist.org/downloads/", 465 | "license": [ 466 | "MIT" 467 | ], 468 | "description": "implementation of xdg base directory specification for php", 469 | "support": { 470 | "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", 471 | "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" 472 | }, 473 | "time": "2019-12-04T15:06:13+00:00" 474 | }, 475 | { 476 | "name": "doctrine/deprecations", 477 | "version": "1.1.3", 478 | "source": { 479 | "type": "git", 480 | "url": "https://github.com/doctrine/deprecations.git", 481 | "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" 482 | }, 483 | "dist": { 484 | "type": "zip", 485 | "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", 486 | "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", 487 | "shasum": "" 488 | }, 489 | "require": { 490 | "php": "^7.1 || ^8.0" 491 | }, 492 | "require-dev": { 493 | "doctrine/coding-standard": "^9", 494 | "phpstan/phpstan": "1.4.10 || 1.10.15", 495 | "phpstan/phpstan-phpunit": "^1.0", 496 | "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", 497 | "psalm/plugin-phpunit": "0.18.4", 498 | "psr/log": "^1 || ^2 || ^3", 499 | "vimeo/psalm": "4.30.0 || 5.12.0" 500 | }, 501 | "suggest": { 502 | "psr/log": "Allows logging deprecations via PSR-3 logger implementation" 503 | }, 504 | "type": "library", 505 | "autoload": { 506 | "psr-4": { 507 | "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" 508 | } 509 | }, 510 | "notification-url": "https://packagist.org/downloads/", 511 | "license": [ 512 | "MIT" 513 | ], 514 | "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", 515 | "homepage": "https://www.doctrine-project.org/", 516 | "support": { 517 | "issues": "https://github.com/doctrine/deprecations/issues", 518 | "source": "https://github.com/doctrine/deprecations/tree/1.1.3" 519 | }, 520 | "time": "2024-01-30T19:34:25+00:00" 521 | }, 522 | { 523 | "name": "felixfbecker/advanced-json-rpc", 524 | "version": "v3.2.1", 525 | "source": { 526 | "type": "git", 527 | "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", 528 | "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" 529 | }, 530 | "dist": { 531 | "type": "zip", 532 | "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", 533 | "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", 534 | "shasum": "" 535 | }, 536 | "require": { 537 | "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", 538 | "php": "^7.1 || ^8.0", 539 | "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" 540 | }, 541 | "require-dev": { 542 | "phpunit/phpunit": "^7.0 || ^8.0" 543 | }, 544 | "type": "library", 545 | "autoload": { 546 | "psr-4": { 547 | "AdvancedJsonRpc\\": "lib/" 548 | } 549 | }, 550 | "notification-url": "https://packagist.org/downloads/", 551 | "license": [ 552 | "ISC" 553 | ], 554 | "authors": [ 555 | { 556 | "name": "Felix Becker", 557 | "email": "felix.b@outlook.com" 558 | } 559 | ], 560 | "description": "A more advanced JSONRPC implementation", 561 | "support": { 562 | "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", 563 | "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" 564 | }, 565 | "time": "2021-06-11T22:34:44+00:00" 566 | }, 567 | { 568 | "name": "felixfbecker/language-server-protocol", 569 | "version": "v1.5.2", 570 | "source": { 571 | "type": "git", 572 | "url": "https://github.com/felixfbecker/php-language-server-protocol.git", 573 | "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" 574 | }, 575 | "dist": { 576 | "type": "zip", 577 | "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", 578 | "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", 579 | "shasum": "" 580 | }, 581 | "require": { 582 | "php": ">=7.1" 583 | }, 584 | "require-dev": { 585 | "phpstan/phpstan": "*", 586 | "squizlabs/php_codesniffer": "^3.1", 587 | "vimeo/psalm": "^4.0" 588 | }, 589 | "type": "library", 590 | "extra": { 591 | "branch-alias": { 592 | "dev-master": "1.x-dev" 593 | } 594 | }, 595 | "autoload": { 596 | "psr-4": { 597 | "LanguageServerProtocol\\": "src/" 598 | } 599 | }, 600 | "notification-url": "https://packagist.org/downloads/", 601 | "license": [ 602 | "ISC" 603 | ], 604 | "authors": [ 605 | { 606 | "name": "Felix Becker", 607 | "email": "felix.b@outlook.com" 608 | } 609 | ], 610 | "description": "PHP classes for the Language Server Protocol", 611 | "keywords": [ 612 | "language", 613 | "microsoft", 614 | "php", 615 | "server" 616 | ], 617 | "support": { 618 | "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", 619 | "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" 620 | }, 621 | "time": "2022-03-02T22:36:06+00:00" 622 | }, 623 | { 624 | "name": "fidry/cpu-core-counter", 625 | "version": "1.1.0", 626 | "source": { 627 | "type": "git", 628 | "url": "https://github.com/theofidry/cpu-core-counter.git", 629 | "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" 630 | }, 631 | "dist": { 632 | "type": "zip", 633 | "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", 634 | "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", 635 | "shasum": "" 636 | }, 637 | "require": { 638 | "php": "^7.2 || ^8.0" 639 | }, 640 | "require-dev": { 641 | "fidry/makefile": "^0.2.0", 642 | "fidry/php-cs-fixer-config": "^1.1.2", 643 | "phpstan/extension-installer": "^1.2.0", 644 | "phpstan/phpstan": "^1.9.2", 645 | "phpstan/phpstan-deprecation-rules": "^1.0.0", 646 | "phpstan/phpstan-phpunit": "^1.2.2", 647 | "phpstan/phpstan-strict-rules": "^1.4.4", 648 | "phpunit/phpunit": "^8.5.31 || ^9.5.26", 649 | "webmozarts/strict-phpunit": "^7.5" 650 | }, 651 | "type": "library", 652 | "autoload": { 653 | "psr-4": { 654 | "Fidry\\CpuCoreCounter\\": "src/" 655 | } 656 | }, 657 | "notification-url": "https://packagist.org/downloads/", 658 | "license": [ 659 | "MIT" 660 | ], 661 | "authors": [ 662 | { 663 | "name": "Théo FIDRY", 664 | "email": "theo.fidry@gmail.com" 665 | } 666 | ], 667 | "description": "Tiny utility to get the number of CPU cores.", 668 | "keywords": [ 669 | "CPU", 670 | "core" 671 | ], 672 | "support": { 673 | "issues": "https://github.com/theofidry/cpu-core-counter/issues", 674 | "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" 675 | }, 676 | "funding": [ 677 | { 678 | "url": "https://github.com/theofidry", 679 | "type": "github" 680 | } 681 | ], 682 | "time": "2024-02-07T09:43:46+00:00" 683 | }, 684 | { 685 | "name": "myclabs/deep-copy", 686 | "version": "1.11.1", 687 | "source": { 688 | "type": "git", 689 | "url": "https://github.com/myclabs/DeepCopy.git", 690 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" 691 | }, 692 | "dist": { 693 | "type": "zip", 694 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 695 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 696 | "shasum": "" 697 | }, 698 | "require": { 699 | "php": "^7.1 || ^8.0" 700 | }, 701 | "conflict": { 702 | "doctrine/collections": "<1.6.8", 703 | "doctrine/common": "<2.13.3 || >=3,<3.2.2" 704 | }, 705 | "require-dev": { 706 | "doctrine/collections": "^1.6.8", 707 | "doctrine/common": "^2.13.3 || ^3.2.2", 708 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" 709 | }, 710 | "type": "library", 711 | "autoload": { 712 | "files": [ 713 | "src/DeepCopy/deep_copy.php" 714 | ], 715 | "psr-4": { 716 | "DeepCopy\\": "src/DeepCopy/" 717 | } 718 | }, 719 | "notification-url": "https://packagist.org/downloads/", 720 | "license": [ 721 | "MIT" 722 | ], 723 | "description": "Create deep copies (clones) of your objects", 724 | "keywords": [ 725 | "clone", 726 | "copy", 727 | "duplicate", 728 | "object", 729 | "object graph" 730 | ], 731 | "support": { 732 | "issues": "https://github.com/myclabs/DeepCopy/issues", 733 | "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" 734 | }, 735 | "funding": [ 736 | { 737 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 738 | "type": "tidelift" 739 | } 740 | ], 741 | "time": "2023-03-08T13:26:56+00:00" 742 | }, 743 | { 744 | "name": "netresearch/jsonmapper", 745 | "version": "v4.4.1", 746 | "source": { 747 | "type": "git", 748 | "url": "https://github.com/cweiske/jsonmapper.git", 749 | "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" 750 | }, 751 | "dist": { 752 | "type": "zip", 753 | "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", 754 | "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", 755 | "shasum": "" 756 | }, 757 | "require": { 758 | "ext-json": "*", 759 | "ext-pcre": "*", 760 | "ext-reflection": "*", 761 | "ext-spl": "*", 762 | "php": ">=7.1" 763 | }, 764 | "require-dev": { 765 | "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", 766 | "squizlabs/php_codesniffer": "~3.5" 767 | }, 768 | "type": "library", 769 | "autoload": { 770 | "psr-0": { 771 | "JsonMapper": "src/" 772 | } 773 | }, 774 | "notification-url": "https://packagist.org/downloads/", 775 | "license": [ 776 | "OSL-3.0" 777 | ], 778 | "authors": [ 779 | { 780 | "name": "Christian Weiske", 781 | "email": "cweiske@cweiske.de", 782 | "homepage": "http://github.com/cweiske/jsonmapper/", 783 | "role": "Developer" 784 | } 785 | ], 786 | "description": "Map nested JSON structures onto PHP classes", 787 | "support": { 788 | "email": "cweiske@cweiske.de", 789 | "issues": "https://github.com/cweiske/jsonmapper/issues", 790 | "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" 791 | }, 792 | "time": "2024-01-31T06:18:54+00:00" 793 | }, 794 | { 795 | "name": "nikic/php-parser", 796 | "version": "v4.19.1", 797 | "source": { 798 | "type": "git", 799 | "url": "https://github.com/nikic/PHP-Parser.git", 800 | "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" 801 | }, 802 | "dist": { 803 | "type": "zip", 804 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", 805 | "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", 806 | "shasum": "" 807 | }, 808 | "require": { 809 | "ext-tokenizer": "*", 810 | "php": ">=7.1" 811 | }, 812 | "require-dev": { 813 | "ircmaxell/php-yacc": "^0.0.7", 814 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 815 | }, 816 | "bin": [ 817 | "bin/php-parse" 818 | ], 819 | "type": "library", 820 | "extra": { 821 | "branch-alias": { 822 | "dev-master": "4.9-dev" 823 | } 824 | }, 825 | "autoload": { 826 | "psr-4": { 827 | "PhpParser\\": "lib/PhpParser" 828 | } 829 | }, 830 | "notification-url": "https://packagist.org/downloads/", 831 | "license": [ 832 | "BSD-3-Clause" 833 | ], 834 | "authors": [ 835 | { 836 | "name": "Nikita Popov" 837 | } 838 | ], 839 | "description": "A PHP parser written in PHP", 840 | "keywords": [ 841 | "parser", 842 | "php" 843 | ], 844 | "support": { 845 | "issues": "https://github.com/nikic/PHP-Parser/issues", 846 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" 847 | }, 848 | "time": "2024-03-17T08:10:35+00:00" 849 | }, 850 | { 851 | "name": "phar-io/manifest", 852 | "version": "2.0.4", 853 | "source": { 854 | "type": "git", 855 | "url": "https://github.com/phar-io/manifest.git", 856 | "reference": "54750ef60c58e43759730615a392c31c80e23176" 857 | }, 858 | "dist": { 859 | "type": "zip", 860 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", 861 | "reference": "54750ef60c58e43759730615a392c31c80e23176", 862 | "shasum": "" 863 | }, 864 | "require": { 865 | "ext-dom": "*", 866 | "ext-libxml": "*", 867 | "ext-phar": "*", 868 | "ext-xmlwriter": "*", 869 | "phar-io/version": "^3.0.1", 870 | "php": "^7.2 || ^8.0" 871 | }, 872 | "type": "library", 873 | "extra": { 874 | "branch-alias": { 875 | "dev-master": "2.0.x-dev" 876 | } 877 | }, 878 | "autoload": { 879 | "classmap": [ 880 | "src/" 881 | ] 882 | }, 883 | "notification-url": "https://packagist.org/downloads/", 884 | "license": [ 885 | "BSD-3-Clause" 886 | ], 887 | "authors": [ 888 | { 889 | "name": "Arne Blankerts", 890 | "email": "arne@blankerts.de", 891 | "role": "Developer" 892 | }, 893 | { 894 | "name": "Sebastian Heuer", 895 | "email": "sebastian@phpeople.de", 896 | "role": "Developer" 897 | }, 898 | { 899 | "name": "Sebastian Bergmann", 900 | "email": "sebastian@phpunit.de", 901 | "role": "Developer" 902 | } 903 | ], 904 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 905 | "support": { 906 | "issues": "https://github.com/phar-io/manifest/issues", 907 | "source": "https://github.com/phar-io/manifest/tree/2.0.4" 908 | }, 909 | "funding": [ 910 | { 911 | "url": "https://github.com/theseer", 912 | "type": "github" 913 | } 914 | ], 915 | "time": "2024-03-03T12:33:53+00:00" 916 | }, 917 | { 918 | "name": "phar-io/version", 919 | "version": "3.2.1", 920 | "source": { 921 | "type": "git", 922 | "url": "https://github.com/phar-io/version.git", 923 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" 924 | }, 925 | "dist": { 926 | "type": "zip", 927 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 928 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 929 | "shasum": "" 930 | }, 931 | "require": { 932 | "php": "^7.2 || ^8.0" 933 | }, 934 | "type": "library", 935 | "autoload": { 936 | "classmap": [ 937 | "src/" 938 | ] 939 | }, 940 | "notification-url": "https://packagist.org/downloads/", 941 | "license": [ 942 | "BSD-3-Clause" 943 | ], 944 | "authors": [ 945 | { 946 | "name": "Arne Blankerts", 947 | "email": "arne@blankerts.de", 948 | "role": "Developer" 949 | }, 950 | { 951 | "name": "Sebastian Heuer", 952 | "email": "sebastian@phpeople.de", 953 | "role": "Developer" 954 | }, 955 | { 956 | "name": "Sebastian Bergmann", 957 | "email": "sebastian@phpunit.de", 958 | "role": "Developer" 959 | } 960 | ], 961 | "description": "Library for handling version information and constraints", 962 | "support": { 963 | "issues": "https://github.com/phar-io/version/issues", 964 | "source": "https://github.com/phar-io/version/tree/3.2.1" 965 | }, 966 | "time": "2022-02-21T01:04:05+00:00" 967 | }, 968 | { 969 | "name": "phpdocumentor/reflection-common", 970 | "version": "2.2.0", 971 | "source": { 972 | "type": "git", 973 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 974 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 975 | }, 976 | "dist": { 977 | "type": "zip", 978 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 979 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 980 | "shasum": "" 981 | }, 982 | "require": { 983 | "php": "^7.2 || ^8.0" 984 | }, 985 | "type": "library", 986 | "extra": { 987 | "branch-alias": { 988 | "dev-2.x": "2.x-dev" 989 | } 990 | }, 991 | "autoload": { 992 | "psr-4": { 993 | "phpDocumentor\\Reflection\\": "src/" 994 | } 995 | }, 996 | "notification-url": "https://packagist.org/downloads/", 997 | "license": [ 998 | "MIT" 999 | ], 1000 | "authors": [ 1001 | { 1002 | "name": "Jaap van Otterdijk", 1003 | "email": "opensource@ijaap.nl" 1004 | } 1005 | ], 1006 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1007 | "homepage": "http://www.phpdoc.org", 1008 | "keywords": [ 1009 | "FQSEN", 1010 | "phpDocumentor", 1011 | "phpdoc", 1012 | "reflection", 1013 | "static analysis" 1014 | ], 1015 | "support": { 1016 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 1017 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 1018 | }, 1019 | "time": "2020-06-27T09:03:43+00:00" 1020 | }, 1021 | { 1022 | "name": "phpdocumentor/reflection-docblock", 1023 | "version": "5.4.0", 1024 | "source": { 1025 | "type": "git", 1026 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1027 | "reference": "298d2febfe79d03fe714eb871d5538da55205b1a" 1028 | }, 1029 | "dist": { 1030 | "type": "zip", 1031 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a", 1032 | "reference": "298d2febfe79d03fe714eb871d5538da55205b1a", 1033 | "shasum": "" 1034 | }, 1035 | "require": { 1036 | "doctrine/deprecations": "^1.1", 1037 | "ext-filter": "*", 1038 | "php": "^7.4 || ^8.0", 1039 | "phpdocumentor/reflection-common": "^2.2", 1040 | "phpdocumentor/type-resolver": "^1.7", 1041 | "phpstan/phpdoc-parser": "^1.7", 1042 | "webmozart/assert": "^1.9.1" 1043 | }, 1044 | "require-dev": { 1045 | "mockery/mockery": "~1.3.5", 1046 | "phpstan/extension-installer": "^1.1", 1047 | "phpstan/phpstan": "^1.8", 1048 | "phpstan/phpstan-mockery": "^1.1", 1049 | "phpstan/phpstan-webmozart-assert": "^1.2", 1050 | "phpunit/phpunit": "^9.5", 1051 | "vimeo/psalm": "^5.13" 1052 | }, 1053 | "type": "library", 1054 | "extra": { 1055 | "branch-alias": { 1056 | "dev-master": "5.x-dev" 1057 | } 1058 | }, 1059 | "autoload": { 1060 | "psr-4": { 1061 | "phpDocumentor\\Reflection\\": "src" 1062 | } 1063 | }, 1064 | "notification-url": "https://packagist.org/downloads/", 1065 | "license": [ 1066 | "MIT" 1067 | ], 1068 | "authors": [ 1069 | { 1070 | "name": "Mike van Riel", 1071 | "email": "me@mikevanriel.com" 1072 | }, 1073 | { 1074 | "name": "Jaap van Otterdijk", 1075 | "email": "opensource@ijaap.nl" 1076 | } 1077 | ], 1078 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1079 | "support": { 1080 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 1081 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.0" 1082 | }, 1083 | "time": "2024-04-09T21:13:58+00:00" 1084 | }, 1085 | { 1086 | "name": "phpdocumentor/type-resolver", 1087 | "version": "1.8.2", 1088 | "source": { 1089 | "type": "git", 1090 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1091 | "reference": "153ae662783729388a584b4361f2545e4d841e3c" 1092 | }, 1093 | "dist": { 1094 | "type": "zip", 1095 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", 1096 | "reference": "153ae662783729388a584b4361f2545e4d841e3c", 1097 | "shasum": "" 1098 | }, 1099 | "require": { 1100 | "doctrine/deprecations": "^1.0", 1101 | "php": "^7.3 || ^8.0", 1102 | "phpdocumentor/reflection-common": "^2.0", 1103 | "phpstan/phpdoc-parser": "^1.13" 1104 | }, 1105 | "require-dev": { 1106 | "ext-tokenizer": "*", 1107 | "phpbench/phpbench": "^1.2", 1108 | "phpstan/extension-installer": "^1.1", 1109 | "phpstan/phpstan": "^1.8", 1110 | "phpstan/phpstan-phpunit": "^1.1", 1111 | "phpunit/phpunit": "^9.5", 1112 | "rector/rector": "^0.13.9", 1113 | "vimeo/psalm": "^4.25" 1114 | }, 1115 | "type": "library", 1116 | "extra": { 1117 | "branch-alias": { 1118 | "dev-1.x": "1.x-dev" 1119 | } 1120 | }, 1121 | "autoload": { 1122 | "psr-4": { 1123 | "phpDocumentor\\Reflection\\": "src" 1124 | } 1125 | }, 1126 | "notification-url": "https://packagist.org/downloads/", 1127 | "license": [ 1128 | "MIT" 1129 | ], 1130 | "authors": [ 1131 | { 1132 | "name": "Mike van Riel", 1133 | "email": "me@mikevanriel.com" 1134 | } 1135 | ], 1136 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1137 | "support": { 1138 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 1139 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" 1140 | }, 1141 | "time": "2024-02-23T11:10:43+00:00" 1142 | }, 1143 | { 1144 | "name": "phpstan/phpdoc-parser", 1145 | "version": "1.29.0", 1146 | "source": { 1147 | "type": "git", 1148 | "url": "https://github.com/phpstan/phpdoc-parser.git", 1149 | "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" 1150 | }, 1151 | "dist": { 1152 | "type": "zip", 1153 | "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", 1154 | "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", 1155 | "shasum": "" 1156 | }, 1157 | "require": { 1158 | "php": "^7.2 || ^8.0" 1159 | }, 1160 | "require-dev": { 1161 | "doctrine/annotations": "^2.0", 1162 | "nikic/php-parser": "^4.15", 1163 | "php-parallel-lint/php-parallel-lint": "^1.2", 1164 | "phpstan/extension-installer": "^1.0", 1165 | "phpstan/phpstan": "^1.5", 1166 | "phpstan/phpstan-phpunit": "^1.1", 1167 | "phpstan/phpstan-strict-rules": "^1.0", 1168 | "phpunit/phpunit": "^9.5", 1169 | "symfony/process": "^5.2" 1170 | }, 1171 | "type": "library", 1172 | "autoload": { 1173 | "psr-4": { 1174 | "PHPStan\\PhpDocParser\\": [ 1175 | "src/" 1176 | ] 1177 | } 1178 | }, 1179 | "notification-url": "https://packagist.org/downloads/", 1180 | "license": [ 1181 | "MIT" 1182 | ], 1183 | "description": "PHPDoc parser with support for nullable, intersection and generic types", 1184 | "support": { 1185 | "issues": "https://github.com/phpstan/phpdoc-parser/issues", 1186 | "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" 1187 | }, 1188 | "time": "2024-05-06T12:04:23+00:00" 1189 | }, 1190 | { 1191 | "name": "phpunit/php-code-coverage", 1192 | "version": "10.1.14", 1193 | "source": { 1194 | "type": "git", 1195 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1196 | "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" 1197 | }, 1198 | "dist": { 1199 | "type": "zip", 1200 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", 1201 | "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", 1202 | "shasum": "" 1203 | }, 1204 | "require": { 1205 | "ext-dom": "*", 1206 | "ext-libxml": "*", 1207 | "ext-xmlwriter": "*", 1208 | "nikic/php-parser": "^4.18 || ^5.0", 1209 | "php": ">=8.1", 1210 | "phpunit/php-file-iterator": "^4.0", 1211 | "phpunit/php-text-template": "^3.0", 1212 | "sebastian/code-unit-reverse-lookup": "^3.0", 1213 | "sebastian/complexity": "^3.0", 1214 | "sebastian/environment": "^6.0", 1215 | "sebastian/lines-of-code": "^2.0", 1216 | "sebastian/version": "^4.0", 1217 | "theseer/tokenizer": "^1.2.0" 1218 | }, 1219 | "require-dev": { 1220 | "phpunit/phpunit": "^10.1" 1221 | }, 1222 | "suggest": { 1223 | "ext-pcov": "PHP extension that provides line coverage", 1224 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" 1225 | }, 1226 | "type": "library", 1227 | "extra": { 1228 | "branch-alias": { 1229 | "dev-main": "10.1-dev" 1230 | } 1231 | }, 1232 | "autoload": { 1233 | "classmap": [ 1234 | "src/" 1235 | ] 1236 | }, 1237 | "notification-url": "https://packagist.org/downloads/", 1238 | "license": [ 1239 | "BSD-3-Clause" 1240 | ], 1241 | "authors": [ 1242 | { 1243 | "name": "Sebastian Bergmann", 1244 | "email": "sebastian@phpunit.de", 1245 | "role": "lead" 1246 | } 1247 | ], 1248 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1249 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1250 | "keywords": [ 1251 | "coverage", 1252 | "testing", 1253 | "xunit" 1254 | ], 1255 | "support": { 1256 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 1257 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", 1258 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" 1259 | }, 1260 | "funding": [ 1261 | { 1262 | "url": "https://github.com/sebastianbergmann", 1263 | "type": "github" 1264 | } 1265 | ], 1266 | "time": "2024-03-12T15:33:41+00:00" 1267 | }, 1268 | { 1269 | "name": "phpunit/php-file-iterator", 1270 | "version": "4.1.0", 1271 | "source": { 1272 | "type": "git", 1273 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1274 | "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" 1275 | }, 1276 | "dist": { 1277 | "type": "zip", 1278 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", 1279 | "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", 1280 | "shasum": "" 1281 | }, 1282 | "require": { 1283 | "php": ">=8.1" 1284 | }, 1285 | "require-dev": { 1286 | "phpunit/phpunit": "^10.0" 1287 | }, 1288 | "type": "library", 1289 | "extra": { 1290 | "branch-alias": { 1291 | "dev-main": "4.0-dev" 1292 | } 1293 | }, 1294 | "autoload": { 1295 | "classmap": [ 1296 | "src/" 1297 | ] 1298 | }, 1299 | "notification-url": "https://packagist.org/downloads/", 1300 | "license": [ 1301 | "BSD-3-Clause" 1302 | ], 1303 | "authors": [ 1304 | { 1305 | "name": "Sebastian Bergmann", 1306 | "email": "sebastian@phpunit.de", 1307 | "role": "lead" 1308 | } 1309 | ], 1310 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1311 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1312 | "keywords": [ 1313 | "filesystem", 1314 | "iterator" 1315 | ], 1316 | "support": { 1317 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 1318 | "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", 1319 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" 1320 | }, 1321 | "funding": [ 1322 | { 1323 | "url": "https://github.com/sebastianbergmann", 1324 | "type": "github" 1325 | } 1326 | ], 1327 | "time": "2023-08-31T06:24:48+00:00" 1328 | }, 1329 | { 1330 | "name": "phpunit/php-invoker", 1331 | "version": "4.0.0", 1332 | "source": { 1333 | "type": "git", 1334 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 1335 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" 1336 | }, 1337 | "dist": { 1338 | "type": "zip", 1339 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", 1340 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", 1341 | "shasum": "" 1342 | }, 1343 | "require": { 1344 | "php": ">=8.1" 1345 | }, 1346 | "require-dev": { 1347 | "ext-pcntl": "*", 1348 | "phpunit/phpunit": "^10.0" 1349 | }, 1350 | "suggest": { 1351 | "ext-pcntl": "*" 1352 | }, 1353 | "type": "library", 1354 | "extra": { 1355 | "branch-alias": { 1356 | "dev-main": "4.0-dev" 1357 | } 1358 | }, 1359 | "autoload": { 1360 | "classmap": [ 1361 | "src/" 1362 | ] 1363 | }, 1364 | "notification-url": "https://packagist.org/downloads/", 1365 | "license": [ 1366 | "BSD-3-Clause" 1367 | ], 1368 | "authors": [ 1369 | { 1370 | "name": "Sebastian Bergmann", 1371 | "email": "sebastian@phpunit.de", 1372 | "role": "lead" 1373 | } 1374 | ], 1375 | "description": "Invoke callables with a timeout", 1376 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 1377 | "keywords": [ 1378 | "process" 1379 | ], 1380 | "support": { 1381 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 1382 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" 1383 | }, 1384 | "funding": [ 1385 | { 1386 | "url": "https://github.com/sebastianbergmann", 1387 | "type": "github" 1388 | } 1389 | ], 1390 | "time": "2023-02-03T06:56:09+00:00" 1391 | }, 1392 | { 1393 | "name": "phpunit/php-text-template", 1394 | "version": "3.0.1", 1395 | "source": { 1396 | "type": "git", 1397 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1398 | "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" 1399 | }, 1400 | "dist": { 1401 | "type": "zip", 1402 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", 1403 | "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", 1404 | "shasum": "" 1405 | }, 1406 | "require": { 1407 | "php": ">=8.1" 1408 | }, 1409 | "require-dev": { 1410 | "phpunit/phpunit": "^10.0" 1411 | }, 1412 | "type": "library", 1413 | "extra": { 1414 | "branch-alias": { 1415 | "dev-main": "3.0-dev" 1416 | } 1417 | }, 1418 | "autoload": { 1419 | "classmap": [ 1420 | "src/" 1421 | ] 1422 | }, 1423 | "notification-url": "https://packagist.org/downloads/", 1424 | "license": [ 1425 | "BSD-3-Clause" 1426 | ], 1427 | "authors": [ 1428 | { 1429 | "name": "Sebastian Bergmann", 1430 | "email": "sebastian@phpunit.de", 1431 | "role": "lead" 1432 | } 1433 | ], 1434 | "description": "Simple template engine.", 1435 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1436 | "keywords": [ 1437 | "template" 1438 | ], 1439 | "support": { 1440 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 1441 | "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", 1442 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" 1443 | }, 1444 | "funding": [ 1445 | { 1446 | "url": "https://github.com/sebastianbergmann", 1447 | "type": "github" 1448 | } 1449 | ], 1450 | "time": "2023-08-31T14:07:24+00:00" 1451 | }, 1452 | { 1453 | "name": "phpunit/php-timer", 1454 | "version": "6.0.0", 1455 | "source": { 1456 | "type": "git", 1457 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1458 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" 1459 | }, 1460 | "dist": { 1461 | "type": "zip", 1462 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", 1463 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", 1464 | "shasum": "" 1465 | }, 1466 | "require": { 1467 | "php": ">=8.1" 1468 | }, 1469 | "require-dev": { 1470 | "phpunit/phpunit": "^10.0" 1471 | }, 1472 | "type": "library", 1473 | "extra": { 1474 | "branch-alias": { 1475 | "dev-main": "6.0-dev" 1476 | } 1477 | }, 1478 | "autoload": { 1479 | "classmap": [ 1480 | "src/" 1481 | ] 1482 | }, 1483 | "notification-url": "https://packagist.org/downloads/", 1484 | "license": [ 1485 | "BSD-3-Clause" 1486 | ], 1487 | "authors": [ 1488 | { 1489 | "name": "Sebastian Bergmann", 1490 | "email": "sebastian@phpunit.de", 1491 | "role": "lead" 1492 | } 1493 | ], 1494 | "description": "Utility class for timing", 1495 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1496 | "keywords": [ 1497 | "timer" 1498 | ], 1499 | "support": { 1500 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 1501 | "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" 1502 | }, 1503 | "funding": [ 1504 | { 1505 | "url": "https://github.com/sebastianbergmann", 1506 | "type": "github" 1507 | } 1508 | ], 1509 | "time": "2023-02-03T06:57:52+00:00" 1510 | }, 1511 | { 1512 | "name": "phpunit/phpunit", 1513 | "version": "10.5.20", 1514 | "source": { 1515 | "type": "git", 1516 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1517 | "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" 1518 | }, 1519 | "dist": { 1520 | "type": "zip", 1521 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", 1522 | "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", 1523 | "shasum": "" 1524 | }, 1525 | "require": { 1526 | "ext-dom": "*", 1527 | "ext-json": "*", 1528 | "ext-libxml": "*", 1529 | "ext-mbstring": "*", 1530 | "ext-xml": "*", 1531 | "ext-xmlwriter": "*", 1532 | "myclabs/deep-copy": "^1.10.1", 1533 | "phar-io/manifest": "^2.0.3", 1534 | "phar-io/version": "^3.0.2", 1535 | "php": ">=8.1", 1536 | "phpunit/php-code-coverage": "^10.1.5", 1537 | "phpunit/php-file-iterator": "^4.0", 1538 | "phpunit/php-invoker": "^4.0", 1539 | "phpunit/php-text-template": "^3.0", 1540 | "phpunit/php-timer": "^6.0", 1541 | "sebastian/cli-parser": "^2.0", 1542 | "sebastian/code-unit": "^2.0", 1543 | "sebastian/comparator": "^5.0", 1544 | "sebastian/diff": "^5.0", 1545 | "sebastian/environment": "^6.0", 1546 | "sebastian/exporter": "^5.1", 1547 | "sebastian/global-state": "^6.0.1", 1548 | "sebastian/object-enumerator": "^5.0", 1549 | "sebastian/recursion-context": "^5.0", 1550 | "sebastian/type": "^4.0", 1551 | "sebastian/version": "^4.0" 1552 | }, 1553 | "suggest": { 1554 | "ext-soap": "To be able to generate mocks based on WSDL files" 1555 | }, 1556 | "bin": [ 1557 | "phpunit" 1558 | ], 1559 | "type": "library", 1560 | "extra": { 1561 | "branch-alias": { 1562 | "dev-main": "10.5-dev" 1563 | } 1564 | }, 1565 | "autoload": { 1566 | "files": [ 1567 | "src/Framework/Assert/Functions.php" 1568 | ], 1569 | "classmap": [ 1570 | "src/" 1571 | ] 1572 | }, 1573 | "notification-url": "https://packagist.org/downloads/", 1574 | "license": [ 1575 | "BSD-3-Clause" 1576 | ], 1577 | "authors": [ 1578 | { 1579 | "name": "Sebastian Bergmann", 1580 | "email": "sebastian@phpunit.de", 1581 | "role": "lead" 1582 | } 1583 | ], 1584 | "description": "The PHP Unit Testing framework.", 1585 | "homepage": "https://phpunit.de/", 1586 | "keywords": [ 1587 | "phpunit", 1588 | "testing", 1589 | "xunit" 1590 | ], 1591 | "support": { 1592 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 1593 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 1594 | "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" 1595 | }, 1596 | "funding": [ 1597 | { 1598 | "url": "https://phpunit.de/sponsors.html", 1599 | "type": "custom" 1600 | }, 1601 | { 1602 | "url": "https://github.com/sebastianbergmann", 1603 | "type": "github" 1604 | }, 1605 | { 1606 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", 1607 | "type": "tidelift" 1608 | } 1609 | ], 1610 | "time": "2024-04-24T06:32:35+00:00" 1611 | }, 1612 | { 1613 | "name": "psr/container", 1614 | "version": "2.0.2", 1615 | "source": { 1616 | "type": "git", 1617 | "url": "https://github.com/php-fig/container.git", 1618 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" 1619 | }, 1620 | "dist": { 1621 | "type": "zip", 1622 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", 1623 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", 1624 | "shasum": "" 1625 | }, 1626 | "require": { 1627 | "php": ">=7.4.0" 1628 | }, 1629 | "type": "library", 1630 | "extra": { 1631 | "branch-alias": { 1632 | "dev-master": "2.0.x-dev" 1633 | } 1634 | }, 1635 | "autoload": { 1636 | "psr-4": { 1637 | "Psr\\Container\\": "src/" 1638 | } 1639 | }, 1640 | "notification-url": "https://packagist.org/downloads/", 1641 | "license": [ 1642 | "MIT" 1643 | ], 1644 | "authors": [ 1645 | { 1646 | "name": "PHP-FIG", 1647 | "homepage": "https://www.php-fig.org/" 1648 | } 1649 | ], 1650 | "description": "Common Container Interface (PHP FIG PSR-11)", 1651 | "homepage": "https://github.com/php-fig/container", 1652 | "keywords": [ 1653 | "PSR-11", 1654 | "container", 1655 | "container-interface", 1656 | "container-interop", 1657 | "psr" 1658 | ], 1659 | "support": { 1660 | "issues": "https://github.com/php-fig/container/issues", 1661 | "source": "https://github.com/php-fig/container/tree/2.0.2" 1662 | }, 1663 | "time": "2021-11-05T16:47:00+00:00" 1664 | }, 1665 | { 1666 | "name": "psr/log", 1667 | "version": "3.0.0", 1668 | "source": { 1669 | "type": "git", 1670 | "url": "https://github.com/php-fig/log.git", 1671 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" 1672 | }, 1673 | "dist": { 1674 | "type": "zip", 1675 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", 1676 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", 1677 | "shasum": "" 1678 | }, 1679 | "require": { 1680 | "php": ">=8.0.0" 1681 | }, 1682 | "type": "library", 1683 | "extra": { 1684 | "branch-alias": { 1685 | "dev-master": "3.x-dev" 1686 | } 1687 | }, 1688 | "autoload": { 1689 | "psr-4": { 1690 | "Psr\\Log\\": "src" 1691 | } 1692 | }, 1693 | "notification-url": "https://packagist.org/downloads/", 1694 | "license": [ 1695 | "MIT" 1696 | ], 1697 | "authors": [ 1698 | { 1699 | "name": "PHP-FIG", 1700 | "homepage": "https://www.php-fig.org/" 1701 | } 1702 | ], 1703 | "description": "Common interface for logging libraries", 1704 | "homepage": "https://github.com/php-fig/log", 1705 | "keywords": [ 1706 | "log", 1707 | "psr", 1708 | "psr-3" 1709 | ], 1710 | "support": { 1711 | "source": "https://github.com/php-fig/log/tree/3.0.0" 1712 | }, 1713 | "time": "2021-07-14T16:46:02+00:00" 1714 | }, 1715 | { 1716 | "name": "sebastian/cli-parser", 1717 | "version": "2.0.1", 1718 | "source": { 1719 | "type": "git", 1720 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 1721 | "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" 1722 | }, 1723 | "dist": { 1724 | "type": "zip", 1725 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", 1726 | "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", 1727 | "shasum": "" 1728 | }, 1729 | "require": { 1730 | "php": ">=8.1" 1731 | }, 1732 | "require-dev": { 1733 | "phpunit/phpunit": "^10.0" 1734 | }, 1735 | "type": "library", 1736 | "extra": { 1737 | "branch-alias": { 1738 | "dev-main": "2.0-dev" 1739 | } 1740 | }, 1741 | "autoload": { 1742 | "classmap": [ 1743 | "src/" 1744 | ] 1745 | }, 1746 | "notification-url": "https://packagist.org/downloads/", 1747 | "license": [ 1748 | "BSD-3-Clause" 1749 | ], 1750 | "authors": [ 1751 | { 1752 | "name": "Sebastian Bergmann", 1753 | "email": "sebastian@phpunit.de", 1754 | "role": "lead" 1755 | } 1756 | ], 1757 | "description": "Library for parsing CLI options", 1758 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 1759 | "support": { 1760 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 1761 | "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", 1762 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" 1763 | }, 1764 | "funding": [ 1765 | { 1766 | "url": "https://github.com/sebastianbergmann", 1767 | "type": "github" 1768 | } 1769 | ], 1770 | "time": "2024-03-02T07:12:49+00:00" 1771 | }, 1772 | { 1773 | "name": "sebastian/code-unit", 1774 | "version": "2.0.0", 1775 | "source": { 1776 | "type": "git", 1777 | "url": "https://github.com/sebastianbergmann/code-unit.git", 1778 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" 1779 | }, 1780 | "dist": { 1781 | "type": "zip", 1782 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", 1783 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", 1784 | "shasum": "" 1785 | }, 1786 | "require": { 1787 | "php": ">=8.1" 1788 | }, 1789 | "require-dev": { 1790 | "phpunit/phpunit": "^10.0" 1791 | }, 1792 | "type": "library", 1793 | "extra": { 1794 | "branch-alias": { 1795 | "dev-main": "2.0-dev" 1796 | } 1797 | }, 1798 | "autoload": { 1799 | "classmap": [ 1800 | "src/" 1801 | ] 1802 | }, 1803 | "notification-url": "https://packagist.org/downloads/", 1804 | "license": [ 1805 | "BSD-3-Clause" 1806 | ], 1807 | "authors": [ 1808 | { 1809 | "name": "Sebastian Bergmann", 1810 | "email": "sebastian@phpunit.de", 1811 | "role": "lead" 1812 | } 1813 | ], 1814 | "description": "Collection of value objects that represent the PHP code units", 1815 | "homepage": "https://github.com/sebastianbergmann/code-unit", 1816 | "support": { 1817 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 1818 | "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" 1819 | }, 1820 | "funding": [ 1821 | { 1822 | "url": "https://github.com/sebastianbergmann", 1823 | "type": "github" 1824 | } 1825 | ], 1826 | "time": "2023-02-03T06:58:43+00:00" 1827 | }, 1828 | { 1829 | "name": "sebastian/code-unit-reverse-lookup", 1830 | "version": "3.0.0", 1831 | "source": { 1832 | "type": "git", 1833 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 1834 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" 1835 | }, 1836 | "dist": { 1837 | "type": "zip", 1838 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", 1839 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", 1840 | "shasum": "" 1841 | }, 1842 | "require": { 1843 | "php": ">=8.1" 1844 | }, 1845 | "require-dev": { 1846 | "phpunit/phpunit": "^10.0" 1847 | }, 1848 | "type": "library", 1849 | "extra": { 1850 | "branch-alias": { 1851 | "dev-main": "3.0-dev" 1852 | } 1853 | }, 1854 | "autoload": { 1855 | "classmap": [ 1856 | "src/" 1857 | ] 1858 | }, 1859 | "notification-url": "https://packagist.org/downloads/", 1860 | "license": [ 1861 | "BSD-3-Clause" 1862 | ], 1863 | "authors": [ 1864 | { 1865 | "name": "Sebastian Bergmann", 1866 | "email": "sebastian@phpunit.de" 1867 | } 1868 | ], 1869 | "description": "Looks up which function or method a line of code belongs to", 1870 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1871 | "support": { 1872 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 1873 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" 1874 | }, 1875 | "funding": [ 1876 | { 1877 | "url": "https://github.com/sebastianbergmann", 1878 | "type": "github" 1879 | } 1880 | ], 1881 | "time": "2023-02-03T06:59:15+00:00" 1882 | }, 1883 | { 1884 | "name": "sebastian/comparator", 1885 | "version": "5.0.1", 1886 | "source": { 1887 | "type": "git", 1888 | "url": "https://github.com/sebastianbergmann/comparator.git", 1889 | "reference": "2db5010a484d53ebf536087a70b4a5423c102372" 1890 | }, 1891 | "dist": { 1892 | "type": "zip", 1893 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", 1894 | "reference": "2db5010a484d53ebf536087a70b4a5423c102372", 1895 | "shasum": "" 1896 | }, 1897 | "require": { 1898 | "ext-dom": "*", 1899 | "ext-mbstring": "*", 1900 | "php": ">=8.1", 1901 | "sebastian/diff": "^5.0", 1902 | "sebastian/exporter": "^5.0" 1903 | }, 1904 | "require-dev": { 1905 | "phpunit/phpunit": "^10.3" 1906 | }, 1907 | "type": "library", 1908 | "extra": { 1909 | "branch-alias": { 1910 | "dev-main": "5.0-dev" 1911 | } 1912 | }, 1913 | "autoload": { 1914 | "classmap": [ 1915 | "src/" 1916 | ] 1917 | }, 1918 | "notification-url": "https://packagist.org/downloads/", 1919 | "license": [ 1920 | "BSD-3-Clause" 1921 | ], 1922 | "authors": [ 1923 | { 1924 | "name": "Sebastian Bergmann", 1925 | "email": "sebastian@phpunit.de" 1926 | }, 1927 | { 1928 | "name": "Jeff Welch", 1929 | "email": "whatthejeff@gmail.com" 1930 | }, 1931 | { 1932 | "name": "Volker Dusch", 1933 | "email": "github@wallbash.com" 1934 | }, 1935 | { 1936 | "name": "Bernhard Schussek", 1937 | "email": "bschussek@2bepublished.at" 1938 | } 1939 | ], 1940 | "description": "Provides the functionality to compare PHP values for equality", 1941 | "homepage": "https://github.com/sebastianbergmann/comparator", 1942 | "keywords": [ 1943 | "comparator", 1944 | "compare", 1945 | "equality" 1946 | ], 1947 | "support": { 1948 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 1949 | "security": "https://github.com/sebastianbergmann/comparator/security/policy", 1950 | "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" 1951 | }, 1952 | "funding": [ 1953 | { 1954 | "url": "https://github.com/sebastianbergmann", 1955 | "type": "github" 1956 | } 1957 | ], 1958 | "time": "2023-08-14T13:18:12+00:00" 1959 | }, 1960 | { 1961 | "name": "sebastian/complexity", 1962 | "version": "3.2.0", 1963 | "source": { 1964 | "type": "git", 1965 | "url": "https://github.com/sebastianbergmann/complexity.git", 1966 | "reference": "68ff824baeae169ec9f2137158ee529584553799" 1967 | }, 1968 | "dist": { 1969 | "type": "zip", 1970 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", 1971 | "reference": "68ff824baeae169ec9f2137158ee529584553799", 1972 | "shasum": "" 1973 | }, 1974 | "require": { 1975 | "nikic/php-parser": "^4.18 || ^5.0", 1976 | "php": ">=8.1" 1977 | }, 1978 | "require-dev": { 1979 | "phpunit/phpunit": "^10.0" 1980 | }, 1981 | "type": "library", 1982 | "extra": { 1983 | "branch-alias": { 1984 | "dev-main": "3.2-dev" 1985 | } 1986 | }, 1987 | "autoload": { 1988 | "classmap": [ 1989 | "src/" 1990 | ] 1991 | }, 1992 | "notification-url": "https://packagist.org/downloads/", 1993 | "license": [ 1994 | "BSD-3-Clause" 1995 | ], 1996 | "authors": [ 1997 | { 1998 | "name": "Sebastian Bergmann", 1999 | "email": "sebastian@phpunit.de", 2000 | "role": "lead" 2001 | } 2002 | ], 2003 | "description": "Library for calculating the complexity of PHP code units", 2004 | "homepage": "https://github.com/sebastianbergmann/complexity", 2005 | "support": { 2006 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 2007 | "security": "https://github.com/sebastianbergmann/complexity/security/policy", 2008 | "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" 2009 | }, 2010 | "funding": [ 2011 | { 2012 | "url": "https://github.com/sebastianbergmann", 2013 | "type": "github" 2014 | } 2015 | ], 2016 | "time": "2023-12-21T08:37:17+00:00" 2017 | }, 2018 | { 2019 | "name": "sebastian/diff", 2020 | "version": "5.1.1", 2021 | "source": { 2022 | "type": "git", 2023 | "url": "https://github.com/sebastianbergmann/diff.git", 2024 | "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" 2025 | }, 2026 | "dist": { 2027 | "type": "zip", 2028 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", 2029 | "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", 2030 | "shasum": "" 2031 | }, 2032 | "require": { 2033 | "php": ">=8.1" 2034 | }, 2035 | "require-dev": { 2036 | "phpunit/phpunit": "^10.0", 2037 | "symfony/process": "^6.4" 2038 | }, 2039 | "type": "library", 2040 | "extra": { 2041 | "branch-alias": { 2042 | "dev-main": "5.1-dev" 2043 | } 2044 | }, 2045 | "autoload": { 2046 | "classmap": [ 2047 | "src/" 2048 | ] 2049 | }, 2050 | "notification-url": "https://packagist.org/downloads/", 2051 | "license": [ 2052 | "BSD-3-Clause" 2053 | ], 2054 | "authors": [ 2055 | { 2056 | "name": "Sebastian Bergmann", 2057 | "email": "sebastian@phpunit.de" 2058 | }, 2059 | { 2060 | "name": "Kore Nordmann", 2061 | "email": "mail@kore-nordmann.de" 2062 | } 2063 | ], 2064 | "description": "Diff implementation", 2065 | "homepage": "https://github.com/sebastianbergmann/diff", 2066 | "keywords": [ 2067 | "diff", 2068 | "udiff", 2069 | "unidiff", 2070 | "unified diff" 2071 | ], 2072 | "support": { 2073 | "issues": "https://github.com/sebastianbergmann/diff/issues", 2074 | "security": "https://github.com/sebastianbergmann/diff/security/policy", 2075 | "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" 2076 | }, 2077 | "funding": [ 2078 | { 2079 | "url": "https://github.com/sebastianbergmann", 2080 | "type": "github" 2081 | } 2082 | ], 2083 | "time": "2024-03-02T07:15:17+00:00" 2084 | }, 2085 | { 2086 | "name": "sebastian/environment", 2087 | "version": "6.1.0", 2088 | "source": { 2089 | "type": "git", 2090 | "url": "https://github.com/sebastianbergmann/environment.git", 2091 | "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" 2092 | }, 2093 | "dist": { 2094 | "type": "zip", 2095 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", 2096 | "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", 2097 | "shasum": "" 2098 | }, 2099 | "require": { 2100 | "php": ">=8.1" 2101 | }, 2102 | "require-dev": { 2103 | "phpunit/phpunit": "^10.0" 2104 | }, 2105 | "suggest": { 2106 | "ext-posix": "*" 2107 | }, 2108 | "type": "library", 2109 | "extra": { 2110 | "branch-alias": { 2111 | "dev-main": "6.1-dev" 2112 | } 2113 | }, 2114 | "autoload": { 2115 | "classmap": [ 2116 | "src/" 2117 | ] 2118 | }, 2119 | "notification-url": "https://packagist.org/downloads/", 2120 | "license": [ 2121 | "BSD-3-Clause" 2122 | ], 2123 | "authors": [ 2124 | { 2125 | "name": "Sebastian Bergmann", 2126 | "email": "sebastian@phpunit.de" 2127 | } 2128 | ], 2129 | "description": "Provides functionality to handle HHVM/PHP environments", 2130 | "homepage": "https://github.com/sebastianbergmann/environment", 2131 | "keywords": [ 2132 | "Xdebug", 2133 | "environment", 2134 | "hhvm" 2135 | ], 2136 | "support": { 2137 | "issues": "https://github.com/sebastianbergmann/environment/issues", 2138 | "security": "https://github.com/sebastianbergmann/environment/security/policy", 2139 | "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" 2140 | }, 2141 | "funding": [ 2142 | { 2143 | "url": "https://github.com/sebastianbergmann", 2144 | "type": "github" 2145 | } 2146 | ], 2147 | "time": "2024-03-23T08:47:14+00:00" 2148 | }, 2149 | { 2150 | "name": "sebastian/exporter", 2151 | "version": "5.1.2", 2152 | "source": { 2153 | "type": "git", 2154 | "url": "https://github.com/sebastianbergmann/exporter.git", 2155 | "reference": "955288482d97c19a372d3f31006ab3f37da47adf" 2156 | }, 2157 | "dist": { 2158 | "type": "zip", 2159 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", 2160 | "reference": "955288482d97c19a372d3f31006ab3f37da47adf", 2161 | "shasum": "" 2162 | }, 2163 | "require": { 2164 | "ext-mbstring": "*", 2165 | "php": ">=8.1", 2166 | "sebastian/recursion-context": "^5.0" 2167 | }, 2168 | "require-dev": { 2169 | "phpunit/phpunit": "^10.0" 2170 | }, 2171 | "type": "library", 2172 | "extra": { 2173 | "branch-alias": { 2174 | "dev-main": "5.1-dev" 2175 | } 2176 | }, 2177 | "autoload": { 2178 | "classmap": [ 2179 | "src/" 2180 | ] 2181 | }, 2182 | "notification-url": "https://packagist.org/downloads/", 2183 | "license": [ 2184 | "BSD-3-Clause" 2185 | ], 2186 | "authors": [ 2187 | { 2188 | "name": "Sebastian Bergmann", 2189 | "email": "sebastian@phpunit.de" 2190 | }, 2191 | { 2192 | "name": "Jeff Welch", 2193 | "email": "whatthejeff@gmail.com" 2194 | }, 2195 | { 2196 | "name": "Volker Dusch", 2197 | "email": "github@wallbash.com" 2198 | }, 2199 | { 2200 | "name": "Adam Harvey", 2201 | "email": "aharvey@php.net" 2202 | }, 2203 | { 2204 | "name": "Bernhard Schussek", 2205 | "email": "bschussek@gmail.com" 2206 | } 2207 | ], 2208 | "description": "Provides the functionality to export PHP variables for visualization", 2209 | "homepage": "https://www.github.com/sebastianbergmann/exporter", 2210 | "keywords": [ 2211 | "export", 2212 | "exporter" 2213 | ], 2214 | "support": { 2215 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 2216 | "security": "https://github.com/sebastianbergmann/exporter/security/policy", 2217 | "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" 2218 | }, 2219 | "funding": [ 2220 | { 2221 | "url": "https://github.com/sebastianbergmann", 2222 | "type": "github" 2223 | } 2224 | ], 2225 | "time": "2024-03-02T07:17:12+00:00" 2226 | }, 2227 | { 2228 | "name": "sebastian/global-state", 2229 | "version": "6.0.2", 2230 | "source": { 2231 | "type": "git", 2232 | "url": "https://github.com/sebastianbergmann/global-state.git", 2233 | "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" 2234 | }, 2235 | "dist": { 2236 | "type": "zip", 2237 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", 2238 | "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", 2239 | "shasum": "" 2240 | }, 2241 | "require": { 2242 | "php": ">=8.1", 2243 | "sebastian/object-reflector": "^3.0", 2244 | "sebastian/recursion-context": "^5.0" 2245 | }, 2246 | "require-dev": { 2247 | "ext-dom": "*", 2248 | "phpunit/phpunit": "^10.0" 2249 | }, 2250 | "type": "library", 2251 | "extra": { 2252 | "branch-alias": { 2253 | "dev-main": "6.0-dev" 2254 | } 2255 | }, 2256 | "autoload": { 2257 | "classmap": [ 2258 | "src/" 2259 | ] 2260 | }, 2261 | "notification-url": "https://packagist.org/downloads/", 2262 | "license": [ 2263 | "BSD-3-Clause" 2264 | ], 2265 | "authors": [ 2266 | { 2267 | "name": "Sebastian Bergmann", 2268 | "email": "sebastian@phpunit.de" 2269 | } 2270 | ], 2271 | "description": "Snapshotting of global state", 2272 | "homepage": "https://www.github.com/sebastianbergmann/global-state", 2273 | "keywords": [ 2274 | "global state" 2275 | ], 2276 | "support": { 2277 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 2278 | "security": "https://github.com/sebastianbergmann/global-state/security/policy", 2279 | "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" 2280 | }, 2281 | "funding": [ 2282 | { 2283 | "url": "https://github.com/sebastianbergmann", 2284 | "type": "github" 2285 | } 2286 | ], 2287 | "time": "2024-03-02T07:19:19+00:00" 2288 | }, 2289 | { 2290 | "name": "sebastian/lines-of-code", 2291 | "version": "2.0.2", 2292 | "source": { 2293 | "type": "git", 2294 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 2295 | "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" 2296 | }, 2297 | "dist": { 2298 | "type": "zip", 2299 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", 2300 | "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", 2301 | "shasum": "" 2302 | }, 2303 | "require": { 2304 | "nikic/php-parser": "^4.18 || ^5.0", 2305 | "php": ">=8.1" 2306 | }, 2307 | "require-dev": { 2308 | "phpunit/phpunit": "^10.0" 2309 | }, 2310 | "type": "library", 2311 | "extra": { 2312 | "branch-alias": { 2313 | "dev-main": "2.0-dev" 2314 | } 2315 | }, 2316 | "autoload": { 2317 | "classmap": [ 2318 | "src/" 2319 | ] 2320 | }, 2321 | "notification-url": "https://packagist.org/downloads/", 2322 | "license": [ 2323 | "BSD-3-Clause" 2324 | ], 2325 | "authors": [ 2326 | { 2327 | "name": "Sebastian Bergmann", 2328 | "email": "sebastian@phpunit.de", 2329 | "role": "lead" 2330 | } 2331 | ], 2332 | "description": "Library for counting the lines of code in PHP source code", 2333 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 2334 | "support": { 2335 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 2336 | "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", 2337 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" 2338 | }, 2339 | "funding": [ 2340 | { 2341 | "url": "https://github.com/sebastianbergmann", 2342 | "type": "github" 2343 | } 2344 | ], 2345 | "time": "2023-12-21T08:38:20+00:00" 2346 | }, 2347 | { 2348 | "name": "sebastian/object-enumerator", 2349 | "version": "5.0.0", 2350 | "source": { 2351 | "type": "git", 2352 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2353 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" 2354 | }, 2355 | "dist": { 2356 | "type": "zip", 2357 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", 2358 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", 2359 | "shasum": "" 2360 | }, 2361 | "require": { 2362 | "php": ">=8.1", 2363 | "sebastian/object-reflector": "^3.0", 2364 | "sebastian/recursion-context": "^5.0" 2365 | }, 2366 | "require-dev": { 2367 | "phpunit/phpunit": "^10.0" 2368 | }, 2369 | "type": "library", 2370 | "extra": { 2371 | "branch-alias": { 2372 | "dev-main": "5.0-dev" 2373 | } 2374 | }, 2375 | "autoload": { 2376 | "classmap": [ 2377 | "src/" 2378 | ] 2379 | }, 2380 | "notification-url": "https://packagist.org/downloads/", 2381 | "license": [ 2382 | "BSD-3-Clause" 2383 | ], 2384 | "authors": [ 2385 | { 2386 | "name": "Sebastian Bergmann", 2387 | "email": "sebastian@phpunit.de" 2388 | } 2389 | ], 2390 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2391 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2392 | "support": { 2393 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 2394 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" 2395 | }, 2396 | "funding": [ 2397 | { 2398 | "url": "https://github.com/sebastianbergmann", 2399 | "type": "github" 2400 | } 2401 | ], 2402 | "time": "2023-02-03T07:08:32+00:00" 2403 | }, 2404 | { 2405 | "name": "sebastian/object-reflector", 2406 | "version": "3.0.0", 2407 | "source": { 2408 | "type": "git", 2409 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2410 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" 2411 | }, 2412 | "dist": { 2413 | "type": "zip", 2414 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", 2415 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", 2416 | "shasum": "" 2417 | }, 2418 | "require": { 2419 | "php": ">=8.1" 2420 | }, 2421 | "require-dev": { 2422 | "phpunit/phpunit": "^10.0" 2423 | }, 2424 | "type": "library", 2425 | "extra": { 2426 | "branch-alias": { 2427 | "dev-main": "3.0-dev" 2428 | } 2429 | }, 2430 | "autoload": { 2431 | "classmap": [ 2432 | "src/" 2433 | ] 2434 | }, 2435 | "notification-url": "https://packagist.org/downloads/", 2436 | "license": [ 2437 | "BSD-3-Clause" 2438 | ], 2439 | "authors": [ 2440 | { 2441 | "name": "Sebastian Bergmann", 2442 | "email": "sebastian@phpunit.de" 2443 | } 2444 | ], 2445 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2446 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2447 | "support": { 2448 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 2449 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" 2450 | }, 2451 | "funding": [ 2452 | { 2453 | "url": "https://github.com/sebastianbergmann", 2454 | "type": "github" 2455 | } 2456 | ], 2457 | "time": "2023-02-03T07:06:18+00:00" 2458 | }, 2459 | { 2460 | "name": "sebastian/recursion-context", 2461 | "version": "5.0.0", 2462 | "source": { 2463 | "type": "git", 2464 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2465 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712" 2466 | }, 2467 | "dist": { 2468 | "type": "zip", 2469 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", 2470 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712", 2471 | "shasum": "" 2472 | }, 2473 | "require": { 2474 | "php": ">=8.1" 2475 | }, 2476 | "require-dev": { 2477 | "phpunit/phpunit": "^10.0" 2478 | }, 2479 | "type": "library", 2480 | "extra": { 2481 | "branch-alias": { 2482 | "dev-main": "5.0-dev" 2483 | } 2484 | }, 2485 | "autoload": { 2486 | "classmap": [ 2487 | "src/" 2488 | ] 2489 | }, 2490 | "notification-url": "https://packagist.org/downloads/", 2491 | "license": [ 2492 | "BSD-3-Clause" 2493 | ], 2494 | "authors": [ 2495 | { 2496 | "name": "Sebastian Bergmann", 2497 | "email": "sebastian@phpunit.de" 2498 | }, 2499 | { 2500 | "name": "Jeff Welch", 2501 | "email": "whatthejeff@gmail.com" 2502 | }, 2503 | { 2504 | "name": "Adam Harvey", 2505 | "email": "aharvey@php.net" 2506 | } 2507 | ], 2508 | "description": "Provides functionality to recursively process PHP variables", 2509 | "homepage": "https://github.com/sebastianbergmann/recursion-context", 2510 | "support": { 2511 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 2512 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" 2513 | }, 2514 | "funding": [ 2515 | { 2516 | "url": "https://github.com/sebastianbergmann", 2517 | "type": "github" 2518 | } 2519 | ], 2520 | "time": "2023-02-03T07:05:40+00:00" 2521 | }, 2522 | { 2523 | "name": "sebastian/type", 2524 | "version": "4.0.0", 2525 | "source": { 2526 | "type": "git", 2527 | "url": "https://github.com/sebastianbergmann/type.git", 2528 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" 2529 | }, 2530 | "dist": { 2531 | "type": "zip", 2532 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", 2533 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", 2534 | "shasum": "" 2535 | }, 2536 | "require": { 2537 | "php": ">=8.1" 2538 | }, 2539 | "require-dev": { 2540 | "phpunit/phpunit": "^10.0" 2541 | }, 2542 | "type": "library", 2543 | "extra": { 2544 | "branch-alias": { 2545 | "dev-main": "4.0-dev" 2546 | } 2547 | }, 2548 | "autoload": { 2549 | "classmap": [ 2550 | "src/" 2551 | ] 2552 | }, 2553 | "notification-url": "https://packagist.org/downloads/", 2554 | "license": [ 2555 | "BSD-3-Clause" 2556 | ], 2557 | "authors": [ 2558 | { 2559 | "name": "Sebastian Bergmann", 2560 | "email": "sebastian@phpunit.de", 2561 | "role": "lead" 2562 | } 2563 | ], 2564 | "description": "Collection of value objects that represent the types of the PHP type system", 2565 | "homepage": "https://github.com/sebastianbergmann/type", 2566 | "support": { 2567 | "issues": "https://github.com/sebastianbergmann/type/issues", 2568 | "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" 2569 | }, 2570 | "funding": [ 2571 | { 2572 | "url": "https://github.com/sebastianbergmann", 2573 | "type": "github" 2574 | } 2575 | ], 2576 | "time": "2023-02-03T07:10:45+00:00" 2577 | }, 2578 | { 2579 | "name": "sebastian/version", 2580 | "version": "4.0.1", 2581 | "source": { 2582 | "type": "git", 2583 | "url": "https://github.com/sebastianbergmann/version.git", 2584 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" 2585 | }, 2586 | "dist": { 2587 | "type": "zip", 2588 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", 2589 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", 2590 | "shasum": "" 2591 | }, 2592 | "require": { 2593 | "php": ">=8.1" 2594 | }, 2595 | "type": "library", 2596 | "extra": { 2597 | "branch-alias": { 2598 | "dev-main": "4.0-dev" 2599 | } 2600 | }, 2601 | "autoload": { 2602 | "classmap": [ 2603 | "src/" 2604 | ] 2605 | }, 2606 | "notification-url": "https://packagist.org/downloads/", 2607 | "license": [ 2608 | "BSD-3-Clause" 2609 | ], 2610 | "authors": [ 2611 | { 2612 | "name": "Sebastian Bergmann", 2613 | "email": "sebastian@phpunit.de", 2614 | "role": "lead" 2615 | } 2616 | ], 2617 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2618 | "homepage": "https://github.com/sebastianbergmann/version", 2619 | "support": { 2620 | "issues": "https://github.com/sebastianbergmann/version/issues", 2621 | "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" 2622 | }, 2623 | "funding": [ 2624 | { 2625 | "url": "https://github.com/sebastianbergmann", 2626 | "type": "github" 2627 | } 2628 | ], 2629 | "time": "2023-02-07T11:34:05+00:00" 2630 | }, 2631 | { 2632 | "name": "spatie/array-to-xml", 2633 | "version": "3.3.0", 2634 | "source": { 2635 | "type": "git", 2636 | "url": "https://github.com/spatie/array-to-xml.git", 2637 | "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876" 2638 | }, 2639 | "dist": { 2640 | "type": "zip", 2641 | "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876", 2642 | "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876", 2643 | "shasum": "" 2644 | }, 2645 | "require": { 2646 | "ext-dom": "*", 2647 | "php": "^8.0" 2648 | }, 2649 | "require-dev": { 2650 | "mockery/mockery": "^1.2", 2651 | "pestphp/pest": "^1.21", 2652 | "spatie/pest-plugin-snapshots": "^1.1" 2653 | }, 2654 | "type": "library", 2655 | "extra": { 2656 | "branch-alias": { 2657 | "dev-main": "3.x-dev" 2658 | } 2659 | }, 2660 | "autoload": { 2661 | "psr-4": { 2662 | "Spatie\\ArrayToXml\\": "src" 2663 | } 2664 | }, 2665 | "notification-url": "https://packagist.org/downloads/", 2666 | "license": [ 2667 | "MIT" 2668 | ], 2669 | "authors": [ 2670 | { 2671 | "name": "Freek Van der Herten", 2672 | "email": "freek@spatie.be", 2673 | "homepage": "https://freek.dev", 2674 | "role": "Developer" 2675 | } 2676 | ], 2677 | "description": "Convert an array to xml", 2678 | "homepage": "https://github.com/spatie/array-to-xml", 2679 | "keywords": [ 2680 | "array", 2681 | "convert", 2682 | "xml" 2683 | ], 2684 | "support": { 2685 | "source": "https://github.com/spatie/array-to-xml/tree/3.3.0" 2686 | }, 2687 | "funding": [ 2688 | { 2689 | "url": "https://spatie.be/open-source/support-us", 2690 | "type": "custom" 2691 | }, 2692 | { 2693 | "url": "https://github.com/spatie", 2694 | "type": "github" 2695 | } 2696 | ], 2697 | "time": "2024-05-01T10:20:27+00:00" 2698 | }, 2699 | { 2700 | "name": "symfony/console", 2701 | "version": "v7.0.7", 2702 | "source": { 2703 | "type": "git", 2704 | "url": "https://github.com/symfony/console.git", 2705 | "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" 2706 | }, 2707 | "dist": { 2708 | "type": "zip", 2709 | "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", 2710 | "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", 2711 | "shasum": "" 2712 | }, 2713 | "require": { 2714 | "php": ">=8.2", 2715 | "symfony/polyfill-mbstring": "~1.0", 2716 | "symfony/service-contracts": "^2.5|^3", 2717 | "symfony/string": "^6.4|^7.0" 2718 | }, 2719 | "conflict": { 2720 | "symfony/dependency-injection": "<6.4", 2721 | "symfony/dotenv": "<6.4", 2722 | "symfony/event-dispatcher": "<6.4", 2723 | "symfony/lock": "<6.4", 2724 | "symfony/process": "<6.4" 2725 | }, 2726 | "provide": { 2727 | "psr/log-implementation": "1.0|2.0|3.0" 2728 | }, 2729 | "require-dev": { 2730 | "psr/log": "^1|^2|^3", 2731 | "symfony/config": "^6.4|^7.0", 2732 | "symfony/dependency-injection": "^6.4|^7.0", 2733 | "symfony/event-dispatcher": "^6.4|^7.0", 2734 | "symfony/http-foundation": "^6.4|^7.0", 2735 | "symfony/http-kernel": "^6.4|^7.0", 2736 | "symfony/lock": "^6.4|^7.0", 2737 | "symfony/messenger": "^6.4|^7.0", 2738 | "symfony/process": "^6.4|^7.0", 2739 | "symfony/stopwatch": "^6.4|^7.0", 2740 | "symfony/var-dumper": "^6.4|^7.0" 2741 | }, 2742 | "type": "library", 2743 | "autoload": { 2744 | "psr-4": { 2745 | "Symfony\\Component\\Console\\": "" 2746 | }, 2747 | "exclude-from-classmap": [ 2748 | "/Tests/" 2749 | ] 2750 | }, 2751 | "notification-url": "https://packagist.org/downloads/", 2752 | "license": [ 2753 | "MIT" 2754 | ], 2755 | "authors": [ 2756 | { 2757 | "name": "Fabien Potencier", 2758 | "email": "fabien@symfony.com" 2759 | }, 2760 | { 2761 | "name": "Symfony Community", 2762 | "homepage": "https://symfony.com/contributors" 2763 | } 2764 | ], 2765 | "description": "Eases the creation of beautiful and testable command line interfaces", 2766 | "homepage": "https://symfony.com", 2767 | "keywords": [ 2768 | "cli", 2769 | "command-line", 2770 | "console", 2771 | "terminal" 2772 | ], 2773 | "support": { 2774 | "source": "https://github.com/symfony/console/tree/v7.0.7" 2775 | }, 2776 | "funding": [ 2777 | { 2778 | "url": "https://symfony.com/sponsor", 2779 | "type": "custom" 2780 | }, 2781 | { 2782 | "url": "https://github.com/fabpot", 2783 | "type": "github" 2784 | }, 2785 | { 2786 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2787 | "type": "tidelift" 2788 | } 2789 | ], 2790 | "time": "2024-04-18T09:29:19+00:00" 2791 | }, 2792 | { 2793 | "name": "symfony/deprecation-contracts", 2794 | "version": "v3.5.0", 2795 | "source": { 2796 | "type": "git", 2797 | "url": "https://github.com/symfony/deprecation-contracts.git", 2798 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" 2799 | }, 2800 | "dist": { 2801 | "type": "zip", 2802 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", 2803 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", 2804 | "shasum": "" 2805 | }, 2806 | "require": { 2807 | "php": ">=8.1" 2808 | }, 2809 | "type": "library", 2810 | "extra": { 2811 | "branch-alias": { 2812 | "dev-main": "3.5-dev" 2813 | }, 2814 | "thanks": { 2815 | "name": "symfony/contracts", 2816 | "url": "https://github.com/symfony/contracts" 2817 | } 2818 | }, 2819 | "autoload": { 2820 | "files": [ 2821 | "function.php" 2822 | ] 2823 | }, 2824 | "notification-url": "https://packagist.org/downloads/", 2825 | "license": [ 2826 | "MIT" 2827 | ], 2828 | "authors": [ 2829 | { 2830 | "name": "Nicolas Grekas", 2831 | "email": "p@tchwork.com" 2832 | }, 2833 | { 2834 | "name": "Symfony Community", 2835 | "homepage": "https://symfony.com/contributors" 2836 | } 2837 | ], 2838 | "description": "A generic function and convention to trigger deprecation notices", 2839 | "homepage": "https://symfony.com", 2840 | "support": { 2841 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" 2842 | }, 2843 | "funding": [ 2844 | { 2845 | "url": "https://symfony.com/sponsor", 2846 | "type": "custom" 2847 | }, 2848 | { 2849 | "url": "https://github.com/fabpot", 2850 | "type": "github" 2851 | }, 2852 | { 2853 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2854 | "type": "tidelift" 2855 | } 2856 | ], 2857 | "time": "2024-04-18T09:32:20+00:00" 2858 | }, 2859 | { 2860 | "name": "symfony/filesystem", 2861 | "version": "v7.0.7", 2862 | "source": { 2863 | "type": "git", 2864 | "url": "https://github.com/symfony/filesystem.git", 2865 | "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5" 2866 | }, 2867 | "dist": { 2868 | "type": "zip", 2869 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5", 2870 | "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5", 2871 | "shasum": "" 2872 | }, 2873 | "require": { 2874 | "php": ">=8.2", 2875 | "symfony/polyfill-ctype": "~1.8", 2876 | "symfony/polyfill-mbstring": "~1.8", 2877 | "symfony/process": "^6.4|^7.0" 2878 | }, 2879 | "type": "library", 2880 | "autoload": { 2881 | "psr-4": { 2882 | "Symfony\\Component\\Filesystem\\": "" 2883 | }, 2884 | "exclude-from-classmap": [ 2885 | "/Tests/" 2886 | ] 2887 | }, 2888 | "notification-url": "https://packagist.org/downloads/", 2889 | "license": [ 2890 | "MIT" 2891 | ], 2892 | "authors": [ 2893 | { 2894 | "name": "Fabien Potencier", 2895 | "email": "fabien@symfony.com" 2896 | }, 2897 | { 2898 | "name": "Symfony Community", 2899 | "homepage": "https://symfony.com/contributors" 2900 | } 2901 | ], 2902 | "description": "Provides basic utilities for the filesystem", 2903 | "homepage": "https://symfony.com", 2904 | "support": { 2905 | "source": "https://github.com/symfony/filesystem/tree/v7.0.7" 2906 | }, 2907 | "funding": [ 2908 | { 2909 | "url": "https://symfony.com/sponsor", 2910 | "type": "custom" 2911 | }, 2912 | { 2913 | "url": "https://github.com/fabpot", 2914 | "type": "github" 2915 | }, 2916 | { 2917 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2918 | "type": "tidelift" 2919 | } 2920 | ], 2921 | "time": "2024-04-18T09:29:19+00:00" 2922 | }, 2923 | { 2924 | "name": "symfony/polyfill-ctype", 2925 | "version": "v1.29.0", 2926 | "source": { 2927 | "type": "git", 2928 | "url": "https://github.com/symfony/polyfill-ctype.git", 2929 | "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" 2930 | }, 2931 | "dist": { 2932 | "type": "zip", 2933 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", 2934 | "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", 2935 | "shasum": "" 2936 | }, 2937 | "require": { 2938 | "php": ">=7.1" 2939 | }, 2940 | "provide": { 2941 | "ext-ctype": "*" 2942 | }, 2943 | "suggest": { 2944 | "ext-ctype": "For best performance" 2945 | }, 2946 | "type": "library", 2947 | "extra": { 2948 | "thanks": { 2949 | "name": "symfony/polyfill", 2950 | "url": "https://github.com/symfony/polyfill" 2951 | } 2952 | }, 2953 | "autoload": { 2954 | "files": [ 2955 | "bootstrap.php" 2956 | ], 2957 | "psr-4": { 2958 | "Symfony\\Polyfill\\Ctype\\": "" 2959 | } 2960 | }, 2961 | "notification-url": "https://packagist.org/downloads/", 2962 | "license": [ 2963 | "MIT" 2964 | ], 2965 | "authors": [ 2966 | { 2967 | "name": "Gert de Pagter", 2968 | "email": "BackEndTea@gmail.com" 2969 | }, 2970 | { 2971 | "name": "Symfony Community", 2972 | "homepage": "https://symfony.com/contributors" 2973 | } 2974 | ], 2975 | "description": "Symfony polyfill for ctype functions", 2976 | "homepage": "https://symfony.com", 2977 | "keywords": [ 2978 | "compatibility", 2979 | "ctype", 2980 | "polyfill", 2981 | "portable" 2982 | ], 2983 | "support": { 2984 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" 2985 | }, 2986 | "funding": [ 2987 | { 2988 | "url": "https://symfony.com/sponsor", 2989 | "type": "custom" 2990 | }, 2991 | { 2992 | "url": "https://github.com/fabpot", 2993 | "type": "github" 2994 | }, 2995 | { 2996 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2997 | "type": "tidelift" 2998 | } 2999 | ], 3000 | "time": "2024-01-29T20:11:03+00:00" 3001 | }, 3002 | { 3003 | "name": "symfony/polyfill-intl-grapheme", 3004 | "version": "v1.29.0", 3005 | "source": { 3006 | "type": "git", 3007 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 3008 | "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" 3009 | }, 3010 | "dist": { 3011 | "type": "zip", 3012 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", 3013 | "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", 3014 | "shasum": "" 3015 | }, 3016 | "require": { 3017 | "php": ">=7.1" 3018 | }, 3019 | "suggest": { 3020 | "ext-intl": "For best performance" 3021 | }, 3022 | "type": "library", 3023 | "extra": { 3024 | "thanks": { 3025 | "name": "symfony/polyfill", 3026 | "url": "https://github.com/symfony/polyfill" 3027 | } 3028 | }, 3029 | "autoload": { 3030 | "files": [ 3031 | "bootstrap.php" 3032 | ], 3033 | "psr-4": { 3034 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 3035 | } 3036 | }, 3037 | "notification-url": "https://packagist.org/downloads/", 3038 | "license": [ 3039 | "MIT" 3040 | ], 3041 | "authors": [ 3042 | { 3043 | "name": "Nicolas Grekas", 3044 | "email": "p@tchwork.com" 3045 | }, 3046 | { 3047 | "name": "Symfony Community", 3048 | "homepage": "https://symfony.com/contributors" 3049 | } 3050 | ], 3051 | "description": "Symfony polyfill for intl's grapheme_* functions", 3052 | "homepage": "https://symfony.com", 3053 | "keywords": [ 3054 | "compatibility", 3055 | "grapheme", 3056 | "intl", 3057 | "polyfill", 3058 | "portable", 3059 | "shim" 3060 | ], 3061 | "support": { 3062 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" 3063 | }, 3064 | "funding": [ 3065 | { 3066 | "url": "https://symfony.com/sponsor", 3067 | "type": "custom" 3068 | }, 3069 | { 3070 | "url": "https://github.com/fabpot", 3071 | "type": "github" 3072 | }, 3073 | { 3074 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3075 | "type": "tidelift" 3076 | } 3077 | ], 3078 | "time": "2024-01-29T20:11:03+00:00" 3079 | }, 3080 | { 3081 | "name": "symfony/polyfill-intl-normalizer", 3082 | "version": "v1.29.0", 3083 | "source": { 3084 | "type": "git", 3085 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 3086 | "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" 3087 | }, 3088 | "dist": { 3089 | "type": "zip", 3090 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", 3091 | "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", 3092 | "shasum": "" 3093 | }, 3094 | "require": { 3095 | "php": ">=7.1" 3096 | }, 3097 | "suggest": { 3098 | "ext-intl": "For best performance" 3099 | }, 3100 | "type": "library", 3101 | "extra": { 3102 | "thanks": { 3103 | "name": "symfony/polyfill", 3104 | "url": "https://github.com/symfony/polyfill" 3105 | } 3106 | }, 3107 | "autoload": { 3108 | "files": [ 3109 | "bootstrap.php" 3110 | ], 3111 | "psr-4": { 3112 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 3113 | }, 3114 | "classmap": [ 3115 | "Resources/stubs" 3116 | ] 3117 | }, 3118 | "notification-url": "https://packagist.org/downloads/", 3119 | "license": [ 3120 | "MIT" 3121 | ], 3122 | "authors": [ 3123 | { 3124 | "name": "Nicolas Grekas", 3125 | "email": "p@tchwork.com" 3126 | }, 3127 | { 3128 | "name": "Symfony Community", 3129 | "homepage": "https://symfony.com/contributors" 3130 | } 3131 | ], 3132 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 3133 | "homepage": "https://symfony.com", 3134 | "keywords": [ 3135 | "compatibility", 3136 | "intl", 3137 | "normalizer", 3138 | "polyfill", 3139 | "portable", 3140 | "shim" 3141 | ], 3142 | "support": { 3143 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" 3144 | }, 3145 | "funding": [ 3146 | { 3147 | "url": "https://symfony.com/sponsor", 3148 | "type": "custom" 3149 | }, 3150 | { 3151 | "url": "https://github.com/fabpot", 3152 | "type": "github" 3153 | }, 3154 | { 3155 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3156 | "type": "tidelift" 3157 | } 3158 | ], 3159 | "time": "2024-01-29T20:11:03+00:00" 3160 | }, 3161 | { 3162 | "name": "symfony/polyfill-mbstring", 3163 | "version": "v1.29.0", 3164 | "source": { 3165 | "type": "git", 3166 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3167 | "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" 3168 | }, 3169 | "dist": { 3170 | "type": "zip", 3171 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", 3172 | "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", 3173 | "shasum": "" 3174 | }, 3175 | "require": { 3176 | "php": ">=7.1" 3177 | }, 3178 | "provide": { 3179 | "ext-mbstring": "*" 3180 | }, 3181 | "suggest": { 3182 | "ext-mbstring": "For best performance" 3183 | }, 3184 | "type": "library", 3185 | "extra": { 3186 | "thanks": { 3187 | "name": "symfony/polyfill", 3188 | "url": "https://github.com/symfony/polyfill" 3189 | } 3190 | }, 3191 | "autoload": { 3192 | "files": [ 3193 | "bootstrap.php" 3194 | ], 3195 | "psr-4": { 3196 | "Symfony\\Polyfill\\Mbstring\\": "" 3197 | } 3198 | }, 3199 | "notification-url": "https://packagist.org/downloads/", 3200 | "license": [ 3201 | "MIT" 3202 | ], 3203 | "authors": [ 3204 | { 3205 | "name": "Nicolas Grekas", 3206 | "email": "p@tchwork.com" 3207 | }, 3208 | { 3209 | "name": "Symfony Community", 3210 | "homepage": "https://symfony.com/contributors" 3211 | } 3212 | ], 3213 | "description": "Symfony polyfill for the Mbstring extension", 3214 | "homepage": "https://symfony.com", 3215 | "keywords": [ 3216 | "compatibility", 3217 | "mbstring", 3218 | "polyfill", 3219 | "portable", 3220 | "shim" 3221 | ], 3222 | "support": { 3223 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" 3224 | }, 3225 | "funding": [ 3226 | { 3227 | "url": "https://symfony.com/sponsor", 3228 | "type": "custom" 3229 | }, 3230 | { 3231 | "url": "https://github.com/fabpot", 3232 | "type": "github" 3233 | }, 3234 | { 3235 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3236 | "type": "tidelift" 3237 | } 3238 | ], 3239 | "time": "2024-01-29T20:11:03+00:00" 3240 | }, 3241 | { 3242 | "name": "symfony/process", 3243 | "version": "v7.0.7", 3244 | "source": { 3245 | "type": "git", 3246 | "url": "https://github.com/symfony/process.git", 3247 | "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" 3248 | }, 3249 | "dist": { 3250 | "type": "zip", 3251 | "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", 3252 | "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", 3253 | "shasum": "" 3254 | }, 3255 | "require": { 3256 | "php": ">=8.2" 3257 | }, 3258 | "type": "library", 3259 | "autoload": { 3260 | "psr-4": { 3261 | "Symfony\\Component\\Process\\": "" 3262 | }, 3263 | "exclude-from-classmap": [ 3264 | "/Tests/" 3265 | ] 3266 | }, 3267 | "notification-url": "https://packagist.org/downloads/", 3268 | "license": [ 3269 | "MIT" 3270 | ], 3271 | "authors": [ 3272 | { 3273 | "name": "Fabien Potencier", 3274 | "email": "fabien@symfony.com" 3275 | }, 3276 | { 3277 | "name": "Symfony Community", 3278 | "homepage": "https://symfony.com/contributors" 3279 | } 3280 | ], 3281 | "description": "Executes commands in sub-processes", 3282 | "homepage": "https://symfony.com", 3283 | "support": { 3284 | "source": "https://github.com/symfony/process/tree/v7.0.7" 3285 | }, 3286 | "funding": [ 3287 | { 3288 | "url": "https://symfony.com/sponsor", 3289 | "type": "custom" 3290 | }, 3291 | { 3292 | "url": "https://github.com/fabpot", 3293 | "type": "github" 3294 | }, 3295 | { 3296 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3297 | "type": "tidelift" 3298 | } 3299 | ], 3300 | "time": "2024-04-18T09:29:19+00:00" 3301 | }, 3302 | { 3303 | "name": "symfony/service-contracts", 3304 | "version": "v3.5.0", 3305 | "source": { 3306 | "type": "git", 3307 | "url": "https://github.com/symfony/service-contracts.git", 3308 | "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" 3309 | }, 3310 | "dist": { 3311 | "type": "zip", 3312 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", 3313 | "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", 3314 | "shasum": "" 3315 | }, 3316 | "require": { 3317 | "php": ">=8.1", 3318 | "psr/container": "^1.1|^2.0", 3319 | "symfony/deprecation-contracts": "^2.5|^3" 3320 | }, 3321 | "conflict": { 3322 | "ext-psr": "<1.1|>=2" 3323 | }, 3324 | "type": "library", 3325 | "extra": { 3326 | "branch-alias": { 3327 | "dev-main": "3.5-dev" 3328 | }, 3329 | "thanks": { 3330 | "name": "symfony/contracts", 3331 | "url": "https://github.com/symfony/contracts" 3332 | } 3333 | }, 3334 | "autoload": { 3335 | "psr-4": { 3336 | "Symfony\\Contracts\\Service\\": "" 3337 | }, 3338 | "exclude-from-classmap": [ 3339 | "/Test/" 3340 | ] 3341 | }, 3342 | "notification-url": "https://packagist.org/downloads/", 3343 | "license": [ 3344 | "MIT" 3345 | ], 3346 | "authors": [ 3347 | { 3348 | "name": "Nicolas Grekas", 3349 | "email": "p@tchwork.com" 3350 | }, 3351 | { 3352 | "name": "Symfony Community", 3353 | "homepage": "https://symfony.com/contributors" 3354 | } 3355 | ], 3356 | "description": "Generic abstractions related to writing services", 3357 | "homepage": "https://symfony.com", 3358 | "keywords": [ 3359 | "abstractions", 3360 | "contracts", 3361 | "decoupling", 3362 | "interfaces", 3363 | "interoperability", 3364 | "standards" 3365 | ], 3366 | "support": { 3367 | "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" 3368 | }, 3369 | "funding": [ 3370 | { 3371 | "url": "https://symfony.com/sponsor", 3372 | "type": "custom" 3373 | }, 3374 | { 3375 | "url": "https://github.com/fabpot", 3376 | "type": "github" 3377 | }, 3378 | { 3379 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3380 | "type": "tidelift" 3381 | } 3382 | ], 3383 | "time": "2024-04-18T09:32:20+00:00" 3384 | }, 3385 | { 3386 | "name": "symfony/string", 3387 | "version": "v7.0.7", 3388 | "source": { 3389 | "type": "git", 3390 | "url": "https://github.com/symfony/string.git", 3391 | "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" 3392 | }, 3393 | "dist": { 3394 | "type": "zip", 3395 | "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", 3396 | "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", 3397 | "shasum": "" 3398 | }, 3399 | "require": { 3400 | "php": ">=8.2", 3401 | "symfony/polyfill-ctype": "~1.8", 3402 | "symfony/polyfill-intl-grapheme": "~1.0", 3403 | "symfony/polyfill-intl-normalizer": "~1.0", 3404 | "symfony/polyfill-mbstring": "~1.0" 3405 | }, 3406 | "conflict": { 3407 | "symfony/translation-contracts": "<2.5" 3408 | }, 3409 | "require-dev": { 3410 | "symfony/error-handler": "^6.4|^7.0", 3411 | "symfony/http-client": "^6.4|^7.0", 3412 | "symfony/intl": "^6.4|^7.0", 3413 | "symfony/translation-contracts": "^2.5|^3.0", 3414 | "symfony/var-exporter": "^6.4|^7.0" 3415 | }, 3416 | "type": "library", 3417 | "autoload": { 3418 | "files": [ 3419 | "Resources/functions.php" 3420 | ], 3421 | "psr-4": { 3422 | "Symfony\\Component\\String\\": "" 3423 | }, 3424 | "exclude-from-classmap": [ 3425 | "/Tests/" 3426 | ] 3427 | }, 3428 | "notification-url": "https://packagist.org/downloads/", 3429 | "license": [ 3430 | "MIT" 3431 | ], 3432 | "authors": [ 3433 | { 3434 | "name": "Nicolas Grekas", 3435 | "email": "p@tchwork.com" 3436 | }, 3437 | { 3438 | "name": "Symfony Community", 3439 | "homepage": "https://symfony.com/contributors" 3440 | } 3441 | ], 3442 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", 3443 | "homepage": "https://symfony.com", 3444 | "keywords": [ 3445 | "grapheme", 3446 | "i18n", 3447 | "string", 3448 | "unicode", 3449 | "utf-8", 3450 | "utf8" 3451 | ], 3452 | "support": { 3453 | "source": "https://github.com/symfony/string/tree/v7.0.7" 3454 | }, 3455 | "funding": [ 3456 | { 3457 | "url": "https://symfony.com/sponsor", 3458 | "type": "custom" 3459 | }, 3460 | { 3461 | "url": "https://github.com/fabpot", 3462 | "type": "github" 3463 | }, 3464 | { 3465 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3466 | "type": "tidelift" 3467 | } 3468 | ], 3469 | "time": "2024-04-18T09:29:19+00:00" 3470 | }, 3471 | { 3472 | "name": "symplify/easy-coding-standard", 3473 | "version": "12.1.14", 3474 | "source": { 3475 | "type": "git", 3476 | "url": "https://github.com/easy-coding-standard/easy-coding-standard.git", 3477 | "reference": "e3c4a241ee36704f7cf920d5931f39693e64afd5" 3478 | }, 3479 | "dist": { 3480 | "type": "zip", 3481 | "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/e3c4a241ee36704f7cf920d5931f39693e64afd5", 3482 | "reference": "e3c4a241ee36704f7cf920d5931f39693e64afd5", 3483 | "shasum": "" 3484 | }, 3485 | "require": { 3486 | "php": ">=7.2" 3487 | }, 3488 | "conflict": { 3489 | "friendsofphp/php-cs-fixer": "<3.46", 3490 | "phpcsstandards/php_codesniffer": "<3.8", 3491 | "symplify/coding-standard": "<12.1" 3492 | }, 3493 | "bin": [ 3494 | "bin/ecs" 3495 | ], 3496 | "type": "library", 3497 | "autoload": { 3498 | "files": [ 3499 | "bootstrap.php" 3500 | ] 3501 | }, 3502 | "notification-url": "https://packagist.org/downloads/", 3503 | "license": [ 3504 | "MIT" 3505 | ], 3506 | "description": "Use Coding Standard with 0-knowledge of PHP-CS-Fixer and PHP_CodeSniffer", 3507 | "keywords": [ 3508 | "Code style", 3509 | "automation", 3510 | "fixer", 3511 | "static analysis" 3512 | ], 3513 | "support": { 3514 | "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues", 3515 | "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.1.14" 3516 | }, 3517 | "funding": [ 3518 | { 3519 | "url": "https://www.paypal.me/rectorphp", 3520 | "type": "custom" 3521 | }, 3522 | { 3523 | "url": "https://github.com/tomasvotruba", 3524 | "type": "github" 3525 | } 3526 | ], 3527 | "time": "2024-02-23T13:10:40+00:00" 3528 | }, 3529 | { 3530 | "name": "theseer/tokenizer", 3531 | "version": "1.2.3", 3532 | "source": { 3533 | "type": "git", 3534 | "url": "https://github.com/theseer/tokenizer.git", 3535 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" 3536 | }, 3537 | "dist": { 3538 | "type": "zip", 3539 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", 3540 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", 3541 | "shasum": "" 3542 | }, 3543 | "require": { 3544 | "ext-dom": "*", 3545 | "ext-tokenizer": "*", 3546 | "ext-xmlwriter": "*", 3547 | "php": "^7.2 || ^8.0" 3548 | }, 3549 | "type": "library", 3550 | "autoload": { 3551 | "classmap": [ 3552 | "src/" 3553 | ] 3554 | }, 3555 | "notification-url": "https://packagist.org/downloads/", 3556 | "license": [ 3557 | "BSD-3-Clause" 3558 | ], 3559 | "authors": [ 3560 | { 3561 | "name": "Arne Blankerts", 3562 | "email": "arne@blankerts.de", 3563 | "role": "Developer" 3564 | } 3565 | ], 3566 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 3567 | "support": { 3568 | "issues": "https://github.com/theseer/tokenizer/issues", 3569 | "source": "https://github.com/theseer/tokenizer/tree/1.2.3" 3570 | }, 3571 | "funding": [ 3572 | { 3573 | "url": "https://github.com/theseer", 3574 | "type": "github" 3575 | } 3576 | ], 3577 | "time": "2024-03-03T12:36:25+00:00" 3578 | }, 3579 | { 3580 | "name": "vimeo/psalm", 3581 | "version": "5.24.0", 3582 | "source": { 3583 | "type": "git", 3584 | "url": "https://github.com/vimeo/psalm.git", 3585 | "reference": "462c80e31c34e58cc4f750c656be3927e80e550e" 3586 | }, 3587 | "dist": { 3588 | "type": "zip", 3589 | "url": "https://api.github.com/repos/vimeo/psalm/zipball/462c80e31c34e58cc4f750c656be3927e80e550e", 3590 | "reference": "462c80e31c34e58cc4f750c656be3927e80e550e", 3591 | "shasum": "" 3592 | }, 3593 | "require": { 3594 | "amphp/amp": "^2.4.2", 3595 | "amphp/byte-stream": "^1.5", 3596 | "composer-runtime-api": "^2", 3597 | "composer/semver": "^1.4 || ^2.0 || ^3.0", 3598 | "composer/xdebug-handler": "^2.0 || ^3.0", 3599 | "dnoegel/php-xdg-base-dir": "^0.1.1", 3600 | "ext-ctype": "*", 3601 | "ext-dom": "*", 3602 | "ext-json": "*", 3603 | "ext-libxml": "*", 3604 | "ext-mbstring": "*", 3605 | "ext-simplexml": "*", 3606 | "ext-tokenizer": "*", 3607 | "felixfbecker/advanced-json-rpc": "^3.1", 3608 | "felixfbecker/language-server-protocol": "^1.5.2", 3609 | "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", 3610 | "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", 3611 | "nikic/php-parser": "^4.16", 3612 | "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", 3613 | "sebastian/diff": "^4.0 || ^5.0 || ^6.0", 3614 | "spatie/array-to-xml": "^2.17.0 || ^3.0", 3615 | "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", 3616 | "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" 3617 | }, 3618 | "conflict": { 3619 | "nikic/php-parser": "4.17.0" 3620 | }, 3621 | "provide": { 3622 | "psalm/psalm": "self.version" 3623 | }, 3624 | "require-dev": { 3625 | "amphp/phpunit-util": "^2.0", 3626 | "bamarni/composer-bin-plugin": "^1.4", 3627 | "brianium/paratest": "^6.9", 3628 | "ext-curl": "*", 3629 | "mockery/mockery": "^1.5", 3630 | "nunomaduro/mock-final-classes": "^1.1", 3631 | "php-parallel-lint/php-parallel-lint": "^1.2", 3632 | "phpstan/phpdoc-parser": "^1.6", 3633 | "phpunit/phpunit": "^9.6", 3634 | "psalm/plugin-mockery": "^1.1", 3635 | "psalm/plugin-phpunit": "^0.18", 3636 | "slevomat/coding-standard": "^8.4", 3637 | "squizlabs/php_codesniffer": "^3.6", 3638 | "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0" 3639 | }, 3640 | "suggest": { 3641 | "ext-curl": "In order to send data to shepherd", 3642 | "ext-igbinary": "^2.0.5 is required, used to serialize caching data" 3643 | }, 3644 | "bin": [ 3645 | "psalm", 3646 | "psalm-language-server", 3647 | "psalm-plugin", 3648 | "psalm-refactor", 3649 | "psalter" 3650 | ], 3651 | "type": "project", 3652 | "extra": { 3653 | "branch-alias": { 3654 | "dev-master": "5.x-dev", 3655 | "dev-4.x": "4.x-dev", 3656 | "dev-3.x": "3.x-dev", 3657 | "dev-2.x": "2.x-dev", 3658 | "dev-1.x": "1.x-dev" 3659 | } 3660 | }, 3661 | "autoload": { 3662 | "psr-4": { 3663 | "Psalm\\": "src/Psalm/" 3664 | } 3665 | }, 3666 | "notification-url": "https://packagist.org/downloads/", 3667 | "license": [ 3668 | "MIT" 3669 | ], 3670 | "authors": [ 3671 | { 3672 | "name": "Matthew Brown" 3673 | } 3674 | ], 3675 | "description": "A static analysis tool for finding errors in PHP applications", 3676 | "keywords": [ 3677 | "code", 3678 | "inspection", 3679 | "php", 3680 | "static analysis" 3681 | ], 3682 | "support": { 3683 | "docs": "https://psalm.dev/docs", 3684 | "issues": "https://github.com/vimeo/psalm/issues", 3685 | "source": "https://github.com/vimeo/psalm" 3686 | }, 3687 | "time": "2024-05-01T19:32:08+00:00" 3688 | }, 3689 | { 3690 | "name": "webmozart/assert", 3691 | "version": "1.11.0", 3692 | "source": { 3693 | "type": "git", 3694 | "url": "https://github.com/webmozarts/assert.git", 3695 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" 3696 | }, 3697 | "dist": { 3698 | "type": "zip", 3699 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", 3700 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", 3701 | "shasum": "" 3702 | }, 3703 | "require": { 3704 | "ext-ctype": "*", 3705 | "php": "^7.2 || ^8.0" 3706 | }, 3707 | "conflict": { 3708 | "phpstan/phpstan": "<0.12.20", 3709 | "vimeo/psalm": "<4.6.1 || 4.6.2" 3710 | }, 3711 | "require-dev": { 3712 | "phpunit/phpunit": "^8.5.13" 3713 | }, 3714 | "type": "library", 3715 | "extra": { 3716 | "branch-alias": { 3717 | "dev-master": "1.10-dev" 3718 | } 3719 | }, 3720 | "autoload": { 3721 | "psr-4": { 3722 | "Webmozart\\Assert\\": "src/" 3723 | } 3724 | }, 3725 | "notification-url": "https://packagist.org/downloads/", 3726 | "license": [ 3727 | "MIT" 3728 | ], 3729 | "authors": [ 3730 | { 3731 | "name": "Bernhard Schussek", 3732 | "email": "bschussek@gmail.com" 3733 | } 3734 | ], 3735 | "description": "Assertions to validate method input/output with nice error messages.", 3736 | "keywords": [ 3737 | "assert", 3738 | "check", 3739 | "validate" 3740 | ], 3741 | "support": { 3742 | "issues": "https://github.com/webmozarts/assert/issues", 3743 | "source": "https://github.com/webmozarts/assert/tree/1.11.0" 3744 | }, 3745 | "time": "2022-06-03T18:03:27+00:00" 3746 | } 3747 | ], 3748 | "aliases": [], 3749 | "minimum-stability": "stable", 3750 | "stability-flags": [], 3751 | "prefer-stable": true, 3752 | "prefer-lowest": false, 3753 | "platform": { 3754 | "php": "^8.3" 3755 | }, 3756 | "platform-dev": [], 3757 | "plugin-api-version": "2.6.0" 3758 | } 3759 | -------------------------------------------------------------------------------- /ecs.php: -------------------------------------------------------------------------------- 1 | paths([__DIR__ . '/src',]); 8 | $ecsConfig->paths([__DIR__ . '/tests',]); 9 | 10 | $ecsConfig->sets([CodingStyle::DEFAULT]); 11 | }; 12 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | tests 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/Codelyber.php: -------------------------------------------------------------------------------- 1 | name; 18 | } 19 | 20 | public function greet(): string 21 | { 22 | return self::GREETING; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tests/CodelyberTest.php: -------------------------------------------------------------------------------- 1 | assertEquals('CodelyTV', $codelyber->greet()); 18 | } 19 | } 20 | --------------------------------------------------------------------------------