diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b7aceac --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +vendor/ +.phpunit.result.cache diff --git a/composer.json b/composer.json index 22da1ac..b2be8e0 100644 --- a/composer.json +++ b/composer.json @@ -12,10 +12,11 @@ ], "license": "BSD-2-Clause", "require": { - "php": ">=7.2.0" + "php": ">=7.2.0", + "ext-mbstring": "*" }, "require-dev": { - "phpunit/phpunit": "^7" + "phpunit/phpunit": "^9" }, "autoload": { "psr-0" : { @@ -28,7 +29,6 @@ } }, "suggest": { - "ext-bcmath": "More accurate floating point calculations.", - "ext-mbstring": "Handle multi-byte text properly." + "ext-bcmath": "More accurate floating point calculations." } } diff --git a/composer.lock b/composer.lock index 6588ef3..b083fa2 100644 --- a/composer.lock +++ b/composer.lock @@ -1,42 +1,40 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c92c094620670311db20ad6146b987a6", + "content-hash": "dda1072f9425fd70fc84f39d15d049aa", "packages": [], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.1.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "url": "https://github.com/gitapi/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -50,50 +48,69 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2017-07-22T11:58:36+00:00" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.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": "2022-12-30T00:15:36+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.8.1", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "url": "https://github.com/gitapi/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -107,32 +124,99 @@ "object", "object graph" ], - "time": "2018-06-11T23:09:50+00:00" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.17.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "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" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://github.com/gitapi/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "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": { @@ -162,24 +246,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://github.com/gitapi/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -209,259 +297,178 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "name": "phpunit/php-code-coverage", + "version": "9.2.29", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://github.com/gitapi/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", "shasum": "" }, "require": { - "php": ">=5.5" + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.15", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "9.2-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "coverage", + "testing", + "xunit" ], - "time": "2017-09-11T18:02:19+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-30T07:14:17+00:00" + "time": "2023-09-19T04:57:46+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "name": "phpunit/php-file-iterator", + "version": "3.0.6", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://github.com/gitapi/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": ">=7.3" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "time": "2017-07-14T14:27:02+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" - }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "6.0.7", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a", - "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a", + "url": "https://github.com/gitapi/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.6.0" + "ext-pcntl": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -480,36 +487,47 @@ "role": "lead" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "coverage", - "testing", - "xunit" + "process" ], - "time": "2018-06-01T07:51:50+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "2.0.1", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/php-file-iterator/zipball/cecbc684605bb0cc288828eb5d65d93d5c676d3c", - "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c", + "url": "https://github.com/gitapi/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -528,32 +546,49 @@ "role": "lead" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "filesystem", - "iterator" + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-06-11T11:44:00+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://github.com/gitapi/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -570,40 +605,83 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "template" + "timer" ], - "time": "2015-06-21T13:50:34+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.0.0", + "name": "phpunit/phpunit", + "version": "9.6.13", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", + "url": "https://github.com/gitapi/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", "shasum": "" }, "require": { - "php": "^7.1" + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" }, - "require-dev": { - "phpunit/phpunit": "^7.0" + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "9.6-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -619,38 +697,58 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "timer" + "phpunit", + "testing", + "xunit" ], - "time": "2018-02-01T13:07:23+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2023-09-19T05:39:22+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.0.0", + "name": "sebastian/cli-parser", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace", + "url": "https://github.com/gitapi/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -665,73 +763,48 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-02-01T13:16:43+00:00" + "time": "2020-09-28T06:08:49+00:00" }, { - "name": "phpunit/phpunit", - "version": "7.3.1", + "name": "sebastian/code-unit", + "version": "1.0.8", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f9b14c17860eccb440a0352a117a81eb754cff5a" + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/phpunit/zipball/f9b14c17860eccb440a0352a117a81eb754cff5a", - "reference": "f9b14c17860eccb440a0352a117a81eb754cff5a", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.0", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" + "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" + "require": { + "php": ">=7.3" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "phpunit/phpunit": "^9.3" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "7.3-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -750,39 +823,44 @@ "role": "lead" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-08-07T06:44:28+00:00" + "time": "2020-10-26T13:08:54+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -802,34 +880,44 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://github.com/gitapi/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -842,6 +930,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -853,10 +945,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -866,33 +954,100 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.1", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "366541b989927187c4ca70490a35615d3fef2dce" + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce", - "reference": "366541b989927187c4ca70490a35615d3fef2dce", + "url": "https://github.com/gitapi/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -905,13 +1060,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -922,32 +1077,45 @@ "unidiff", "unified diff" ], - "time": "2018-06-10T07:54:39+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" }, { "name": "sebastian/environment", - "version": "3.1.0", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://github.com/gitapi/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -972,34 +1140,44 @@ "environment", "hhvm" ], - "time": "2017-07-01T08:51:00+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://github.com/gitapi/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1012,6 +1190,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1020,46 +1202,55 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "5.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://github.com/gitapi/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -1067,7 +1258,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1090,34 +1281,101 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-02T09:26:13+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://github.com/gitapi/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1137,32 +1395,42 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://github.com/gitapi/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1182,32 +1450,42 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://github.com/gitapi/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1220,44 +1498,57 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "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", - "time": "2017-03-03T06:23:57+00:00" + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", - "version": "1.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://github.com/gitapi/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1277,29 +1568,42 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "sebastian/type", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://github.com/gitapi/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1318,31 +1622,43 @@ "role": "lead" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.1.0", + "name": "sebastian/version", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "url": "https://github.com/gitapi/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" + "php": ">=7.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -1354,63 +1670,74 @@ ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07T12:08:54+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { - "name": "webmozart/assert", - "version": "1.3.0", + "name": "theseer/tokenizer", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://github.com/gitapi/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2021-07-28T10:34:58+00:00" } ], "aliases": [], @@ -1421,5 +1748,6 @@ "platform": { "php": ">=7.2.0" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.6.0" } diff --git a/patches/55.patch b/patches/55.patch new file mode 100644 index 0000000..5ace146 --- /dev/null +++ b/patches/55.patch @@ -0,0 +1,25 @@ +From 9cfb2a39cae58e84c77ef0fde3c7151e8bb5f6b1 Mon Sep 17 00:00:00 2001 +From: root + +Date: Fri, 6 Jan 2023 16:27:47 +0000 +Subject: [PATCH] Fix PHP8.1 issue passing NULL to sha1() + +--- + src/DaveChild/TextStatistics/Text.php | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/DaveChild/TextStatistics/Text.php b/src/DaveChild/TextStatistics/Text.php +index 4718fa1..5c00f1c 100644 +--- a/src/DaveChild/TextStatistics/Text.php ++++ b/src/DaveChild/TextStatistics/Text.php +@@ -24,8 +24,8 @@ class Text + public static function cleanText($strText) + { + +- // Check for boolean before processing as string +- if (is_bool($strText)) { ++ // Check for boolean OR null value before processing as string ++ if (is_bool($strText) || is_null($strText)) { + return ''; + } + diff --git a/patches/56.patch b/patches/56.patch new file mode 100644 index 0000000..248f54c --- /dev/null +++ b/patches/56.patch @@ -0,0 +1,2429 @@ +From 1e6028f88f914958550c92c134802e42874f8ad4 Mon Sep 17 00:00:00 2001 +From: Michael Diodone <8616698+mdio@users.noreply.github.com> +Date: Fri, 10 Nov 2023 09:39:35 +0100 +Subject: [PATCH 1/4] Fix tests to run with PHP 8.0/PHPUnit 9 + +--- + .gitignore | 2 + + composer.json | 2 +- + composer.lock | 1308 +++++++++++------- + src/DaveChild/TextStatistics/Maths.php | 6 + + tests/TextStatisticsCMULexTest.php | 4 +- + tests/TextStatisticsKiplingIfTest.php | 4 +- + tests/TextStatisticsMaths.php | 12 +- + tests/TextStatisticsMelvilleMobyDickTest.php | 4 +- + tests/TextStatisticsPluralise.php | 4 +- + tests/TextStatisticsTest.php | 4 +- + 10 files changed, 843 insertions(+), 507 deletions(-) + create mode 100644 .gitignore + +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..b7aceac +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1,2 @@ ++vendor/ ++.phpunit.result.cache +diff --git a/composer.json b/composer.json +index 22da1ac..486d63e 100644 +--- a/composer.json ++++ b/composer.json +@@ -15,7 +15,7 @@ + "php": ">=7.2.0" + }, + "require-dev": { +- "phpunit/phpunit": "^7" ++ "phpunit/phpunit": "^9" + }, + "autoload": { + "psr-0" : { +diff --git a/composer.lock b/composer.lock +index 6588ef3..b083fa2 100644 +--- a/composer.lock ++++ b/composer.lock +@@ -1,42 +1,40 @@ + { + "_readme": [ + "This file locks the dependencies of your project to a known state", +- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", ++ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], +- "content-hash": "c92c094620670311db20ad6146b987a6", ++ "content-hash": "dda1072f9425fd70fc84f39d15d049aa", + "packages": [], + "packages-dev": [ + { + "name": "doctrine/instantiator", +- "version": "1.1.0", ++ "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", +- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" ++ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", +- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", ++ "url": "https://github.com/gitapi/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", ++ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { +- "php": "^7.1" ++ "php": "^7.1 || ^8.0" + }, + "require-dev": { +- "athletic/athletic": "~0.1.8", ++ "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", +- "phpunit/phpunit": "^6.2.3", +- "squizlabs/php_codesniffer": "^3.0.2" ++ "phpbench/phpbench": "^0.16 || ^1", ++ "phpstan/phpstan": "^1.4", ++ "phpstan/phpstan-phpunit": "^1", ++ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", ++ "vimeo/psalm": "^4.30 || ^5.4" + }, + "type": "library", +- "extra": { +- "branch-alias": { +- "dev-master": "1.2.x-dev" +- } +- }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" +@@ -50,50 +48,69 @@ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", +- "homepage": "http://ocramius.github.com/" ++ "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", +- "homepage": "https://github.com/doctrine/instantiator", ++ "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], +- "time": "2017-07-22T11:58:36+00:00" ++ "support": { ++ "issues": "https://github.com/doctrine/instantiator/issues", ++ "source": "https://github.com/doctrine/instantiator/tree/1.5.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": "2022-12-30T00:15:36+00:00" + }, + { + "name": "myclabs/deep-copy", +- "version": "1.8.1", ++ "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", +- "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" ++ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", +- "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", ++ "url": "https://github.com/gitapi/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", ++ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { +- "php": "^7.1" ++ "php": "^7.1 || ^8.0" + }, +- "replace": { +- "myclabs/deep-copy": "self.version" ++ "conflict": { ++ "doctrine/collections": "<1.6.8", ++ "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { +- "doctrine/collections": "^1.0", +- "doctrine/common": "^2.6", +- "phpunit/phpunit": "^7.1" ++ "doctrine/collections": "^1.6.8", ++ "doctrine/common": "^2.13.3 || ^3.2.2", ++ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { +- "psr-4": { +- "DeepCopy\\": "src/DeepCopy/" +- }, + "files": [ + "src/DeepCopy/deep_copy.php" +- ] ++ ], ++ "psr-4": { ++ "DeepCopy\\": "src/DeepCopy/" ++ } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ +@@ -107,32 +124,99 @@ + "object", + "object graph" + ], +- "time": "2018-06-11T23:09:50+00:00" ++ "support": { ++ "issues": "https://github.com/myclabs/DeepCopy/issues", ++ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" ++ }, ++ "funding": [ ++ { ++ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", ++ "type": "tidelift" ++ } ++ ], ++ "time": "2023-03-08T13:26:56+00:00" ++ }, ++ { ++ "name": "nikic/php-parser", ++ "version": "v4.17.1", ++ "source": { ++ "type": "git", ++ "url": "https://github.com/nikic/PHP-Parser.git", ++ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" ++ }, ++ "dist": { ++ "type": "zip", ++ "url": "https://github.com/gitapi/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", ++ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", ++ "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" ++ }, ++ "bin": [ ++ "bin/php-parse" ++ ], ++ "type": "library", ++ "extra": { ++ "branch-alias": { ++ "dev-master": "4.9-dev" ++ } ++ }, ++ "autoload": { ++ "psr-4": { ++ "PhpParser\\": "lib/PhpParser" ++ } ++ }, ++ "notification-url": "https://packagist.org/downloads/", ++ "license": [ ++ "BSD-3-Clause" ++ ], ++ "authors": [ ++ { ++ "name": "Nikita Popov" ++ } ++ ], ++ "description": "A PHP parser written in PHP", ++ "keywords": [ ++ "parser", ++ "php" ++ ], ++ "support": { ++ "issues": "https://github.com/nikic/PHP-Parser/issues", ++ "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" ++ }, ++ "time": "2023-08-13T19:53:39+00:00" + }, + { + "name": "phar-io/manifest", +- "version": "1.0.3", ++ "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", +- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" ++ "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", +- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", ++ "url": "https://github.com/gitapi/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", ++ "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", +- "phar-io/version": "^2.0", +- "php": "^5.6 || ^7.0" ++ "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": { +@@ -162,24 +246,28 @@ + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", +- "time": "2018-07-08T19:23:20+00:00" ++ "support": { ++ "issues": "https://github.com/phar-io/manifest/issues", ++ "source": "https://github.com/phar-io/manifest/tree/2.0.3" ++ }, ++ "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", +- "version": "2.0.1", ++ "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", +- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" ++ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", +- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", ++ "url": "https://github.com/gitapi/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", ++ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { +- "php": "^5.6 || ^7.0" ++ "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { +@@ -209,259 +297,178 @@ + } + ], + "description": "Library for handling version information and constraints", +- "time": "2018-07-08T19:19:57+00:00" ++ "support": { ++ "issues": "https://github.com/phar-io/version/issues", ++ "source": "https://github.com/phar-io/version/tree/3.2.1" ++ }, ++ "time": "2022-02-21T01:04:05+00:00" + }, + { +- "name": "phpdocumentor/reflection-common", +- "version": "1.0.1", ++ "name": "phpunit/php-code-coverage", ++ "version": "9.2.29", + "source": { + "type": "git", +- "url": "https://github.com/phpDocumentor/ReflectionCommon.git", +- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" ++ "url": "https://github.com/sebastianbergmann/php-code-coverage.git", ++ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", +- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", ++ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "shasum": "" + }, + "require": { +- "php": ">=5.5" ++ "ext-dom": "*", ++ "ext-libxml": "*", ++ "ext-xmlwriter": "*", ++ "nikic/php-parser": "^4.15", ++ "php": ">=7.3", ++ "phpunit/php-file-iterator": "^3.0.3", ++ "phpunit/php-text-template": "^2.0.2", ++ "sebastian/code-unit-reverse-lookup": "^2.0.2", ++ "sebastian/complexity": "^2.0", ++ "sebastian/environment": "^5.1.2", ++ "sebastian/lines-of-code": "^1.0.3", ++ "sebastian/version": "^3.0.1", ++ "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { +- "phpunit/phpunit": "^4.6" ++ "phpunit/phpunit": "^9.3" ++ }, ++ "suggest": { ++ "ext-pcov": "PHP extension that provides line coverage", ++ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "1.0.x-dev" ++ "dev-master": "9.2-dev" + } + }, + "autoload": { +- "psr-4": { +- "phpDocumentor\\Reflection\\": [ +- "src" +- ] +- } ++ "classmap": [ ++ "src/" ++ ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ +- "MIT" ++ "BSD-3-Clause" + ], + "authors": [ + { +- "name": "Jaap van Otterdijk", +- "email": "opensource@ijaap.nl" ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de", ++ "role": "lead" + } + ], +- "description": "Common reflection classes used by phpdocumentor to reflect the code structure", +- "homepage": "http://www.phpdoc.org", ++ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", ++ "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ +- "FQSEN", +- "phpDocumentor", +- "phpdoc", +- "reflection", +- "static analysis" ++ "coverage", ++ "testing", ++ "xunit" + ], +- "time": "2017-09-11T18:02:19+00:00" +- }, +- { +- "name": "phpdocumentor/reflection-docblock", +- "version": "4.3.0", +- "source": { +- "type": "git", +- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", +- "reference": "94fd0001232e47129dd3504189fa1c7225010d08" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", ++ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", ++ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + }, +- "dist": { +- "type": "zip", +- "url": "https://github.com/gitapi/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", +- "reference": "94fd0001232e47129dd3504189fa1c7225010d08", +- "shasum": "" +- }, +- "require": { +- "php": "^7.0", +- "phpdocumentor/reflection-common": "^1.0.0", +- "phpdocumentor/type-resolver": "^0.4.0", +- "webmozart/assert": "^1.0" +- }, +- "require-dev": { +- "doctrine/instantiator": "~1.0.5", +- "mockery/mockery": "^1.0", +- "phpunit/phpunit": "^6.4" +- }, +- "type": "library", +- "extra": { +- "branch-alias": { +- "dev-master": "4.x-dev" +- } +- }, +- "autoload": { +- "psr-4": { +- "phpDocumentor\\Reflection\\": [ +- "src/" +- ] +- } +- }, +- "notification-url": "https://packagist.org/downloads/", +- "license": [ +- "MIT" +- ], +- "authors": [ ++ "funding": [ + { +- "name": "Mike van Riel", +- "email": "me@mikevanriel.com" ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" + } + ], +- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", +- "time": "2017-11-30T07:14:17+00:00" ++ "time": "2023-09-19T04:57:46+00:00" + }, + { +- "name": "phpdocumentor/type-resolver", +- "version": "0.4.0", ++ "name": "phpunit/php-file-iterator", ++ "version": "3.0.6", + "source": { + "type": "git", +- "url": "https://github.com/phpDocumentor/TypeResolver.git", +- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" ++ "url": "https://github.com/sebastianbergmann/php-file-iterator.git", ++ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", +- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", ++ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { +- "php": "^5.5 || ^7.0", +- "phpdocumentor/reflection-common": "^1.0" ++ "php": ">=7.3" + }, + "require-dev": { +- "mockery/mockery": "^0.9.4", +- "phpunit/phpunit": "^5.2||^4.8.24" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "1.0.x-dev" ++ "dev-master": "3.0-dev" + } + }, + "autoload": { +- "psr-4": { +- "phpDocumentor\\Reflection\\": [ +- "src/" +- ] +- } ++ "classmap": [ ++ "src/" ++ ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ +- "MIT" ++ "BSD-3-Clause" + ], + "authors": [ + { +- "name": "Mike van Riel", +- "email": "me@mikevanriel.com" ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de", ++ "role": "lead" + } + ], +- "time": "2017-07-14T14:27:02+00:00" +- }, +- { +- "name": "phpspec/prophecy", +- "version": "1.8.0", +- "source": { +- "type": "git", +- "url": "https://github.com/phpspec/prophecy.git", +- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" +- }, +- "dist": { +- "type": "zip", +- "url": "https://github.com/gitapi/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", +- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", +- "shasum": "" +- }, +- "require": { +- "doctrine/instantiator": "^1.0.2", +- "php": "^5.3|^7.0", +- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", +- "sebastian/comparator": "^1.1|^2.0|^3.0", +- "sebastian/recursion-context": "^1.0|^2.0|^3.0" +- }, +- "require-dev": { +- "phpspec/phpspec": "^2.5|^3.2", +- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" +- }, +- "type": "library", +- "extra": { +- "branch-alias": { +- "dev-master": "1.8.x-dev" +- } +- }, +- "autoload": { +- "psr-0": { +- "Prophecy\\": "src/" +- } +- }, +- "notification-url": "https://packagist.org/downloads/", +- "license": [ +- "MIT" ++ "description": "FilterIterator implementation that filters files based on a list of suffixes.", ++ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", ++ "keywords": [ ++ "filesystem", ++ "iterator" + ], +- "authors": [ +- { +- "name": "Konstantin Kudryashov", +- "email": "ever.zet@gmail.com", +- "homepage": "http://everzet.com" +- }, ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", ++ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" ++ }, ++ "funding": [ + { +- "name": "Marcello Duarte", +- "email": "marcello.duarte@gmail.com" ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" + } + ], +- "description": "Highly opinionated mocking framework for PHP 5.3+", +- "homepage": "https://github.com/phpspec/prophecy", +- "keywords": [ +- "Double", +- "Dummy", +- "fake", +- "mock", +- "spy", +- "stub" +- ], +- "time": "2018-08-05T17:53:17+00:00" ++ "time": "2021-12-02T12:48:52+00:00" + }, + { +- "name": "phpunit/php-code-coverage", +- "version": "6.0.7", ++ "name": "phpunit/php-invoker", ++ "version": "3.1.1", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/php-code-coverage.git", +- "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a" ++ "url": "https://github.com/sebastianbergmann/php-invoker.git", ++ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a", +- "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", ++ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { +- "ext-dom": "*", +- "ext-xmlwriter": "*", +- "php": "^7.1", +- "phpunit/php-file-iterator": "^2.0", +- "phpunit/php-text-template": "^1.2.1", +- "phpunit/php-token-stream": "^3.0", +- "sebastian/code-unit-reverse-lookup": "^1.0.1", +- "sebastian/environment": "^3.1", +- "sebastian/version": "^2.0.1", +- "theseer/tokenizer": "^1.1" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^7.0" ++ "ext-pcntl": "*", ++ "phpunit/phpunit": "^9.3" + }, + "suggest": { +- "ext-xdebug": "^2.6.0" ++ "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "6.0-dev" ++ "dev-master": "3.1-dev" + } + }, + "autoload": { +@@ -480,36 +487,47 @@ + "role": "lead" + } + ], +- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", +- "homepage": "https://github.com/sebastianbergmann/php-code-coverage", ++ "description": "Invoke callables with a timeout", ++ "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ +- "coverage", +- "testing", +- "xunit" ++ "process" + ], +- "time": "2018-06-01T07:51:50+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/php-invoker/issues", ++ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-09-28T05:58:55+00:00" + }, + { +- "name": "phpunit/php-file-iterator", +- "version": "2.0.1", ++ "name": "phpunit/php-text-template", ++ "version": "2.0.4", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/php-file-iterator.git", +- "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c" ++ "url": "https://github.com/sebastianbergmann/php-text-template.git", ++ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/php-file-iterator/zipball/cecbc684605bb0cc288828eb5d65d93d5c676d3c", +- "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", ++ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { +- "php": "^7.1" ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "2.0.x-dev" ++ "dev-master": "2.0-dev" + } + }, + "autoload": { +@@ -528,32 +546,49 @@ + "role": "lead" + } + ], +- "description": "FilterIterator implementation that filters files based on a list of suffixes.", +- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", ++ "description": "Simple template engine.", ++ "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ +- "filesystem", +- "iterator" ++ "template" ++ ], ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/php-text-template/issues", ++ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } + ], +- "time": "2018-06-11T11:44:00+00:00" ++ "time": "2020-10-26T05:33:50+00:00" + }, + { +- "name": "phpunit/php-text-template", +- "version": "1.2.1", ++ "name": "phpunit/php-timer", ++ "version": "5.0.3", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/php-text-template.git", +- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" ++ "url": "https://github.com/sebastianbergmann/php-timer.git", ++ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", +- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", ++ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { +- "php": ">=5.3.3" ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", ++ "extra": { ++ "branch-alias": { ++ "dev-master": "5.0-dev" ++ } ++ }, + "autoload": { + "classmap": [ + "src/" +@@ -570,40 +605,83 @@ + "role": "lead" + } + ], +- "description": "Simple template engine.", +- "homepage": "https://github.com/sebastianbergmann/php-text-template/", ++ "description": "Utility class for timing", ++ "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ +- "template" ++ "timer" + ], +- "time": "2015-06-21T13:50:34+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/php-timer/issues", ++ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-10-26T13:16:10+00:00" + }, + { +- "name": "phpunit/php-timer", +- "version": "2.0.0", ++ "name": "phpunit/phpunit", ++ "version": "9.6.13", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/php-timer.git", +- "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" ++ "url": "https://github.com/sebastianbergmann/phpunit.git", ++ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", +- "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", ++ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "shasum": "" + }, + "require": { +- "php": "^7.1" ++ "doctrine/instantiator": "^1.3.1 || ^2", ++ "ext-dom": "*", ++ "ext-json": "*", ++ "ext-libxml": "*", ++ "ext-mbstring": "*", ++ "ext-xml": "*", ++ "ext-xmlwriter": "*", ++ "myclabs/deep-copy": "^1.10.1", ++ "phar-io/manifest": "^2.0.3", ++ "phar-io/version": "^3.0.2", ++ "php": ">=7.3", ++ "phpunit/php-code-coverage": "^9.2.28", ++ "phpunit/php-file-iterator": "^3.0.5", ++ "phpunit/php-invoker": "^3.1.1", ++ "phpunit/php-text-template": "^2.0.3", ++ "phpunit/php-timer": "^5.0.2", ++ "sebastian/cli-parser": "^1.0.1", ++ "sebastian/code-unit": "^1.0.6", ++ "sebastian/comparator": "^4.0.8", ++ "sebastian/diff": "^4.0.3", ++ "sebastian/environment": "^5.1.3", ++ "sebastian/exporter": "^4.0.5", ++ "sebastian/global-state": "^5.0.1", ++ "sebastian/object-enumerator": "^4.0.3", ++ "sebastian/resource-operations": "^3.0.3", ++ "sebastian/type": "^3.2", ++ "sebastian/version": "^3.0.2" + }, +- "require-dev": { +- "phpunit/phpunit": "^7.0" ++ "suggest": { ++ "ext-soap": "To be able to generate mocks based on WSDL files", ++ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, ++ "bin": [ ++ "phpunit" ++ ], + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "2.0-dev" ++ "dev-master": "9.6-dev" + } + }, + "autoload": { ++ "files": [ ++ "src/Framework/Assert/Functions.php" ++ ], + "classmap": [ + "src/" + ] +@@ -619,38 +697,58 @@ + "role": "lead" + } + ], +- "description": "Utility class for timing", +- "homepage": "https://github.com/sebastianbergmann/php-timer/", ++ "description": "The PHP Unit Testing framework.", ++ "homepage": "https://phpunit.de/", + "keywords": [ +- "timer" ++ "phpunit", ++ "testing", ++ "xunit" + ], +- "time": "2018-02-01T13:07:23+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/phpunit/issues", ++ "security": "https://github.com/sebastianbergmann/phpunit/security/policy", ++ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" ++ }, ++ "funding": [ ++ { ++ "url": "https://phpunit.de/sponsors.html", ++ "type": "custom" ++ }, ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ }, ++ { ++ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", ++ "type": "tidelift" ++ } ++ ], ++ "time": "2023-09-19T05:39:22+00:00" + }, + { +- "name": "phpunit/php-token-stream", +- "version": "3.0.0", ++ "name": "sebastian/cli-parser", ++ "version": "1.0.1", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/php-token-stream.git", +- "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace" ++ "url": "https://github.com/sebastianbergmann/cli-parser.git", ++ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace", +- "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", ++ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { +- "ext-tokenizer": "*", +- "php": "^7.1" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^7.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.0-dev" ++ "dev-master": "1.0-dev" + } + }, + "autoload": { +@@ -665,73 +763,48 @@ + "authors": [ + { + "name": "Sebastian Bergmann", +- "email": "sebastian@phpunit.de" ++ "email": "sebastian@phpunit.de", ++ "role": "lead" + } + ], +- "description": "Wrapper around PHP's tokenizer extension.", +- "homepage": "https://github.com/sebastianbergmann/php-token-stream/", +- "keywords": [ +- "tokenizer" ++ "description": "Library for parsing CLI options", ++ "homepage": "https://github.com/sebastianbergmann/cli-parser", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/cli-parser/issues", ++ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } + ], +- "time": "2018-02-01T13:16:43+00:00" ++ "time": "2020-09-28T06:08:49+00:00" + }, + { +- "name": "phpunit/phpunit", +- "version": "7.3.1", ++ "name": "sebastian/code-unit", ++ "version": "1.0.8", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/phpunit.git", +- "reference": "f9b14c17860eccb440a0352a117a81eb754cff5a" ++ "url": "https://github.com/sebastianbergmann/code-unit.git", ++ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/phpunit/zipball/f9b14c17860eccb440a0352a117a81eb754cff5a", +- "reference": "f9b14c17860eccb440a0352a117a81eb754cff5a", +- "shasum": "" +- }, +- "require": { +- "doctrine/instantiator": "^1.1", +- "ext-dom": "*", +- "ext-json": "*", +- "ext-libxml": "*", +- "ext-mbstring": "*", +- "ext-xml": "*", +- "myclabs/deep-copy": "^1.7", +- "phar-io/manifest": "^1.0.2", +- "phar-io/version": "^2.0", +- "php": "^7.1", +- "phpspec/prophecy": "^1.7", +- "phpunit/php-code-coverage": "^6.0.7", +- "phpunit/php-file-iterator": "^2.0.1", +- "phpunit/php-text-template": "^1.2.1", +- "phpunit/php-timer": "^2.0", +- "sebastian/comparator": "^3.0", +- "sebastian/diff": "^3.0", +- "sebastian/environment": "^3.1", +- "sebastian/exporter": "^3.1", +- "sebastian/global-state": "^2.0", +- "sebastian/object-enumerator": "^3.0.3", +- "sebastian/resource-operations": "^1.0", +- "sebastian/version": "^2.0.1" ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", ++ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", ++ "shasum": "" + }, +- "conflict": { +- "phpunit/phpunit-mock-objects": "*" ++ "require": { ++ "php": ">=7.3" + }, + "require-dev": { +- "ext-pdo": "*" +- }, +- "suggest": { +- "ext-soap": "*", +- "ext-xdebug": "*", +- "phpunit/php-invoker": "^2.0" ++ "phpunit/phpunit": "^9.3" + }, +- "bin": [ +- "phpunit" +- ], + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "7.3-dev" ++ "dev-master": "1.0-dev" + } + }, + "autoload": { +@@ -750,39 +823,44 @@ + "role": "lead" + } + ], +- "description": "The PHP Unit Testing framework.", +- "homepage": "https://phpunit.de/", +- "keywords": [ +- "phpunit", +- "testing", +- "xunit" ++ "description": "Collection of value objects that represent the PHP code units", ++ "homepage": "https://github.com/sebastianbergmann/code-unit", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/code-unit/issues", ++ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } + ], +- "time": "2018-08-07T06:44:28+00:00" ++ "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", +- "version": "1.0.1", ++ "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", +- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" ++ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", +- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", ++ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { +- "php": "^5.6 || ^7.0" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^5.7 || ^6.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "1.0.x-dev" ++ "dev-master": "2.0-dev" + } + }, + "autoload": { +@@ -802,34 +880,44 @@ + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", +- "time": "2017-03-04T06:30:41+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", ++ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", +- "version": "3.0.2", ++ "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", +- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" ++ "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", +- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", ++ "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { +- "php": "^7.1", +- "sebastian/diff": "^3.0", +- "sebastian/exporter": "^3.1" ++ "php": ">=7.3", ++ "sebastian/diff": "^4.0", ++ "sebastian/exporter": "^4.0" + }, + "require-dev": { +- "phpunit/phpunit": "^7.1" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.0-dev" ++ "dev-master": "4.0-dev" + } + }, + "autoload": { +@@ -842,6 +930,10 @@ + "BSD-3-Clause" + ], + "authors": [ ++ { ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de" ++ }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" +@@ -853,10 +945,6 @@ + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" +- }, +- { +- "name": "Sebastian Bergmann", +- "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", +@@ -866,33 +954,100 @@ + "compare", + "equality" + ], +- "time": "2018-07-12T15:12:46+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/comparator/issues", ++ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2022-09-14T12:41:17+00:00" ++ }, ++ { ++ "name": "sebastian/complexity", ++ "version": "2.0.2", ++ "source": { ++ "type": "git", ++ "url": "https://github.com/sebastianbergmann/complexity.git", ++ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" ++ }, ++ "dist": { ++ "type": "zip", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", ++ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", ++ "shasum": "" ++ }, ++ "require": { ++ "nikic/php-parser": "^4.7", ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.3" ++ }, ++ "type": "library", ++ "extra": { ++ "branch-alias": { ++ "dev-master": "2.0-dev" ++ } ++ }, ++ "autoload": { ++ "classmap": [ ++ "src/" ++ ] ++ }, ++ "notification-url": "https://packagist.org/downloads/", ++ "license": [ ++ "BSD-3-Clause" ++ ], ++ "authors": [ ++ { ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de", ++ "role": "lead" ++ } ++ ], ++ "description": "Library for calculating the complexity of PHP code units", ++ "homepage": "https://github.com/sebastianbergmann/complexity", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/complexity/issues", ++ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", +- "version": "3.0.1", ++ "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", +- "reference": "366541b989927187c4ca70490a35615d3fef2dce" ++ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce", +- "reference": "366541b989927187c4ca70490a35615d3fef2dce", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", ++ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { +- "php": "^7.1" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^7.0", +- "symfony/process": "^2 || ^3.3 || ^4" ++ "phpunit/phpunit": "^9.3", ++ "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.0-dev" ++ "dev-master": "4.0-dev" + } + }, + "autoload": { +@@ -905,13 +1060,13 @@ + "BSD-3-Clause" + ], + "authors": [ +- { +- "name": "Kore Nordmann", +- "email": "mail@kore-nordmann.de" +- }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" ++ }, ++ { ++ "name": "Kore Nordmann", ++ "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", +@@ -922,32 +1077,45 @@ + "unidiff", + "unified diff" + ], +- "time": "2018-06-10T07:54:39+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/diff/issues", ++ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2023-05-07T05:35:17+00:00" + }, + { + "name": "sebastian/environment", +- "version": "3.1.0", ++ "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", +- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" ++ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", +- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", ++ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { +- "php": "^7.0" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^6.1" ++ "phpunit/phpunit": "^9.3" ++ }, ++ "suggest": { ++ "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.1.x-dev" ++ "dev-master": "5.1-dev" + } + }, + "autoload": { +@@ -972,34 +1140,44 @@ + "environment", + "hhvm" + ], +- "time": "2017-07-01T08:51:00+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/environment/issues", ++ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", +- "version": "3.1.0", ++ "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", +- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" ++ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", +- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", ++ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { +- "php": "^7.0", +- "sebastian/recursion-context": "^3.0" ++ "php": ">=7.3", ++ "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", +- "phpunit/phpunit": "^6.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.1.x-dev" ++ "dev-master": "4.0-dev" + } + }, + "autoload": { +@@ -1012,6 +1190,10 @@ + "BSD-3-Clause" + ], + "authors": [ ++ { ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de" ++ }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" +@@ -1020,46 +1202,55 @@ + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, +- { +- "name": "Bernhard Schussek", +- "email": "bschussek@2bepublished.at" +- }, +- { +- "name": "Sebastian Bergmann", +- "email": "sebastian@phpunit.de" +- }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" ++ }, ++ { ++ "name": "Bernhard Schussek", ++ "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", +- "homepage": "http://www.github.com/sebastianbergmann/exporter", ++ "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], +- "time": "2017-04-03T13:19:02+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/exporter/issues", ++ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", +- "version": "2.0.0", ++ "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", +- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" ++ "reference": "bde739e7565280bda77be70044ac1047bc007e34" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", +- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", ++ "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "shasum": "" + }, + "require": { +- "php": "^7.0" ++ "php": ">=7.3", ++ "sebastian/object-reflector": "^2.0", ++ "sebastian/recursion-context": "^4.0" + }, + "require-dev": { +- "phpunit/phpunit": "^6.0" ++ "ext-dom": "*", ++ "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" +@@ -1067,7 +1258,7 @@ + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "2.0-dev" ++ "dev-master": "5.0-dev" + } + }, + "autoload": { +@@ -1090,34 +1281,101 @@ + "keywords": [ + "global state" + ], +- "time": "2017-04-27T15:39:26+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/global-state/issues", ++ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2023-08-02T09:26:13+00:00" ++ }, ++ { ++ "name": "sebastian/lines-of-code", ++ "version": "1.0.3", ++ "source": { ++ "type": "git", ++ "url": "https://github.com/sebastianbergmann/lines-of-code.git", ++ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" ++ }, ++ "dist": { ++ "type": "zip", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", ++ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", ++ "shasum": "" ++ }, ++ "require": { ++ "nikic/php-parser": "^4.6", ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.3" ++ }, ++ "type": "library", ++ "extra": { ++ "branch-alias": { ++ "dev-master": "1.0-dev" ++ } ++ }, ++ "autoload": { ++ "classmap": [ ++ "src/" ++ ] ++ }, ++ "notification-url": "https://packagist.org/downloads/", ++ "license": [ ++ "BSD-3-Clause" ++ ], ++ "authors": [ ++ { ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de", ++ "role": "lead" ++ } ++ ], ++ "description": "Library for counting the lines of code in PHP source code", ++ "homepage": "https://github.com/sebastianbergmann/lines-of-code", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", ++ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", +- "version": "3.0.3", ++ "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", +- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" ++ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", +- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", ++ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { +- "php": "^7.0", +- "sebastian/object-reflector": "^1.1.1", +- "sebastian/recursion-context": "^3.0" ++ "php": ">=7.3", ++ "sebastian/object-reflector": "^2.0", ++ "sebastian/recursion-context": "^4.0" + }, + "require-dev": { +- "phpunit/phpunit": "^6.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.0.x-dev" ++ "dev-master": "4.0-dev" + } + }, + "autoload": { +@@ -1137,32 +1395,42 @@ + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", +- "time": "2017-08-03T12:35:26+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", ++ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", +- "version": "1.1.1", ++ "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", +- "reference": "773f97c67f28de00d397be301821b06708fca0be" ++ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", +- "reference": "773f97c67f28de00d397be301821b06708fca0be", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", ++ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { +- "php": "^7.0" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^6.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "1.1-dev" ++ "dev-master": "2.0-dev" + } + }, + "autoload": { +@@ -1182,32 +1450,42 @@ + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", +- "time": "2017-03-29T09:07:27+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/object-reflector/issues", ++ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", +- "version": "3.0.0", ++ "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", +- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" ++ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", +- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", ++ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { +- "php": "^7.0" ++ "php": ">=7.3" + }, + "require-dev": { +- "phpunit/phpunit": "^6.0" ++ "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "3.0.x-dev" ++ "dev-master": "4.0-dev" + } + }, + "autoload": { +@@ -1220,44 +1498,57 @@ + "BSD-3-Clause" + ], + "authors": [ +- { +- "name": "Jeff Welch", +- "email": "whatthejeff@gmail.com" +- }, + { + "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", +- "time": "2017-03-03T06:23:57+00:00" ++ "homepage": "https://github.com/sebastianbergmann/recursion-context", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/recursion-context/issues", ++ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", +- "version": "1.0.0", ++ "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", +- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" ++ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", +- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", ++ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { +- "php": ">=5.6.0" ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "1.0.x-dev" ++ "dev-master": "3.0-dev" + } + }, + "autoload": { +@@ -1277,29 +1568,42 @@ + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", +- "time": "2015-07-28T20:34:47+00:00" ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/resource-operations/issues", ++ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-09-28T06:45:17+00:00" + }, + { +- "name": "sebastian/version", +- "version": "2.0.1", ++ "name": "sebastian/type", ++ "version": "3.2.1", + "source": { + "type": "git", +- "url": "https://github.com/sebastianbergmann/version.git", +- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" ++ "url": "https://github.com/sebastianbergmann/type.git", ++ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", +- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", ++ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { +- "php": ">=5.6" ++ "php": ">=7.3" ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { +- "dev-master": "2.0.x-dev" ++ "dev-master": "3.2-dev" + } + }, + "autoload": { +@@ -1318,31 +1622,43 @@ + "role": "lead" + } + ], +- "description": "Library that helps with managing the version number of Git-hosted PHP projects", +- "homepage": "https://github.com/sebastianbergmann/version", +- "time": "2016-10-03T07:35:21+00:00" ++ "description": "Collection of value objects that represent the types of the PHP type system", ++ "homepage": "https://github.com/sebastianbergmann/type", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/type/issues", ++ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2023-02-03T06:13:03+00:00" + }, + { +- "name": "theseer/tokenizer", +- "version": "1.1.0", ++ "name": "sebastian/version", ++ "version": "3.0.2", + "source": { + "type": "git", +- "url": "https://github.com/theseer/tokenizer.git", +- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" ++ "url": "https://github.com/sebastianbergmann/version.git", ++ "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", +- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", ++ "url": "https://github.com/gitapi/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", ++ "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { +- "ext-dom": "*", +- "ext-tokenizer": "*", +- "ext-xmlwriter": "*", +- "php": "^7.0" ++ "php": ">=7.3" + }, + "type": "library", ++ "extra": { ++ "branch-alias": { ++ "dev-master": "3.0-dev" ++ } ++ }, + "autoload": { + "classmap": [ + "src/" +@@ -1354,63 +1670,74 @@ + ], + "authors": [ + { +- "name": "Arne Blankerts", +- "email": "arne@blankerts.de", +- "role": "Developer" ++ "name": "Sebastian Bergmann", ++ "email": "sebastian@phpunit.de", ++ "role": "lead" + } + ], +- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", +- "time": "2017-04-07T12:08:54+00:00" ++ "description": "Library that helps with managing the version number of Git-hosted PHP projects", ++ "homepage": "https://github.com/sebastianbergmann/version", ++ "support": { ++ "issues": "https://github.com/sebastianbergmann/version/issues", ++ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/sebastianbergmann", ++ "type": "github" ++ } ++ ], ++ "time": "2020-09-28T06:39:44+00:00" + }, + { +- "name": "webmozart/assert", +- "version": "1.3.0", ++ "name": "theseer/tokenizer", ++ "version": "1.2.1", + "source": { + "type": "git", +- "url": "https://github.com/webmozart/assert.git", +- "reference": "0df1908962e7a3071564e857d86874dad1ef204a" ++ "url": "https://github.com/theseer/tokenizer.git", ++ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", +- "url": "https://github.com/gitapi/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", +- "reference": "0df1908962e7a3071564e857d86874dad1ef204a", ++ "url": "https://github.com/gitapi/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", ++ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { +- "php": "^5.3.3 || ^7.0" +- }, +- "require-dev": { +- "phpunit/phpunit": "^4.6", +- "sebastian/version": "^1.0.1" ++ "ext-dom": "*", ++ "ext-tokenizer": "*", ++ "ext-xmlwriter": "*", ++ "php": "^7.2 || ^8.0" + }, + "type": "library", +- "extra": { +- "branch-alias": { +- "dev-master": "1.3-dev" +- } +- }, + "autoload": { +- "psr-4": { +- "Webmozart\\Assert\\": "src/" +- } ++ "classmap": [ ++ "src/" ++ ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ +- "MIT" ++ "BSD-3-Clause" + ], + "authors": [ + { +- "name": "Bernhard Schussek", +- "email": "bschussek@gmail.com" ++ "name": "Arne Blankerts", ++ "email": "arne@blankerts.de", ++ "role": "Developer" + } + ], +- "description": "Assertions to validate method input/output with nice error messages.", +- "keywords": [ +- "assert", +- "check", +- "validate" ++ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", ++ "support": { ++ "issues": "https://github.com/theseer/tokenizer/issues", ++ "source": "https://github.com/theseer/tokenizer/tree/1.2.1" ++ }, ++ "funding": [ ++ { ++ "url": "https://github.com/theseer", ++ "type": "github" ++ } + ], +- "time": "2018-01-29T19:49:41+00:00" ++ "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], +@@ -1421,5 +1748,6 @@ + "platform": { + "php": ">=7.2.0" + }, +- "platform-dev": [] ++ "platform-dev": [], ++ "plugin-api-version": "2.6.0" + } +diff --git a/src/DaveChild/TextStatistics/Maths.php b/src/DaveChild/TextStatistics/Maths.php +index cb49456..8972cc1 100644 +--- a/src/DaveChild/TextStatistics/Maths.php ++++ b/src/DaveChild/TextStatistics/Maths.php +@@ -2,6 +2,8 @@ + + namespace DaveChild\TextStatistics; + ++use function is_numeric; ++ + class Maths + { + +@@ -77,6 +79,10 @@ public static function bcCalc($number1, $action, $number2, $round = false, $deci + $number2 = strval($number2); + } + ++ if (!is_numeric($number1) || !is_numeric($number2)) { ++ return false; ++ } ++ + // Normalise operator + $action = self::normaliseOperator($action); + +diff --git a/tests/TextStatisticsCMULexTest.php b/tests/TextStatisticsCMULexTest.php +index 385aea4..ddb4261 100644 +--- a/tests/TextStatisticsCMULexTest.php ++++ b/tests/TextStatisticsCMULexTest.php +@@ -11,13 +11,13 @@ class TextStatisticsTestCMULex extends \PHPUnit\Framework\TestCase + + protected $TextStatistics = null; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } +diff --git a/tests/TextStatisticsKiplingIfTest.php b/tests/TextStatisticsKiplingIfTest.php +index 7150152..c8050d3 100644 +--- a/tests/TextStatisticsKiplingIfTest.php ++++ b/tests/TextStatisticsKiplingIfTest.php +@@ -80,13 +80,13 @@ class TextStatisticsKiplingIf extends \PHPUnit\Framework\TestCase + protected $TextStatistics = null; + protected $strText = "If you can keep your head when all about you \n Are losing theirs and blaming it on you, \n If you can trust yourself when all men doubt you \n But make allowance for their doubting too, \n If you can wait and not be tired by waiting, \n Or being lied about, don't deal in lies, \n Or being hated, don't give way to hating, \n And yet don't look too good, nor talk too wise: \n\n If you can dream - and not make dreams your master, \n If you can think - and not make thoughts your aim; \n If you can meet with Triumph and Disaster \n And treat those two impostors just the same; \n If you can bear to hear the truth you've spoken \n Twisted by knaves to make a trap for fools, \n Or watch the things you gave your life to, broken, \n And stoop and build 'em up with worn-out tools: \n\n If you can make one heap of all your winnings \n And risk it all on one turn of pitch-and-toss, \n And lose, and start again at your beginnings \n And never breath a word about your loss; \n If you can force your heart and nerve and sinew \n To serve your turn long after they are gone, \n And so hold on when there is nothing in you \n Except the Will which says to them: \"Hold on\" \n\n If you can talk with crowds and keep your virtue, \n Or walk with kings - nor lose the common touch, \n If neither foes nor loving friends can hurt you; \n If all men count with you, but none too much, \n If you can fill the unforgiving minute \n With sixty seconds' worth of distance run, \n Yours is the Earth and everything that's in it, \n And - which is more - you'll be a Man, my son!"; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } +diff --git a/tests/TextStatisticsMaths.php b/tests/TextStatisticsMaths.php +index ceec2f8..2c014b9 100644 +--- a/tests/TextStatisticsMaths.php ++++ b/tests/TextStatisticsMaths.php +@@ -13,13 +13,13 @@ class TextStatisticsMaths extends \PHPUnit\Framework\TestCase + + protected $TextStatistics = null; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } +@@ -162,11 +162,11 @@ public function testCalc() + // Malformed data + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(array('banana'), '+', 2, true, 1)); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(2, '+', array('banana'), true, 1)); +- $this->assertSame(0.0, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three', true, 1)); +- $this->assertSame(0.0, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three', true, 1)); ++ $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three', true, 1)); ++ $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three', true, 1)); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(array('banana'), '+', 2)); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(2, '+', array('banana'))); +- $this->assertSame(0, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three')); +- $this->assertSame(0, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three')); ++ $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three')); ++ $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three')); + } + } +diff --git a/tests/TextStatisticsMelvilleMobyDickTest.php b/tests/TextStatisticsMelvilleMobyDickTest.php +index 5c43be7..ea4d50d 100644 +--- a/tests/TextStatisticsMelvilleMobyDickTest.php ++++ b/tests/TextStatisticsMelvilleMobyDickTest.php +@@ -46,13 +46,13 @@ class TextStatisticsMelvilleMobyDick extends \PHPUnit\Framework\TestCase + protected $TextStatistics = null; + protected $strText = "Call me Ishmael. Some years ago - never mind how long precisely - having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen, and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off - then, I account it high time to get to sea as soon as I can. This is my substitute for pistol and ball. With a philosophical flourish Cato throws himself upon his sword; I quietly take to the ship. There is nothing surprising in this. If they but knew it, almost all men in their degree, some time or other, cherish very nearly the same feelings towards the ocean with me."; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } +diff --git a/tests/TextStatisticsPluralise.php b/tests/TextStatisticsPluralise.php +index ef659bc..d9a8073 100644 +--- a/tests/TextStatisticsPluralise.php ++++ b/tests/TextStatisticsPluralise.php +@@ -13,13 +13,13 @@ class TextStatisticsPluralise extends \PHPUnit\Framework\TestCase + + protected $TextStatistics = null; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } +diff --git a/tests/TextStatisticsTest.php b/tests/TextStatisticsTest.php +index db6e171..45b57dd 100644 +--- a/tests/TextStatisticsTest.php ++++ b/tests/TextStatisticsTest.php +@@ -13,13 +13,13 @@ class TextStatisticsTest extends \PHPUnit\Framework\TestCase + + protected $TextStatistics = null; + +- public function setUp() ++ public function setUp(): void + { + $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); + $this->TextStatistics->normalise = false; + } + +- public function tearDown() ++ public function tearDown(): void + { + unset($this->objTextStatistics); + } + +From 4ba139329c82cd09938b7ab5d8586249b1b4645c Mon Sep 17 00:00:00 2001 +From: Michael Diodone <8616698+mdio@users.noreply.github.com> +Date: Fri, 10 Nov 2023 09:43:17 +0100 +Subject: [PATCH 2/4] Replace utf8_decode with mb_convert_encoding + +utf8_decode is deprecated in PHP 8.2. +ext-mbstring is now a requirement. +--- + composer.json | 6 +++--- + src/DaveChild/TextStatistics/Text.php | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/composer.json b/composer.json +index 486d63e..b256fa0 100644 +--- a/composer.json ++++ b/composer.json +@@ -12,7 +12,8 @@ + ], + "license": "BSD-2-Clause", + "require": { +- "php": ">=7.2.0" ++ "php": ">=7.2.0", ++ "ext-mbstring": "Handle multi-byte text properly." + }, + "require-dev": { + "phpunit/phpunit": "^9" +@@ -28,7 +29,6 @@ + } + }, + "suggest": { +- "ext-bcmath": "More accurate floating point calculations.", +- "ext-mbstring": "Handle multi-byte text properly." ++ "ext-bcmath": "More accurate floating point calculations." + } + } +diff --git a/src/DaveChild/TextStatistics/Text.php b/src/DaveChild/TextStatistics/Text.php +index 4718fa1..f7bdba8 100644 +--- a/src/DaveChild/TextStatistics/Text.php ++++ b/src/DaveChild/TextStatistics/Text.php +@@ -36,7 +36,7 @@ public static function cleanText($strText) + return self::$clean[$key]; + } + +- $strText = utf8_decode($strText); ++ $strText = mb_convert_encoding($strText, 'UTF-8', 'ISO-8859-1'); + + // Curly quotes etc + $strText = str_replace( + +From 0fa069c80a582faff092869e00b152dd4c781715 Mon Sep 17 00:00:00 2001 +From: Michael Diodone <8616698+mdio@users.noreply.github.com> +Date: Fri, 10 Nov 2023 09:46:57 +0100 +Subject: [PATCH 3/4] Remove $blnMbstring and related code + +Because ext-mbstring is required now anyway. +--- + src/DaveChild/TextStatistics/Text.php | 86 +++++---------------------- + 1 file changed, 16 insertions(+), 70 deletions(-) + +diff --git a/src/DaveChild/TextStatistics/Text.php b/src/DaveChild/TextStatistics/Text.php +index f7bdba8..6210848 100644 +--- a/src/DaveChild/TextStatistics/Text.php ++++ b/src/DaveChild/TextStatistics/Text.php +@@ -5,11 +5,6 @@ + class Text + { + +- /** +- * @var boolean $blnMbstring Efficiency: Is the MB String extension loaded? +- */ +- protected static $blnMbstring = null; +- + /** + * @var array $clean Efficiency: Store strings once processed. + */ +@@ -128,19 +123,10 @@ public static function cleanText($strText) + */ + public static function lowerCase($strText, $strEncoding = '') + { +- +- if (is_null(self::$blnMbstring)) { +- self::$blnMbstring = extension_loaded('mbstring'); +- } +- +- if (!self::$blnMbstring) { +- $strLowerCaseText = strtolower($strText); ++ if ($strEncoding == '') { ++ $strLowerCaseText = mb_strtolower($strText); + } else { +- if ($strEncoding == '') { +- $strLowerCaseText = mb_strtolower($strText); +- } else { +- $strLowerCaseText = mb_strtolower($strText, $strEncoding); +- } ++ $strLowerCaseText = mb_strtolower($strText, $strEncoding); + } + + return $strLowerCaseText; +@@ -154,19 +140,10 @@ public static function lowerCase($strText, $strEncoding = '') + */ + public static function upperCase($strText, $strEncoding = '') + { +- +- if (is_null(self::$blnMbstring)) { +- self::$blnMbstring = extension_loaded('mbstring'); +- } +- +- if (!self::$blnMbstring) { +- $strUpperCaseText = strtoupper($strText); ++ if ($strEncoding == '') { ++ $strUpperCaseText = mb_strtoupper($strText); + } else { +- if ($strEncoding == '') { +- $strUpperCaseText = mb_strtoupper($strText); +- } else { +- $strUpperCaseText = mb_strtoupper($strText, $strEncoding); +- } ++ $strUpperCaseText = mb_strtoupper($strText, $strEncoding); + } + + return $strUpperCaseText; +@@ -182,19 +159,10 @@ public static function upperCase($strText, $strEncoding = '') + */ + public static function substring($strText, $intStart, $intLength, $strEncoding = '') + { +- +- if (is_null(self::$blnMbstring)) { +- self::$blnMbstring = extension_loaded('mbstring'); +- } +- +- if (!self::$blnMbstring) { +- $strSubstring = substr($strText, $intStart, $intLength); ++ if ($strEncoding == '') { ++ $strSubstring = mb_substr($strText, $intStart, $intLength); + } else { +- if ($strEncoding == '') { +- $strSubstring = mb_substr($strText, $intStart, $intLength); +- } else { +- $strSubstring = mb_substr($strText, $intStart, $intLength, $strEncoding); +- } ++ $strSubstring = mb_substr($strText, $intStart, $intLength, $strEncoding); + } + + return $strSubstring; +@@ -208,19 +176,10 @@ public static function substring($strText, $intStart, $intLength, $strEncoding = + */ + public static function textLength($strText, $strEncoding = '') + { +- +- if (is_null(self::$blnMbstring)) { +- self::$blnMbstring = extension_loaded('mbstring'); +- } +- +- if (!self::$blnMbstring) { +- $intTextLength = strlen($strText); ++ if ($strEncoding == '') { ++ $intTextLength = mb_strlen($strText); + } else { +- if ($strEncoding == '') { +- $intTextLength = mb_strlen($strText); +- } else { +- $intTextLength = mb_strlen($strText, $strEncoding); +- } ++ $intTextLength = mb_strlen($strText, $strEncoding); + } + + return $intTextLength; +@@ -250,26 +209,13 @@ public static function letterCount($strText, $strEncoding = '') + return 0; + } + +- if (is_null(self::$blnMbstring)) { +- self::$blnMbstring = extension_loaded('mbstring'); +- } +- + $strText = self::cleanText($strText); // To clear out newlines etc + $intTextLength = 0; + $strText = preg_replace('`[^A-Za-z]+`', '', $strText); +- try { +- +- if (!self::$blnMbstring) { +- throw new \Exception('The extension mbstring is not loaded.'); +- } +- +- if ($strEncoding == '') { +- $intTextLength = mb_strlen($strText); +- } else { +- $intTextLength = mb_strlen($strText, $strEncoding); +- } +- } catch (\Exception $e) { +- $intTextLength = strlen($strText); ++ if ($strEncoding == '') { ++ $intTextLength = mb_strlen($strText); ++ } else { ++ $intTextLength = mb_strlen($strText, $strEncoding); + } + + return $intTextLength; + +From 1892c3bbf34ca7fffe8c7a89fddf8d2f68b4e567 Mon Sep 17 00:00:00 2001 +From: Michael Diodone <8616698+mdio@users.noreply.github.com> +Date: Fri, 10 Nov 2023 10:21:49 +0100 +Subject: [PATCH 4/4] Fix version constraint for ext-mbstring + +--- + composer.json | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/composer.json b/composer.json +index b256fa0..b2be8e0 100644 +--- a/composer.json ++++ b/composer.json +@@ -13,7 +13,7 @@ + "license": "BSD-2-Clause", + "require": { + "php": ">=7.2.0", +- "ext-mbstring": "Handle multi-byte text properly." ++ "ext-mbstring": "*" + }, + "require-dev": { + "phpunit/phpunit": "^9" diff --git a/src/DaveChild/TextStatistics/Maths.php b/src/DaveChild/TextStatistics/Maths.php index cb49456..8972cc1 100644 --- a/src/DaveChild/TextStatistics/Maths.php +++ b/src/DaveChild/TextStatistics/Maths.php @@ -2,6 +2,8 @@ namespace DaveChild\TextStatistics; +use function is_numeric; + class Maths { @@ -77,6 +79,10 @@ public static function bcCalc($number1, $action, $number2, $round = false, $deci $number2 = strval($number2); } + if (!is_numeric($number1) || !is_numeric($number2)) { + return false; + } + // Normalise operator $action = self::normaliseOperator($action); diff --git a/src/DaveChild/TextStatistics/Text.php b/src/DaveChild/TextStatistics/Text.php index 4718fa1..d066625 100644 --- a/src/DaveChild/TextStatistics/Text.php +++ b/src/DaveChild/TextStatistics/Text.php @@ -5,11 +5,6 @@ class Text { - /** - * @var boolean $blnMbstring Efficiency: Is the MB String extension loaded? - */ - protected static $blnMbstring = null; - /** * @var array $clean Efficiency: Store strings once processed. */ @@ -24,8 +19,8 @@ class Text public static function cleanText($strText) { - // Check for boolean before processing as string - if (is_bool($strText)) { + // Check for boolean OR null value before processing as string + if (is_bool($strText) || is_null($strText)) { return ''; } @@ -36,7 +31,7 @@ public static function cleanText($strText) return self::$clean[$key]; } - $strText = utf8_decode($strText); + $strText = mb_convert_encoding($strText, 'UTF-8', 'ISO-8859-1'); // Curly quotes etc $strText = str_replace( @@ -128,19 +123,10 @@ public static function cleanText($strText) */ public static function lowerCase($strText, $strEncoding = '') { - - if (is_null(self::$blnMbstring)) { - self::$blnMbstring = extension_loaded('mbstring'); - } - - if (!self::$blnMbstring) { - $strLowerCaseText = strtolower($strText); + if ($strEncoding == '') { + $strLowerCaseText = mb_strtolower($strText); } else { - if ($strEncoding == '') { - $strLowerCaseText = mb_strtolower($strText); - } else { - $strLowerCaseText = mb_strtolower($strText, $strEncoding); - } + $strLowerCaseText = mb_strtolower($strText, $strEncoding); } return $strLowerCaseText; @@ -154,19 +140,10 @@ public static function lowerCase($strText, $strEncoding = '') */ public static function upperCase($strText, $strEncoding = '') { - - if (is_null(self::$blnMbstring)) { - self::$blnMbstring = extension_loaded('mbstring'); - } - - if (!self::$blnMbstring) { - $strUpperCaseText = strtoupper($strText); + if ($strEncoding == '') { + $strUpperCaseText = mb_strtoupper($strText); } else { - if ($strEncoding == '') { - $strUpperCaseText = mb_strtoupper($strText); - } else { - $strUpperCaseText = mb_strtoupper($strText, $strEncoding); - } + $strUpperCaseText = mb_strtoupper($strText, $strEncoding); } return $strUpperCaseText; @@ -182,19 +159,10 @@ public static function upperCase($strText, $strEncoding = '') */ public static function substring($strText, $intStart, $intLength, $strEncoding = '') { - - if (is_null(self::$blnMbstring)) { - self::$blnMbstring = extension_loaded('mbstring'); - } - - if (!self::$blnMbstring) { - $strSubstring = substr($strText, $intStart, $intLength); + if ($strEncoding == '') { + $strSubstring = mb_substr($strText, $intStart, $intLength); } else { - if ($strEncoding == '') { - $strSubstring = mb_substr($strText, $intStart, $intLength); - } else { - $strSubstring = mb_substr($strText, $intStart, $intLength, $strEncoding); - } + $strSubstring = mb_substr($strText, $intStart, $intLength, $strEncoding); } return $strSubstring; @@ -208,19 +176,10 @@ public static function substring($strText, $intStart, $intLength, $strEncoding = */ public static function textLength($strText, $strEncoding = '') { - - if (is_null(self::$blnMbstring)) { - self::$blnMbstring = extension_loaded('mbstring'); - } - - if (!self::$blnMbstring) { - $intTextLength = strlen($strText); + if ($strEncoding == '') { + $intTextLength = mb_strlen($strText); } else { - if ($strEncoding == '') { - $intTextLength = mb_strlen($strText); - } else { - $intTextLength = mb_strlen($strText, $strEncoding); - } + $intTextLength = mb_strlen($strText, $strEncoding); } return $intTextLength; @@ -250,26 +209,13 @@ public static function letterCount($strText, $strEncoding = '') return 0; } - if (is_null(self::$blnMbstring)) { - self::$blnMbstring = extension_loaded('mbstring'); - } - $strText = self::cleanText($strText); // To clear out newlines etc $intTextLength = 0; $strText = preg_replace('`[^A-Za-z]+`', '', $strText); - try { - - if (!self::$blnMbstring) { - throw new \Exception('The extension mbstring is not loaded.'); - } - - if ($strEncoding == '') { - $intTextLength = mb_strlen($strText); - } else { - $intTextLength = mb_strlen($strText, $strEncoding); - } - } catch (\Exception $e) { - $intTextLength = strlen($strText); + if ($strEncoding == '') { + $intTextLength = mb_strlen($strText); + } else { + $intTextLength = mb_strlen($strText, $strEncoding); } return $intTextLength; diff --git a/tests/TextStatisticsCMULexTest.php b/tests/TextStatisticsCMULexTest.php index 385aea4..ddb4261 100644 --- a/tests/TextStatisticsCMULexTest.php +++ b/tests/TextStatisticsCMULexTest.php @@ -11,13 +11,13 @@ class TextStatisticsTestCMULex extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); } diff --git a/tests/TextStatisticsKiplingIfTest.php b/tests/TextStatisticsKiplingIfTest.php index 7150152..c8050d3 100644 --- a/tests/TextStatisticsKiplingIfTest.php +++ b/tests/TextStatisticsKiplingIfTest.php @@ -80,13 +80,13 @@ class TextStatisticsKiplingIf extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; protected $strText = "If you can keep your head when all about you \n Are losing theirs and blaming it on you, \n If you can trust yourself when all men doubt you \n But make allowance for their doubting too, \n If you can wait and not be tired by waiting, \n Or being lied about, don't deal in lies, \n Or being hated, don't give way to hating, \n And yet don't look too good, nor talk too wise: \n\n If you can dream - and not make dreams your master, \n If you can think - and not make thoughts your aim; \n If you can meet with Triumph and Disaster \n And treat those two impostors just the same; \n If you can bear to hear the truth you've spoken \n Twisted by knaves to make a trap for fools, \n Or watch the things you gave your life to, broken, \n And stoop and build 'em up with worn-out tools: \n\n If you can make one heap of all your winnings \n And risk it all on one turn of pitch-and-toss, \n And lose, and start again at your beginnings \n And never breath a word about your loss; \n If you can force your heart and nerve and sinew \n To serve your turn long after they are gone, \n And so hold on when there is nothing in you \n Except the Will which says to them: \"Hold on\" \n\n If you can talk with crowds and keep your virtue, \n Or walk with kings - nor lose the common touch, \n If neither foes nor loving friends can hurt you; \n If all men count with you, but none too much, \n If you can fill the unforgiving minute \n With sixty seconds' worth of distance run, \n Yours is the Earth and everything that's in it, \n And - which is more - you'll be a Man, my son!"; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); } diff --git a/tests/TextStatisticsMaths.php b/tests/TextStatisticsMaths.php index ceec2f8..2c014b9 100644 --- a/tests/TextStatisticsMaths.php +++ b/tests/TextStatisticsMaths.php @@ -13,13 +13,13 @@ class TextStatisticsMaths extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); } @@ -162,11 +162,11 @@ public function testCalc() // Malformed data $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(array('banana'), '+', 2, true, 1)); $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(2, '+', array('banana'), true, 1)); - $this->assertSame(0.0, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three', true, 1)); - $this->assertSame(0.0, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three', true, 1)); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three', true, 1)); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three', true, 1)); $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(array('banana'), '+', 2)); $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc(2, '+', array('banana'))); - $this->assertSame(0, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three')); - $this->assertSame(0, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three')); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '+', 'three')); + $this->assertSame(false, DaveChild\TextStatistics\Maths::bcCalc('two', '/', 'three')); } } diff --git a/tests/TextStatisticsMelvilleMobyDickTest.php b/tests/TextStatisticsMelvilleMobyDickTest.php index 5c43be7..ea4d50d 100644 --- a/tests/TextStatisticsMelvilleMobyDickTest.php +++ b/tests/TextStatisticsMelvilleMobyDickTest.php @@ -46,13 +46,13 @@ class TextStatisticsMelvilleMobyDick extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; protected $strText = "Call me Ishmael. Some years ago - never mind how long precisely - having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen, and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off - then, I account it high time to get to sea as soon as I can. This is my substitute for pistol and ball. With a philosophical flourish Cato throws himself upon his sword; I quietly take to the ship. There is nothing surprising in this. If they but knew it, almost all men in their degree, some time or other, cherish very nearly the same feelings towards the ocean with me."; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); } diff --git a/tests/TextStatisticsPluralise.php b/tests/TextStatisticsPluralise.php index ef659bc..d9a8073 100644 --- a/tests/TextStatisticsPluralise.php +++ b/tests/TextStatisticsPluralise.php @@ -13,13 +13,13 @@ class TextStatisticsPluralise extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); } diff --git a/tests/TextStatisticsTest.php b/tests/TextStatisticsTest.php index db6e171..45b57dd 100644 --- a/tests/TextStatisticsTest.php +++ b/tests/TextStatisticsTest.php @@ -13,13 +13,13 @@ class TextStatisticsTest extends \PHPUnit\Framework\TestCase protected $TextStatistics = null; - public function setUp() + public function setUp(): void { $this->TextStatistics = new DaveChild\TextStatistics\TextStatistics(); $this->TextStatistics->normalise = false; } - public function tearDown() + public function tearDown(): void { unset($this->objTextStatistics); }