diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index aa0b08b..3538b32 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -55,6 +55,8 @@ jobs: steps: - uses: actions/checkout@v2 + with: + fetch-depth: 2 - uses: shivammathur/setup-php@v2 with: @@ -63,6 +65,15 @@ jobs: coverage: pcov tools: composer:v2 + - uses: actions/setup-node@v2 + with: + node-version: '15' + + - uses: actions/cache@v2 + with: + path: node_modules + key: node-modules-${{ hashFiles('package-lock.json') }} + - name: Get Composer Cache Directory id: composer-cache run: | @@ -73,6 +84,9 @@ jobs: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-php${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} + - if: steps.cache-node.outputs.cache-hit != 'true' + run: npm install + - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: "Use PHPUnit 9.3+ on PHP 8" @@ -81,6 +95,12 @@ jobs: - run: composer update -o --no-progress ${{ matrix.composer-flags }} + - run: composer require scrutinizer/ocular:^1.8.1 + if: ${{ matrix.coverage }} + + - name: Build Datasets + run: composer build + - run: vendor/bin/phpunit --colors=always --no-coverage ${{ matrix.phpunit-flags }} if: ${{ !matrix.coverage }} @@ -142,4 +162,4 @@ jobs: - run: composer update -o --no-progress - - run: vendor/bin/psalm --no-progress --output-format=github --shepherd || true + - run: vendor/bin/psalm --config=psalm.xml --no-cache --no-progress --output-format=github --shepherd diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 395e850..cf0ed4e 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -24,7 +24,7 @@ checks: fix_linefeed: true fix_line_ending: true fix_identation_4spaces: true - fix_doc_comments: true + fix_doc_comments: false tools: external_code_coverage: timeout: 1800 diff --git a/composer.json b/composer.json index 2dfef84..72f3a2d 100644 --- a/composer.json +++ b/composer.json @@ -61,21 +61,16 @@ "doctrine/lexer": "^1.2", "league/configuration": "dev-main", "psr/event-dispatcher": "^1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.22.1", + "vimeo/psalm": "^4.6.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16", - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^8.5.8", - "scrutinizer/ocular": "^1.5", - "sempro/phpunit-pretty-print": "^1.4", - "squizlabs/php_codesniffer": "^3.5", - "unleashedtech/php-coding-standard": "^2.5", - "vimeo/psalm": "^3.14" - }, - "conflict": { - "scrutinizer/ocular": "1.7.*", - "vimeo/psalm": "3.15.0" + "friendsofphp/php-cs-fixer": "^2.18.3", + "phpstan/phpstan": "^0.12.81", + "phpunit/phpunit": "^8.5.15", + "sempro/phpunit-pretty-print": "^1.4.0", + "squizlabs/php_codesniffer": "^3.5.8", + "unleashedtech/php-coding-standard": "^2.7.0" }, "autoload": { "psr-4": { @@ -104,13 +99,13 @@ ] }, "scripts": { - "build": "npm install && npm run build && php ./scripts/build.php", + "build": "npm run build && php ./scripts/build.php", "fix": "vendor/bin/phpcbf", "phpcs": "vendor/bin/phpcs", "phpstan": "vendor/bin/phpstan analyse", "phpunit": "./scripts/phpunit --no-coverage --colors=always", "phpunit-coverage": "./scripts/phpunit --colors=always", - "psalm": "vendor/bin/psalm --config=psalm.xml --output-format=phpstorm --show-info=true --stats --threads=4", + "psalm": "vendor/bin/psalm --config=psalm.xml --no-cache --output-format=phpstorm --show-info=true --stats --threads=4", "test": [ "@phpcs", "@phpstan", diff --git a/composer.lock b/composer.lock index c992e85..50ea039 100644 --- a/composer.lock +++ b/composer.lock @@ -4,42 +4,48 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dfe3f31eb0eb0a14e4f66ff8e1a49ceb", + "content-hash": "3ed41ef5b78d1a4c3f41751471af12cf", "packages": [ { - "name": "dflydev/dot-access-data", - "version": "v3.0.0", + "name": "amphp/amp", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3" + "url": "https://github.com/amphp/amp.git", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/e04ff030d24a33edc2421bef305e32919dd78fc3", - "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3", + "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": ">=7" }, "require-dev": { - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", - "scrutinizer/ocular": "1.6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.14" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "Dflydev\\DotAccessData\\": "src/" - } + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -47,72 +53,87 @@ ], "authors": [ { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" }, { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" }, { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", "keywords": [ - "access", - "data", - "dot", - "notation" + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" ], "support": { - "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.0" + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.5.2" }, - "time": "2021-01-01T22:08:42+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-01-10T17:06:37+00:00" }, { - "name": "doctrine/lexer", - "version": "1.2.1", + "name": "amphp/byte-stream", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "amphp/amp": "^2", + "php": ">=7.1" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -120,342 +141,281 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" ], "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/master" }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2020-06-29T18:35:05+00:00" }, { - "name": "league/configuration", - "version": "dev-main", + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", "source": { "type": "git", - "url": "https://github.com/unicorn-fail/configuration.git", - "reference": "4c7579b93543e4346287f4a46b93aab46209722f" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/unicorn-fail/configuration/zipball/4c7579b93543e4346287f4a46b93aab46209722f", - "reference": "4c7579b93543e4346287f4a46b93aab46209722f", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", "shasum": "" }, - "archive": { - "exclude": [ - "/.editorconfig", - "/.github", - "/.gitattributes", - "/.gitignore", - "/.scrutinizer.yml", - "/tests", - "/php*.dist", - "/psalm.xml", - "/scripts" - ] - }, "require": { - "dflydev/dot-access-data": "^3.0", - "ext-mbstring": "*", - "nette/schema": "^1.1", - "php": "^7.2.5 || ^8.0" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" }, - "conflict": { - "scrutinizer/ocular": "1.7.*", - "vimeo/psalm": "3.15.0" + "replace": { + "ocramius/package-versions": "1.11.99" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16", - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^8.5.8", - "scrutinizer/ocular": "^1.5", - "sempro/phpunit-pretty-print": "^1.4", - "squizlabs/php_codesniffer": "^3.5", - "unleashedtech/php-coding-standard": "^2.5", - "vimeo/psalm": "^3.14" + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" }, - "default-branch": true, - "type": "library", + "type": "composer-plugin", "extra": { + "class": "PackageVersions\\Installer", "branch-alias": { - "dev-main": "1.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "League\\Configuration\\": "src/" + "PackageVersions\\": "src/PackageVersions" } }, - "autoload-dev": { - "psr-4": { - "League\\Configuration\\Tests\\Unit\\": "tests/unit" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" }, - "scripts": { - "fix": [ - "vendor/bin/phpcbf" - ], - "phpcs": [ - "vendor/bin/phpcs" - ], - "phpstan": [ - "vendor/bin/phpstan analyse" - ], - "phpunit": [ - "./scripts/phpunit --no-coverage --colors=always" - ], - "phpunit-coverage": [ - "./scripts/phpunit --colors=always" - ], - "psalm": [ - "vendor/bin/psalm --config=psalm.xml --output-format=phpstorm --show-info=true --stats --threads=4" - ], - "test": [ - "@phpcs", - "@phpstan", - "@psalm", - "@phpunit" - ], - "test-coverage": [ - "@putenv XDEBUG_MODE=coverage", - "@phpcs", - "@phpstan", - "@psalm", - "@phpunit-coverage" - ] - }, - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" + "url": "https://packagist.com", + "type": "custom" }, { - "name": "Mark Halliwell", - "email": "mark@unicorn.fail", - "role": "Contributor" + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } ], - "description": "A simplified and structured way to provide configuration in your PHP project.", - "support": { - "docs": "https://github.com/league/configuration/blob/HEAD/README.md", - "issues": "https://github.com/league/configuration/issues", - "rss": "https://github.com/league/configuration/releases.atom", - "source": "https://github.com/league/configuration" - }, - "time": "2021-03-16T21:29:30+00:00" + "time": "2020-11-11T10:22:58+00:00" }, { - "name": "nette/schema", - "version": "v1.2.1", + "name": "composer/semver", + "version": "3.2.4", "source": { "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d" + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", - "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { - "nette/utils": "^3.1.4 || ^4.0", - "php": ">=7.1 <8.1" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.7" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-main": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Composer\\Semver\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "config", - "nette" + "semantic", + "semver", + "validation", + "versioning" ], "support": { - "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.1" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" }, - "time": "2021-03-04T17:51:11+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" }, { - "name": "nette/utils", - "version": "v3.2.2", + "name": "composer/xdebug-handler", + "version": "1.4.5", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", "shasum": "" }, "require": { - "php": ">=7.2 <8.1" - }, - "conflict": { - "nette/di": "<3.0.6" + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" }, "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", + "description": "Restarts a process without Xdebug.", "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" + "Xdebug", + "performance" ], "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.2" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" }, - "time": "2021-03-03T22:53:25+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" }, { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "name": "dflydev/dot-access-data", + "version": "v3.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/e04ff030d24a33edc2421bef305e32919dd78fc3", + "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.14" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "Dflydev\\DotAccessData\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -464,59 +424,109 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.0" }, - "time": "2019-01-08T18:20:26+00:00" + "time": "2021-01-01T22:08:42+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.2.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -524,736 +534,113 @@ ], "authors": [ { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" }, { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Roman Borschel", + "email": "roman@code-factory.org" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "annotations", + "docblock", + "lexer", + "parser", + "php" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", + "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { - "url": "https://github.com/fabpot", - "type": "github" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" - } - ], - "packages-dev": [ + "time": "2020-05-25T17:44:05+00:00" + }, { - "name": "amphp/amp", - "version": "v2.5.2", + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", - "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", "shasum": "" }, "require": { - "php": ">=7" + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6.0.9 | ^7", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" + "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, "autoload": { "psr-4": { - "Amp\\": "lib" - }, - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ] + "AdvancedJsonRpc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "http://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], + "description": "A more advanced JSONRPC implementation", "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.5.2" + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2021-01-10T17:06:37+00:00" + "time": "2021-01-10T17:48:47+00:00" }, { - "name": "amphp/byte-stream", - "version": "v1.8.0", + "name": "felixfbecker/language-server-protocol", + "version": "1.5.1", "source": { "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "shasum": "" }, "require": { - "amphp/amp": "^2", "php": ">=7.1" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Amp\\ByteStream\\": "lib" - }, - "files": [ - "lib/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/master" - }, - "time": "2020-06-29T18:35:05+00:00" - }, - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.1", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-11T10:22:58+00:00" - }, - { - "name": "composer/semver", - "version": "3.2.4", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.54", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.4" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-13T08:59:24+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "1.4.5", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f28d44c286812c714741478d968104c5e604a1d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", - "reference": "f28d44c286812c714741478d968104c5e604a1d4", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-13T08:04:11+00:00" - }, - { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.1", - "source": { - "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "composer/composer": "*", - "phpcompatibility/php-compatibility": "^9.0", - "sensiolabs/security-checker": "^4.1.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" - }, - "autoload": { - "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" - } - ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", - "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" - ], - "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" - }, - "time": "2020-12-07T18:04:37+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.12.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.12.1" - }, - "time": "2021-02-21T21:00:45+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2020-11-10T18:47:58+00:00" - }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.0", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", - "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" - }, - "time": "2021-01-10T17:48:47+00:00" - }, - { - "name": "felixfbecker/language-server-protocol", - "version": "1.5.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", "extra": { @@ -1290,496 +677,460 @@ "time": "2021-02-22T14:02:09+00:00" }, { - "name": "friendsofphp/php-cs-fixer", - "version": "v2.18.3", + "name": "league/configuration", + "version": "dev-main", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513" + "url": "https://github.com/unicorn-fail/configuration.git", + "reference": "4c7579b93543e4346287f4a46b93aab46209722f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ab99202fccff2a9f97592fbe1b5c76dd06df3513", - "reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513", + "url": "https://api.github.com/repos/unicorn-fail/configuration/zipball/4c7579b93543e4346287f4a46b93aab46209722f", + "reference": "4c7579b93543e4346287f4a46b93aab46209722f", "shasum": "" }, + "archive": { + "exclude": [ + "/.editorconfig", + "/.github", + "/.gitattributes", + "/.gitignore", + "/.scrutinizer.yml", + "/tests", + "/php*.dist", + "/psalm.xml", + "/scripts" + ] + }, "require": { - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.2", - "doctrine/annotations": "^1.2", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^5.6 || ^7.0 || ^8.0", - "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", - "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", - "symfony/finder": "^3.0 || ^4.0 || ^5.0", - "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", - "symfony/polyfill-php70": "^1.0", - "symfony/polyfill-php72": "^1.4", - "symfony/process": "^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + "dflydev/dot-access-data": "^3.0", + "ext-mbstring": "*", + "nette/schema": "^1.1", + "php": "^7.2.5 || ^8.0" + }, + "conflict": { + "scrutinizer/ocular": "1.7.*", + "vimeo/psalm": "3.15.0" }, "require-dev": { - "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.4", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4.2", - "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", - "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", - "symfony/phpunit-bridge": "^5.2.1", - "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + "friendsofphp/php-cs-fixer": "^2.16", + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^8.5.8", + "scrutinizer/ocular": "^1.5", + "sempro/phpunit-pretty-print": "^1.4", + "squizlabs/php_codesniffer": "^3.5", + "unleashedtech/php-coding-standard": "^2.5", + "vimeo/psalm": "^3.14" }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters.", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", - "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", "autoload": { "psr-4": { - "PhpCsFixer\\": "src/" - }, - "classmap": [ - "tests/Test/AbstractFixerTestCase.php", - "tests/Test/AbstractIntegrationCaseFactory.php", - "tests/Test/AbstractIntegrationTestCase.php", - "tests/Test/Assert/AssertTokensTrait.php", - "tests/Test/IntegrationCase.php", - "tests/Test/IntegrationCaseFactory.php", - "tests/Test/IntegrationCaseFactoryInterface.php", - "tests/Test/InternalIntegrationCaseFactory.php", - "tests/Test/IsIdenticalConstraint.php", - "tests/Test/TokensWithObservedTransformers.php", - "tests/TestCase.php" + "League\\Configuration\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "League\\Configuration\\Tests\\Unit\\": "tests/unit" + } + }, + "scripts": { + "fix": [ + "vendor/bin/phpcbf" + ], + "phpcs": [ + "vendor/bin/phpcs" + ], + "phpstan": [ + "vendor/bin/phpstan analyse" + ], + "phpunit": [ + "./scripts/phpunit --no-coverage --colors=always" + ], + "phpunit-coverage": [ + "./scripts/phpunit --colors=always" + ], + "psalm": [ + "vendor/bin/psalm --config=psalm.xml --output-format=phpstorm --show-info=true --stats --threads=4" + ], + "test": [ + "@phpcs", + "@phpstan", + "@psalm", + "@phpunit" + ], + "test-coverage": [ + "@putenv XDEBUG_MODE=coverage", + "@phpcs", + "@phpstan", + "@psalm", + "@phpunit-coverage" ] }, - "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" }, { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" + "name": "Mark Halliwell", + "email": "mark@unicorn.fail", + "role": "Contributor" } ], - "description": "A tool to automatically fix PHP code style", + "description": "A simplified and structured way to provide configuration in your PHP project.", "support": { - "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.18.3" + "docs": "https://github.com/league/configuration/blob/HEAD/README.md", + "issues": "https://github.com/league/configuration/issues", + "rss": "https://github.com/league/configuration/releases.atom", + "source": "https://github.com/league/configuration" }, - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } - ], - "time": "2021-03-10T19:39:05+00:00" + "time": "2021-03-16T21:29:30+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "7.2.0", + "name": "netresearch/jsonmapper", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" }, "require-dev": { - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.1-dev" - } - }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "psr-0": { + "JsonMapper": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "OSL-3.0" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], + "description": "Map nested JSON structures onto PHP classes", "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.2.0" + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/master" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" - } - ], - "time": "2020-10-10T11:47:56+00:00" + "time": "2020-04-16T18:48:43+00:00" }, { - "name": "guzzlehttp/promises", - "version": "1.4.1", + "name": "nette/schema", + "version": "v1.2.1", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "url": "https://github.com/nette/schema.git", + "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/nette/schema/zipball/f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", + "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", "shasum": "" }, "require": { - "php": ">=5.5" + "nette/utils": "^3.1.4 || ^4.0", + "php": ">=7.1 <8.1" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.2-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Guzzle promises library", + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", "keywords": [ - "promise" + "config", + "nette" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.1" }, - "time": "2021-03-07T09:25:29+00:00" + "time": "2021-03-04T17:51:11+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.7.0", + "name": "nette/utils", + "version": "v3.2.2", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "url": "https://github.com/nette/utils.git", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": ">=7.2 <8.1" }, - "provide": { - "psr/http-message-implementation": "1.0" + "conflict": { + "nette/di": "<3.0.6" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "3.2-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.7.0" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.2" }, - "time": "2020-09-30T07:37:11+00:00" + "time": "2021-03-03T22:53:25+00:00" }, { - "name": "jms/metadata", - "version": "1.7.0", + "name": "nikic/php-parser", + "version": "v4.10.4", "source": { "type": "git", - "url": "https://github.com/schmittjoh/metadata.git", - "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/e5854ab1aa643623dc64adde718a8eec32b957a8", - "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-tokenizer": "*", + "php": ">=7.0" }, "require-dev": { - "doctrine/cache": "~1.0", - "symfony/cache": "~3.1" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5.x-dev" + "dev-master": "4.9-dev" } }, "autoload": { - "psr-0": { - "Metadata\\": "src/" + "psr-4": { + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - }, - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Nikita Popov" } ], - "description": "Class/method/property metadata management in PHP", + "description": "A PHP parser written in PHP", "keywords": [ - "annotations", - "metadata", - "xml", - "yaml" + "parser", + "php" ], "support": { - "issues": "https://github.com/schmittjoh/metadata/issues", - "source": "https://github.com/schmittjoh/metadata/tree/1.x" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" }, - "time": "2018-10-26T12:40:10+00:00" + "time": "2020-12-20T10:01:03+00:00" }, { - "name": "jms/parser-lib", + "name": "openlss/lib-array2xml", "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/schmittjoh/parser-lib.git", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", "shasum": "" }, "require": { - "phpoption/phpoption": ">=0.9,<2.0-dev" + "php": ">=5.3.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-0": { - "JMS\\": "src/" + "LSS": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache2" + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" ], - "description": "A library for easily creating recursive-descent parsers.", "support": { - "issues": "https://github.com/schmittjoh/parser-lib/issues", - "source": "https://github.com/schmittjoh/parser-lib/tree/1.0.0" + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" }, - "time": "2012-11-18T18:08:43+00:00" + "time": "2019-03-29T20:06:56+00:00" }, { - "name": "jms/serializer", - "version": "1.14.1", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/schmittjoh/serializer.git", - "reference": "ba908d278fff27ec01fb4349f372634ffcd697c0" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/ba908d278fff27ec01fb4349f372634ffcd697c0", - "reference": "ba908d278fff27ec01fb4349f372634ffcd697c0", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/instantiator": "^1.0.3", - "jms/metadata": "^1.3", - "jms/parser-lib": "1.*", - "php": "^5.5|^7.0", - "phpcollection/phpcollection": "~0.1", - "phpoption/phpoption": "^1.1" - }, - "conflict": { - "twig/twig": "<1.12" - }, - "require-dev": { - "doctrine/orm": "~2.1", - "doctrine/phpcr-odm": "^1.3|^2.0", - "ext-pdo_sqlite": "*", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "phpunit/phpunit": "^4.8|^5.0", - "propel/propel1": "~1.7", - "psr/container": "^1.0", - "symfony/dependency-injection": "^2.7|^3.3|^4.0", - "symfony/expression-language": "^2.6|^3.0", - "symfony/filesystem": "^2.1", - "symfony/form": "~2.1|^3.0", - "symfony/translation": "^2.1|^3.0", - "symfony/validator": "^2.2|^3.0", - "symfony/yaml": "^2.1|^3.0", - "twig/twig": "~1.12|~2.0" - }, - "suggest": { - "doctrine/cache": "Required if you like to use cache functionality.", - "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", - "symfony/yaml": "Required if you'd like to serialize data to YAML format." + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.14-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { - "psr-0": { - "JMS\\Serializer": "src/" + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1788,325 +1139,305 @@ ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", - "homepage": "http://jmsyst.com/libs/serializer", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "deserialization", - "jaxb", - "json", - "serialization", - "xml" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], "support": { - "issues": "https://github.com/schmittjoh/serializer/issues", - "source": "https://github.com/schmittjoh/serializer/tree/1.14.1" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "time": "2020-02-22T20:59:37+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.10.2", + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" - }, - "replace": { - "myclabs/deep-copy": "self.version" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "mockery/mockery": "~1.3.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" - }, - "funding": [ + "authors": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], - "time": "2020-11-13T09:40:50+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v2.1.0", + "name": "phpdocumentor/type-resolver", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.6" + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", - "squizlabs/php_codesniffer": "~3.5" + "ext-tokenizer": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, "autoload": { - "psr-0": { - "JsonMapper": "src/" + "psr-4": { + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "OSL-3.0" + "MIT" ], "authors": [ { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Map nested JSON structures onto PHP classes", + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/master" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" }, - "time": "2020-04-16T18:48:43+00:00" + "time": "2020-09-17T18:55:26+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.10.4", + "name": "psr/container", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "url": "https://github.com/php-fig/container.git", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "php": ">=7.2.0" }, - "bin": [ - "bin/php-parse" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "A PHP parser written in PHP", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "parser", - "php" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2020-12-20T10:01:03+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { - "name": "openlss/lib-array2xml", + "name": "psr/event-dispatcher", "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=7.2.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "psr-0": { - "LSS": "" + "psr-4": { + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", + "description": "Standard interfaces for event handling.", "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" + "events", + "psr", + "psr-14" ], "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2019-03-29T20:06:56+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.1", + "name": "psr/log", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "source": "https://github.com/php-fig/log/tree/1.1.3" }, - "time": "2020-06-27T14:33:11+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { - "name": "phar-io/version", - "version": "3.1.0", + "name": "sebastian/diff", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2118,162 +1449,247 @@ ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Library for handling version information and constraints", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" }, - "time": "2021-02-23T14:00:09+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { - "name": "php-cs-fixer/diff", - "version": "v1.3.1", + "name": "symfony/console", + "version": "v5.2.5", "source": { "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" + "url": "https://github.com/symfony/console.git", + "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", - "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", + "url": "https://api.github.com/repos/symfony/console/zipball/938ebbadae1b0a9c9d1ec313f87f9708609f1b79", + "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0 || ^8.0" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", - "symfony/process": "^3.3" + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "SpacePossum" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "sebastian/diff v2 backport support for PHP5.6", - "homepage": "https://github.com/PHP-CS-Fixer", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "keywords": [ - "diff" + "cli", + "command line", + "console", + "terminal" ], "support": { - "issues": "https://github.com/PHP-CS-Fixer/diff/issues", - "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" + "source": "https://github.com/symfony/console/tree/v5.2.5" }, - "time": "2020-10-14T08:39:05+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-06T13:42:15+00:00" }, { - "name": "phpcollection/phpcollection", - "version": "0.5.0", + "name": "symfony/polyfill-ctype", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-collection.git", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "phpoption/phpoption": "1.*" + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-0": { - "PhpCollection": "src/" - } + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache2" + "MIT" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "General-Purpose Collection Library for PHP", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "collection", - "list", - "map", - "sequence", - "set" + "compatibility", + "ctype", + "polyfill", + "portable" ], "support": { - "issues": "https://github.com/schmittjoh/php-collection/issues", - "source": "https://github.com/schmittjoh/php-collection/tree/master" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" }, - "time": "2015-05-17T12:39:23+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-2.x": "2.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2281,59 +1697,83 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" }, - "time": "2020-06-27T09:03:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" + "php": ">=7.1" }, - "require-dev": { - "mockery/mockery": "~1.3.2" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2341,52 +1781,80 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" }, - "time": "2020-09-03T19:13:55+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "php": ">=7.1" }, - "require-dev": { - "ext-tokenizer": "*" + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2394,121 +1862,158 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" }, - "time": "2020-09-17T18:55:26+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "phpoption/phpoption", - "version": "1.7.5", + "name": "symfony/polyfill-php73", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "PhpOption\\": "src/PhpOption/" - } + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Graham Campbell", - "email": "graham@alt-three.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Option Type for PHP", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "language", - "option", - "php", - "type" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-07-20T17:29:33+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.12.2", + "name": "symfony/polyfill-php80", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "245710e971a030f42e08f4912863805570f23d39" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", - "reference": "245710e971a030f42e08f4912863805570f23d39", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2516,560 +2021,706 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" }, - "time": "2020-12-19T10:15:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "0.4.9", + "name": "symfony/service-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/98a088b17966bdf6ee25c8a4b634df313d8aa531", - "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": ">=7.2.5", + "psr/container": "^1.0" }, - "require-dev": { - "consistence/coding-standard": "^3.5", - "ergebnis/composer-normalize": "^2.0.2", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phing/phing": "^2.16.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.26", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^6.3", - "slevomat/coding-standard": "^4.7.2", - "symfony/process": "^4.0" + "suggest": { + "symfony/service-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "Symfony\\Contracts\\Service\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/master" + "source": "https://github.com/symfony/service-contracts/tree/master" }, - "time": "2020-08-03T20:32:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { - "name": "phpstan/phpstan", - "version": "0.12.81", + "name": "symfony/string", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "0dd5b0ebeff568f7000022ea5f04aa86ad3124b8" + "url": "https://github.com/symfony/string.git", + "reference": "4e78d7d47061fa183639927ec40d607973699609" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0dd5b0ebeff568f7000022ea5f04aa86ad3124b8", - "reference": "0dd5b0ebeff568f7000022ea5f04aa86ad3124b8", + "url": "https://api.github.com/repos/symfony/string/zipball/4e78d7d47061fa183639927ec40d607973699609", + "reference": "4e78d7d47061fa183639927ec40d607973699609", "shasum": "" }, "require": { - "php": "^7.1|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.12-dev" - } + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" }, + "type": "library", "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "files": [ - "bootstrap.php" + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPStan - PHP Static Analysis Tool", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], "support": { - "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.81" + "source": "https://github.com/symfony/string/tree/v5.2.4" }, "funding": [ { - "url": "https://github.com/ondrejmirtes", - "type": "github" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" + "url": "https://github.com/fabpot", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-03-08T22:03:02+00:00" + "time": "2021-02-16T10:20:28+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "7.0.14", + "name": "vimeo/psalm", + "version": "4.6.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" + "url": "https://github.com/vimeo/psalm.git", + "reference": "97fe86c4e158b5a57c5150aa5055c38b5a809aab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/97fe86c4e158b5a57c5150aa5055c38b5a809aab", + "reference": "97fe86c4e158b5a57c5150aa5055c38b5a809aab", "shasum": "" }, "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-dom": "*", - "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.10.1", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.13", + "slevomat/coding-standard": "^6.3.11", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3", + "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-igbinary": "^2.0.5" }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Psalm\\": "src/Psalm/" + }, + "files": [ + "src/functions.php", + "src/spl_object_id.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Matthew Brown" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "A static analysis tool for finding errors in PHP applications", "keywords": [ - "coverage", - "testing", - "xunit" + "code", + "inspection", + "php" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.14" + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.6.4" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-12-02T13:39:03+00:00" + "time": "2021-03-16T23:28:18+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "2.0.3", + "name": "webmozart/assert", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.2 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.10-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "filesystem", - "iterator" + "assert", + "check", + "validate" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.3" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:25:21+00:00" + "time": "2021-03-09T10:59:23+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "webmozart/path-util", + "version": "2.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" }, - "time": "2015-06-21T13:50:34+00:00" - }, + "time": "2015-12-17T08:42:14+00:00" + } + ], + "packages-dev": [ { - "name": "phpunit/php-timer", - "version": "2.1.3", + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.7.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c", "shasum": "" }, "require": { - "php": ">=7.1" + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" }, - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", "keywords": [ - "timer" + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2020-12-07T18:04:37+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.1.2", + "name": "doctrine/annotations", + "version": "1.12.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" + "url": "https://github.com/doctrine/annotations.git", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", - "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", "shasum": "" }, "require": { + "doctrine/lexer": "1.*", "ext-tokenizer": "*", - "php": ">=7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "doctrine/cache": "1.*", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ - "tokenizer" + "annotations", + "docblock", + "parser" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.2" + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.12.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "abandoned": true, - "time": "2020-11-30T08:38:46+00:00" + "time": "2021-02-21T21:00:45+00:00" }, { - "name": "phpunit/phpunit", - "version": "8.5.14", + "name": "doctrine/instantiator", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.1", - "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.2", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, - "bin": [ - "phpunit" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.5-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "phpunit", - "testing", - "xunit" + "constructor", + "instantiate" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.14" + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://www.doctrine-project.org/sponsorship.html", "type": "custom" }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "time": "2021-01-17T07:37:30+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { - "name": "psr/container", - "version": "1.1.1", + "name": "friendsofphp/php-cs-fixer", + "version": "v2.18.3", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ab99202fccff2a9f97592fbe1b5c76dd06df3513", + "reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513", "shasum": "" }, - "require": { - "php": ">=7.2.0" + "require": { + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.2", + "doctrine/annotations": "^1.2", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^5.6 || ^7.0 || ^8.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", + "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^3.0 || ^4.0 || ^5.0", + "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-php72": "^1.4", + "symfony/process": "^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.4", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.4.2", + "php-cs-fixer/accessible-object": "^1.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", + "phpspec/prophecy-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", + "phpunitgoodpractices/polyfill": "^1.5", + "phpunitgoodpractices/traits": "^1.9.1", + "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", + "symfony/phpunit-bridge": "^5.2.1", + "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." }, - "type": "library", + "bin": [ + "php-cs-fixer" + ], + "type": "application", "autoload": { "psr-4": { - "Psr\\Container\\": "src/" - } + "PhpCsFixer\\": "src/" + }, + "classmap": [ + "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", + "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", + "tests/Test/IntegrationCase.php", + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/Test/IsIdenticalConstraint.php", + "tests/Test/TokensWithObservedTransformers.php", + "tests/TestCase.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3077,423 +2728,467 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], + "description": "A tool to automatically fix PHP code style", "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.18.3" }, - "time": "2021-03-05T17:36:06+00:00" + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2021-03-10T19:39:05+00:00" }, { - "name": "psr/http-client", - "version": "1.0.1", + "name": "myclabs/deep-copy", + "version": "1.10.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "php": "^7.1 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Http\\Client\\": "src/" - } + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "http", - "http-client", - "psr", - "psr-18" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" }, - "time": "2020-06-29T06:28:15+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "phar-io/manifest", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/phar-io/manifest.git", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2020-06-27T14:33:11+00:00" }, { - "name": "psr/log", - "version": "1.1.3", + "name": "phar-io/version", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "url": "https://github.com/phar-io/version.git", + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], + "description": "Library for handling version information and constraints", "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.1.0" }, - "time": "2020-03-23T09:12:05+00:00" + "time": "2021-02-23T14:00:09+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "php-cs-fixer/diff", + "version": "v1.3.1", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.6 || ^7.0 || ^8.0" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", + "symfony/process": "^3.3" }, "type": "library", "autoload": { - "files": [ - "src/getallheaders.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "SpacePossum" } ], - "description": "A polyfill for getallheaders.", + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "issues": "https://github.com/PHP-CS-Fixer/diff/issues", + "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" }, - "time": "2019-03-08T08:55:37+00:00" + "time": "2020-10-14T08:39:05+00:00" }, { - "name": "scrutinizer/ocular", - "version": "1.8.1", + "name": "phpspec/prophecy", + "version": "1.13.0", "source": { "type": "git", - "url": "https://github.com/scrutinizer-ci/ocular.git", - "reference": "801d176fbcee081f1f4f8c879a07a0ca5ff86eca" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/scrutinizer-ci/ocular/zipball/801d176fbcee081f1f4f8c879a07a0ca5ff86eca", - "reference": "801d176fbcee081f1f4f8c879a07a0ca5ff86eca", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "~6.3|^7.0", - "jms/serializer": "^1.0.0", - "phpoption/phpoption": "~1.0", - "symfony/console": "^2.1.0|~3.0|~4.0|~5.0", - "symfony/process": "~2.3|~3.0|~4.0|~5.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "phpunit/phpunit": "^9.0.0", - "symfony/filesystem": "~2.0|~3.0|~4.0|~5.0" + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, - "bin": [ - "bin/ocular" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, "autoload": { "psr-4": { - "Scrutinizer\\Ocular\\": "src/Scrutinizer/Ocular" + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" ], "support": { - "issues": "https://github.com/scrutinizer-ci/ocular/issues", - "source": "https://github.com/scrutinizer-ci/ocular/tree/1.8.1" + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.13.0" }, - "time": "2021-02-25T15:54:10+00:00" + "time": "2021-03-17T13:42:18+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "name": "phpstan/phpdoc-parser", + "version": "0.4.9", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/98a088b17966bdf6ee25c8a4b634df313d8aa531", + "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "consistence/coding-standard": "^3.5", + "ergebnis/composer-normalize": "^2.0.2", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.26", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^4.7.2", + "symfony/process": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "0.4-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } + "MIT" ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/master" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2020-08-03T20:32:43+00:00" }, { - "name": "sebastian/comparator", - "version": "3.0.3", + "name": "phpstan/phpstan", + "version": "0.12.81", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "0dd5b0ebeff568f7000022ea5f04aa86ad3124b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0dd5b0ebeff568f7000022ea5f04aa86ad3124b8", + "reference": "0dd5b0ebeff568f7000022ea5f04aa86ad3124b8", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": "^7.1|^8.0" }, - "require-dev": { - "phpunit/phpunit": "^8.5" + "conflict": { + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "0.12-dev" } }, "autoload": { - "classmap": [ - "src/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" + "MIT" ], + "description": "PHPStan - PHP Static Analysis Tool", "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/0.12.81" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/ondrejmirtes", "type": "github" + }, + { + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" } ], - "time": "2020-11-30T08:04:30+00:00" + "time": "2021-03-08T22:03:02+00:00" }, { - "name": "sebastian/diff", - "version": "3.0.3", + "name": "phpunit/php-code-coverage", + "version": "7.0.14", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": ">=7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.1.1 || ^4.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.2.2", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "7.0-dev" } }, "autoload": { @@ -3508,24 +3203,20 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" + "coverage", + "testing", + "xunit" ], "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.14" }, "funding": [ { @@ -3533,35 +3224,32 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2020-12-02T13:39:03+00:00" }, { - "name": "sebastian/environment", - "version": "4.2.4", + "name": "phpunit/php-file-iterator", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", "shasum": "" }, "require": { "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3576,19 +3264,19 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "filesystem", + "iterator" ], "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.3" }, "funding": [ { @@ -3596,36 +3284,26 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2020-11-30T08:25:21+00:00" }, { - "name": "sebastian/exporter", - "version": "3.1.3", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -3638,73 +3316,45 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "export", - "exporter" + "template" ], "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-30T07:47:53+00:00" + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "sebastian/global-state", - "version": "3.0.1", + "name": "phpunit/php-timer", + "version": "2.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.1" }, "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -3719,17 +3369,18 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "global state" + "timer" ], "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" }, "funding": [ { @@ -3737,34 +3388,33 @@ "type": "github" } ], - "time": "2020-11-30T07:43:24+00:00" + "time": "2020-11-30T08:20:02+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.4", + "name": "phpunit/php-token-stream", + "version": "3.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "ext-tokenizer": "*", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -3782,11 +3432,14 @@ "email": "sebastian@phpunit.de" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.2" }, "funding": [ { @@ -3794,32 +3447,65 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "abandoned": true, + "time": "2020-11-30T08:38:46+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.2", + "name": "phpunit/phpunit", + "version": "8.5.15", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", + "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", "shasum": "" }, "require": { - "php": ">=7.0" + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^7.0.12", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.2", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", + "sebastian/version": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "8.5-dev" } }, "autoload": { @@ -3834,47 +3520,57 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.15" }, "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2021-03-17T07:27:54+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.1", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -3890,21 +3586,13 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" }, "funding": [ { @@ -3912,29 +3600,34 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2020-11-30T08:15:22+00:00" }, { - "name": "sebastian/resource-operations", - "version": "2.0.2", + "name": "sebastian/comparator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3950,13 +3643,30 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" }, "funding": [ { @@ -3964,32 +3674,35 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2020-11-30T08:04:30+00:00" }, { - "name": "sebastian/type", - "version": "1.1.4", + "name": "sebastian/environment", + "version": "4.2.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -4004,15 +3717,19 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" }, "funding": [ { @@ -4020,29 +3737,34 @@ "type": "github" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2020-11-30T07:53:42+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "sebastian/exporter", + "version": "3.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -4057,808 +3779,622 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" - }, - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "sempro/phpunit-pretty-print", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/s360digital/phpunit-pretty-print.git", - "reference": "fa623aa8a17aece4a2b69e54b07a5e37572d1f1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/s360digital/phpunit-pretty-print/zipball/fa623aa8a17aece4a2b69e54b07a5e37572d1f1d", - "reference": "fa623aa8a17aece4a2b69e54b07a5e37572d1f1d", - "shasum": "" - }, - "require": { - "php": ">=7.1.0", - "phpunit/phpunit": "^7 || ^8 || ^9" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16" + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" }, - "type": "library", - "autoload": { - "psr-4": { - "Sempro\\PHPUnitPrettyPrinter\\": "src/" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "Prettify PHPUnit output", - "support": { - "issues": "https://github.com/s360digital/phpunit-pretty-print/issues", - "source": "https://github.com/s360digital/phpunit-pretty-print/tree/1.4.0" - }, - "time": "2021-01-04T13:25:10+00:00" + "time": "2020-11-30T07:47:53+00:00" }, { - "name": "slevomat/coding-standard", - "version": "6.4.1", + "name": "sebastian/global-state", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "696dcca217d0c9da2c40d02731526c1e25b65346" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/696dcca217d0c9da2c40d02731526c1e25b65346", - "reference": "696dcca217d0c9da2c40d02731526c1e25b65346", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.1 || ^8.0", - "phpstan/phpdoc-parser": "0.4.5 - 0.4.9", - "squizlabs/php_codesniffer": "^3.5.6" + "php": ">=7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phing/phing": "2.16.3", - "php-parallel-lint/php-parallel-lint": "1.2.0", - "phpstan/phpstan": "0.12.48", - "phpstan/phpstan-deprecation-rules": "0.12.5", - "phpstan/phpstan-phpunit": "0.12.16", - "phpstan/phpstan-strict-rules": "0.12.5", - "phpunit/phpunit": "7.5.20|8.5.5|9.4.0" + "ext-dom": "*", + "phpunit/phpunit": "^8.0" }, - "type": "phpcodesniffer-standard", + "suggest": { + "ext-uopz": "*" + }, + "type": "library", "extra": { "branch-alias": { - "dev-master": "6.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", "support": { - "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/6.4.1" + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" }, "funding": [ { - "url": "https://github.com/kukulich", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", - "type": "tidelift" } ], - "time": "2020-10-05T12:39:37+00:00" + "time": "2020-11-30T07:43:24+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.5.8", + "name": "sebastian/object-enumerator", + "version": "3.0.4", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" + "php": ">=7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], + "phpunit/phpunit": "^6.0" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "3.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Greg Sherwood", - "role": "lead" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" }, - "time": "2020-10-23T02:01:07+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { - "name": "symfony/console", - "version": "v5.2.5", + "name": "sebastian/object-reflector", + "version": "1.1.2", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/938ebbadae1b0a9c9d1ec313f87f9708609f1b79", - "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" - }, - "conflict": { - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0" + "php": ">=7.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "phpunit/phpunit": "^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "source": "https://github.com/symfony/console/tree/v5.2.5" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-03-06T13:42:15+00:00" + "time": "2020-11-30T07:37:18+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v2.2.0", + "name": "sebastian/recursion-context", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "3.0.x-dev" } }, "autoload": { - "files": [ - "function.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/master" + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2020-11-30T07:34:24+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v5.2.4", + "name": "sebastian/resource-operations", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d08d6ec121a425897951900ab692b612a61d6240" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", - "reference": "d08d6ec121a425897951900ab692b612a61d6240", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "php": ">=7.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, + "funding": [ { - "url": "https://github.com/fabpot", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-02-18T17:12:37+00:00" + "time": "2020-11-30T07:30:19+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.2.0", + "name": "sebastian/type", + "version": "1.1.4", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" + "php": ">=7.2" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" + "require-dev": { + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0" + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2020-11-30T07:25:11+00:00" }, { - "name": "symfony/filesystem", - "version": "v5.2.4", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "710d364200997a5afde34d9fe57bd52f3cc1e108" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/710d364200997a5afde34d9fe57bd52f3cc1e108", - "reference": "710d364200997a5afde34d9fe57bd52f3cc1e108", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8" + "php": ">=5.6" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.4" + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-12T10:38:38+00:00" + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "symfony/finder", - "version": "v5.2.4", + "name": "sempro/phpunit-pretty-print", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "url": "https://github.com/s360digital/phpunit-pretty-print.git", + "reference": "fa623aa8a17aece4a2b69e54b07a5e37572d1f1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/s360digital/phpunit-pretty-print/zipball/fa623aa8a17aece4a2b69e54b07a5e37572d1f1d", + "reference": "fa623aa8a17aece4a2b69e54b07a5e37572d1f1d", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.1.0", + "phpunit/phpunit": "^7 || ^8 || ^9" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Sempro\\PHPUnitPrettyPrinter\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", + "description": "Prettify PHPUnit output", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" + "issues": "https://github.com/s360digital/phpunit-pretty-print/issues", + "source": "https://github.com/s360digital/phpunit-pretty-print/tree/1.4.0" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-01-04T13:25:10+00:00" }, { - "name": "symfony/options-resolver", - "version": "v5.2.4", + "name": "slevomat/coding-standard", + "version": "6.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "696dcca217d0c9da2c40d02731526c1e25b65346" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/696dcca217d0c9da2c40d02731526c1e25b65346", + "reference": "696dcca217d0c9da2c40d02731526c1e25b65346", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.15" + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", + "php": "^7.1 || ^8.0", + "phpstan/phpdoc-parser": "0.4.5 - 0.4.9", + "squizlabs/php_codesniffer": "^3.5.6" + }, + "require-dev": { + "phing/phing": "2.16.3", + "php-parallel-lint/php-parallel-lint": "1.2.0", + "phpstan/phpstan": "0.12.48", + "phpstan/phpstan-deprecation-rules": "0.12.5", + "phpstan/phpstan-phpunit": "0.12.16", + "phpstan/phpstan-strict-rules": "0.12.5", + "phpunit/phpunit": "7.5.20|8.5.5|9.4.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } }, - "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.2.4" + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/6.4.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/kukulich", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", "type": "tidelift" } ], - "time": "2021-01-27T12:56:27+00:00" + "time": "2020-10-05T12:39:37+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "name": "squizlabs/php_codesniffer", + "version": "3.5.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "3.x-dev" } }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "phpcs", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2020-10-23T02:01:07+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.1", + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", "shasum": "" }, "require": { "php": ">=7.1" }, - "suggest": { - "ext-intl": "For best performance" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-master": "2.2-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ - "bootstrap.php" + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4875,18 +4411,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/master" }, "funding": [ { @@ -4902,47 +4430,56 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2020-09-07T11:33:47+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "name": "symfony/event-dispatcher", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "d08d6ec121a425897951900ab692b612a61d6240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", + "reference": "d08d6ec121a425897951900ab692b612a61d6240", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { - "ext-intl": "For best performance" + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + "Symfony\\Component\\EventDispatcher\\": "" }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4951,26 +4488,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" }, "funding": [ { @@ -4986,45 +4515,43 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-02-18T17:12:37+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "name": "symfony/event-dispatcher-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" }, "suggest": { - "ext-mbstring": "For best performance" + "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-master": "2.2-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5040,17 +4567,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0" }, "funding": [ { @@ -5066,34 +4594,34 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2020-09-07T11:33:47+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", + "name": "symfony/filesystem", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + "url": "https://github.com/symfony/filesystem.git", + "reference": "710d364200997a5afde34d9fe57bd52f3cc1e108" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/710d364200997a5afde34d9fe57bd52f3cc1e108", + "reference": "710d364200997a5afde34d9fe57bd52f3cc1e108", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5101,24 +4629,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + "source": "https://github.com/symfony/filesystem/tree/v5.2.4" }, "funding": [ { @@ -5134,41 +4656,32 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-02-12T10:38:38+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "name": "symfony/finder", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "url": "https://github.com/symfony/finder.git", + "reference": "0d639a0943822626290d169965804f79400e6a04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", + "reference": "0d639a0943822626290d169965804f79400e6a04", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Component\\Finder\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5177,24 +4690,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + "source": "https://github.com/symfony/finder/tree/v5.2.4" }, "funding": [ { @@ -5210,44 +4717,35 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-15T18:55:04+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "name": "symfony/options-resolver", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Component\\OptionsResolver\\": "" }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5256,24 +4754,23 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "config", + "configuration", + "options" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/options-resolver/tree/v5.2.4" }, "funding": [ { @@ -5289,34 +4786,34 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-27T12:56:27+00:00" }, { - "name": "symfony/process", - "version": "v5.2.4", + "name": "symfony/polyfill-php70", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "php": ">=7.1" }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5324,18 +4821,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Executes commands in sub-processes", + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/process/tree/v5.2.4" + "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" }, "funding": [ { @@ -5351,43 +4854,42 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.2.0", + "name": "symfony/polyfill-php72", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "1.22-dev" }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5403,18 +4905,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/master" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" }, "funding": [ { @@ -5430,30 +4930,30 @@ "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/stopwatch", + "name": "symfony/process", "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" + "url": "https://github.com/symfony/process.git", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", + "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" + "symfony/polyfill-php80": "^1.15" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" + "Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -5473,10 +4973,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a way to profile code", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.2.4" + "source": "https://github.com/symfony/process/tree/v5.2.4" }, "funding": [ { @@ -5495,41 +4995,28 @@ "time": "2021-01-27T10:15:41+00:00" }, { - "name": "symfony/string", + "name": "symfony/stopwatch", "version": "v5.2.4", "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "4e78d7d47061fa183639927ec40d607973699609" + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4e78d7d47061fa183639927ec40d607973699609", - "reference": "4e78d7d47061fa183639927ec40d607973699609", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/service-contracts": "^1.0|^2" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\String\\": "" + "Symfony\\Component\\Stopwatch\\": "" }, - "files": [ - "Resources/functions.php" - ], "exclude-from-classmap": [ "/Tests/" ] @@ -5540,26 +5027,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "description": "Provides a way to profile code", "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.4" + "source": "https://github.com/symfony/stopwatch/tree/v5.2.4" }, "funding": [ { @@ -5575,7 +5054,7 @@ "type": "tidelift" } ], - "time": "2021-02-16T10:20:28+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "theseer/tokenizer", @@ -5682,264 +5161,6 @@ "source": "https://github.com/unleashedtech/php-coding-standard" }, "time": "2021-03-05T18:03:48+00:00" - }, - { - "name": "vimeo/psalm", - "version": "3.18.2", - "source": { - "type": "git", - "url": "https://github.com/vimeo/psalm.git", - "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/19aa905f7c3c7350569999a93c40ae91ae4e1626", - "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626", - "shasum": "" - }, - "require": { - "amphp/amp": "^2.1", - "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1", - "dnoegel/php-xdg-base-dir": "^0.1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.4", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", - "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.* || ^4.8", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1.3|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", - "webmozart/glob": "^4.1", - "webmozart/path-util": "^2.3" - }, - "provide": { - "psalm/psalm": "self.version" - }, - "require-dev": { - "amphp/amp": "^2.4.2", - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0.0", - "ext-curl": "*", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5", - "phpmyadmin/sql-parser": "5.1.0", - "phpspec/prophecy": ">=1.9.0", - "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", - "psalm/plugin-phpunit": "^0.11", - "slevomat/coding-standard": "^5.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3", - "weirdan/prophecy-shim": "^1.0 || ^2.0" - }, - "suggest": { - "ext-igbinary": "^2.0.5" - }, - "bin": [ - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psalm\\": "src/Psalm/" - }, - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown" - } - ], - "description": "A static analysis tool for finding errors in PHP applications", - "keywords": [ - "code", - "inspection", - "php" - ], - "support": { - "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/3.18.2" - }, - "time": "2020-10-20T13:48:22+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.9.1" - }, - "time": "2020-07-08T17:02:28+00:00" - }, - { - "name": "webmozart/glob", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/glob.git", - "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", - "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", - "shasum": "" - }, - "require": { - "php": "^5.3.3|^7.0", - "webmozart/path-util": "^2.2" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1", - "symfony/filesystem": "^2.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Glob\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A PHP implementation of Ant's glob.", - "support": { - "issues": "https://github.com/webmozarts/glob/issues", - "source": "https://github.com/webmozarts/glob/tree/4.1.0" - }, - "time": "2015-12-29T11:14:33+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], diff --git a/datasets/da/cldr.gz b/datasets/da/cldr.gz index 5ff295f..cde5350 100644 Binary files a/datasets/da/cldr.gz and b/datasets/da/cldr.gz differ diff --git a/datasets/de/cldr.gz b/datasets/de/cldr.gz index 2c3d1d3..ee5de18 100644 Binary files a/datasets/de/cldr.gz and b/datasets/de/cldr.gz differ diff --git a/datasets/en-gb/cldr.gz b/datasets/en-gb/cldr.gz index 2dd7a96..d821ecb 100644 Binary files a/datasets/en-gb/cldr.gz and b/datasets/en-gb/cldr.gz differ diff --git a/datasets/en-gb/emojibase.gz b/datasets/en-gb/emojibase.gz index 03ef973..e5594f3 100644 Binary files a/datasets/en-gb/emojibase.gz and b/datasets/en-gb/emojibase.gz differ diff --git a/datasets/en/cldr.gz b/datasets/en/cldr.gz index e29895e..2772317 100644 Binary files a/datasets/en/cldr.gz and b/datasets/en/cldr.gz differ diff --git a/datasets/en/emojibase-legacy.gz b/datasets/en/emojibase-legacy.gz index e5cbaee..58716c5 100644 Binary files a/datasets/en/emojibase-legacy.gz and b/datasets/en/emojibase-legacy.gz differ diff --git a/datasets/en/emojibase.gz b/datasets/en/emojibase.gz index 418f4b2..39fa603 100644 Binary files a/datasets/en/emojibase.gz and b/datasets/en/emojibase.gz differ diff --git a/datasets/en/github.gz b/datasets/en/github.gz index a4d04d7..d52c24d 100644 Binary files a/datasets/en/github.gz and b/datasets/en/github.gz differ diff --git a/datasets/en/iamcal.gz b/datasets/en/iamcal.gz index 079d389..ee4cc1e 100644 Binary files a/datasets/en/iamcal.gz and b/datasets/en/iamcal.gz differ diff --git a/datasets/en/joypixels.gz b/datasets/en/joypixels.gz index 7a31e5e..bdbd354 100644 Binary files a/datasets/en/joypixels.gz and b/datasets/en/joypixels.gz differ diff --git a/datasets/es-mx/cldr.gz b/datasets/es-mx/cldr.gz index 755c266..de433da 100644 Binary files a/datasets/es-mx/cldr.gz and b/datasets/es-mx/cldr.gz differ diff --git a/datasets/es/cldr.gz b/datasets/es/cldr.gz index 744fc32..ef74b24 100644 Binary files a/datasets/es/cldr.gz and b/datasets/es/cldr.gz differ diff --git a/datasets/et/cldr.gz b/datasets/et/cldr.gz index 2a11b21..5acae61 100644 Binary files a/datasets/et/cldr.gz and b/datasets/et/cldr.gz differ diff --git a/datasets/fi/cldr.gz b/datasets/fi/cldr.gz index 437668e..9ef2c51 100644 Binary files a/datasets/fi/cldr.gz and b/datasets/fi/cldr.gz differ diff --git a/datasets/fr/cldr.gz b/datasets/fr/cldr.gz index 2f65e6e..5bddf50 100644 Binary files a/datasets/fr/cldr.gz and b/datasets/fr/cldr.gz differ diff --git a/datasets/fr/emojibase.gz b/datasets/fr/emojibase.gz index 7a4f147..47ce87c 100644 Binary files a/datasets/fr/emojibase.gz and b/datasets/fr/emojibase.gz differ diff --git a/datasets/hu/cldr.gz b/datasets/hu/cldr.gz index eed0c53..053f60a 100644 Binary files a/datasets/hu/cldr.gz and b/datasets/hu/cldr.gz differ diff --git a/datasets/it/cldr.gz b/datasets/it/cldr.gz index f16677d..6a90807 100644 Binary files a/datasets/it/cldr.gz and b/datasets/it/cldr.gz differ diff --git a/datasets/ja/cldr-native.gz b/datasets/ja/cldr-native.gz index 7642b0b..9ea879a 100644 Binary files a/datasets/ja/cldr-native.gz and b/datasets/ja/cldr-native.gz differ diff --git a/datasets/ja/cldr.gz b/datasets/ja/cldr.gz index b5f4534..83f6b10 100644 Binary files a/datasets/ja/cldr.gz and b/datasets/ja/cldr.gz differ diff --git a/datasets/ja/emojibase.gz b/datasets/ja/emojibase.gz index ccd21c3..ac1d040 100644 Binary files a/datasets/ja/emojibase.gz and b/datasets/ja/emojibase.gz differ diff --git a/datasets/ko/cldr-native.gz b/datasets/ko/cldr-native.gz index 4e1592f..664ed2d 100644 Binary files a/datasets/ko/cldr-native.gz and b/datasets/ko/cldr-native.gz differ diff --git a/datasets/ko/cldr.gz b/datasets/ko/cldr.gz index bdd84fe..13a6809 100644 Binary files a/datasets/ko/cldr.gz and b/datasets/ko/cldr.gz differ diff --git a/datasets/lt/cldr.gz b/datasets/lt/cldr.gz index 03ff12b..c3d8353 100644 Binary files a/datasets/lt/cldr.gz and b/datasets/lt/cldr.gz differ diff --git a/datasets/ms/cldr.gz b/datasets/ms/cldr.gz index 0c22c3c..9bb3dfe 100644 Binary files a/datasets/ms/cldr.gz and b/datasets/ms/cldr.gz differ diff --git a/datasets/nb/cldr.gz b/datasets/nb/cldr.gz index ca097ed..5a28641 100644 Binary files a/datasets/nb/cldr.gz and b/datasets/nb/cldr.gz differ diff --git a/datasets/nl/cldr.gz b/datasets/nl/cldr.gz index 967033c..e34534f 100644 Binary files a/datasets/nl/cldr.gz and b/datasets/nl/cldr.gz differ diff --git a/datasets/pl/cldr.gz b/datasets/pl/cldr.gz index ca0a8fa..2d2c5e4 100644 Binary files a/datasets/pl/cldr.gz and b/datasets/pl/cldr.gz differ diff --git a/datasets/pt/cldr.gz b/datasets/pt/cldr.gz index fcfbbf1..a24082a 100644 Binary files a/datasets/pt/cldr.gz and b/datasets/pt/cldr.gz differ diff --git a/datasets/ru/cldr-native.gz b/datasets/ru/cldr-native.gz index 949bcdd..755b998 100644 Binary files a/datasets/ru/cldr-native.gz and b/datasets/ru/cldr-native.gz differ diff --git a/datasets/ru/cldr.gz b/datasets/ru/cldr.gz index 2070ecb..414140a 100644 Binary files a/datasets/ru/cldr.gz and b/datasets/ru/cldr.gz differ diff --git a/datasets/ru/emojibase.gz b/datasets/ru/emojibase.gz index 8889c37..0bdf0c1 100644 Binary files a/datasets/ru/emojibase.gz and b/datasets/ru/emojibase.gz differ diff --git a/datasets/sv/cldr.gz b/datasets/sv/cldr.gz index 53979c1..7f32ce8 100644 Binary files a/datasets/sv/cldr.gz and b/datasets/sv/cldr.gz differ diff --git a/datasets/th/cldr-native.gz b/datasets/th/cldr-native.gz index 68d992a..987ac71 100644 Binary files a/datasets/th/cldr-native.gz and b/datasets/th/cldr-native.gz differ diff --git a/datasets/th/cldr.gz b/datasets/th/cldr.gz index 16cefa7..1004db9 100644 Binary files a/datasets/th/cldr.gz and b/datasets/th/cldr.gz differ diff --git a/datasets/uk/cldr-native.gz b/datasets/uk/cldr-native.gz index 53c9e83..1ccdbf4 100644 Binary files a/datasets/uk/cldr-native.gz and b/datasets/uk/cldr-native.gz differ diff --git a/datasets/uk/cldr.gz b/datasets/uk/cldr.gz index f3d49f3..1eddadb 100644 Binary files a/datasets/uk/cldr.gz and b/datasets/uk/cldr.gz differ diff --git a/datasets/zh-hant/cldr-native.gz b/datasets/zh-hant/cldr-native.gz index 8e3da74..ea39c93 100644 Binary files a/datasets/zh-hant/cldr-native.gz and b/datasets/zh-hant/cldr-native.gz differ diff --git a/datasets/zh-hant/cldr.gz b/datasets/zh-hant/cldr.gz index 41fbc54..ba961ce 100644 Binary files a/datasets/zh-hant/cldr.gz and b/datasets/zh-hant/cldr.gz differ diff --git a/datasets/zh/cldr-native.gz b/datasets/zh/cldr-native.gz index 3b4da24..7f4f4a3 100644 Binary files a/datasets/zh/cldr-native.gz and b/datasets/zh/cldr-native.gz differ diff --git a/datasets/zh/cldr.gz b/datasets/zh/cldr.gz index a8b68c1..416ea9c 100644 Binary files a/datasets/zh/cldr.gz and b/datasets/zh/cldr.gz differ diff --git a/datasets/zh/emojibase.gz b/datasets/zh/emojibase.gz index f51eafb..9df2525 100644 Binary files a/datasets/zh/emojibase.gz and b/datasets/zh/emojibase.gz differ diff --git a/psalm.xml b/psalm.xml index 8fa273f..92ec0c6 100644 --- a/psalm.xml +++ b/psalm.xml @@ -1,12 +1,9 @@ diff --git a/scripts/build.php b/scripts/build.php index 2fe3898..3301d30 100755 --- a/scripts/build.php +++ b/scripts/build.php @@ -3,7 +3,8 @@ declare(strict_types=1); -const BASE_DIRECTORY = __DIR__ . '/../'; +const BASE_DIRECTORY = __DIR__ . '/..'; + require_once BASE_DIRECTORY . '/vendor/autoload.php'; use League\Emoji\Dataset\Dataset; diff --git a/src/Dataset/Dataset.php b/src/Dataset/Dataset.php index a205d92..62c5bac 100644 --- a/src/Dataset/Dataset.php +++ b/src/Dataset/Dataset.php @@ -27,7 +27,7 @@ final class Dataset extends ImmutableArrayIterator implements \ArrayAccess, \Cou public function __construct($emojis = [], string $index = 'hexcode') { $this->index = $index; - $normalized = Normalize::emojis($emojis, $index); + $normalized = Normalize::dataset($emojis, $index); parent::__construct($normalized, \ArrayIterator::ARRAY_AS_PROPS | \ArrayIterator::STD_PROP_LIST); } diff --git a/src/Dataset/Emoji.php b/src/Dataset/Emoji.php index 66a7b8f..7643d48 100644 --- a/src/Dataset/Emoji.php +++ b/src/Dataset/Emoji.php @@ -129,7 +129,7 @@ public function getSkin(int $tone = EmojibaseSkinsInterface::LIGHT_SKIN): ?self { /** @var ?static $skin */ $skin = \current($this->skins->filter(static function (Emoji $emoji) use ($tone) { - return \in_array($tone, (array) $emoji->tone, true); + return \in_array($tone, $emoji->tone, true); })->getArrayCopy()) ?: null; return $skin; @@ -151,7 +151,7 @@ public function render() return $rendered; } - return (string) ($rendered ?? ''); + return $rendered ?? ''; } public function setRenderer(callable $renderer): void diff --git a/src/Dataset/RuntimeDataset.php b/src/Dataset/RuntimeDataset.php index a4a27f8..32b651e 100644 --- a/src/Dataset/RuntimeDataset.php +++ b/src/Dataset/RuntimeDataset.php @@ -69,7 +69,7 @@ public static function unarchive(string $filename): Dataset try { /** @var ?Dataset $dataset */ - $dataset = \unserialize((string) $decoded, [ + $dataset = \unserialize($decoded, [ 'allowed_classes' => [Dataset::class, Emoji::class], ]); } catch (\Throwable $throwable) { diff --git a/src/Environment/AbstractEnvironment.php b/src/Environment/AbstractEnvironment.php new file mode 100644 index 0000000..075738d --- /dev/null +++ b/src/Environment/AbstractEnvironment.php @@ -0,0 +1,195 @@ + + * + * @psalm-readonly-allow-private-mutation + */ + protected $listenerData; + + /** + * @var array> + * + * @psalm-readonly-allow-private-mutation + */ + protected $renderersByClass = []; + + /** + * @var ExtensionInterface[] + * + * @psalm-readonly-allow-private-mutation + */ + protected $uninitializedExtensions = []; + + /** + * @throws \RuntimeException + */ + protected function assertUninitialized(string $message): void + { + if ($this->initialized) { + throw new \RuntimeException(\sprintf('%s The Environment has already been initialized.', $message)); + } + } + + /** + * {@inheritDoc} + */ + public function dispatch(object $event) + { + $this->initialize(); + + if ($this->eventDispatcher !== null) { + return $this->eventDispatcher->dispatch($event); + } + + foreach ($this->getListenersForEvent($event) as $listener) { + if ($event instanceof StoppableEventInterface && $event->isPropagationStopped()) { + return $event; + } + + $listener($event); + } + + return $event; + } + + public function getConfiguration(): ConfigurationInterface + { + $this->initializeConfiguration(); + + return $this->config->reader(); + } + + /** + * {@inheritDoc} + * + * @return ExtensionInterface[] + */ + public function getExtensions(): iterable + { + return $this->extensions; + } + + /** + * {@inheritDoc} + * + * @return iterable + */ + public function getListenersForEvent(object $event): iterable + { + if ($this->listenerData === null) { + /** @var PrioritizedList $listenerData */ + $listenerData = new PrioritizedList(); + $this->listenerData = $listenerData; + } + + /** @var ListenerData $listenerData */ + foreach ($this->listenerData as $listenerData) { + if (! \is_a($event, $listenerData->getEvent())) { + continue; + } + + yield function (object $event) use ($listenerData): void { + $this->initialize(); + + \call_user_func($listenerData->getListener(), $event); + }; + } + } + + /** + * {@inheritDoc} + */ + public function getRenderersForClass(string $nodeClass): iterable + { + $this->initialize(); + + // If renderers are defined for this specific class, return them immediately + if (isset($this->renderersByClass[$nodeClass])) { + return $this->renderersByClass[$nodeClass]; + } + + while (\class_exists($parent = $parent ?? $nodeClass) && ($parent = \get_parent_class($parent))) { + if (! isset($this->renderersByClass[$parent])) { + continue; + } + + // "Cache" this result to avoid future loops + return $this->renderersByClass[$nodeClass] = $this->renderersByClass[$parent]; + } + + return []; + } + + public function getRuntimeDataset(string $index = 'hexcode'): RuntimeDataset + { + $this->initialize(); + + if ($this->dataset === null) { + $this->dataset = new RuntimeDataset($this->getConfiguration()); + } + + return $this->dataset->indexBy($index); + } + + protected function initialize(): void + { + if ($this->initialized) { + return; + } + + $this->initializeConfiguration(); + + $this->initializeExtensions(); + + $this->initialized = true; + } + + abstract protected function initializeConfiguration(): void; + + abstract protected function initializeExtensions(): void; + + public function setEventDispatcher(EventDispatcherInterface $dispatcher): void + { + $this->eventDispatcher = $dispatcher; + } +} diff --git a/src/Environment/Environment.php b/src/Environment/Environment.php index 161b47e..4fd2b00 100644 --- a/src/Environment/Environment.php +++ b/src/Environment/Environment.php @@ -18,12 +18,6 @@ use League\Configuration\Configuration; use League\Configuration\ConfigurationAwareInterface; -use League\Configuration\ConfigurationInterface; -use Nette\Schema\Expect; -use Nette\Schema\Schema; -use Psr\EventDispatcher\EventDispatcherInterface; -use Psr\EventDispatcher\StoppableEventInterface; -use League\Emoji\Dataset\RuntimeDataset; use League\Emoji\EmojiConverterInterface; use League\Emoji\Emojibase\EmojibaseDatasetInterface; use League\Emoji\Emojibase\EmojibaseShortcodeInterface; @@ -34,60 +28,18 @@ use League\Emoji\Extension\ExtensionInterface; use League\Emoji\Renderer\NodeRendererInterface; use League\Emoji\Util\PrioritizedList; +use Nette\Schema\Expect; +use Nette\Schema\Schema; -final class Environment implements EnvironmentBuilderInterface +class Environment extends AbstractEnvironment implements EnvironmentInterface, EnvironmentBuilderInterface { - /** @var Configuration */ - private $config; - - /** @var ?RuntimeDataset */ - private $dataset; - - /** @var ?EventDispatcherInterface */ - private $eventDispatcher; - - /** - * @var ExtensionInterface[] - * - * @psalm-readonly-allow-private-mutation - */ - private $extensions = []; - - /** - * @var bool - * - * @psalm-readonly-allow-private-mutation - */ - private $initialized = false; - /** - * @var ?PrioritizedList - * - * @psalm-readonly-allow-private-mutation - */ - private $listenerData; - - /** - * @var array> - * - * @psalm-readonly-allow-private-mutation - */ - private $renderersByClass = []; - - /** - * @var ExtensionInterface[] - * - * @psalm-readonly-allow-private-mutation - */ - private $uninitializedExtensions = []; - - /** - * @param array $config + * @param array $configuration */ - public function __construct(array $config = []) + public function __construct(array $configuration = []) { $this->config = new Configuration(); - $this->config->merge($config); + $this->config->merge($configuration); } /** @@ -104,6 +56,14 @@ public static function create(array $configuration = []): self return $environment; } + /** + * @return ExtensionInterface[] + */ + protected static function defaultExtensions(): iterable + { + return [new EmojiCoreExtension()]; + } + /** * @param string|string[] $value * @@ -118,14 +78,6 @@ public static function normalizeConvert($value): array return \array_fill_keys(EmojiConverterInterface::TYPES, $value); } - /** - * @return ExtensionInterface[] - */ - protected static function defaultExtensions(): iterable - { - return [new EmojiCoreExtension()]; - } - public static function normalizeLocale(string $locale): string { /** @var string[] $normalized */ @@ -235,130 +187,6 @@ public function addRenderer(string $nodeClass, NodeRendererInterface $renderer, return $this; } - /** - * @throws \RuntimeException - */ - protected function assertUninitialized(string $message): void - { - if ($this->initialized) { - throw new \RuntimeException(\sprintf('%s The Environment has already been initialized.', $message)); - } - } - - /** - * {@inheritDoc} - */ - public function dispatch(object $event) - { - $this->initialize(); - - if ($this->eventDispatcher !== null) { - return $this->eventDispatcher->dispatch($event); - } - - foreach ($this->getListenersForEvent($event) as $listener) { - if ($event instanceof StoppableEventInterface && $event->isPropagationStopped()) { - return $event; - } - - $listener($event); - } - - return $event; - } - - public function getConfiguration(): ConfigurationInterface - { - $this->initializeConfiguration(); - - return $this->config->reader(); - } - - public function getRuntimeDataset(string $index = 'hexcode'): RuntimeDataset - { - $this->initialize(); - - if ($this->dataset === null) { - $this->dataset = new RuntimeDataset($this->getConfiguration()); - } - - return $this->dataset->indexBy($index); - } - - /** - * {@inheritDoc} - * - * @return ExtensionInterface[] - */ - public function getExtensions(): iterable - { - return $this->extensions; - } - - /** - * {@inheritDoc} - * - * @return iterable - */ - public function getListenersForEvent(object $event): iterable - { - if ($this->listenerData === null) { - /** @var PrioritizedList $listenerData */ - $listenerData = new PrioritizedList(); - $this->listenerData = $listenerData; - } - - /** @var ListenerData $listenerData */ - foreach ($this->listenerData as $listenerData) { - if (! \is_a($event, $listenerData->getEvent())) { - continue; - } - - yield function (object $event) use ($listenerData): void { - $this->initialize(); - - \call_user_func($listenerData->getListener(), $event); - }; - } - } - - /** - * {@inheritDoc} - */ - public function getRenderersForClass(string $nodeClass): iterable - { - $this->initialize(); - - // If renderers are defined for this specific class, return them immediately - if (isset($this->renderersByClass[$nodeClass])) { - return $this->renderersByClass[$nodeClass]; - } - - while (\class_exists($parent = (string) ($parent ?? $nodeClass)) && ($parent = \get_parent_class($parent))) { - if (! isset($this->renderersByClass[$parent])) { - continue; - } - - // "Cache" this result to avoid future loops - return $this->renderersByClass[$nodeClass] = $this->renderersByClass[$parent]; - } - - return []; - } - - protected function initialize(): void - { - if ($this->initialized) { - return; - } - - $this->initializeConfiguration(); - - $this->initializeExtensions(); - - $this->initialized = true; - } - protected function initializeConfiguration(): void { $this->config->addSchema('allow_unsafe_links', Expect::bool(true)); @@ -366,7 +194,7 @@ protected function initializeConfiguration(): void $default = EmojiConverterInterface::UNICODE; /** @var string[] $conversionTypes */ - $conversionTypes = (array) EmojiConverterInterface::TYPES; + $conversionTypes = EmojiConverterInterface::TYPES; foreach ($this->extensions as $extension) { if ($extension instanceof ConfigureConversionTypesInterface) { @@ -378,7 +206,7 @@ protected function initializeConfiguration(): void $structuredConversionTypes = Expect::structure(\array_combine( EmojiConverterInterface::TYPES, - \array_map(static function (string $conversionType) use ($conversionTypes, $default): Schema { + \array_map(static function (/** @scrutinizer ignore-unused */ string $conversionType) use ($conversionTypes, $default): Schema { return Expect::anyOf(false, ...$conversionTypes)->default($default)->nullable(); }, EmojiConverterInterface::TYPES) ))->castTo('array'); @@ -417,9 +245,4 @@ protected function initializeExtensions(): void } } } - - public function setEventDispatcher(EventDispatcherInterface $dispatcher): void - { - $this->eventDispatcher = $dispatcher; - } } diff --git a/src/Environment/EnvironmentBuilderInterface.php b/src/Environment/EnvironmentBuilderInterface.php index f5e31a4..83b3e23 100644 --- a/src/Environment/EnvironmentBuilderInterface.php +++ b/src/Environment/EnvironmentBuilderInterface.php @@ -19,7 +19,7 @@ /** * Interface for building the Environment with any extensions, parsers, listeners, etc. that it may need */ -interface EnvironmentBuilderInterface extends EnvironmentInterface +interface EnvironmentBuilderInterface { /** * Registers the given event listener diff --git a/src/Environment/EnvironmentInterface.php b/src/Environment/EnvironmentInterface.php index 747379d..f35c47f 100644 --- a/src/Environment/EnvironmentInterface.php +++ b/src/Environment/EnvironmentInterface.php @@ -14,11 +14,11 @@ namespace League\Emoji\Environment; use League\Configuration\ConfigurationProviderInterface; -use Psr\EventDispatcher\EventDispatcherInterface; -use Psr\EventDispatcher\ListenerProviderInterface; use League\Emoji\Dataset\RuntimeDataset; use League\Emoji\Extension\ExtensionInterface; use League\Emoji\Renderer\NodeRendererInterface; +use Psr\EventDispatcher\EventDispatcherInterface; +use Psr\EventDispatcher\ListenerProviderInterface; interface EnvironmentInterface extends ConfigurationProviderInterface, EventDispatcherInterface, ListenerProviderInterface { diff --git a/src/Extension/EmojiCoreProcessor.php b/src/Extension/EmojiCoreProcessor.php index 2c67429..33b6505 100644 --- a/src/Extension/EmojiCoreProcessor.php +++ b/src/Extension/EmojiCoreProcessor.php @@ -27,69 +27,69 @@ final class EmojiCoreProcessor implements ConfigurationAwareInterface public function __invoke(DocumentParsedEvent $e): void { - /** @var string[] $excludedShortcodes */ - $excludedShortcodes = $this->config->get('exclude/shortcodes'); - - /** @var ?int $presentation */ - $presentation = $this->config->get('presentation'); - - // Ensure emojis are set to the correct stringable type. + // Ensure emoji content is set to the correct conversion type. foreach ($e->getDocument()->getNodes() as $node) { if (! ($node instanceof Emoji)) { continue; } - $literal = null; - $type = $node->getParsedType(); - $configPath = 'convert.' . (EmojiConverterInterface::TYPES[$type] ?? ''); - - /** @var ?int $conversionType */ - $conversionType = null; - - if ($this->config->exists($configPath) && ($configType = (string) ($this->config->get($configPath) ?? ''))) { - $index = \array_search($configType, EmojiConverterInterface::TYPES, true); - if (\is_int($index)) { - $conversionType = $index; - } + $content = $this->getEmojiContent($node); + if ($content !== null) { + $node->setContent($content); } + } + } - // If the conversion type isn't one of the core Lexer:TYPES, then do nothing. - // It should be handled by a different extension/processor. - if ($conversionType === null) { - continue; - } - - switch ($conversionType) { - case EmojiLexer::T_EMOTICON: - $literal = $node->emoticon; - break; - - case EmojiLexer::T_HTML_ENTITY: - $literal = $node->htmlEntity; - break; + protected function getConversionType(Emoji $emoji): ?int + { + $type = $emoji->getParsedType(); + $configPath = 'convert.' . (EmojiConverterInterface::TYPES[$type] ?? ''); - case EmojiLexer::T_SHORTCODE: - if ($shortcode = $node->getShortcode($excludedShortcodes, true)) { - $literal = $shortcode; - } + if ($this->config->exists($configPath) && ($configType = (string) ($this->config->get($configPath) ?? ''))) { + $index = \array_search($configType, EmojiConverterInterface::TYPES, true); + if (\is_int($index)) { + return $index; + } + } - break; + return null; + } - case EmojiLexer::T_TEXT: - case EmojiLexer::T_UNICODE: - if (($presentation ?? $node->type) === EmojibaseDatasetInterface::TEXT && $node->text) { - $literal = $node->text; - } else { - $literal = $node->emoji ?? $node->unicode; - } + protected function getEmojiContent(Emoji $emoji): ?string + { + $content = null; + + // If the conversion type isn't one of the core Lexer:TYPES, then do nothing. + // It should be handled by a different extension/processor. + switch ($this->getConversionType($emoji)) { + case EmojiLexer::T_EMOTICON: + $content = $emoji->emoticon; + break; + + case EmojiLexer::T_HTML_ENTITY: + $content = $emoji->htmlEntity; + break; + + case EmojiLexer::T_SHORTCODE: + $content = $emoji->getShortcode((array) $this->config->get('exclude/shortcodes'), true); + break; + + case EmojiLexer::T_TEXT: + case EmojiLexer::T_UNICODE: + $content = $this->getEmojiUnicode($emoji); + break; + } - break; - } + return $content; + } - if ($literal !== null) { - $node->setContent($literal); - } + protected function getEmojiUnicode(Emoji $emoji): ?string + { + if (($this->config->get('presentation') ?? $emoji->type) === EmojibaseDatasetInterface::TEXT && $emoji->text) { + return $emoji->text; } + + return $emoji->emoji ?? $emoji->unicode; } public function setConfiguration(ConfigurationInterface $configuration): void diff --git a/src/Extension/Twemoji/TwemojiExtension.php b/src/Extension/Twemoji/TwemojiExtension.php index cb61206..966e9aa 100644 --- a/src/Extension/Twemoji/TwemojiExtension.php +++ b/src/Extension/Twemoji/TwemojiExtension.php @@ -6,11 +6,11 @@ use Dflydev\DotAccessData\Data; use League\Configuration\ConfigurationBuilderInterface; -use Nette\Schema\Expect; use League\Emoji\Environment\EnvironmentBuilderInterface; use League\Emoji\Event\DocumentParsedEvent; use League\Emoji\Extension\ConfigurableExtensionInterface; use League\Emoji\Extension\ConfigureConversionTypesInterface; +use Nette\Schema\Expect; final class TwemojiExtension implements ConfigurableExtensionInterface, ConfigureConversionTypesInterface { diff --git a/src/Extension/Twemoji/TwemojiProcessor.php b/src/Extension/Twemoji/TwemojiProcessor.php index 5e372da..94dd6ce 100644 --- a/src/Extension/Twemoji/TwemojiProcessor.php +++ b/src/Extension/Twemoji/TwemojiProcessor.php @@ -10,6 +10,7 @@ use League\Emoji\Event\DocumentParsedEvent; use League\Emoji\Node\Emoji; use League\Emoji\Node\Image; +use League\Emoji\Node\Node; use League\Emoji\Util\HtmlElement; /** @@ -29,71 +30,114 @@ final class TwemojiProcessor implements ConfigurationAwareInterface public function __invoke(DocumentParsedEvent $e): void { - $urlBase = (string) $this->config->get('twemoji.urlBase'); + foreach ($e->getDocument()->getNodes() as $node) { + // Only convert types that are set to "twemoji". + if (! ($node instanceof Emoji) || $node->hexcode === null || $this->getConversionType($node) !== self::CONVERSION_TYPE) { + continue; + } - $classPrefix = (string) $this->config->get('twemoji.classPrefix'); + $twemoji = $this->getTwemojiImage($node); - /** @var int|float|string|null $size */ - $size = $this->config->get('twemoji.size'); + $node->replaceWith($twemoji); + } + } - $inline = (bool) $this->config->get('twemoji.inline'); + protected function addClassesToNode(Node $node, ?string ...$classes): void + { + $prefix = $this->getClassPrefix(); - $type = (string) $this->config->get('twemoji.type'); + $classes = \array_map(static function (string $class) use ($prefix) { + return HtmlElement::cleanCssIdentifier($prefix . $class); + }, \array_filter($classes)); - foreach ($e->getDocument()->getNodes() as $node) { - if (! ($node instanceof Emoji) || $node->hexcode === null) { - continue; - } + $classes = \array_unique(\array_filter(\array_merge($this->getClasses(), $classes))); - $parsedType = $node->getParsedType(); - $configPath = 'convert.' . (EmojiConverterInterface::TYPES[$parsedType] ?? ''); - $conversionType = null; + $node->addClass(...$classes); + } - if ($this->config->exists($configPath)) { - $conversionType = (string) ($this->config->get($configPath) ?? ''); - } + /** @return string[] */ + protected function getClasses(): array + { + /** @var string[] $classes */ + $classes = (array) $this->config->get('twemoji.classes'); - // Only convert types that are set to "twemoji". - if ($conversionType !== self::CONVERSION_TYPE) { - continue; - } + return $classes; + } + + protected function getClassPrefix(): string + { + return (string) $this->config->get('twemoji.classPrefix'); + } + + protected function getConversionType(Emoji $emoji): ?string + { + $parsedType = $emoji->getParsedType(); + $configPath = 'convert.' . (EmojiConverterInterface::TYPES[$parsedType] ?? ''); + $conversionType = null; + if ($this->config->exists($configPath)) { + $conversionType = (string) ($this->config->get($configPath) ?? ''); + } + + return $conversionType; + } - $url = \sprintf( - '%s/%s/%s.%s', - $urlBase, - $type === 'png' ? '72x72' : 'svg', - \strtolower($node->hexcode), - $type - ); + protected function getImageType(): string + { + return (string) $this->config->get('twemoji.type'); + } - $image = new Image($node->getParsedValue(), $node, $url, $node->annotation, $node->annotation); + /** @return int|float|string|null */ + protected function getSize() + { + /** @var int|float|string|null $size */ + $size = $this->config->get('twemoji.size'); - /** @var string[] $classes */ - $classes = (array) $this->config->get('twemoji.classes'); - $image->addClass(...$classes); + return $size; + } - if ($node->annotation !== null) { - $image->addClass(HtmlElement::cleanCssIdentifier($classPrefix - ? $classPrefix . $node->annotation - : $node->annotation)); - } + protected function getTwemojiImage(Emoji $emoji): Image + { + $image = new Image($emoji->getParsedValue(), $emoji, $this->getUrl((string) $emoji->hexcode), $emoji->annotation, $emoji->annotation); - // Ensure image isn't massive and relative to its surroundings by inlining it. - if ($inline && $size === null) { - $image->setAttribute('style', 'width: 1em; height: 1em; vertical-align: middle;'); - } elseif ($inline && $size !== null) { - if (! \is_string($size)) { - $size .= 'em'; - } - - $image->setAttribute('style', \sprintf('width: %s; height: %s; vertical-align: middle;', $size, $size)); - } elseif ($size !== null) { - $image->setAttribute('height', (string) $size); - $image->setAttribute('width', (string) $size); + $this->addClassesToNode($image, $emoji->annotation); + + // Ensure image isn't massive and relative to its surroundings by inlining it. + $size = $this->getSize(); + if ($this->isInline()) { + if ($size === null) { + $size = '1em'; + } elseif (! \is_string($size)) { + $size .= 'em'; } - $node->replaceWith($image); + $image->setAttribute('style', \sprintf('width: %s; height: %s; vertical-align: middle;', $size, $size)); + } elseif ($size !== null) { + $image->setAttribute('height', (string) $size); + $image->setAttribute('width', (string) $size); } + + return $image; + } + + protected function getUrl(string $hexcode): string + { + return \sprintf( + '%s/%s/%s.%s', + $this->getUrlBase(), + ($imageType = $this->getImageType()) === 'png' ? '72x72' : 'svg', + \strtolower($hexcode), + $imageType + ); + } + + protected function getUrlBase(): string + { + return (string) $this->config->get('twemoji.urlBase'); + } + + protected function isInline(): bool + { + return (bool) $this->config->get('twemoji.inline'); } public function setConfiguration(ConfigurationInterface $configuration): void diff --git a/src/Lexer/EmojiLexer.php b/src/Lexer/EmojiLexer.php index 250674e..d6f306a 100644 --- a/src/Lexer/EmojiLexer.php +++ b/src/Lexer/EmojiLexer.php @@ -98,6 +98,8 @@ protected function getNonCatchablePatterns() /** * {@inheritDoc} * + * @param string $value + * * @return int * * @noinspection PhpParameterByRefIsNotUsedAsReferenceInspection diff --git a/src/Node/Document.php b/src/Node/Document.php index 1c755a7..6257ee5 100644 --- a/src/Node/Document.php +++ b/src/Node/Document.php @@ -18,7 +18,7 @@ class Document { - /** @var array */ + /** @var array */ protected $nodes = []; public function appendNode(Node $node): void @@ -61,7 +61,7 @@ public function replaceNode(Node $oldNode, ?Node $newNode = null): void $replacement[] = $newNode; } - \array_splice($this->nodes, (int) $index, 1, $replacement); + \array_splice($this->nodes, /** @scrutinizer ignore-type */ $index, 1, $replacement); $this->nodes = \array_values($this->nodes); } diff --git a/src/Node/Emoji.php b/src/Node/Emoji.php index 4d92567..06a97f1 100644 --- a/src/Node/Emoji.php +++ b/src/Node/Emoji.php @@ -90,7 +90,7 @@ public function getSkin(int $tone = EmojibaseSkinsInterface::LIGHT_SKIN): ?self return null; } - $property = (string) (EmojiConverter::TYPES[$this->parsedType] ?? EmojiConverter::UNICODE); + $property = EmojiConverter::TYPES[$this->parsedType] ?? EmojiConverter::UNICODE; $value = (string) ($skin->$property ?? $this->parsedValue); return new self($this->parsedType, $value, $skin); diff --git a/src/Parser/EmojiParser.php b/src/Parser/EmojiParser.php index 8035f3b..bcb9c2f 100644 --- a/src/Parser/EmojiParser.php +++ b/src/Parser/EmojiParser.php @@ -11,6 +11,7 @@ use League\Emoji\Lexer\EmojiLexer; use League\Emoji\Node\Document; use League\Emoji\Node\Emoji; +use League\Emoji\Node\Node; use League\Emoji\Node\Text; final class EmojiParser implements EmojiParserInterface @@ -57,31 +58,38 @@ public function parse(string $input): Document $this->lexer->moveNext(); - /** @var array $token */ - $token = $this->lexer->token; + $node = $this->parseToken(); - $value = ''; - if (((string) $token['value']) !== '') { - $value = (string) ($token['value'] ?? ''); - } + $document->appendNode($node); + } - $type = (int) $token['type']; + $this->environment->dispatch(new DocumentParsedEvent($document)); - $node = null; - if ($type !== EmojiLexer::T_TEXT && \in_array($type, EmojiLexer::TYPES, true)) { - $node = $this->parseEmoji($type, $value); - } + return $document; + } - if ($node === null) { - $node = $this->parseText($value); - } + protected function parseToken(): Node + { + /** @var array $token */ + $token = $this->lexer->token; - $document->appendNode($node); + $value = ''; + if (((string) $token['value']) !== '') { + $value = (string) ($token['value'] ?? ''); } - $this->environment->dispatch(new DocumentParsedEvent($document)); + $type = (int) $token['type']; - return $document; + $node = null; + if ($type !== EmojiLexer::T_TEXT && \in_array($type, EmojiLexer::TYPES, true)) { + $node = $this->parseEmoji($type, $value); + } + + if ($node === null) { + $node = $this->parseText($value); + } + + return $node; } protected function parseEmoji(int $type, string $value): ?Emoji diff --git a/src/Renderer/ImageRenderer.php b/src/Renderer/ImageRenderer.php index cb82939..07efa02 100644 --- a/src/Renderer/ImageRenderer.php +++ b/src/Renderer/ImageRenderer.php @@ -39,8 +39,6 @@ final class ImageRenderer implements NodeRendererInterface, ConfigurationAwareIn * @param Node $node * * {@inheritDoc} - * - * @psalm-suppress MoreSpecificImplementedParamType */ public function render(Node $node) { @@ -53,7 +51,10 @@ public function render(Node $node) $node->setAttribute('src', ''); } - return new HtmlElement('img', $node->getAttributes()->export(), '', true); + /** @var array $attributes */ + $attributes = $node->getAttributes()->export(); + + return new HtmlElement('img', $attributes, '', true); } public function setConfiguration(ConfigurationInterface $configuration): void diff --git a/src/Util/HtmlElement.php b/src/Util/HtmlElement.php index dc8e17a..fe3a5f7 100644 --- a/src/Util/HtmlElement.php +++ b/src/Util/HtmlElement.php @@ -29,7 +29,7 @@ class HtmlElement implements \Stringable /** @var string */ protected $tagName; - /** @var array */ + /** @var array */ protected $attributes = []; /** @var HtmlElement|HtmlElement[]|string */ @@ -40,7 +40,7 @@ class HtmlElement implements \Stringable /** * @param string $tagName Name of the HTML tag - * @param array $attributes Array of attributes (values should be unescaped) + * @param array $attributes Array of attributes (values should be unescaped) * @param HtmlElement|HtmlElement[]|string|null $contents Inner contents, pre-escaped if needed * @param bool $selfClosing Whether the tag is self-closing */ @@ -50,8 +50,7 @@ public function __construct(string $tagName, array $attributes = [], $contents = $this->selfClosing = $selfClosing; /** - * @var string $name - * @var string|bool $value + * @var bool|string $value */ foreach ($attributes as $name => $value) { $this->setAttribute($name, $value); @@ -124,7 +123,6 @@ public function addClass(string ...$classes): self }, $classes); // Flatten classes back into a single level array. - /** @var string[] $classes */ $classes = \array_reduce( $classes, /** @@ -142,13 +140,13 @@ static function (array $a, array $v): array { // Filter out empty items and ensure classes are unique. $classes = \array_filter(\array_unique($classes)); - // Normalize the classes. - $classes = \array_map('\League\Emoji\Util\HtmlElement::cleanCssIdentifier', \array_map('trim', $classes)); + // Remove trailing spaces and normalize the class. + $classes = \array_map(static function (string $class): string { + return self::cleanCssIdentifier(\trim($class)); + }, $classes); // Convert the array of classes back into a string. - $classes = \trim(\implode(' ', $classes)); - - $this->attributes['class'] = $classes; + $this->attributes['class'] = \trim(\implode(' ', $classes)); return $this; } @@ -159,15 +157,31 @@ public function getTagName(): string } /** - * @return array + * @return array */ - public function getAllAttributes(): array + public function getAttributes(): array { return $this->attributes; } + public function getAttributesAsString(): string + { + $attributes = ''; + foreach ($this->attributes as $key => $value) { + if ($value === true) { + $attributes .= ' ' . $key; + } elseif ($value === false) { + continue; + } else { + $attributes .= ' ' . $key . '="' . Xml::escape($value) . '"'; + } + } + + return $attributes; + } + /** - * @return string|bool|null + * @return bool|string|null */ public function getAttribute(string $key) { @@ -218,8 +232,6 @@ public function getContents(bool $asString = true) * Sets the inner contents of the tag (must be pre-escaped if needed) * * @param HtmlElement|HtmlElement[]|string|null $contents - * - * @return $this */ public function setContents($contents): self { @@ -230,17 +242,7 @@ public function setContents($contents): self public function __toString(): string { - $result = '<' . $this->tagName; - - foreach ($this->attributes as $key => $value) { - if ($value === true) { - $result .= ' ' . $key; - } elseif ($value === false) { - continue; - } else { - $result .= ' ' . $key . '="' . Xml::escape($value) . '"'; - } - } + $result = '<' . $this->tagName . $this->getAttributesAsString(); if ($this->contents !== '') { $result .= '>' . $this->getContentsAsString() . 'tagName . '>'; diff --git a/src/Util/Normalize.php b/src/Util/Normalize.php index 14e70b0..61c6dee 100644 --- a/src/Util/Normalize.php +++ b/src/Util/Normalize.php @@ -31,7 +31,31 @@ final class Normalize * * @return Emoji[] */ - public static function emojis($emojis = [], string $index = 'hexcode', array &$dataset = []): array + public static function dataset($emojis = [], string $index = 'hexcode', array &$dataset = []): array + { + foreach (self::emojis($emojis) as $emoji) { + /** @var string[] $keys */ + $keys = \array_filter((array) $emoji->$index); + foreach ($keys as $k) { + if (isset($dataset[$k])) { + continue; + } + + $dataset[$k] = $emoji; + + self::dataset($emoji->skins, $index, $dataset); + } + } + + return $dataset; + } + + /** + * @param mixed $emojis + * + * @return Emoji[] + */ + public static function emojis($emojis = []): array { if ($emojis instanceof Emoji) { $emojis = [$emojis]; @@ -57,21 +81,7 @@ public static function emojis($emojis = [], string $index = 'hexcode', array &$d $normalized[] = $emoji; } - foreach ($normalized as $emoji) { - /** @var string[] $keys */ - $keys = \array_filter((array) $emoji->$index); - foreach ($keys as $k) { - if (isset($dataset[$k])) { - continue; - } - - $dataset[$k] = $emoji; - - self::emojis($emoji->skins, $index, $dataset); - } - } - - return $dataset; + return $normalized; } /** @@ -115,7 +125,7 @@ public static function setType(&$value, string $type): bool } /** - * @param string|array $shortcode + * @param string|array|null $shortcode * * @return string[] */ @@ -123,10 +133,10 @@ public static function shortcodes($shortcode): array { $normalized = []; - /** @var string|string[] $shortcodes */ + /** @var string|array|null $shortcodes */ foreach (\func_get_args() as $shortcodes) { $normalized = \array_merge($normalized, \array_map(static function ($shortcode) { - return \preg_replace('/[^a-z0-9-]/', '-', \strtolower(\trim((string) $shortcode, ':(){}[]'))); + return \preg_replace('/[^a-z0-9-]/', '-', \strtolower(\trim($shortcode ?? '', ':(){}[]'))); }, (array) $shortcodes)); } diff --git a/src/Util/PrioritizedList.php b/src/Util/PrioritizedList.php index a48cda3..38b3acf 100644 --- a/src/Util/PrioritizedList.php +++ b/src/Util/PrioritizedList.php @@ -19,8 +19,8 @@ /** * @internal * - * @phpstan-template T - * @phpstan-implements \IteratorAggregate + * @template T + * @implements \IteratorAggregate */ final class PrioritizedList implements \IteratorAggregate { diff --git a/tests/unit/Dataset/DatasetTest.php b/tests/unit/Dataset/DatasetTest.php index a33b9ea..f61788e 100644 --- a/tests/unit/Dataset/DatasetTest.php +++ b/tests/unit/Dataset/DatasetTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Dataset; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Dataset; use League\Emoji\Dataset\Emoji; +use PHPUnit\Framework\TestCase; class DatasetTest extends TestCase { diff --git a/tests/unit/Dataset/EmojiTest.php b/tests/unit/Dataset/EmojiTest.php index 4b4aa44..a29e43f 100644 --- a/tests/unit/Dataset/EmojiTest.php +++ b/tests/unit/Dataset/EmojiTest.php @@ -4,8 +4,8 @@ namespace League\Emoji\Tests\Unit\Dataset; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Emoji; +use PHPUnit\Framework\TestCase; class EmojiTest extends TestCase { @@ -423,9 +423,9 @@ public function testSerialize(): void // Apparently serialization spits out something a bit different in PHP 7.4+. if (\version_compare(PHP_VERSION, '7.4.0', '>=')) { - $expected = '2a93a7f9ab965d28dbe4ed76edeb0561007509451f67425b5bc9afcde2e90ade'; + $expected = '3b1c59c978afdb1c035431def8792a5a463bb5e4a02d8e5a66c67f59b2a29252'; } else { - $expected = '54f089d423c2116479b0ee3df084ce4628af4686afc58a8d2cae5bbe6d62b161'; + $expected = 'f4f4e4e3d7bb23b81faffa98598f85e7f020c3268e52792a5d938db53edfd2f4'; } $this->assertSame($expected, $actual); diff --git a/tests/unit/Dataset/RuntimeDatasetTest.php b/tests/unit/Dataset/RuntimeDatasetTest.php index 890adf4..2c69367 100644 --- a/tests/unit/Dataset/RuntimeDatasetTest.php +++ b/tests/unit/Dataset/RuntimeDatasetTest.php @@ -5,7 +5,6 @@ namespace League\Emoji\Tests\Unit\Dataset; use League\Configuration\Configuration; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Dataset; use League\Emoji\Dataset\Emoji; use League\Emoji\Dataset\RuntimeDataset; @@ -14,6 +13,7 @@ use League\Emoji\Exception\FileNotFoundException; use League\Emoji\Exception\MalformedArchiveException; use League\Emoji\Exception\UnarchiveException; +use PHPUnit\Framework\TestCase; class RuntimeDatasetTest extends TestCase { diff --git a/tests/unit/EmojiConverterTest.php b/tests/unit/EmojiConverterTest.php index cd50267..e518c91 100644 --- a/tests/unit/EmojiConverterTest.php +++ b/tests/unit/EmojiConverterTest.php @@ -5,7 +5,6 @@ namespace League\Emoji\Tests\Unit; use League\Configuration\Exception\InvalidConfigurationException; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Dataset; use League\Emoji\Dataset\RuntimeDataset; use League\Emoji\EmojiConverter; @@ -18,6 +17,7 @@ use League\Emoji\Node\Document; use League\Emoji\Parser\EmojiParserInterface; use League\Emoji\Renderer\DocumentRendererInterface; +use PHPUnit\Framework\TestCase; class EmojiConverterTest extends TestCase { @@ -232,7 +232,7 @@ public function renderDocument(Document $document): string $this->assertSame($document, $parser->parse($input)); $this->assertSame($input, $renderer->renderDocument($document)); - $this->assertSame($input, (string) $converter->convert($input)); + $this->assertSame($input, $converter->convert($input)); } /** @param array $config */ @@ -240,7 +240,7 @@ protected function convert(string $input, array $config = []): string { $converter = EmojiConverter::create($config); - return (string) $converter->convert($input); + return $converter->convert($input); } /** diff --git a/tests/unit/Environment/EnvironmentTest.php b/tests/unit/Environment/EnvironmentTest.php index 69a2c4f..ca0dcbc 100644 --- a/tests/unit/Environment/EnvironmentTest.php +++ b/tests/unit/Environment/EnvironmentTest.php @@ -18,8 +18,6 @@ use League\Configuration\ConfigurationInterface; use League\Configuration\MutableConfigurationInterface; -use PHPUnit\Framework\TestCase; -use Psr\EventDispatcher\EventDispatcherInterface; use League\Emoji\Environment\Environment; use League\Emoji\Event\AbstractEvent; use League\Emoji\Extension\ExtensionInterface; @@ -31,6 +29,8 @@ use League\Emoji\Tests\Unit\Node\Node1; use League\Emoji\Tests\Unit\Node\Node3; use League\Emoji\Util\ArrayCollection; +use PHPUnit\Framework\TestCase; +use Psr\EventDispatcher\EventDispatcherInterface; class EnvironmentTest extends TestCase { diff --git a/tests/unit/Event/DocumentParsedEventTest.php b/tests/unit/Event/DocumentParsedEventTest.php index 28c3d9f..9c46005 100644 --- a/tests/unit/Event/DocumentParsedEventTest.php +++ b/tests/unit/Event/DocumentParsedEventTest.php @@ -13,11 +13,11 @@ namespace League\Emoji\Tests\Unit\Event; -use PHPUnit\Framework\TestCase; use League\Emoji\Environment\Environment; use League\Emoji\Event\DocumentParsedEvent; use League\Emoji\Node\Document; use League\Emoji\Parser\EmojiParser; +use PHPUnit\Framework\TestCase; final class DocumentParsedEventTest extends TestCase { diff --git a/tests/unit/Event/DocumentPreParsedEventTest.php b/tests/unit/Event/DocumentPreParsedEventTest.php index d8001d0..362d7fa 100644 --- a/tests/unit/Event/DocumentPreParsedEventTest.php +++ b/tests/unit/Event/DocumentPreParsedEventTest.php @@ -13,11 +13,11 @@ namespace League\Emoji\Tests\Unit\Event; -use PHPUnit\Framework\TestCase; use League\Emoji\Environment\Environment; use League\Emoji\Event\DocumentPreParsedEvent; use League\Emoji\Node\Document; use League\Emoji\Parser\EmojiParser; +use PHPUnit\Framework\TestCase; final class DocumentPreParsedEventTest extends TestCase { diff --git a/tests/unit/Event/DocumentRenderedEventTest.php b/tests/unit/Event/DocumentRenderedEventTest.php index b5d23ff..5b90f56 100644 --- a/tests/unit/Event/DocumentRenderedEventTest.php +++ b/tests/unit/Event/DocumentRenderedEventTest.php @@ -13,11 +13,11 @@ namespace League\Emoji\Tests\Unit\Event; -use PHPUnit\Framework\TestCase; use League\Emoji\Environment\Environment; use League\Emoji\Event\DocumentRenderedEvent; use League\Emoji\Node\Document; use League\Emoji\Renderer\DocumentRenderer; +use PHPUnit\Framework\TestCase; final class DocumentRenderedEventTest extends TestCase { diff --git a/tests/unit/Extension/TwemojiExtensionTest.php b/tests/unit/Extension/TwemojiExtensionTest.php index 72276b2..42399cc 100644 --- a/tests/unit/Extension/TwemojiExtensionTest.php +++ b/tests/unit/Extension/TwemojiExtensionTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Extension; -use PHPUnit\Framework\TestCase; use League\Emoji\Tests\Unit\EmojiConverterTest; use League\Emoji\TwemojiConverter; +use PHPUnit\Framework\TestCase; class TwemojiExtensionTest extends TestCase { diff --git a/tests/unit/Node/DocumentTest.php b/tests/unit/Node/DocumentTest.php index 9a8efec..adff86a 100644 --- a/tests/unit/Node/DocumentTest.php +++ b/tests/unit/Node/DocumentTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Node; -use PHPUnit\Framework\TestCase; use League\Emoji\Node\Document; use League\Emoji\Node\Node; +use PHPUnit\Framework\TestCase; class DocumentTest extends TestCase { diff --git a/tests/unit/Node/EmojiTest.php b/tests/unit/Node/EmojiTest.php index cc8bc8f..84ed02c 100644 --- a/tests/unit/Node/EmojiTest.php +++ b/tests/unit/Node/EmojiTest.php @@ -4,10 +4,10 @@ namespace League\Emoji\Tests\Unit\Node; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Emoji as DatasetEmoji; use League\Emoji\Lexer\EmojiLexer; use League\Emoji\Node\Emoji; +use PHPUnit\Framework\TestCase; class EmojiTest extends TestCase { diff --git a/tests/unit/Node/ImageTest.php b/tests/unit/Node/ImageTest.php index dfeb33d..1cc60cf 100644 --- a/tests/unit/Node/ImageTest.php +++ b/tests/unit/Node/ImageTest.php @@ -16,12 +16,12 @@ namespace League\Emoji\Tests\Unit\Node; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Emoji as DatasetEmoji; use League\Emoji\Lexer\EmojiLexer; use League\Emoji\Node\Emoji; use League\Emoji\Node\Image; use League\Emoji\Tests\Unit\Dataset\EmojiTest; +use PHPUnit\Framework\TestCase; class ImageTest extends TestCase { diff --git a/tests/unit/Node/NodeTest.php b/tests/unit/Node/NodeTest.php index 03fae8a..73b633e 100644 --- a/tests/unit/Node/NodeTest.php +++ b/tests/unit/Node/NodeTest.php @@ -4,8 +4,8 @@ namespace League\Emoji\Tests\Unit\Node; -use PHPUnit\Framework\TestCase; use League\Emoji\Node\Document; +use PHPUnit\Framework\TestCase; class NodeTest extends TestCase { diff --git a/tests/unit/Parser/EmojiParserTest.php b/tests/unit/Parser/EmojiParserTest.php index c56d76c..c754d85 100644 --- a/tests/unit/Parser/EmojiParserTest.php +++ b/tests/unit/Parser/EmojiParserTest.php @@ -4,11 +4,11 @@ namespace League\Emoji\Tests\Unit\Parser; -use PHPUnit\Framework\TestCase; use League\Emoji\Environment\Environment; use League\Emoji\Exception\UnexpectedEncodingException; use League\Emoji\Lexer\EmojiLexer; use League\Emoji\Parser\EmojiParser; +use PHPUnit\Framework\TestCase; class EmojiParserTest extends TestCase { diff --git a/tests/unit/Renderer/DocumentRendererTest.php b/tests/unit/Renderer/DocumentRendererTest.php index 36fae4d..eb0deac 100644 --- a/tests/unit/Renderer/DocumentRendererTest.php +++ b/tests/unit/Renderer/DocumentRendererTest.php @@ -4,12 +4,12 @@ namespace League\Emoji\Tests\Unit\Renderer; -use PHPUnit\Framework\TestCase; use League\Emoji\Environment\Environment; use League\Emoji\Exception\RenderNodeException; use League\Emoji\Node\Document; use League\Emoji\Node\Node; use League\Emoji\Renderer\DocumentRenderer; +use PHPUnit\Framework\TestCase; class DocumentRendererTest extends TestCase { diff --git a/tests/unit/Renderer/EmojiRendererTest.php b/tests/unit/Renderer/EmojiRendererTest.php index c1d8658..e1665ad 100644 --- a/tests/unit/Renderer/EmojiRendererTest.php +++ b/tests/unit/Renderer/EmojiRendererTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Renderer; -use PHPUnit\Framework\TestCase; use League\Emoji\Node\Node; use League\Emoji\Renderer\EmojiRenderer; +use PHPUnit\Framework\TestCase; class EmojiRendererTest extends TestCase { diff --git a/tests/unit/Renderer/ImageRendererTest.php b/tests/unit/Renderer/ImageRendererTest.php index 1bce608..f3da0d3 100644 --- a/tests/unit/Renderer/ImageRendererTest.php +++ b/tests/unit/Renderer/ImageRendererTest.php @@ -4,7 +4,6 @@ namespace League\Emoji\Tests\Unit\Renderer; -use PHPUnit\Framework\TestCase; use League\Emoji\Dataset\Emoji as DatasetEmoji; use League\Emoji\Environment\Environment; use League\Emoji\Node\Emoji; @@ -12,6 +11,7 @@ use League\Emoji\Node\Node; use League\Emoji\Renderer\ImageRenderer; use League\Emoji\Util\HtmlElement; +use PHPUnit\Framework\TestCase; class ImageRendererTest extends TestCase { diff --git a/tests/unit/Renderer/TextRendererTest.php b/tests/unit/Renderer/TextRendererTest.php index 2af52b5..10fdb89 100644 --- a/tests/unit/Renderer/TextRendererTest.php +++ b/tests/unit/Renderer/TextRendererTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Renderer; -use PHPUnit\Framework\TestCase; use League\Emoji\Node\Node; use League\Emoji\Renderer\TextRenderer; +use PHPUnit\Framework\TestCase; class TextRendererTest extends TestCase { diff --git a/tests/unit/Util/ArrayCollectionTest.php b/tests/unit/Util/ArrayCollectionTest.php index 63199eb..6c76f33 100644 --- a/tests/unit/Util/ArrayCollectionTest.php +++ b/tests/unit/Util/ArrayCollectionTest.php @@ -13,8 +13,8 @@ namespace League\Emoji\Tests\Unit\Util; -use PHPUnit\Framework\TestCase; use League\Emoji\Util\ArrayCollection; +use PHPUnit\Framework\TestCase; class ArrayCollectionTest extends TestCase { diff --git a/tests/unit/Util/HtmlElementTest.php b/tests/unit/Util/HtmlElementTest.php index c2ad5c1..e20e3c0 100644 --- a/tests/unit/Util/HtmlElementTest.php +++ b/tests/unit/Util/HtmlElementTest.php @@ -16,8 +16,8 @@ namespace League\Emoji\Tests\Unit\Util; -use PHPUnit\Framework\TestCase; use League\Emoji\Util\HtmlElement; +use PHPUnit\Framework\TestCase; class HtmlElementTest extends TestCase { @@ -25,7 +25,7 @@ public function testConstructorOneArgument(): void { $p = new HtmlElement('p'); $this->assertEquals('p', $p->getTagName()); - $this->assertEmpty($p->getAllAttributes()); + $this->assertEmpty($p->getAttributes()); $this->assertEmpty($p->getContents()); } @@ -33,7 +33,7 @@ public function testConstructorTwoArguments(): void { $img = new HtmlElement('img', ['src' => 'foo.jpg']); $this->assertEquals('img', $img->getTagName()); - $this->assertCount(1, $img->getAllAttributes()); + $this->assertCount(1, $img->getAttributes()); $this->assertEquals('foo.jpg', $img->getAttribute('src')); $this->assertEmpty($img->getContents()); } @@ -42,7 +42,7 @@ public function testConstructorThreeArguments(): void { $li = new HtmlElement('li', ['class' => 'odd'], 'Foo'); $this->assertEquals('li', $li->getTagName()); - $this->assertCount(1, $li->getAllAttributes()); + $this->assertCount(1, $li->getAttributes()); $this->assertEquals('odd', $li->getAttribute('class')); $this->assertEquals('Foo', $li->getContents()); } @@ -64,22 +64,22 @@ public function testSelfClosingElement(): void public function testGetSetExistingAttribute(): void { $p = new HtmlElement('p', ['class' => 'foo']); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertEquals('foo', $p->getAttribute('class')); $p->setAttribute('class', 'bar'); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertEquals('bar', $p->getAttribute('class')); } public function testGetSetNonExistingAttribute(): void { $p = new HtmlElement('p', ['class' => 'foo']); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertNull($p->getAttribute('id')); $p->setAttribute('id', 'bar'); - $this->assertCount(2, $p->getAllAttributes()); + $this->assertCount(2, $p->getAttributes()); $this->assertEquals('bar', $p->getAttribute('id')); $this->assertEquals('foo', $p->getAttribute('class')); } @@ -87,7 +87,7 @@ public function testGetSetNonExistingAttribute(): void public function testGetSetAttributeWithStringAndArrayValues(): void { $p = new HtmlElement('p', ['class' => ['foo', 'bar']]); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('foo bar', $p->getAttribute('class')); $p->addClass('baz'); @@ -107,33 +107,33 @@ public function testAttributesWithArrayValues(): void { // Classes have duplicate values removed (array or string). $p = new HtmlElement('p', ['class' => ['a', 'b', 'a']]); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('a b', $p->getAttribute('class')); $this->assertSame('

', $p->__toString()); $p->setAttribute('class', ['foo', 'bar__baz', 'foo']); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('foo bar__baz', $p->getAttribute('class')); $this->assertSame('

', $p->__toString()); $p->setAttribute('class', 'x y z x a'); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('x y z a', $p->getAttribute('class')); $this->assertSame('

', $p->__toString()); // Normal attribute values only have duplicates removed if an array is passed. $p = new HtmlElement('p', ['data-attribute' => ['a', 'b', 'a']]); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('a b', $p->getAttribute('data-attribute')); $this->assertSame('

', $p->__toString()); $p->setAttribute('data-attribute', ['foo', 'bar', 'foo']); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('foo bar', $p->getAttribute('data-attribute')); $this->assertSame('

', $p->__toString()); $p->setAttribute('data-attribute', 'x y z x a'); - $this->assertCount(1, $p->getAllAttributes()); + $this->assertCount(1, $p->getAttributes()); $this->assertSame('x y z x a', $p->getAttribute('data-attribute')); $this->assertSame('

', $p->__toString()); } diff --git a/tests/unit/Util/ImmutableArrayIteratorTest.php b/tests/unit/Util/ImmutableArrayIteratorTest.php index 9958252..8277190 100644 --- a/tests/unit/Util/ImmutableArrayIteratorTest.php +++ b/tests/unit/Util/ImmutableArrayIteratorTest.php @@ -4,8 +4,8 @@ namespace League\Emoji\Tests\Unit\Util; -use PHPUnit\Framework\TestCase; use League\Emoji\Util\ImmutableArrayIterator; +use PHPUnit\Framework\TestCase; class ImmutableArrayIteratorTest extends TestCase { diff --git a/tests/unit/Util/NormalizeTest.php b/tests/unit/Util/NormalizeTest.php index a0bf07b..2ffe2e8 100644 --- a/tests/unit/Util/NormalizeTest.php +++ b/tests/unit/Util/NormalizeTest.php @@ -4,9 +4,9 @@ namespace League\Emoji\Tests\Unit\Util; -use PHPUnit\Framework\TestCase; use League\Emoji\Util\Normalize; use League\Emoji\Util\Property; +use PHPUnit\Framework\TestCase; class NormalizeTest extends TestCase {