diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ff63891 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI + +on: + push: + branches: + - '**' + pull_request: + branches: + - '**' + +jobs: + test: + name: PHP ${{ matrix.php-version }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php-version: + - '8.3' + - '8.4' + - '8.5' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + coverage: xdebug + + - name: Install dependencies + run: composer install --prefer-dist --no-progress + + - name: Run tests + run: vendor/bin/phpunit -c tests --coverage-text + + + diff --git a/.gitignore b/.gitignore index a0f4838..ca44d43 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ composer.phar /vendor/ +.phpunit.result.cache diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c178797..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: php - -php: - - 5.6 - - 7.0 - - 7.1 - -before_script: - - composer install - -script: phpunit -c tests --coverage-text diff --git a/README.md b/README.md index 40fe139..6366e8e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Xi Netvisor -Netvisor API interface for PHP 5.3+. +Netvisor API interface for PHP 8.3+. -[![Build Status](https://secure.travis-ci.org/xi-project/xi-netvisor.png)](https://travis-ci.org/xi-project/xi-netvisor) +[![CI](https://github.com/xi-project/xi-netvisor/actions/workflows/ci.yml/badge.svg)](https://github.com/xi-project/xi-netvisor/actions/workflows/ci.yml) ## Interfaces diff --git a/composer.json b/composer.json index 0feff49..7cbc532 100644 --- a/composer.json +++ b/composer.json @@ -19,13 +19,13 @@ ], "require": { - "php": ">=7.2", + "php": ">=8.3", "jms/serializer": "^3.11", "guzzlehttp/guzzle": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^12.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index dd853dd..15aaa39 100644 --- a/composer.lock +++ b/composer.lock @@ -4,105 +4,34 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7e15a82098bceb6bf70ae2daa038de23", + "content-hash": "43bd164e0f93c31865b848c42c00282e", "packages": [ - { - "name": "doctrine/annotations", - "version": "1.13.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.2" - }, - "time": "2021-08-05T19:00:23+00:00" - }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -129,7 +58,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -145,35 +74,36 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -205,7 +135,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -221,38 +151,41 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.4.1", + "version": "7.15.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "guzzlehttp/promises": "^2.5.1", + "guzzlehttp/psr7": "^2.13", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -262,8 +195,9 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "7.4-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { @@ -329,7 +263,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.1" + "source": "https://github.com/guzzle/guzzle/tree/7.15.1" }, "funding": [ { @@ -345,38 +279,38 @@ "type": "tidelift" } ], - "time": "2021-12-06T18:43:05+00:00" + "time": "2026-07-18T11:23:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.1", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "url": "https://api.github.com/repos/guzzle/promises/zipball/9ad1e4fc607446a055b95870c7f668e93b5cff29", + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -413,7 +347,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.1" + "source": "https://github.com/guzzle/promises/tree/2.5.1" }, "funding": [ { @@ -429,44 +363,48 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:56:57+00:00" + "time": "2026-07-08T15:48:39+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.1.0", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dad89620b7a6edb60c15858442eb2e408b45d8f4", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "ralouphie/getallheaders": "^3.0" + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.1-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { @@ -528,7 +466,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.1.0" + "source": "https://github.com/guzzle/psr7/tree/2.13.0" }, "funding": [ { @@ -544,33 +482,33 @@ "type": "tidelift" } ], - "time": "2021-10-06T17:43:30+00:00" + "time": "2026-07-16T22:23:49+00:00" }, { "name": "jms/metadata", - "version": "2.6.1", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/metadata.git", - "reference": "c3a3214354b5a765a19875f7b7c5ebcd94e462e5" + "reference": "554319d2e5f0c5d8ccaeffe755eac924e14da330" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/c3a3214354b5a765a19875f7b7c5ebcd94e462e5", - "reference": "c3a3214354b5a765a19875f7b7c5ebcd94e462e5", + "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/554319d2e5f0c5d8ccaeffe755eac924e14da330", + "reference": "554319d2e5f0c5d8ccaeffe755eac924e14da330", "shasum": "" }, "require": { "php": "^7.2|^8.0" }, "require-dev": { - "doctrine/cache": "^1.0", + "doctrine/cache": "^1.0|^2.0", "doctrine/coding-standard": "^8.0", "mikey179/vfsstream": "^1.6.7", - "phpunit/phpunit": "^8.5|^9.0", - "psr/container": "^1.0", - "symfony/cache": "^3.1|^4.0|^5.0", - "symfony/dependency-injection": "^3.1|^4.0|^5.0" + "phpunit/phpunit": "^8.5.42|^9.6.23", + "psr/container": "^1.0|^2.0", + "symfony/cache": "^3.1|^4.0|^5.0|^6.0|^7.0|^8.0", + "symfony/dependency-injection": "^3.1|^4.0|^5.0|^6.0|^7.0|^8.0" }, "type": "library", "extra": { @@ -606,56 +544,59 @@ ], "support": { "issues": "https://github.com/schmittjoh/metadata/issues", - "source": "https://github.com/schmittjoh/metadata/tree/2.6.1" + "source": "https://github.com/schmittjoh/metadata/tree/2.9.0" }, - "time": "2021-11-22T12:27:42+00:00" + "time": "2025-11-30T20:12:26+00:00" }, { "name": "jms/serializer", - "version": "3.17.1", + "version": "3.32.7", "source": { "type": "git", "url": "https://github.com/schmittjoh/serializer.git", - "reference": "190f64b051795d447ec755acbfdb1bff330a6707" + "reference": "d725ebd288688bb24f47ee467b1299b0fc6d04f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/190f64b051795d447ec755acbfdb1bff330a6707", - "reference": "190f64b051795d447ec755acbfdb1bff330a6707", + "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/d725ebd288688bb24f47ee467b1299b0fc6d04f8", + "reference": "d725ebd288688bb24f47ee467b1299b0fc6d04f8", "shasum": "" }, "require": { - "doctrine/annotations": "^1.13", - "doctrine/instantiator": "^1.0.3", - "doctrine/lexer": "^1.1", + "doctrine/instantiator": "^1.3.1 || ^2.0", + "doctrine/lexer": "^2.0 || ^3.0", "jms/metadata": "^2.6", - "php": "^7.2||^8.0", - "phpstan/phpdoc-parser": "^0.4 || ^0.5 || ^1.0" + "php": "^7.4 || ^8.0", + "phpstan/phpdoc-parser": "^1.20 || ^2.0" }, "require-dev": { - "doctrine/coding-standard": "^8.1", - "doctrine/orm": "~2.1", - "doctrine/persistence": "^1.3.3|^2.0|^3.0", - "doctrine/phpcr-odm": "^1.3|^2.0", + "doctrine/annotations": "^1.14 || ^2.0", + "doctrine/coding-standard": "^12.0", + "doctrine/orm": "^2.14 || ^3.0", + "doctrine/persistence": "^2.5.2 || ^3.0", + "doctrine/phpcr-odm": "^1.5.2 || ^2.0", "ext-pdo_sqlite": "*", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "ocramius/proxy-manager": "^1.0|^2.0", + "jackalope/jackalope-doctrine-dbal": "^1.3", + "ocramius/proxy-manager": "^1.0 || ^2.0", "phpbench/phpbench": "^1.0", - "phpstan/phpstan": "^1.0.2", - "phpunit/phpunit": "^8.5.21||^9.0", - "psr/container": "^1.0", - "symfony/dependency-injection": "^3.0|^4.0|^5.0|^6.0", - "symfony/expression-language": "^3.2|^4.0|^5.0|^6.0", - "symfony/filesystem": "^3.0|^4.0|^5.0|^6.0", - "symfony/form": "^3.0|^4.0|^5.0|^6.0", - "symfony/translation": "^3.0|^4.0|^5.0|^6.0", - "symfony/validator": "^3.1.9|^4.0|^5.0|^6.0", - "symfony/yaml": "^3.3|^4.0|^5.0|^6.0", - "twig/twig": "~1.34|~2.4|^3.0" + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^9.0 || ^10.0 || ^11.0", + "psr/container": "^1.0 || ^2.0", + "rector/rector": "^1.0.0 || ^2.0", + "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/expression-language": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/form": "^5.4.45 || ^6.4.27 || ^7.0 || ^8.0", + "symfony/translation": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/uid": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/validator": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "twig/twig": "^1.34 || ^2.4 || ^3.0" }, "suggest": { "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", "symfony/cache": "Required if you like to use cache functionality.", + "symfony/uid": "Required if you'd like to serialize UID objects.", "symfony/yaml": "Required if you'd like to use the YAML metadata format." }, "type": "library", @@ -683,7 +624,7 @@ "email": "goetas@gmail.com" } ], - "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", + "description": "Library for (de-)serializing data of any complexity; supports XML, and JSON.", "homepage": "http://jmsyst.com/libs/serializer", "keywords": [ "deserialization", @@ -694,47 +635,49 @@ ], "support": { "issues": "https://github.com/schmittjoh/serializer/issues", - "source": "https://github.com/schmittjoh/serializer/tree/3.17.1" + "source": "https://github.com/schmittjoh/serializer/tree/3.32.7" }, "funding": [ { "url": "https://github.com/goetas", "type": "github" + }, + { + "url": "https://github.com/scyzoryck", + "type": "github" } ], - "time": "2021-12-28T20:59:55+00:00" + "time": "2026-03-11T20:11:17+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.2.0", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e" + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/dbc093d7af60eff5cd575d2ed761b15ed40bd08e", - "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-4": { "PHPStan\\PhpDocParser\\": [ @@ -749,76 +692,27 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.2.0" - }, - "time": "2021-09-16T20:46:02+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" }, - "time": "2021-02-03T23:26:27+00:00" + "time": "2026-07-08T07:01:06+00:00" }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -838,7 +732,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -850,27 +744,27 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -890,10 +784,10 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -905,31 +799,31 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2019-04-30T12:38:16+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -944,7 +838,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -958,9 +852,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "ralouphie/getallheaders", @@ -1008,29 +902,29 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -1055,7 +949,91 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" }, "funding": [ { @@ -1066,36 +1044,45 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2026-04-10T16:19:22+00:00" } ], "packages-dev": [ { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "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", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -1120,7 +1107,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -1128,24 +1115,82 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-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/v5.8.0" + }, + "time": "2026-07-04T14:30:18+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -1186,9 +1231,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -1242,268 +1293,117 @@ "time": "2022-02-21T01:04:05+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "name": "phpunit/php-code-coverage", + "version": "12.5.7", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.7.0", + "php": ">=8.3", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", + "sebastian/version": "^6.0", + "theseer/tokenizer": "^2.0.1" + }, + "require-dev": { + "phpunit/phpunit": "^12.5.28" + }, + "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-2.x": "2.x-dev" + "dev-main": "12.5.x-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" ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "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/12.5.7" }, - "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" }, { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" - }, - "time": "2022-01-04T19:58:01+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" + "time": "2026-06-01T13:24:19+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "7.0.15", + "name": "phpunit/php-file-iterator", + "version": "6.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.3 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" - }, - "suggest": { - "ext-xdebug": "^2.7.2" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1522,49 +1422,65 @@ "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": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", "keywords": [ - "coverage", - "testing", - "xunit" + "filesystem", + "iterator" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2021-07-26T12:20:09+00:00" + "time": "2026-02-02T14:04:18+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "name": "phpunit/php-invoker", + "version": "6.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "ext-pcntl": "*", + "phpunit/phpunit": "^12.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1583,15 +1499,15 @@ "role": "lead" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "filesystem", - "iterator" + "process" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -1599,26 +1515,34 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "1.2.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -1642,34 +1566,41 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.3", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -1695,7 +1626,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -1703,36 +1635,63 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "4.0.4", + "name": "phpunit/phpunit", + "version": "12.5.31", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0608d157a284f15cc73b99a3327eff06b66a176d", + "reference": "0608d157a284f15cc73b99a3327eff06b66a176d", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" + "ext-dom": "*", + "ext-filter": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.1", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.1", + "sebastian/comparator": "^7.1.8", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.1.2", + "sebastian/exporter": "^7.0.3", + "sebastian/global-state": "^8.0.3", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", + "sebastian/type": "^6.0.4", + "sebastian/version": "^6.0.0", + "staabm/side-effects-detector": "^1.0.5" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "12.5-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -1744,83 +1703,54 @@ "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/", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "tokenizer" + "phpunit", + "testing", + "xunit" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.31" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://phpunit.de/sponsoring.html", + "type": "other" } ], - "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" + "time": "2026-07-06T14:54:16+00:00" }, { - "name": "phpunit/phpunit", - "version": "8.5.23", + "name": "sebastian/cli-parser", + "version": "4.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/efb20ff3623b9d09bf190a68fdfe574538a8d496", - "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", + "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.2", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" + "php": ">=8.3" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "phpunit/phpunit": "^12.5.25" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "8.5-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -1839,53 +1769,64 @@ "role": "lead" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.23" + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" }, "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "time": "2022-01-21T05:50:34+00:00" + "time": "2026-05-17T05:29:34+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "name": "sebastian/comparator", + "version": "7.1.8", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "7c65c1e79836812819705b473a90c12399542485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", + "reference": "7c65c1e79836812819705b473a90c12399542485", "shasum": "" }, "require": { - "php": ">=5.6" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^12.5.25" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -1901,48 +1842,77 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2026-05-21T04:45:25+00:00" }, { - "name": "sebastian/comparator", - "version": "3.0.3", + "name": "sebastian/complexity", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "nikic/php-parser": "^5.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -1957,31 +1927,16 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -1989,33 +1944,33 @@ "type": "github" } ], - "time": "2020-11-30T08:04:30+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "3.0.3", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -2047,7 +2002,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -2055,27 +2011,27 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "8.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" @@ -2083,7 +2039,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -2102,7 +2058,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -2110,42 +2066,55 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2026-05-25T13:40:20+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.4", + "version": "7.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -2180,53 +2149,63 @@ } ], "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" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2021-11-11T13:51:24+00:00" + "time": "2026-05-20T04:37:17+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.2", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^12.5.28" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -2245,48 +2224,60 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2026-06-01T15:10:33+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.4", + "name": "sebastian/lines-of-code", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", + "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "nikic/php-parser": "^5.7.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -2301,47 +2292,63 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "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/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code", + "type": "tidelift" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2026-05-19T16:22:07+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.2", + "name": "sebastian/object-enumerator", + "version": "7.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -2359,11 +2366,12 @@ "email": "sebastian@phpunit.de" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -2371,32 +2379,32 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.1", + "name": "sebastian/object-reflector", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -2412,21 +2420,14 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -2434,29 +2435,32 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { - "name": "sebastian/resource-operations", - "version": "2.0.2", + "name": "sebastian/recursion-context", + "version": "7.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.3" + }, + "require-dev": { + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -2472,46 +2476,67 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "6.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "82ff822c2edc46724be9f7411d3163021f602773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", + "reference": "82ff822c2edc46724be9f7411d3163021f602773", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^12.5.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -2534,37 +2559,50 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2026-05-20T06:45:45+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -2587,111 +2625,88 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, - "time": "2016-10-03T07:35:21+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-02-07T05:00:38+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", + "description": "A static analysis tool to detect side effects in PHP code", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "static analysis" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/staabm", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, "type": "library", "autoload": { @@ -2713,7 +2728,7 @@ "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" + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, "funding": [ { @@ -2721,75 +2736,17 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" - }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2025-12-08T11:19:18+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.2" + "php": ">=8.3" }, - "platform-dev": [], - "plugin-api-version": "2.2.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/library/Xi/Netvisor/Component/Validate.php b/library/Xi/Netvisor/Component/Validate.php index b259d30..e1538ed 100644 --- a/library/Xi/Netvisor/Component/Validate.php +++ b/library/Xi/Netvisor/Component/Validate.php @@ -18,10 +18,15 @@ public function isValid($xml, $filepath) $dom = new \DOMDocument(); $dom->loadXML($xml); + $previousUseInternalErrors = libxml_use_internal_errors(true); + try { return $dom->validate(); - } catch (\Exception $e) { + } catch (\Exception) { return false; + } finally { + libxml_clear_errors(); + libxml_use_internal_errors($previousUseInternalErrors); } } diff --git a/library/Xi/Netvisor/Resource/Xml/Component/AttributeElement.php b/library/Xi/Netvisor/Resource/Xml/Component/AttributeElement.php index eb783f3..f335383 100644 --- a/library/Xi/Netvisor/Resource/Xml/Component/AttributeElement.php +++ b/library/Xi/Netvisor/Resource/Xml/Component/AttributeElement.php @@ -7,14 +7,10 @@ class AttributeElement { - /** - * @Inline - */ + #[Inline] private $value; - /** - * @XmlAttributeMap - */ + #[XmlAttributeMap] private $attributes; /** diff --git a/library/Xi/Netvisor/Resource/Xml/Component/WrapperElement.php b/library/Xi/Netvisor/Resource/Xml/Component/WrapperElement.php index 12b7f9c..364897e 100644 --- a/library/Xi/Netvisor/Resource/Xml/Component/WrapperElement.php +++ b/library/Xi/Netvisor/Resource/Xml/Component/WrapperElement.php @@ -6,15 +6,11 @@ use JMS\Serializer\Annotation\Inline; use JMS\Serializer\Annotation\XmlRoot; -/** - * @XmlRoot("root") - */ +#[XmlRoot("root")] class WrapperElement { - /** - * @XmlKeyValuePairs - * @Inline - */ + #[XmlKeyValuePairs] + #[Inline] private $value; /** diff --git a/library/Xi/Netvisor/Resource/Xml/Customer.php b/library/Xi/Netvisor/Resource/Xml/Customer.php index 13dea99..56af5d3 100644 --- a/library/Xi/Netvisor/Resource/Xml/Customer.php +++ b/library/Xi/Netvisor/Resource/Xml/Customer.php @@ -14,7 +14,7 @@ class Customer extends Root public function __construct( CustomerBaseInformation $customerBaseInformation, - CustomerFinvoiceDetails $customerFinvoiceDetails = null + ?CustomerFinvoiceDetails $customerFinvoiceDetails = null ) { parent::__construct(); diff --git a/library/Xi/Netvisor/Resource/Xml/PurchaseInvoice.php b/library/Xi/Netvisor/Resource/Xml/PurchaseInvoice.php index a4752cd..0b83fd9 100644 --- a/library/Xi/Netvisor/Resource/Xml/PurchaseInvoice.php +++ b/library/Xi/Netvisor/Resource/Xml/PurchaseInvoice.php @@ -29,14 +29,10 @@ class PurchaseInvoice extends Root private $bankreferencenumber; private $comment; - /** - * @XmlList(entry = "purchaseinvoiceline") - */ + #[XmlList(entry: "purchaseinvoiceline")] private $purchaseinvoicelines = array(); - /** - * @XmlList(entry = "purchaseinvoiceattachment") - */ + #[XmlList(entry: "purchaseinvoiceattachment")] private $purchaseinvoiceattachments = array(); /** diff --git a/library/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLine.php b/library/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLine.php index 856391c..49951dd 100644 --- a/library/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLine.php +++ b/library/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLine.php @@ -14,9 +14,7 @@ class PurchaseInvoiceLine private $linesum; private $accountingsuggestion; - /** - * @XmlList(inline = true, entry = "dimension") - */ + #[XmlList(inline: true, entry: "dimension")] private $dimensions = []; /** diff --git a/library/Xi/Netvisor/Resource/Xml/SalesInvoice.php b/library/Xi/Netvisor/Resource/Xml/SalesInvoice.php index e814ab4..8dbbd73 100644 --- a/library/Xi/Netvisor/Resource/Xml/SalesInvoice.php +++ b/library/Xi/Netvisor/Resource/Xml/SalesInvoice.php @@ -28,9 +28,7 @@ class SalesInvoice extends Root private $deliveryaddresscountrycode; private $paymentTermNetDays; - /** - * @XmlList(entry = "invoiceline") - */ + #[XmlList(entry: "invoiceline")] private $invoiceLines = array(); /** diff --git a/library/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLine.php b/library/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLine.php index 2915c93..34db4f9 100644 --- a/library/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLine.php +++ b/library/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLine.php @@ -23,9 +23,7 @@ class SalesInvoiceProductLine private $salesinvoiceproductlinefreetext; private $accountingaccountsuggestion; - /** - * @XmlList(inline = true, entry = "dimension") - */ + #[XmlList(inline: true, entry: "dimension")] private $dimensions = []; /** diff --git a/library/Xi/Netvisor/Resource/Xml/Voucher.php b/library/Xi/Netvisor/Resource/Xml/Voucher.php index de7f034..bd694dd 100644 --- a/library/Xi/Netvisor/Resource/Xml/Voucher.php +++ b/library/Xi/Netvisor/Resource/Xml/Voucher.php @@ -17,9 +17,7 @@ class Voucher extends Root private $description; private $voucherClass; - /** - * @XmlList(inline = true, entry = "voucherline") - */ + #[XmlList(inline: true, entry: "voucherline")] private $voucherLines = array(); /** diff --git a/library/Xi/Netvisor/Resource/Xml/VoucherLine.php b/library/Xi/Netvisor/Resource/Xml/VoucherLine.php index 4e3aa73..b3feb8e 100644 --- a/library/Xi/Netvisor/Resource/Xml/VoucherLine.php +++ b/library/Xi/Netvisor/Resource/Xml/VoucherLine.php @@ -17,9 +17,7 @@ class VoucherLine private $accountNumber; private $vatPercent; - /** - * @XmlList(inline = true, entry = "dimension") - */ + #[XmlList(inline: true, entry: "dimension")] private $dimensions = []; public function __construct($lineSum, $accountNumber, $vatPercent) diff --git a/tests/Xi/Netvisor/Component/RequestTest.php b/tests/Xi/Netvisor/Component/RequestTest.php index faeb1ff..6b9bf66 100644 --- a/tests/Xi/Netvisor/Component/RequestTest.php +++ b/tests/Xi/Netvisor/Component/RequestTest.php @@ -8,6 +8,7 @@ use GuzzleHttp\Client; use PHPUnit\Framework\TestCase; use Xi\Netvisor\Exception\NetvisorException; +use PHPUnit\Framework\Attributes\Test; class RequestTest extends TestCase { @@ -17,7 +18,7 @@ class RequestTest extends TestCase private $request; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \PHPUnit\Framework\MockObject\MockObject */ private $client; @@ -44,9 +45,7 @@ public function setUp(): void $this->request = new Request($this->client, $config); } - /** - * @test - */ + #[Test] public function createsRequest() { $this->client->expects($this->once()) @@ -56,9 +55,9 @@ public function createsRequest() 'http://integration.netvisor.fi/accounting.nv', $this->anything() ) - ->will($this->returnValue( + ->willReturn( new Response('200', array(), 'hello') - )); + ); $this->request->post( '', @@ -66,9 +65,7 @@ public function createsRequest() ); } - /** - * @test - */ + #[Test] public function throwsExceptionIfResponseStatusIsFailed() { $xmlResponse = <<anything() ) - ->will($this->returnValue( + ->willReturn( new Response('200', array(), $xmlResponse) - )); + ); $this->expectException(NetvisorException::class); $this->expectExceptionMessage('AUTHENTICATION_FAILED :: Integraatiokumppania ei löydy, katso dokumentaatio'); @@ -102,9 +99,7 @@ public function throwsExceptionIfResponseStatusIsFailed() ); } - /** - * @test - */ + #[Test] public function returnsResponseBodyIfResponseStatusIsOK() { $xmlResponse = <<anything() ) - ->will($this->returnValue( + ->willReturn( new Response('200', array(), $xmlResponse) - )); + ); $response = $this->request->post( '', diff --git a/tests/Xi/Netvisor/Component/ValidateTest.php b/tests/Xi/Netvisor/Component/ValidateTest.php index e6ab097..abf5d17 100644 --- a/tests/Xi/Netvisor/Component/ValidateTest.php +++ b/tests/Xi/Netvisor/Component/ValidateTest.php @@ -5,6 +5,7 @@ use Xi\Netvisor\Component\Validate; use Xi\Netvisor\Resource\Xml\TestResource; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class ValidateTest extends XmlTestCase { @@ -20,9 +21,7 @@ public function setUp(): void $this->validate = new Validate(); } - /** - * @test - */ + #[Test] public function validatesXmlAgainstDtd() { $resource = new TestResource(); @@ -33,9 +32,7 @@ public function validatesXmlAgainstDtd() ); } - /** - * @test - */ + #[Test] public function isNotValidIfXmlDoesNotSatisfyDtd() { $resource = new TestResource(); diff --git a/tests/Xi/Netvisor/ConfigTest.php b/tests/Xi/Netvisor/ConfigTest.php index f76e789..6966187 100644 --- a/tests/Xi/Netvisor/ConfigTest.php +++ b/tests/Xi/Netvisor/ConfigTest.php @@ -4,12 +4,11 @@ use PHPUnit\Framework\TestCase; use Xi\Netvisor\Config; +use PHPUnit\Framework\Attributes\Test; class ConfigTest extends TestCase { - /** - * @test - */ + #[Test] public function getsGivenParams() { $c = new Config( diff --git a/tests/Xi/Netvisor/Filter/SalesInvoicesFilterTest.php b/tests/Xi/Netvisor/Filter/SalesInvoicesFilterTest.php index abb0870..f3a8c40 100644 --- a/tests/Xi/Netvisor/Filter/SalesInvoicesFilterTest.php +++ b/tests/Xi/Netvisor/Filter/SalesInvoicesFilterTest.php @@ -4,12 +4,11 @@ use Xi\Netvisor\Filter\SalesInvoicesFilter; use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SalesInvoicesFilterTest extends TestCase { - /** - * @dataProvider provider - */ + #[DataProvider('provider')] public function testReturnsFilterArray(bool $setId, bool $setInvoiceAboveId, int $count) { $datetime = new \DateTime('2020-02-02'); @@ -29,27 +28,27 @@ public function testReturnsFilterArray(bool $setId, bool $setInvoiceAboveId, int $this->assertCount($count, $filters); } - public function provider() + public static function provider() { return [ [ 'setId' => true, - 'setInvoicesAboveId' => true, + 'setInvoiceAboveId' => true, 'count' => 2, ], [ 'setId' => false, - 'setInvoicesAboveId' => true, + 'setInvoiceAboveId' => true, 'count' => 1, ], [ 'setId' => true, - 'setInvoicesAboveId' => false, + 'setInvoiceAboveId' => false, 'count' => 1, ], [ 'setId' => false, - 'setInvoicesAboveId' => false, + 'setInvoiceAboveId' => false, 'count' => 0, ], ]; diff --git a/tests/Xi/Netvisor/NetvisorTest.php b/tests/Xi/Netvisor/NetvisorTest.php index ae3fa05..504163d 100644 --- a/tests/Xi/Netvisor/NetvisorTest.php +++ b/tests/Xi/Netvisor/NetvisorTest.php @@ -16,6 +16,7 @@ use Xi\Netvisor\Filter\SalesInvoicesFilter; use Xi\Netvisor\Resource\Xml\PurchaseInvoice; use Xi\Netvisor\Resource\Xml\PurchaseInvoiceState; +use PHPUnit\Framework\Attributes\Test; class NetvisorTest extends TestCase { @@ -34,9 +35,6 @@ class NetvisorTest extends TestCase */ private $config; - /** - * @test - */ public function setUp(): void { $this->client = $this->getMockBuilder('GuzzleHttp\Client') @@ -58,17 +56,13 @@ public function setUp(): void $this->netvisor = new Netvisor($this->client, $this->config, new Validate()); } - /** - * @test - */ + #[Test] public function builds() { $this->assertInstanceOf('Xi\Netvisor\Netvisor', Netvisor::build($this->config)); } - /** - * @test - */ + #[Test] public function returnsNullIfNotEnabled() { $config = new Config( @@ -90,9 +84,7 @@ public function returnsNullIfNotEnabled() ); } - /** - * @test - */ + #[Test] public function throwsIfXmlIsNotValid() { $this->expectExceptionMessage('XML is not valid according to DTD'); @@ -100,9 +92,7 @@ public function throwsIfXmlIsNotValid() $this->netvisor->requestWithBody(new TestResource(), 'service', array(), null); } - /** - * @test - */ + #[Test] public function requestsIfDtdValidationPasses() { $resource = new TestResource(); @@ -111,18 +101,17 @@ public function requestsIfDtdValidationPasses() $this->client->expects($this->once()) ->method('request') ->with($this->anything()) - ->will($this->returnValue( + ->willReturn( new Response('200', array(), 'lus') - )); + ); $this->assertEquals('lus', $this->netvisor->requestWithBody($resource, 'service', array(), null)); } /** * TODO: Betterize test and/or Netvisor structure. - * - * @test */ + #[Test] public function sendInvoiceSendsRequest() { $validate = $this->getMockBuilder('Xi\Netvisor\Component\Validate') @@ -131,15 +120,15 @@ public function sendInvoiceSendsRequest() $validate->expects($this->once()) ->method('isValid') - ->will($this->returnValue(true)); + ->willReturn(true); $netvisor = new Netvisor($this->client, $this->config, $validate); $this->client->expects($this->once()) ->method('request') - ->will($this->returnValue( + ->willReturn( new Response('200', array(), 'lus') - )); + ); $invoice = $this->getMockBuilder('Xi\Netvisor\Resource\Xml\SalesInvoice') ->disableOriginalConstructor() @@ -147,18 +136,16 @@ public function sendInvoiceSendsRequest() $invoice->expects($this->once()) ->method('getDtdPath') - ->will($this->returnValue(__DIR__ . '/Resource/Dtd/test.dtd')); + ->willReturn(__DIR__ . '/Resource/Dtd/test.dtd'); $invoice->expects($this->once()) ->method('getSerializableObject') - ->will($this->returnValue([])); + ->willReturn([]); $this->assertEquals('lus', $netvisor->sendInvoice($invoice)); } - /** - * @test - */ + #[Test] public function processInvoiceToWorkWithNetvisor() { $xml = "\n"; @@ -185,7 +172,7 @@ public function testUpdateCustomer() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['requestWithBody']) + ->onlyMethods(['requestWithBody']) ->getMock(); $netvisorMock @@ -215,7 +202,7 @@ public function testUpdateInvoice() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['requestWithBody']) + ->onlyMethods(['requestWithBody']) ->getMock(); $netvisorMock @@ -237,7 +224,7 @@ public function testSendVoucher() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['requestWithBody']) + ->onlyMethods(['requestWithBody']) ->getMock(); $netvisorMock @@ -256,7 +243,7 @@ public function testGetSalesInvoice() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['get']) + ->onlyMethods(['get']) ->getMock(); $netvisorMock @@ -276,7 +263,7 @@ public function testGetPurchaseInvoice() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['get']) + ->onlyMethods(['get']) ->getMock(); $netvisorMock @@ -296,7 +283,7 @@ public function testGetVouchers() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['get']) + ->onlyMethods(['get']) ->getMock(); $netvisorMock @@ -323,7 +310,7 @@ public function testGetVoucher() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['getVouchers']) + ->onlyMethods(['getVouchers']) ->getMock(); $netvisorMock @@ -366,7 +353,7 @@ public function testSendPurchaseInvoice() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['requestWithBody']) + ->onlyMethods(['requestWithBody']) ->getMock(); $netvisorMock @@ -388,7 +375,7 @@ public function testUpdatePurchaseInvoiceState() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['requestWithBody']) + ->onlyMethods(['requestWithBody']) ->getMock(); $netvisorMock @@ -412,7 +399,7 @@ public function testGetSalesInvoices() $netvisorMock = $this ->getMockBuilder(Netvisor::class) ->disableOriginalConstructor() - ->setMethods(['get']) + ->onlyMethods(['get']) ->getMock(); $netvisorMock diff --git a/tests/Xi/Netvisor/Resource/Xml/CustomerTest.php b/tests/Xi/Netvisor/Resource/Xml/CustomerTest.php index bbc3580..1c7f166 100644 --- a/tests/Xi/Netvisor/Resource/Xml/CustomerTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/CustomerTest.php @@ -5,6 +5,8 @@ use Xi\Netvisor\Resource\Xml\Customer; use Xi\Netvisor\Resource\Xml\CustomerBaseInformation; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\DataProvider; class CustomerTest extends XmlTestCase { @@ -33,17 +35,13 @@ public function setUp(): void $this->customer = new Customer($this->baseInformation, null); } - /** - * @test - */ + #[Test] public function hasDtd() { $this->assertNotNull($this->customer->getDtdPath()); } - /** - * @test - */ + #[Test] public function xmlHasRequiredValues() { $xml = $this->toXml($this->customer->getSerializableObject()); @@ -68,9 +66,7 @@ public function testSetEmail() $this->assertXmlContainsTagWithValue('email', $email, $xml); } - /** - * @dataProvider businessIdProvider - */ + #[DataProvider('businessIdProvider')] public function testSetBusinessId($id) { if (!is_null($id)) { @@ -89,7 +85,7 @@ public function testSetBusinessId($id) $this->assertXmlContainsTagWithValue('isprivatecustomer', 0, $xml); } - public function businessIdProvider() + public static function businessIdProvider() { return [ ['9-876543'], diff --git a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceAttachmentTest.php b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceAttachmentTest.php index 857971f..c6ee1fe 100644 --- a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceAttachmentTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceAttachmentTest.php @@ -3,6 +3,7 @@ namespace Xi\Netvisor\Resource\Xml; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class PurchaseInvoiceAttachmentTest extends XmlTestCase { @@ -23,9 +24,7 @@ public function setUp(): void ); } - /** - * @test - */ + #[Test] public function xmlHasRequiredSalesInvoiceValues() { $description = 'description'; diff --git a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLineTest.php b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLineTest.php index 24549b2..165e94e 100644 --- a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLineTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceLineTest.php @@ -4,6 +4,7 @@ use Xi\Netvisor\Resource\Xml\PurchaseInvoiceLine; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class PurchaseInvoiceLineTest extends XmlTestCase { @@ -25,9 +26,7 @@ public function setUp(): void ); } - /** - * @test - */ + #[Test] public function xmlHasRequiredLineValues() { $name = 'Product name, which is longer than the limit of 200 characters Will add some lirum larum. Will add some lirum larum. Will add some lirum larum. Will add some lirum larum. Will add some lirum larum. Will add some lirum larum.'; @@ -47,20 +46,18 @@ public function xmlHasRequiredLineValues() ); $this->assertXmlContainsTagWithValue('productname', substr($name, 0, 200), $xml); - $this->assertNotContains($name, $xml); + $this->assertStringNotContainsString($name, $xml); $this->assertXmlContainsTagWithValue('deliveredamount', $amount, $xml); $this->assertXmlContainsTagWithValue('unitprice', $unitPrice, $xml); $this->assertXmlContainsTagWithValue('vatpercent', $vatPercent, $xml); $this->assertXmlContainsTagWithValue('linesum', round($lineSum, 2), $xml); - $this->assertNotContains((string) $lineSum, $xml); + $this->assertStringNotContainsString((string) $lineSum, $xml); $this->assertXmlContainsTagWithAttributes('linesum', array('type' => 'brutto'), $xml); } - /** - * @test - */ + #[Test] public function xmlHasAddedDimensionLines() { $name = 'Test dimension name'; @@ -74,10 +71,10 @@ public function xmlHasAddedDimensionLines() $xml = $this->toXml($this->invoiceLine); $this->assertSame(2, substr_count($xml, '')); - $this->assertContains($name, $xml); - $this->assertContains($item, $xml); - $this->assertContains($name2, $xml); - $this->assertContains($item, $xml); + $this->assertStringContainsString($name, $xml); + $this->assertStringContainsString($item, $xml); + $this->assertStringContainsString($name2, $xml); + $this->assertStringContainsString($item, $xml); } public function testSetAccountingAccount() diff --git a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceStateTest.php b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceStateTest.php index 16b2d79..2b0fae4 100644 --- a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceStateTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceStateTest.php @@ -3,6 +3,7 @@ namespace Xi\Netvisor\Resource\Xml; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class PurchaseInvoiceStateTest extends XmlTestCase { @@ -18,17 +19,13 @@ public function setUp(): void $this->invoiceState = new PurchaseInvoiceState(123, 'approved', false); } - /** - * @test - */ + #[Test] public function hasDtd() { $this->assertNotNull($this->invoiceState->getDtdPath()); } - /** - * @test - */ + #[Test] public function xmlHasRequiredSalesInvoiceValues() { $netvisorId = 123; diff --git a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceTest.php b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceTest.php index e79f17f..87ae287 100644 --- a/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/PurchaseInvoiceTest.php @@ -4,6 +4,8 @@ use Xi\Netvisor\Resource\Xml\PurchaseInvoice; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\DataProvider; class PurchaseInvoiceTest extends XmlTestCase { @@ -25,17 +27,13 @@ public function setUp(): void ); } - /** - * @test - */ + #[Test] public function hasDtd() { $this->assertNotNull($this->invoice->getDtdPath()); } - /** - * @test - */ + #[Test] public function xmlHasRequiredSalesInvoiceValues() { $invoiceNumber = 123; @@ -66,12 +64,10 @@ public function xmlHasRequiredSalesInvoiceValues() $this->assertXmlContainsTagWithAttributes('duedate', array('format' => 'ansi'), $xml); $this->assertXmlContainsTagWithValue('amount', round($amount, 2), $xml); - $this->assertNotContains((string) $amount, $xml); + $this->assertStringNotContainsString((string) $amount, $xml); } - /** - * @test - */ + #[Test] public function xmlHasAddedPurchaseInvoiceLines() { $this->invoice->addPurchaseInvoiceLine( @@ -84,8 +80,8 @@ public function xmlHasAddedPurchaseInvoiceLines() $xml = $this->toXml($this->invoice->getSerializableObject()); - $this->assertContains('purchaseinvoicelines', $xml); - $this->assertContains('purchaseinvoiceline', $xml); + $this->assertStringContainsString('purchaseinvoicelines', $xml); + $this->assertStringContainsString('purchaseinvoiceline', $xml); $this->assertXmlContainsTagWithValue('productname', 'Name 1', $xml); $this->assertXmlContainsTagWithValue('productname', 'Name 2', $xml); @@ -105,8 +101,8 @@ public function testAddAttachment() $xml = $this->toXml($this->invoice->getSerializableObject()); - $this->assertContains('purchaseinvoiceattachments', $xml); - $this->assertContains('purchaseinvoiceattachment', $xml); + $this->assertStringContainsString('purchaseinvoiceattachments', $xml); + $this->assertStringContainsString('purchaseinvoiceattachment', $xml); $this->assertXmlContainsTagWithValue('attachmentdescription', 'Desc 1', $xml); $this->assertXmlContainsTagWithValue('attachmentdescription', 'Desc 2', $xml); @@ -131,12 +127,10 @@ public function testSetComment() $xml = $this->toXml($this->invoice->getSerializableObject()); $this->assertXmlContainsTagWithValue('comment', substr($comment, 0, 255), $xml); - $this->assertNotContains($comment, $xml); + $this->assertStringNotContainsString($comment, $xml); } - /** - * @dataProvider setVendorDetailsProvider - */ + #[DataProvider('setVendorDetailsProvider')] public function testSetVendorDetails( $bankAccount, $businessId, @@ -215,7 +209,7 @@ public function testSetVendorDetails( } } - public function setVendorDetailsProvider() + public static function setVendorDetailsProvider() { return [ [ @@ -274,9 +268,7 @@ public function testSetBankReferenceNumber() $this->assertXmlContainsTagWithValue('bankreferencenumber', $reference, $xml); } - /** - * @dataProvider setInvoiceSourceProvider - */ + #[DataProvider('setInvoiceSourceProvider')] public function testSetInvoiceSource($source, $expectException) { if ($expectException) { @@ -289,7 +281,7 @@ public function testSetInvoiceSource($source, $expectException) $this->assertXmlContainsTagWithValue('invoicesource', $source, $xml); } - public function setInvoiceSourceProvider() + public static function setInvoiceSourceProvider() { return [ [PurchaseInvoice::INVOICE_SOURCE_FINVOICE, false], diff --git a/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLineTest.php b/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLineTest.php index 86dc2db..95114e4 100644 --- a/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLineTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceProductLineTest.php @@ -4,6 +4,8 @@ use Xi\Netvisor\Resource\Xml\SalesInvoiceProductLine; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\DataProvider; class SalesInvoiceProductLineTest extends XmlTestCase { @@ -26,9 +28,7 @@ public function setUp(): void ); } - /** - * @test - */ + #[Test] public function xmlHasRequiredProductLineValues() { $xml = $this->toXml($this->invoiceProductLine); @@ -37,7 +37,7 @@ public function xmlHasRequiredProductLineValues() $this->assertXmlContainsTagWithAttributes('productidentifier', array('type' => 'netvisor'), $xml); $this->assertXmlContainsTagWithValue('productname', substr(static::LONG_PRODUCT_NAmE, 0, 200), $xml); - $this->assertNotContains(static::LONG_PRODUCT_NAmE, $xml); + $this->assertStringNotContainsString(static::LONG_PRODUCT_NAmE, $xml); $this->assertXmlContainsTagWithValue('productunitprice', '1,23', $xml); $this->assertXmlContainsTagWithAttributes('productunitprice', array('type' => 'net'), $xml); @@ -48,9 +48,7 @@ public function xmlHasRequiredProductLineValues() $this->assertXmlContainsTagWithValue('salesinvoiceproductlinequantity', '5', $xml); } - /** - * @test - */ + #[Test] public function xmlHasAddedDimensionLines() { $name = 'Test dimension name'; @@ -64,15 +62,13 @@ public function xmlHasAddedDimensionLines() $xml = $this->toXml($this->invoiceProductLine); $this->assertSame(2, substr_count($xml, '')); - $this->assertContains($name, $xml); - $this->assertContains($item, $xml); - $this->assertContains($name2, $xml); - $this->assertContains($item, $xml); + $this->assertStringContainsString($name, $xml); + $this->assertStringContainsString($item, $xml); + $this->assertStringContainsString($name2, $xml); + $this->assertStringContainsString($item, $xml); } - /** - * @dataProvider productIdentifierTypeProvider - */ + #[DataProvider('productIdentifierTypeProvider')] public function testSetProductIdentifierType($type) { // Default @@ -89,7 +85,7 @@ public function testSetProductIdentifierType($type) $this->assertXmlContainsTagWithAttributes('productidentifier', array('type' => $type), $xml); } - public function productIdentifierTypeProvider() + public static function productIdentifierTypeProvider() { return [ [SalesInvoiceProductLine::PRODUCT_IDENTIFIER_TYPE_CUSTOMER], @@ -97,9 +93,7 @@ public function productIdentifierTypeProvider() ]; } - /** - * @dataProvider unitPriceTypeProvider - */ + #[DataProvider('unitPriceTypeProvider')] public function testSetUnitPriceType($type) { // Default @@ -116,7 +110,7 @@ public function testSetUnitPriceType($type) $this->assertXmlContainsTagWithAttributes('productunitprice', array('type' => $type), $xml); } - public function unitPriceTypeProvider() + public static function unitPriceTypeProvider() { return [ [SalesInvoiceProductLine::UNIT_PRICE_TYPE_WITH_VAT], @@ -144,9 +138,7 @@ public function testSetAccountingAccount() $this->assertXmlContainsTagWithValue('accountingaccountsuggestion', $account, $xml); } - /** - * @dataProvider setVatCodeProvider - */ + #[DataProvider('setVatCodeProvider')] public function testSetVatCode($code) { // Default @@ -168,7 +160,7 @@ public function testSetVatCode($code) ); } - public function setVatCodeProvider() + public static function setVatCodeProvider() { return [ [SalesInvoiceProductLine::VAT_CODE_KOMY], diff --git a/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceTest.php b/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceTest.php index 8c3a27e..12469fb 100644 --- a/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/SalesInvoiceTest.php @@ -4,6 +4,7 @@ use Xi\Netvisor\Resource\Xml\SalesInvoice; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class SalesInvoiceTest extends XmlTestCase { @@ -25,17 +26,13 @@ public function setUp(): void ); } - /** - * @test - */ + #[Test] public function hasDtd() { $this->assertNotNull($this->invoice->getDtdPath()); } - /** - * @test - */ + #[Test] public function xmlHasRequiredSalesInvoiceValues() { $xml = $this->toXml($this->invoice->getSerializableObject()); @@ -50,9 +47,7 @@ public function xmlHasRequiredSalesInvoiceValues() $this->assertXmlContainsTagWithAttributes('invoicingcustomeridentifier', array('type' => 'netvisor'), $xml); } - /** - * @test - */ + #[Test] public function xmlHasAddedSalesInvoiceProductLines() { $this->invoice->addSalesInvoiceProductLine(new SalesInvoiceProductLine('1', 'A', '1,00', '24', '1')); @@ -60,9 +55,9 @@ public function xmlHasAddedSalesInvoiceProductLines() $xml = $this->toXml($this->invoice->getSerializableObject()); - $this->assertContains('invoicelines', $xml); - $this->assertContains('invoiceline', $xml); - $this->assertContains('salesinvoiceproductline', $xml); + $this->assertStringContainsString('invoicelines', $xml); + $this->assertStringContainsString('invoiceline', $xml); + $this->assertStringContainsString('salesinvoiceproductline', $xml); $this->assertXmlContainsTagWithValue('productidentifier', '1', $xml); $this->assertXmlContainsTagWithValue('productidentifier', '2', $xml); @@ -106,10 +101,10 @@ public function testSetDeliveryReceiverDetails() $xml = $this->toXml($this->invoice->getSerializableObject()); $this->assertXmlContainsTagWithValue('deliveryaddressname', $receiverName, $xml); - $this->assertNotContains('deliveryaddressline', $xml); - $this->assertNotContains('deliveryaddresspostnumber', $xml); - $this->assertNotContains('deliveryaddresstown', $xml); - $this->assertNotContains('deliveryaddresscountrycode', $xml); + $this->assertStringNotContainsString('deliveryaddressline', $xml); + $this->assertStringNotContainsString('deliveryaddresspostnumber', $xml); + $this->assertStringNotContainsString('deliveryaddresstown', $xml); + $this->assertStringNotContainsString('deliveryaddresscountrycode', $xml); } public function testSetInvoiceNumber() @@ -152,7 +147,7 @@ public function testSetBeforeLinesText() $xml = $this->toXml($this->invoice->getSerializableObject()); $this->assertXmlContainsTagWithValue('salesinvoicefreetextbeforelines', substr($text, 0, 500), $xml); - $this->assertNotContains($text, $xml); + $this->assertStringNotContainsString($text, $xml); } public function testSetAfterLinesText() @@ -172,7 +167,7 @@ public function testSetAfterLinesText() $xml = $this->toXml($this->invoice->getSerializableObject()); $this->assertXmlContainsTagWithValue('salesinvoicefreetextafterlines', substr($text, 0, 500), $xml); - $this->assertNotContains($text, $xml); + $this->assertStringNotContainsString($text, $xml); } public function testSetYourReference() diff --git a/tests/Xi/Netvisor/Resource/Xml/TestResourceTest.php b/tests/Xi/Netvisor/Resource/Xml/TestResourceTest.php index d001bf2..8f4ce43 100644 --- a/tests/Xi/Netvisor/Resource/Xml/TestResourceTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/TestResourceTest.php @@ -4,12 +4,11 @@ use Xi\Netvisor\Resource\Xml\TestResource; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\Test; class TestResourceTest extends XmlTestCase { - /** - * @test - */ + #[Test] public function convertsToXml() { $resource = new TestResource(); diff --git a/tests/Xi/Netvisor/Resource/Xml/VoucherLineTest.php b/tests/Xi/Netvisor/Resource/Xml/VoucherLineTest.php index 65d3605..d95cb88 100644 --- a/tests/Xi/Netvisor/Resource/Xml/VoucherLineTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/VoucherLineTest.php @@ -4,6 +4,7 @@ use Xi\Netvisor\Resource\Xml\VoucherLine; use Xi\Netvisor\XmlTestCase; +use PHPUnit\Framework\Attributes\DataProvider; class VoucherLineTest extends XmlTestCase { @@ -59,15 +60,13 @@ public function testXmlHasAddedDimensionLines() $xml = $this->toXml($this->voucherLine); $this->assertSame(2, substr_count($xml, '')); - $this->assertContains($name, $xml); - $this->assertContains($item, $xml); - $this->assertContains($name2, $xml); - $this->assertContains($item, $xml); + $this->assertStringContainsString($name, $xml); + $this->assertStringContainsString($item, $xml); + $this->assertStringContainsString($name2, $xml); + $this->assertStringContainsString($item, $xml); } - /** - * @dataProvider lineSumTypeProvider - */ + #[DataProvider('lineSumTypeProvider')] public function testSetLineSumType($type) { // Default @@ -84,7 +83,7 @@ public function testSetLineSumType($type) $this->assertXmlContainsTagWithAttributes('linesum', array('type' => $type), $xml); } - public function lineSumTypeProvider() + public static function lineSumTypeProvider() { return [ [VoucherLine::UNIT_PRICE_TYPE_WITH_VAT], @@ -92,9 +91,7 @@ public function lineSumTypeProvider() ]; } - /** - * @dataProvider setVatCodeProvider - */ + #[DataProvider('setVatCodeProvider')] public function testSetVatCode($code) { // Default @@ -116,7 +113,7 @@ public function testSetVatCode($code) ); } - public function setVatCodeProvider() + public static function setVatCodeProvider() { return [ [VoucherLine::VAT_CODE_KOMY], @@ -140,6 +137,6 @@ public function testSetDescription() $xml = $this->toXml($this->voucherLine); $this->assertXmlContainsTagWithValue('description', substr($description, 0, 255), $xml); - $this->assertNotContains($description, $xml); + $this->assertStringNotContainsString($description, $xml); } } diff --git a/tests/Xi/Netvisor/Resource/Xml/VoucherTest.php b/tests/Xi/Netvisor/Resource/Xml/VoucherTest.php index f31ebe7..258bcec 100644 --- a/tests/Xi/Netvisor/Resource/Xml/VoucherTest.php +++ b/tests/Xi/Netvisor/Resource/Xml/VoucherTest.php @@ -46,7 +46,7 @@ public function testXmlHasAddedVoucherLines() $xml = $this->toXml($this->voucher->getSerializableObject()); - $this->assertContains('voucherline', $xml); + $this->assertStringContainsString('voucherline', $xml); $this->assertXmlContainsTagWithValue('linesum', 0, $xml); $this->assertSame(2, substr_count($xml, '')); diff --git a/tests/Xi/Netvisor/Serializer/Naming/LowercaseNamingStrategyTest.php b/tests/Xi/Netvisor/Serializer/Naming/LowercaseNamingStrategyTest.php index f25f276..f44ffda 100644 --- a/tests/Xi/Netvisor/Serializer/Naming/LowercaseNamingStrategyTest.php +++ b/tests/Xi/Netvisor/Serializer/Naming/LowercaseNamingStrategyTest.php @@ -5,13 +5,13 @@ use JMS\Serializer\Metadata\PropertyMetadata; use PHPUnit\Framework\TestCase; use Xi\Netvisor\Serializer\Naming\LowercaseNamingStrategy; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\DataProvider; class LowercaseNamingStrategyTest extends TestCase { - /** - * @test - * @dataProvider provideNames - */ + #[Test] + #[DataProvider('provideNames')] public function lowercases($name) { $strategy = new LowercaseNamingStrategy(); @@ -25,7 +25,7 @@ public function lowercases($name) $this->assertEquals(strtolower($name), $strategy->translateName($metadata)); } - public function provideNames() + public static function provideNames() { return array( array('camelCase'), diff --git a/tests/Xi/Netvisor/XmlTestCase.php b/tests/Xi/Netvisor/XmlTestCase.php index 974cd92..f9d7dd6 100644 --- a/tests/Xi/Netvisor/XmlTestCase.php +++ b/tests/Xi/Netvisor/XmlTestCase.php @@ -45,14 +45,14 @@ public function toXml($object) */ public function assertXmlContainsTagWithValue($tag, $value, $xml) { - $this->assertContains(sprintf('<%s', $tag), $xml); + $this->assertStringContainsString(sprintf('<%s', $tag), $xml); if (is_int($value) || is_float($value)) { - $this->assertContains(sprintf('>%s', $value, $tag), $xml); + $this->assertStringContainsString(sprintf('>%s', $value, $tag), $xml); return; } - $this->assertContains(sprintf('>', $value, $tag), $xml); + $this->assertStringContainsString(sprintf('>', $value, $tag), $xml); } /** @@ -61,7 +61,7 @@ public function assertXmlContainsTagWithValue($tag, $value, $xml) */ public function assertXmlDoesNotContainTag($tag, $xml) { - $this->assertNotContains(sprintf('<%s', $tag), $xml); + $this->assertStringNotContainsString(sprintf('<%s', $tag), $xml); } /** @@ -77,7 +77,7 @@ public function assertXmlContainsTagWithAttributes($tag, $attributes, $xml) $attributeLine .= sprintf(' %s="%s"', $key, $value); } - $this->assertContains(sprintf('<%s%s>', $tag, $attributeLine), $xml); + $this->assertStringContainsString(sprintf('<%s%s>', $tag, $attributeLine), $xml); } public function assertXmlIsValid($xml, $dtdPath) diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 64ccfb4..e1d9632 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -1,9 +1,8 @@ ./Xi - \ No newline at end of file + + + ../library + + +