diff --git a/composer.json b/composer.json index 940e5ebf4..bcae023a5 100644 --- a/composer.json +++ b/composer.json @@ -13,30 +13,29 @@ "ext-mbstring": "*", "ext-pdo": "*", "doctrine/dbal": "^3.8.2", - "guzzlehttp/guzzle": "^7.8.1", + "guzzlehttp/guzzle": "^7.9.2", "league/csv": "^9.15", "maennchen/zipstream-php": "^3.1", - "monolog/monolog": "^3.5", + "monolog/monolog": "^3.7", "nikic/fast-route": "^1.3", - "php-di/php-di": "^7.0.6", + "php-di/php-di": "^7.0.7", "phpmailer/phpmailer": "^6.9.1", "psr/http-client": "^1.0.3", - "ramsey/uuid": "^4.7.5", - "robmorgan/phinx": "^0.15.5", - "spomky-labs/otphp": "^11.2", - "symfony/console": "^6.4.4", - "twig/twig": "^3.8", + "ramsey/uuid": "^4.7.6", + "robmorgan/phinx": "^0.16.1", + "spomky-labs/otphp": "^11.3", + "symfony/console": "^7.1", + "twig/twig": "^3.14", "vlucas/phpdotenv": "^5.6" }, "require-dev": { - "phpunit/phpunit": "^9.6.17", + "phpunit/phpunit": "^10.5", "roave/security-advisories": "dev-latest", "squizlabs/php_codesniffer": "^3.9", - "phpstan/phpstan": "^1.10.59", - "phpstan/phpstan-phpunit": "^1.3.16", - "vimeo/psalm": "^4.30", - "psalm/plugin-phpunit": "^0.18.4", - "webmozarts/strict-phpunit": "^7.11.4" + "phpstan/phpstan": "^1.12.3", + "phpstan/phpstan-phpunit": "^1.4", + "vimeo/psalm": "^5.26", + "psalm/plugin-phpunit": "^0.19" }, "scripts": { "test": [ diff --git a/composer.lock b/composer.lock index 8e3cfbf7d..c3dd09ede 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,29 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6ffb57947ee609fef4613bf091563c4f", + "content-hash": "fbe41d3d290e8798201d339901491d41", "packages": [ { "name": "brick/math", - "version": "0.11.0", + "version": "0.12.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.1" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^9.0", - "vimeo/psalm": "5.0.0" + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" }, "type": "library", "autoload": { @@ -46,12 +46,17 @@ "arithmetic", "bigdecimal", "bignum", + "bignumber", "brick", - "math" + "decimal", + "integer", + "math", + "mathematics", + "rational" ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.11.0" + "source": "https://github.com/brick/math/tree/0.12.1" }, "funding": [ { @@ -59,28 +64,32 @@ "type": "github" } ], - "time": "2023-01-15T23:15:59+00:00" + "time": "2023-11-29T23:19:16+00:00" }, { "name": "cakephp/chronos", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/cakephp/chronos.git", - "reference": "9cb035acd10152a6b74df936986f15c4e6015bd3" + "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/chronos/zipball/9cb035acd10152a6b74df936986f15c4e6015bd3", - "reference": "9cb035acd10152a6b74df936986f15c4e6015bd3", + "url": "https://api.github.com/repos/cakephp/chronos/zipball/786d69e1ee4b735765cbdb5521b9603e9b98d650", + "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.1", + "psr/clock": "^1.0" + }, + "provide": { + "psr/clock-implementation": "1.0" }, "require-dev": { "cakephp/cakephp-codesniffer": "^5.0", - "phpunit/phpunit": "^10.1.0" + "phpunit/phpunit": "^10.1.0 || ^11.1.3" }, "type": "library", "autoload": { @@ -114,20 +123,20 @@ "issues": "https://github.com/cakephp/chronos/issues", "source": "https://github.com/cakephp/chronos" }, - "time": "2023-10-17T07:41:48+00:00" + "time": "2024-07-18T03:18:04+00:00" }, { "name": "cakephp/core", - "version": "5.0.5", + "version": "5.0.10", "source": { "type": "git", "url": "https://github.com/cakephp/core.git", - "reference": "87a2eba6c7484ba28ba0acc31a20f1b6598d6627" + "reference": "63a873e41a5ec74e00d1321b533e26c2631eeca5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/core/zipball/87a2eba6c7484ba28ba0acc31a20f1b6598d6627", - "reference": "87a2eba6c7484ba28ba0acc31a20f1b6598d6627", + "url": "https://api.github.com/repos/cakephp/core/zipball/63a873e41a5ec74e00d1321b533e26c2631eeca5", + "reference": "63a873e41a5ec74e00d1321b533e26c2631eeca5", "shasum": "" }, "require": { @@ -176,20 +185,20 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/core" }, - "time": "2024-01-07T19:02:23+00:00" + "time": "2024-06-08T17:54:49+00:00" }, { "name": "cakephp/database", - "version": "5.0.5", + "version": "5.0.10", "source": { "type": "git", "url": "https://github.com/cakephp/database.git", - "reference": "f2574fce6f92f9d720e03019cdde008cdb225bfe" + "reference": "61042e3b086689ee3bee88792250e51da370eaec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/database/zipball/f2574fce6f92f9d720e03019cdde008cdb225bfe", - "reference": "f2574fce6f92f9d720e03019cdde008cdb225bfe", + "url": "https://api.github.com/repos/cakephp/database/zipball/61042e3b086689ee3bee88792250e51da370eaec", + "reference": "61042e3b086689ee3bee88792250e51da370eaec", "shasum": "" }, "require": { @@ -239,20 +248,20 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/database" }, - "time": "2024-01-27T02:34:31+00:00" + "time": "2024-06-08T07:44:07+00:00" }, { "name": "cakephp/datasource", - "version": "5.0.5", + "version": "5.0.10", "source": { "type": "git", "url": "https://github.com/cakephp/datasource.git", - "reference": "848bf92854b91876c57ed2c2dc70e0cc846ec309" + "reference": "28b8ce86ef77bd45fef7ba9ad31f03bf2fa81fa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/datasource/zipball/848bf92854b91876c57ed2c2dc70e0cc846ec309", - "reference": "848bf92854b91876c57ed2c2dc70e0cc846ec309", + "url": "https://api.github.com/repos/cakephp/datasource/zipball/28b8ce86ef77bd45fef7ba9ad31f03bf2fa81fa5", + "reference": "28b8ce86ef77bd45fef7ba9ad31f03bf2fa81fa5", "shasum": "" }, "require": { @@ -302,20 +311,20 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/datasource" }, - "time": "2024-01-23T20:49:53+00:00" + "time": "2024-05-24T02:41:11+00:00" }, { "name": "cakephp/utility", - "version": "5.0.5", + "version": "5.0.10", "source": { "type": "git", "url": "https://github.com/cakephp/utility.git", - "reference": "f7dea1e1c618b4765ba95af8094677a1ce977fe1" + "reference": "6ddf7ad73bb6f7aeb303b19baff4b1e5a5d02cb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/utility/zipball/f7dea1e1c618b4765ba95af8094677a1ce977fe1", - "reference": "f7dea1e1c618b4765ba95af8094677a1ce977fe1", + "url": "https://api.github.com/repos/cakephp/utility/zipball/6ddf7ad73bb6f7aeb303b19baff4b1e5a5d02cb5", + "reference": "6ddf7ad73bb6f7aeb303b19baff4b1e5a5d02cb5", "shasum": "" }, "require": { @@ -361,7 +370,7 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/utility" }, - "time": "2024-01-07T19:02:23+00:00" + "time": "2024-06-23T00:10:36+00:00" }, { "name": "doctrine/cache", @@ -458,16 +467,16 @@ }, { "name": "doctrine/dbal", - "version": "3.8.2", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb" + "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", + "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", "shasum": "" }, "require": { @@ -483,12 +492,12 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.57", - "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.16", + "phpstan/phpstan": "1.12.0", + "phpstan/phpstan-strict-rules": "^1.6", + "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.8.1", + "squizlabs/php_codesniffer": "3.10.2", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" @@ -551,7 +560,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.8.2" + "source": "https://github.com/doctrine/dbal/tree/3.9.1" }, "funding": [ { @@ -567,7 +576,7 @@ "type": "tidelift" } ], - "time": "2024-02-12T18:36:36+00:00" + "time": "2024-09-01T13:49:23+00:00" }, { "name": "doctrine/deprecations", @@ -618,16 +627,16 @@ }, { "name": "doctrine/event-manager", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", + "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", "shasum": "" }, "require": { @@ -637,10 +646,10 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^10", + "doctrine/coding-standard": "^12", "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.28" + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.24" }, "type": "library", "autoload": { @@ -689,7 +698,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + "source": "https://github.com/doctrine/event-manager/tree/2.0.1" }, "funding": [ { @@ -705,28 +714,28 @@ "type": "tidelift" } ], - "time": "2022-10-12T20:59:15+00:00" + "time": "2024-05-22T20:47:39+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -755,7 +764,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -767,26 +776,26 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -797,9 +806,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -877,7 +886,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -893,20 +902,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", "shasum": "" }, "require": { @@ -914,7 +923,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -960,7 +969,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.3" }, "funding": [ { @@ -976,20 +985,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-07-18T10:29:17+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -1004,8 +1013,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1076,7 +1085,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -1092,30 +1101,31 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v1.3.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81", + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "nesbot/carbon": "^2.61", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "nesbot/carbon": "^2.61|^3.0", "pestphp/pest": "^1.21.3", "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" + "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" }, "type": "library", "extra": { @@ -1152,20 +1162,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-11-08T14:08:06+00:00" + "time": "2024-08-02T07:48:17+00:00" }, { "name": "league/container", - "version": "4.2.0", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/thephpleague/container.git", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab" + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab", + "url": "https://api.github.com/repos/thephpleague/container/zipball/ff346319ca1ff0e78277dc2311a42107cc1aab88", + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88", "shasum": "" }, "require": { @@ -1226,7 +1236,7 @@ ], "support": { "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/4.2.0" + "source": "https://github.com/thephpleague/container/tree/4.2.2" }, "funding": [ { @@ -1234,44 +1244,43 @@ "type": "github" } ], - "time": "2021-11-16T10:29:06+00:00" + "time": "2024-03-13T13:12:53+00:00" }, { "name": "league/csv", - "version": "9.15.0", + "version": "9.16.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "fa7e2441c0bc9b2360f4314fd6c954f7ff40d435" + "reference": "998280c6c34bd67d8125fdc8b45bae28d761b440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/fa7e2441c0bc9b2360f4314fd6c954f7ff40d435", - "reference": "fa7e2441c0bc9b2360f4314fd6c954f7ff40d435", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/998280c6c34bd67d8125fdc8b45bae28d761b440", + "reference": "998280c6c34bd67d8125fdc8b45bae28d761b440", "shasum": "" }, "require": { "ext-filter": "*", - "ext-json": "*", - "ext-mbstring": "*", "php": "^8.1.2" }, "require-dev": { - "doctrine/collections": "^2.1.4", + "doctrine/collections": "^2.2.2", "ext-dom": "*", "ext-xdebug": "*", - "friendsofphp/php-cs-fixer": "^v3.22.0", + "friendsofphp/php-cs-fixer": "^3.57.1", "phpbench/phpbench": "^1.2.15", - "phpstan/phpstan": "^1.10.57", - "phpstan/phpstan-deprecation-rules": "^1.1.4", - "phpstan/phpstan-phpunit": "^1.3.15", - "phpstan/phpstan-strict-rules": "^1.5.2", - "phpunit/phpunit": "^10.5.9", - "symfony/var-dumper": "^6.4.2" + "phpstan/phpstan": "^1.11.1", + "phpstan/phpstan-deprecation-rules": "^1.2.0", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.0", + "phpunit/phpunit": "^10.5.16 || ^11.1.3", + "symfony/var-dumper": "^6.4.6 || ^7.0.7" }, "suggest": { "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", - "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters" + "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters", + "ext-mbstring": "Needed to ease transcoding CSV using mb stream filters" }, "type": "library", "extra": { @@ -1323,7 +1332,7 @@ "type": "github" } ], - "time": "2024-02-20T20:00:00+00:00" + "time": "2024-05-24T11:04:54+00:00" }, { "name": "maennchen/zipstream-php", @@ -1408,16 +1417,16 @@ }, { "name": "monolog/monolog", - "version": "3.5.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", "shasum": "" }, "require": { @@ -1440,7 +1449,7 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.1", + "phpunit/phpunit": "^10.5.17", "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", "symfony/mailer": "^5.4 || ^6", @@ -1493,7 +1502,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" }, "funding": [ { @@ -1505,7 +1514,7 @@ "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2024-06-28T09:40:51+00:00" }, { "name": "nikic/fast-route", @@ -1559,24 +1568,24 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v2.6.3", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "58c3f47f650c94ec05a151692652a868995d2938" + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", - "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", "shasum": "" }, "require": { - "php": "^7|^8" + "php": "^8" }, "require-dev": { - "phpunit/phpunit": "^6|^7|^8|^9", - "vimeo/psalm": "^1|^2|^3|^4" + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4|^5" }, "type": "library", "autoload": { @@ -1622,7 +1631,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2022-06-14T06:56:20+00:00" + "time": "2024-05-08T12:36:18+00:00" }, { "name": "php-di/invoker", @@ -1681,16 +1690,16 @@ }, { "name": "php-di/php-di", - "version": "7.0.6", + "version": "7.0.7", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd" + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", "shasum": "" }, "require": { @@ -1738,7 +1747,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6" + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" }, "funding": [ { @@ -1750,7 +1759,7 @@ "type": "tidelift" } ], - "time": "2023-11-02T10:04:50+00:00" + "time": "2024-07-21T15:55:45+00:00" }, { "name": "phpmailer/phpmailer", @@ -1835,16 +1844,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.2", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { @@ -1852,13 +1861,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -1894,7 +1903,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -1906,7 +1915,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "psr/cache", @@ -1957,6 +1966,54 @@ }, "time": "2021-02-03T23:26:27+00:00" }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, { "name": "psr/container", "version": "2.0.2", @@ -2064,20 +2121,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -2101,7 +2158,7 @@ "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", @@ -2113,9 +2170,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -2172,16 +2229,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -2216,9 +2273,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psr/simple-cache", @@ -2406,20 +2463,20 @@ }, { "name": "ramsey/uuid", - "version": "4.7.5", + "version": "4.7.6", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" @@ -2482,7 +2539,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.5" + "source": "https://github.com/ramsey/uuid/tree/4.7.6" }, "funding": [ { @@ -2494,24 +2551,25 @@ "type": "tidelift" } ], - "time": "2023-11-08T05:53:05+00:00" + "time": "2024-04-27T21:32:50+00:00" }, { "name": "robmorgan/phinx", - "version": "0.15.5", + "version": "0.16.3", "source": { "type": "git", "url": "https://github.com/cakephp/phinx.git", - "reference": "a81c0846256fb9131c4c06d119fbff9d01cbc198" + "reference": "b5dab9908aa4edfe866b3f564abcba53d14c8989" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/phinx/zipball/a81c0846256fb9131c4c06d119fbff9d01cbc198", - "reference": "a81c0846256fb9131c4c06d119fbff9d01cbc198", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/b5dab9908aa4edfe866b3f564abcba53d14c8989", + "reference": "b5dab9908aa4edfe866b3f564abcba53d14c8989", "shasum": "" }, "require": { "cakephp/database": "^5.0.2", + "composer-runtime-api": "^2.0", "php-64bit": ">=8.1", "psr/container": "^1.1|^2.0", "symfony/config": "^3.4|^4.0|^5.0|^6.0|^7.0", @@ -2578,42 +2636,44 @@ ], "support": { "issues": "https://github.com/cakephp/phinx/issues", - "source": "https://github.com/cakephp/phinx/tree/0.15.5" + "source": "https://github.com/cakephp/phinx/tree/0.16.3" }, - "time": "2023-12-05T13:24:00+00:00" + "time": "2024-09-07T07:48:48+00:00" }, { "name": "spomky-labs/otphp", - "version": "11.2.0", + "version": "11.3.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/otphp.git", - "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795" + "reference": "2d8ccb5fc992b9cc65ef321fa4f00fefdb3f4b33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/9a1569038bb1c8e98040b14b8bcbba54f25e7795", - "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795", + "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/2d8ccb5fc992b9cc65ef321fa4f00fefdb3f4b33", + "reference": "2d8ccb5fc992b9cc65ef321fa4f00fefdb3f4b33", "shasum": "" }, "require": { "ext-mbstring": "*", - "paragonie/constant_time_encoding": "^2.0", - "php": "^8.1" + "paragonie/constant_time_encoding": "^2.0 || ^3.0", + "php": ">=8.1", + "psr/clock": "^1.0", + "symfony/deprecation-contracts": "^3.2" }, "require-dev": { "ekino/phpstan-banned-code": "^1.0", - "infection/infection": "^0.26", + "infection/infection": "^0.26|^0.27|^0.28|^0.29", "php-parallel-lint/php-parallel-lint": "^1.3", "phpstan/phpstan": "^1.0", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5.26", + "phpunit/phpunit": "^9.5.26|^10.0|^11.0", "qossmic/deptrac-shim": "^1.0", - "rector/rector": "^0.15", - "symfony/phpunit-bridge": "^6.1", - "symplify/easy-coding-standard": "^11.0" + "rector/rector": "^1.0", + "symfony/phpunit-bridge": "^6.1|^7.0", + "symplify/easy-coding-standard": "^12.0" }, "type": "library", "autoload": { @@ -2648,7 +2708,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/otphp/issues", - "source": "https://github.com/Spomky-Labs/otphp/tree/11.2.0" + "source": "https://github.com/Spomky-Labs/otphp/tree/11.3.0" }, "funding": [ { @@ -2660,26 +2720,26 @@ "type": "patreon" } ], - "time": "2023-03-16T19:16:25+00:00" + "time": "2024-06-12T11:22:32+00:00" }, { "name": "symfony/config", - "version": "v7.0.4", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "44deeba7233f08f383185ffa37dace3b3bc87364" + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/44deeba7233f08f383185ffa37dace3b3bc87364", - "reference": "44deeba7233f08f383185ffa37dace3b3bc87364", + "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^6.4|^7.0", + "symfony/filesystem": "^7.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -2719,7 +2779,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.0.4" + "source": "https://github.com/symfony/config/tree/v7.1.1" }, "funding": [ { @@ -2735,51 +2795,50 @@ "type": "tidelift" } ], - "time": "2024-02-26T07:52:39+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/console", - "version": "v6.4.4", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", + "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111", + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^6.4|^7.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -2813,7 +2872,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.4" + "source": "https://github.com/symfony/console/tree/v7.1.4" }, "funding": [ { @@ -2829,20 +2888,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:10+00:00" + "time": "2024-08-15T22:48:53+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { @@ -2851,7 +2910,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2880,7 +2939,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -2896,20 +2955,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.3", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12" + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", "shasum": "" }, "require": { @@ -2917,6 +2976,9 @@ "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, + "require-dev": { + "symfony/process": "^6.4|^7.0" + }, "type": "library", "autoload": { "psr-4": { @@ -2943,7 +3005,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.3" + "source": "https://github.com/symfony/filesystem/tree/v7.1.2" }, "funding": [ { @@ -2959,24 +3021,24 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -3022,7 +3084,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -3038,24 +3100,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -3100,7 +3162,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -3116,24 +3178,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -3181,7 +3243,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -3197,24 +3259,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -3261,7 +3323,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -3277,24 +3339,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -3341,7 +3403,83 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -3357,25 +3495,26 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -3383,7 +3522,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3423,7 +3562,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -3439,20 +3578,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v7.0.4", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", + "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b", + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b", "shasum": "" }, "require": { @@ -3466,6 +3605,7 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { + "symfony/emoji": "^7.1", "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", @@ -3509,7 +3649,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.4" + "source": "https://github.com/symfony/string/tree/v7.1.4" }, "funding": [ { @@ -3525,34 +3665,41 @@ "type": "tidelift" } ], - "time": "2024-02-01T13:17:36+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "twig/twig", - "version": "v3.8.0", + "version": "v3.14.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { "Twig\\": "src/" } @@ -3585,7 +3732,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + "source": "https://github.com/twigphp/Twig/tree/v3.14.0" }, "funding": [ { @@ -3597,27 +3744,27 @@ "type": "tidelift" } ], - "time": "2023-11-21T18:54:41+00:00" + "time": "2024-09-09T17:55:12+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.6.0", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.2", + "graham-campbell/result-type": "^1.1.3", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2", + "phpoption/phpoption": "^1.9.3", "symfony/polyfill-ctype": "^1.24", "symfony/polyfill-mbstring": "^1.24", "symfony/polyfill-php80": "^1.24" @@ -3634,7 +3781,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -3669,7 +3816,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" }, "funding": [ { @@ -3681,22 +3828,22 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" } ], "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.2", + "version": "v2.6.4", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", "shasum": "" }, "require": { @@ -3708,8 +3855,8 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^7 | ^8 | ^9", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" + "react/promise": "^2", + "vimeo/psalm": "^3.12" }, "type": "library", "extra": { @@ -3764,7 +3911,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.2" + "source": "https://github.com/amphp/amp/tree/v2.6.4" }, "funding": [ { @@ -3772,20 +3919,20 @@ "type": "github" } ], - "time": "2022-02-20T17:52:18+00:00" + "time": "2024-03-21T18:52:26+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.1", + "version": "v1.8.2", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", "shasum": "" }, "require": { @@ -3801,11 +3948,6 @@ "psalm/phar": "^3.11.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php" @@ -3829,7 +3971,7 @@ } ], "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", + "homepage": "https://amphp.org/byte-stream", "keywords": [ "amp", "amphp", @@ -3839,9 +3981,8 @@ "stream" ], "support": { - "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" }, "funding": [ { @@ -3849,7 +3990,7 @@ "type": "github" } ], - "time": "2021-03-30T17:13:30+00:00" + "time": "2024-04-13T18:00:56+00:00" }, { "name": "composer/package-versions-deprecated", @@ -3926,30 +4067,38 @@ }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -3977,7 +4126,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -3993,20 +4142,20 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", "shasum": "" }, "require": { @@ -4058,7 +4207,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.2" }, "funding": [ { @@ -4074,20 +4223,20 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-07-12T11:35:52+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -4098,7 +4247,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -4122,9 +4271,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -4140,7 +4289,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -4179,76 +4328,6 @@ }, "time": "2019-12-04T15:06:13+00:00" }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "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": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, { "name": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", @@ -4350,18 +4429,79 @@ }, "time": "2022-03-02T22:36:06+00:00" }, + { + "name": "fidry/cpu-core-counter", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "8520451a140d3f46ac33042715115e290cf5785f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2024-08-06T10:04:20+00:00" + }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -4369,11 +4509,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "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", @@ -4399,7 +4540,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -4407,20 +4548,20 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.4.1", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", "shasum": "" }, "require": { @@ -4456,27 +4597,27 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" }, - "time": "2024-01-31T06:18:54+00:00" + "time": "2024-09-08T10:13:13+00:00" }, { "name": "nikic/php-parser", - "version": "v4.18.0", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -4512,79 +4653,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" - }, - "time": "2023-12-10T21:03:43+00:00" - }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2019-03-29T20:06:56+00:00" + "time": "2024-03-17T08:10:35+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", @@ -4625,9 +4714,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", @@ -4735,28 +4830,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "version": "5.4.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.1", "ext-filter": "*", - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" }, "type": "library", "extra": { @@ -4780,15 +4882,15 @@ }, { "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "email": "opensource@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" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" }, - "time": "2021-10-19T17:43:47+00:00" + "time": "2024-05-21T05:55:05+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -4850,16 +4952,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.26.0", + "version": "1.30.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227" + "reference": "51b95ec8670af41009e2b2b56873bad96682413e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/231e3186624c03d7e7c890ec662b81e6b0405227", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", + "reference": "51b95ec8670af41009e2b2b56873bad96682413e", "shasum": "" }, "require": { @@ -4891,22 +4993,22 @@ "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.26.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" }, - "time": "2024-02-23T16:05:55+00:00" + "time": "2024-09-07T20:13:05+00:00" }, { "name": "phpstan/phpstan", - "version": "1.10.59", + "version": "1.12.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e607609388d3a6d418a50a49f7940e8086798281" + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e607609388d3a6d418a50a49f7940e8086798281", - "reference": "e607609388d3a6d418a50a49f7940e8086798281", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", "shasum": "" }, "require": { @@ -4949,31 +5051,27 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2024-02-20T13:59:13+00:00" + "time": "2024-09-09T08:10:35+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "1.3.16", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "d5242a59d035e46774f2e634b374bc39ff62cb95" + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/d5242a59d035e46774f2e634b374bc39ff62cb95", - "reference": "d5242a59d035e46774f2e634b374bc39ff62cb95", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11", + "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.10" + "phpstan/phpstan": "^1.11" }, "conflict": { "phpunit/phpunit": "<7.0" @@ -5005,41 +5103,41 @@ "description": "PHPUnit extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.3.16" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0" }, - "time": "2024-02-23T09:51:20+00:00" + "time": "2024-04-20T06:39:00+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.30", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "nikic/php-parser": "^4.19.1 || ^5.1.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.1" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -5048,7 +5146,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -5077,7 +5175,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -5085,32 +5183,32 @@ "type": "github" } ], - "time": "2023-12-22T06:47:57+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5137,7 +5235,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" }, "funding": [ { @@ -5145,28 +5244,28 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2023-08-31T06:24:48+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "suggest": { "ext-pcntl": "*" @@ -5174,7 +5273,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5200,7 +5299,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" }, "funding": [ { @@ -5208,32 +5307,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2023-02-03T06:56:09+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5259,7 +5358,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" }, "funding": [ { @@ -5267,32 +5367,32 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2023-08-31T14:07:24+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -5318,7 +5418,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" }, "funding": [ { @@ -5326,54 +5426,52 @@ "type": "github" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2023-02-03T06:57:52+00:00" }, { "name": "phpunit/phpunit", - "version": "9.6.17", + "version": "10.5.33", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd" + "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1a156980d78a6666721b7e8e8502fe210b587fcd", - "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4def7a9cda75af9c2bc179ed53a8e41313e7f7cf", + "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.2", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -5381,7 +5479,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -5413,7 +5511,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.17" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.33" }, "funding": [ { @@ -5429,28 +5527,28 @@ "type": "tidelift" } ], - "time": "2024-02-23T13:14:51+00:00" + "time": "2024-09-09T06:06:56+00:00" }, { "name": "psalm/plugin-phpunit", - "version": "0.18.4", + "version": "0.19.0", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc" + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e344eaaa27871e79c6cb97b9efe52a735f9d1966", + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "php": "^7.1 || ^8.0", - "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0" + "php": "^7.4 || ^8.0", + "vimeo/psalm": "dev-master || ^5@beta || ^5.0" }, "conflict": { "phpunit/phpunit": "<7.5" @@ -5487,9 +5585,9 @@ "description": "Psalm plugin for PHPUnit", "support": { "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", - "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4" + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.19.0" }, - "time": "2022-12-03T07:47:07+00:00" + "time": "2024-03-15T10:43:15+00:00" }, { "name": "roave/security-advisories", @@ -5497,19 +5595,24 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "de4aeda76503091f0d7b6f8a493f87994d6736a9" + "reference": "ed0688c3e18bf76d2a17fb243b99acb52c2e29ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/de4aeda76503091f0d7b6f8a493f87994d6736a9", - "reference": "de4aeda76503091f0d7b6f8a493f87994d6736a9", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ed0688c3e18bf76d2a17fb243b99acb52c2e29ef", + "reference": "ed0688c3e18bf76d2a17fb243b99acb52c2e29ef", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "admidio/admidio": "<4.2.13", + "admidio/admidio": "<4.3.10", "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "aheinze/cockpit": "<2.2", + "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.04.6", + "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1", + "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7", + "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9", + "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7", "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", "airesvsg/acf-to-rest-api": "<=3.1", "akaunting/akaunting": "<2.1.13", @@ -5518,7 +5621,7 @@ "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", - "amphp/http": "<1.0.1", + "amphp/http": "<=1.7.2|>=2,<=2.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", "andreapollastri/cipi": "<=3.1.15", @@ -5534,29 +5637,36 @@ "athlon1600/php-proxy": "<=5.1", "athlon1600/php-proxy-app": "<=3", "austintoddj/canvas": "<=3.4.2", - "automad/automad": "<=1.10.9", + "auth0/wordpress": "<=4.6", + "automad/automad": "<2.0.0.0-alpha5", + "automattic/jetpack": "<9.8", "awesome-support/awesome-support": "<=6.0.7", "aws/aws-sdk-php": "<3.288.1", "azuracast/azuracast": "<0.18.3", - "backdrop/backdrop": "<1.24.2", + "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2", "backpack/crud": "<3.4.9", "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", "badaso/core": "<2.7", - "bagisto/bagisto": "<1.3.2", + "bagisto/bagisto": "<2.1", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", "barryvdh/laravel-translation-manager": "<0.6.2", "barzahlen/barzahlen-php": "<2.0.1", "baserproject/basercms": "<5.0.9", "bassjobsen/bootstrap-3-typeahead": ">4.0.2", + "bbpress/bbpress": "<2.6.5", + "bcosca/fatfree": "<3.7.2", + "bedita/bedita": "<4", "bigfork/silverstripe-form-capture": ">=3,<3.1.1", - "billz/raspap-webgui": "<2.9.5", + "billz/raspap-webgui": "<=3.1.4", "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "blueimp/jquery-file-upload": "==6.4.4", "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", "bolt/core": "<=4.2", + "born05/craft-twofactorauthentication": "<3.3.4", "bottelet/flarepoint": "<2.2.1", - "bref/bref": "<2.1.13", + "bref/bref": "<2.1.17", "brightlocal/phpwhois": "<=4.2.5", "brotkrueml/codehighlight": "<2.7", "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", @@ -5570,64 +5680,72 @@ "cardgate/magento2": "<2.0.33", "cardgate/woocommerce": "<=3.1.15", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", "catfan/medoo": "<1.7.5", + "causal/oidc": "<2.1", "cecil/cecil": "<7.47.1", - "centreon/centreon": "<22.10.0.0-beta1", + "centreon/centreon": "<22.10.15", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "chriskacerguis/codeigniter-restserver": "<=2.7.1", "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", "ckeditor/ckeditor": "<4.24", - "cockpit-hq/cockpit": "<=2.6.3", + "cockpit-hq/cockpit": "<2.7|==2.7", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.9", - "codeigniter4/framework": "<=4.4.2", + "codeigniter4/framework": "<4.4.7", "codeigniter4/shield": "<1.0.0.0-beta8", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.27|>=2,<2.2.23|>=2.3,<2.7", - "concrete5/concrete5": "<9.2.5", + "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7", + "concrete5/concrete5": "<9.3.3", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", - "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=3,<3.5.35|>=4,<4.9.42|>=4.10,<4.13.28|>=5,<5.1.10", - "contao/listing-bundle": ">=4,<4.4.8", + "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", + "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", + "contao/core": "<3.5.39", + "contao/core-bundle": "<4.13.40|>=5,<5.3.4", + "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", "contao/managed-edition": "<=1.5", "corveda/phpsandbox": "<1.3.5", "cosenary/instagram": "<=2.3", - "craftcms/cms": "<4.6.2", + "craftcms/cms": "<4.6.2|>=5,<=5.2.2", "croogo/croogo": "<4", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", + "damienharper/auditor-bundle": "<6", + "dapphp/securimage": "<3.6.6", "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "datatables/datatables": "<1.10.10", "david-garcia/phpwhois": "<=4.3.1", "dbrisinajumi/d2files": "<1", - "dcat/laravel-admin": "<=2.1.3.0-beta", + "dcat/laravel-admin": "<=2.1.3", "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4", "desperado/xml-bundle": "<=0.1.7", + "devgroup/dotplant": "<2020.09.14-dev", "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", "doctrine/annotations": "<1.2.7", "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", "doctrine/common": "<2.4.3|>=2.5,<2.5.1", "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", "doctrine/doctrine-bundle": "<1.5.2", - "doctrine/doctrine-module": "<=0.7.1", + "doctrine/doctrine-module": "<0.7.2", "doctrine/mongodb-odm": "<1.0.2", "doctrine/mongodb-odm-bundle": "<3.0.1", - "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<18.0.2", + "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<19.0.2", "dompdf/dompdf": "<2.0.4", "doublethreedigital/guest-entries": "<3.1.2", - "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2", - "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2|==11.9999999.9999999.9999999-dev", + "drupal/core-recommended": "==11.9999999.9999999.9999999-dev", + "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4|==11.9999999.9999999.9999999-dev", "duncanmcclean/guest-entries": "<3.1.2", "dweeves/magmi": "<=0.7.24", - "ec-cube/ec-cube": "<2.4.4", + "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2", "ecodev/newsletter": "<=4", "ectouch/ectouch": "<=2.7.2", + "egroupware/egroupware": "<23.1.20240624", "elefant/cms": "<2.0.7", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "elijaa/phpmemcacheadmin": "<=1.3", @@ -5645,12 +5763,12 @@ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26|>=3.3,<3.3.39", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", - "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.34", + "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", - "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", + "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev|>=3.3,<3.3.40", "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", "ezsystems/ezplatform-user": ">=1,<1.0.1", "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", @@ -5660,14 +5778,19 @@ "ezyang/htmlpurifier": "<4.1.1", "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", "facturascripts/facturascripts": "<=2022.08", + "fastly/magento2": "<1.2.26", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=2.1.1", "fenom/fenom": "<=2.12.1", "filegator/filegator": "<7.8", + "filp/whoops": "<2.1.13", + "fineuploader/php-traditional-server": "<=1.2.2", "firebase/php-jwt": "<6", + "fisharebest/webtrees": "<=2.1.18", "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", "flarum/core": "<1.8.5", + "flarum/flarum": "<0.1.0.0-beta8", "flarum/framework": "<1.8.5", "flarum/mentions": "<1.6.3", "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", @@ -5680,33 +5803,37 @@ "fooman/tcpdf": "<6.2.22", "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", - "francoisjacquet/rosariosis": "<11", + "francoisjacquet/rosariosis": "<=11.5.1", "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", - "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "friendsofsymfony/user-bundle": ">=1,<1.3.5", + "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", + "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", - "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1", - "froxlor/froxlor": "<=2.1.1", + "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3", + "froxlor/froxlor": "<=2.2.0.0-RC3", + "frozennode/administrator": "<=5.0.12", "fuel/core": "<1.8.1", "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", "gaoming13/wechat-php-sdk": "<=1.10.2", "genix/cms": "<=1.1.11", - "getgrav/grav": "<1.7.44", - "getkirby/cms": "<4.1.1", + "getformwork/formwork": "<1.13.1|==2.0.0.0-beta1", + "getgrav/grav": "<1.7.46", + "getkirby/cms": "<=3.6.6.5|>=3.7,<=3.7.5.4|>=3.8,<=3.8.4.3|>=3.9,<=3.9.8.1|>=3.10,<=3.10.1|>=4,<=4.3", "getkirby/kirby": "<=2.5.12", "getkirby/panel": "<2.5.14", "getkirby/starterkit": "<=3.7.0.2", "gilacms/gila": "<=1.15.4", - "gleez/cms": "<=1.2|==2", + "gleez/cms": "<=1.3|==2", "globalpayments/php-sdk": "<2", "gogentooss/samlbase": "<1.2.7", "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<2.2.1", "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<6.1.7", + "grumpydictator/firefly-iii": "<6.1.17", "gugoan/economizzer": "<=0.9.0.0-beta1", "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", @@ -5720,26 +5847,32 @@ "hov/jobfair": "<1.0.13|>=2,<2.0.2", "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", - "ibexa/admin-ui": ">=4.2,<4.2.3", - "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.4", + "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6.0.0-beta1,<4.6.9", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", + "ibexa/fieldtype-richtext": ">=4.6,<4.6.10", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/post-install": "<=1.0.4", "ibexa/solr": ">=4.5,<4.5.4", "ibexa/user": ">=4,<4.4.3", "icecoder/icecoder": "<=8.1", "idno/known": "<=1.3.1", + "ilicmiljan/secure-props": ">=1.2,<1.2.2", "illuminate/auth": "<5.5.10", - "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4", "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "imdbphp/imdbphp": "<=5.1.1", "impresscms/impresscms": "<=1.4.5", "impresspages/impresspages": "<=1.0.12", "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3", "in2code/ipandlanguageredirect": "<5.1.2", "in2code/lux": "<17.6.1|>=18,<24.0.2", + "in2code/powermail": "<7.5|>=8,<8.5|>=9,<10.9|>=11,<12.4", "innologi/typo3-appointments": "<2.0.6", "intelliants/subrion": "<4.2.2", + "inter-mediator/inter-mediator": "==5.5", + "ipl/web": "<0.10.1", "islandora/islandora": ">=2,<2.4.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", @@ -5747,6 +5880,7 @@ "james-heinrich/phpthumb": "<1.7.12", "jasig/phpcas": "<1.3.3", "jcbrand/converse.js": "<3.3.3", + "johnbillion/wp-crontrol": "<1.16.2", "joomla/application": "<1.0.13", "joomla/archive": "<1.1.12|>=2,<2.0.1", "joomla/filesystem": "<1.6.2|>=2,<2.0.1", @@ -5759,51 +5893,57 @@ "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "juzaweb/cms": "<=3.4", + "jweiland/events2": "<8.3.8|>=9,<9.0.6", "kazist/phpwhois": "<=4.2.6", "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", "khodakhah/nodcms": "<=3", - "kimai/kimai": "<2.1", + "kimai/kimai": "<2.16", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<=1.4.2", "kohana/core": "<3.3.3", "krayin/laravel-crm": "<1.2.2", "kreait/firebase-php": ">=3.2,<3.8.1", + "kumbiaphp/kumbiapp": "<=1.1.1", "la-haute-societe/tcpdf": "<6.2.22", "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75", - "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "laravel/laravel": ">=5.4,<5.4.22", + "laravel/socialite": ">=1,<2.0.10", "latte/latte": "<2.10.8", - "lavalite/cms": "<=9", + "lavalite/cms": "<=9|==10.1", "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "libreform/libreform": ">=2,<=2.0.8", "librenms/librenms": "<2017.08.18", "liftkit/database": "<2.13.2", + "lightsaml/lightsaml": "<1.3.5", "limesurvey/limesurvey": "<3.27.19", "livehelperchat/livehelperchat": "<=3.91", - "livewire/livewire": ">2.2.4,<2.2.6", + "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", "luyadev/yii-helpers": "<1.2.1", - "magento/community-edition": "<2.4.3.0-patch3|>=2.4.4,<2.4.5", + "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch8|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch6|==2.4.7", "magento/core": "<=1.9.4.5", "magento/magento1ce": "<1.9.4.3-dev", "magento/magento1ee": ">=1,<1.14.4.3-dev", - "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", + "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1", "magneto/core": "<1.9.4.4-dev", "maikuolan/phpmussel": ">=1,<1.6", "mainwp/mainwp": "<=4.4.3.3", - "mantisbt/mantisbt": "<2.26.1", + "mantisbt/mantisbt": "<2.26.2", "marcwillmann/turn": "<0.3.3", "matyhtf/framework": "<3.0.6", - "mautic/core": "<4.3", + "mautic/core": "<4.4.12|>=5.0.0.0-alpha,<5.0.4", + "mdanter/ecc": "<2", "mediawiki/core": "<1.36.2", "mediawiki/matomo": "<2.4.3", "mediawiki/semantic-media-wiki": "<4.0.2", @@ -5815,7 +5955,8 @@ "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1", "microsoft/microsoft-graph-beta": "<2.0.1", "microsoft/microsoft-graph-core": "<2.0.2", - "microweber/microweber": "<=2.0.4", + "microweber/microweber": "<=2.0.16", + "mikehaertl/php-shellcommand": "<1.6.1", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", "mobiledetect/mobiledetectlib": "<2.8.32", @@ -5823,22 +5964,27 @@ "mojo42/jirafeau": "<4.4", "mongodb/mongodb": ">=1,<1.9.2", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.3.3", + "moodle/moodle": "<4.3.5|>=4.4.0.0-beta,<4.4.1", "mos/cimage": "<0.7.19", "movim/moxl": ">=0.8,<=0.10", + "movingbytes/social-network": "<=1.2.1", "mpdf/mpdf": "<=7.1.7", "munkireport/comment": "<4.1", "munkireport/managedinstalls": "<2.6", + "munkireport/munki_facts": "<1.5", "munkireport/munkireport": ">=2.5.3,<5.6.3", + "munkireport/reportdata": "<3.5", + "munkireport/softwareupdate": "<1.6", "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", + "nategood/httpful": "<1", "neoan3-apps/template": "<1.1.1", "neorazorx/facturascripts": "<2022.04", "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", - "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", - "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/swiftmailer": "<5.4.5", "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", @@ -5846,38 +5992,47 @@ "nonfiction/nterchange": "<4.1.1", "notrinos/notrinos-erp": "<=0.7", "noumo/easyii": "<=0.9", + "novaksolutions/infusionsoft-php-sdk": "<1", "nukeviet/nukeviet": "<4.5.02", "nyholm/psr7": "<1.6.1", "nystudio107/craft-seomatic": "<3.4.12", + "nzedb/nzedb": "<0.8", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "october/backend": "<1.1.2", "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", "october/october": "<=3.4.4", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2", + "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.15", "omeka/omeka-s": "<4.0.3", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", "open-web-analytics/open-web-analytics": "<1.7.4", - "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev", + "opencart/opencart": ">=0", "openid/php-openid": "<2.3", - "openmage/magento-lts": "<20.2", + "openmage/magento-lts": "<20.10.1", + "opensolutions/vimbadmin": "<=3.0.15", "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", - "oro/customer-portal": ">=4.2,<=4.2.8|>=5,<5.0.11|>=5.1,<5.1.1", - "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<5.0.8", + "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", + "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", "oxid-esales/oxideshop-ce": "<4.5", + "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", "packbackbooks/lti-1-3-php-library": "<5", "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": "<3", "pagekit/pagekit": "<=1.0.18", + "paragonie/ecc": "<2.0.1", "paragonie/random_compat": "<2", - "passbolt/passbolt_api": "<2.11", + "passbolt/passbolt_api": "<4.6.2", + "paypal/adaptivepayments-sdk-php": "<=3.9.2", + "paypal/invoice-sdk-php": "<=3.9", "paypal/merchant-sdk-php": "<3.12", + "paypal/permissions-sdk-php": "<=3.9.1", "pear/archive_tar": "<1.4.14", "pear/auth": "<1.2.4", "pear/crypt_gpg": "<1.6.7", @@ -5886,6 +6041,7 @@ "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phenx/php-svg-lib": "<0.5.2", + "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", "php-mod/curl": "<2.3.2", "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1", "phpems/phpems": ">=6,<=6.1.3", @@ -5893,10 +6049,11 @@ "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", "phpmyadmin/phpmyadmin": "<5.2.1", - "phpmyfaq/phpmyfaq": "<3.2.5", + "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5", + "phpoffice/common": "<0.2.9", "phpoffice/phpexcel": "<1.8", - "phpoffice/phpspreadsheet": "<1.16", - "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.34", + "phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.2.1", + "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", "phpservermon/phpservermon": "<3.6", "phpsysinfo/phpsysinfo": "<3.4.3", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", @@ -5904,17 +6061,18 @@ "phpxmlrpc/extras": "<0.6.1", "phpxmlrpc/phpxmlrpc": "<4.9.2", "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<1.3.4", + "pimcore/admin-ui-classic-bundle": "<1.5.4", "pimcore/customer-management-framework-bundle": "<4.0.6", "pimcore/data-hub": "<1.2.4", + "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3", "pimcore/demo": "<10.3", "pimcore/ecommerce-framework-bundle": "<1.0.10", "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<11.1.1", + "pimcore/pimcore": "<11.2.4", "pixelfed/pixelfed": "<0.11.11", "plotly/plotly.js": "<2.25.2", "pocketmine/bedrock-protocol": "<8.0.2", - "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1", + "pocketmine/pocketmine-mp": "<5.11.2", "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", @@ -5922,22 +6080,25 @@ "prestashop/blockwishlist": ">=2,<2.1.1", "prestashop/contactform": ">=1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": "<8.1.4", + "prestashop/prestashop": "<8.1.6", "prestashop/productcomments": "<5.0.2", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.4", - "processwire/processwire": "<=3.0.210", + "privatebin/privatebin": "<1.4|>=1.5,<1.7.4", + "processwire/processwire": "<=3.0.229", "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.7", + "pterodactyl/panel": "<1.11.6", "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", "ptrofimov/beanstalk_console": "<1.7.14", "pubnub/pubnub": "<6.1", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6.0-beta", + "pxlrbt/filament-excel": "<2.3.3", "pyrocms/pyrocms": "<=3.9.1", + "qcubed/qcubed": "<=3.1.1", + "quickapps/cms": "<=2.0.0.0-beta2", "rainlab/blog-plugin": "<1.4.1", "rainlab/debugbar-plugin": "<3.1", "rainlab/user-plugin": "<=1.4.5", @@ -5946,8 +6107,8 @@ "react/http": ">=0.7,<1.9", "really-simple-plugins/complianz-gdpr": "<6.4.2", "redaxo/source": "<=5.15.1", - "remdex/livehelperchat": "<3.99", - "reportico-web/reportico": "<=7.1.21", + "remdex/livehelperchat": "<4.29", + "reportico-web/reportico": "<=8.1", "rhukster/dom-sanitizer": "<1.0.7", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": ">=1,<3.0.4", @@ -5962,29 +6123,30 @@ "serluck/phpwhois": "<=4.2.6", "sfroemken/url_redirect": "<=1.2.1", "sheng/yiicms": "<=1.2", - "shopware/core": "<=6.5.7.3", - "shopware/platform": "<=6.5.7.3", + "shopware/core": "<=6.5.8.12|>=6.6,<=6.6.5", + "shopware/platform": "<=6.5.8.12|>=6.6,<=6.6.5", "shopware/production": "<=6.3.5.2", "shopware/shopware": "<=5.7.17", - "shopware/storefront": "<=6.4.8.1", - "shopxo/shopxo": "<2.2.6", + "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev", + "shopxo/shopxo": "<=6.1", "showdoc/showdoc": "<2.10.4", "silverstripe-australia/advancedreports": ">=1,<=2", "silverstripe/admin": "<1.13.19|>=2,<2.1.8", "silverstripe/assets": ">=1,<1.11.1", "silverstripe/cms": "<4.11.3", - "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", + "silverstripe/comments": ">=1.3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.13.39|>=5,<5.1.11", + "silverstripe/framework": "<5.2.16", "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", "silverstripe/recipe-cms": ">=4.5,<4.5.3", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", - "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/reports": "<5.2.3", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", "silverstripe/subsites": ">=2,<2.6.1", "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", - "silverstripe/userforms": "<3", + "silverstripe/userforms": "<3|>=5,<5.4.2", "silverstripe/versioned-admin": ">=1,<1.11.1", "simple-updates/phpwhois": "<=1", "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12", @@ -5999,34 +6161,37 @@ "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", "slim/slim": "<2.6", "slub/slub-events": "<3.0.3", - "smarty/smarty": "<3.1.48|>=4,<4.3.1", - "snipe/snipe-it": "<=6.2.2", + "smarty/smarty": "<4.5.3|>=5,<5.1.1", + "snipe/snipe-it": "<6.4.2", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", "spatie/browsershot": "<3.57.4", + "spatie/image-optimizer": "<1.7.3", "spipu/html2pdf": "<5.2.8", "spoon/library": "<1.4.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<22.02.3", - "statamic/cms": "<4.46", + "ssddanbrown/bookstack": "<24.05.1", + "statamic/cms": "<4.46|>=5.3,<5.6.2", "stormpath/sdk": "<9.9.99", - "studio-42/elfinder": "<2.1.62", + "studio-42/elfinder": "<=2.1.64", + "studiomitte/friendlycaptcha": "<0.1.4", "subhh/libconnect": "<7.0.8|>=8,<8.1", "sukohi/surpass": "<1", - "sulu/sulu": "<1.6.44|>=2,<2.4.16|>=2.5,<2.5.12", + "sulu/form-bundle": ">=2,<2.5.3", + "sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13", "sumocoders/framework-user-bundle": "<1.4", "superbig/craft-audit": "<3.0.2", "swag/paypal": "<5.4.4", - "swiftmailer/swiftmailer": ">=4,<5.4.5", + "swiftmailer/swiftmailer": "<6.2.5", "swiftyedit/swiftyedit": "<1.2", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", - "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4", + "symbiote/silverstripe-multivaluefield": ">=3,<3.1", "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", "symbiote/silverstripe-seed": "<6.0.3", "symbiote/silverstripe-versionedfiles": "<=2.0.3", @@ -6035,7 +6200,7 @@ "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4", "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -6068,30 +6233,32 @@ "t3s/content-consent": "<1.0.3|>=2,<2.0.2", "tastyigniter/tastyigniter": "<3.3", "tcg/voyager": "<=1.4", - "tecnickcom/tcpdf": "<6.2.22", + "tecnickcom/tcpdf": "<=6.7.4", "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", - "thinkcmf/thinkcmf": "<=5.1.7", + "thinkcmf/thinkcmf": "<6.0.8", "thorsten/phpmyfaq": "<3.2.2", "tikiwiki/tiki-manager": "<=17.1", - "tinymce/tinymce": "<5.10.9|>=6,<6.7.3", + "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1", + "tinymce/tinymce": "<7.2", "tinymighty/wiki-seo": "<1.2.2", "titon/framework": "<9.9.99", "tobiasbg/tablepress": "<=2.0.0.0-RC1", - "topthink/framework": "<6.0.14", + "topthink/framework": "<6.0.17|>=6.1,<=8.0.4", "topthink/think": "<=6.1.1", "topthink/thinkphp": "<=3.2.3", - "torrentpier/torrentpier": "<=2.4.1", + "torrentpier/torrentpier": "<=2.4.3", "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", - "tribalsystems/zenario": "<=9.4.59197", + "tribalsystems/zenario": "<9.5.60602", "truckersmp/phpwhois": "<=4.3.1", "ttskch/pagination-service-provider": "<1", - "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", + "twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2", + "twig/twig": "<1.44.8|>=2,<2.16.1|>=3,<3.11.1|>=3.12,<3.14", "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", - "typo3/cms-core": "<=8.7.56|>=9,<=9.5.45|>=10,<=10.4.42|>=11,<=11.5.34|>=12,<=12.4.10|==13", + "typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1", "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1", "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", @@ -6110,15 +6277,24 @@ "userfrosting/userfrosting": ">=0.3.1,<4.6.3", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "uvdesk/community-skeleton": "<=1.1.1", + "uvdesk/core-framework": "<=1.1.1", "vanilla/safecurl": "<0.9.2", + "verbb/comments": "<1.5.5", + "verbb/formie": "<2.1.6", + "verbb/image-resizer": "<2.0.9", + "verbb/knock-knock": "<1.2.8", "verot/class.upload.php": "<=2.1.6", + "villagedefrance/opencart-overclocked": "<=1.11.1", "vova07/yii2-fileapi-widget": "<0.1.9", "vrana/adminer": "<4.8.1", + "vufind/vufind": ">=2,<9.1.1", "waldhacker/hcaptcha": "<2.1.2", "wallabag/tcpdf": "<6.2.22", "wallabag/wallabag": "<2.6.7", "wanglelecc/laracms": "<=1.0.3", - "web-auth/webauthn-framework": ">=3.3,<3.3.4", + "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9", + "web-auth/webauthn-lib": ">=4.5,<4.9", + "web-feet/coastercms": "==5.5", "webbuilders-group/silverstripe-kapost-bridge": "<0.4", "webcoast/deferred-image-processing": "<1.0.2", "webklex/laravel-imap": "<5.3", @@ -6128,22 +6304,26 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "winter/wn-backend-module": "<1.2.4", + "winter/wn-dusk-plugin": "<2.1", "winter/wn-system-module": "<1.2.4", - "wintercms/winter": "<1.2.3", - "woocommerce/woocommerce": "<6.6", + "wintercms/winter": "<=1.2.3", + "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", "wp-cli/wp-cli": ">=0.12,<2.5", "wp-graphql/wp-graphql": "<=1.14.5", + "wp-premium/gravityforms": "<2.4.21", "wpanel/wpanel4-cms": "<=4.3.1", "wpcloud/wp-stateless": "<3.2", - "wwbn/avideo": "<=12.4", + "wpglobus/wpglobus": "<=1.9.6", + "wwbn/avideo": "<14.3", "xataface/xataface": "<3", "xpressengine/xpressengine": "<3.0.15", + "yab/quarx": "<2.4.5", "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.4", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", "yiisoft/yii": "<1.1.29", - "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2": "<2.0.49.4-dev", "yiisoft/yii2-authclient": "<2.2.15", "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.43", @@ -6168,9 +6348,9 @@ "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", - "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2", "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4", "zendframework/zend-validator": ">=2.3,<2.3.6", "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", @@ -6229,32 +6409,32 @@ "type": "tidelift" } ], - "time": "2024-02-26T23:04:41+00:00" + "time": "2024-09-10T18:06:22+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -6277,7 +6457,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -6285,32 +6466,32 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -6333,7 +6514,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" }, "funding": [ { @@ -6341,32 +6522,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2023-02-03T06:58:43+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -6388,7 +6569,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" }, "funding": [ { @@ -6396,34 +6577,36 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2023-02-03T06:59:15+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -6462,7 +6645,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2" }, "funding": [ { @@ -6470,33 +6654,33 @@ "type": "github" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2024-08-12T06:03:08+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.3", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -6519,7 +6703,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -6527,33 +6712,33 @@ "type": "github" } ], - "time": "2023-12-22T06:19:30+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -6585,7 +6770,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -6593,27 +6779,27 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "suggest": { "ext-posix": "*" @@ -6621,7 +6807,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -6640,7 +6826,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", @@ -6648,7 +6834,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -6656,34 +6843,34 @@ "type": "github" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -6725,7 +6912,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -6733,38 +6921,35 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -6783,13 +6968,14 @@ } ], "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/5.0.6" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -6797,33 +6983,33 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.4", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -6846,7 +7032,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -6854,34 +7041,34 @@ "type": "github" } ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -6903,7 +7090,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" }, "funding": [ { @@ -6911,32 +7098,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2023-02-03T07:08:32+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -6958,7 +7145,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" }, "funding": [ { @@ -6966,32 +7153,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2023-02-03T07:06:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -7021,7 +7208,7 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" }, "funding": [ { @@ -7029,32 +7216,32 @@ "type": "github" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2023-02-03T07:05:40+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.3", + "name": "sebastian/type", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -7069,14 +7256,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" }, "funding": [ { @@ -7084,32 +7272,29 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2023-02-03T07:10:45+00:00" }, { - "name": "sebastian/type", - "version": "3.2.1", + "name": "sebastian/version", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -7128,11 +7313,11 @@ "role": "lead" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" }, "funding": [ { @@ -7140,73 +7325,88 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2023-02-07T11:34:05+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "spatie/array-to-xml", + "version": "3.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876", + "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "source": "https://github.com/spatie/array-to-xml/tree/3.3.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-05-01T10:20:27+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.0", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", "shasum": "" }, "require": { @@ -7273,20 +7473,20 @@ "type": "open_collective" } ], - "time": "2024-02-16T15:06:51+00:00" + "time": "2024-07-21T23:26:44+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -7315,7 +7515,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.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -7323,28 +7523,28 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "vimeo/psalm", - "version": "4.30.0", + "version": "5.26.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -7353,35 +7553,38 @@ "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" + "nikic/php-parser": "^4.17", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" + }, + "conflict": { + "nikic/php-parser": "4.17.0" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", + "amphp/phpunit-util": "^2.0", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "suggest": { "ext-curl": "In order to send data to shepherd", @@ -7394,20 +7597,17 @@ "psalm-refactor", "psalter" ], - "type": "library", + "type": "project", "extra": { "branch-alias": { - "dev-master": "4.x-dev", + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" } }, "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], "psr-4": { "Psalm\\": "src/Psalm/" } @@ -7425,13 +7625,15 @@ "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { + "docs": "https://psalm.dev/docs", "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" + "source": "https://github.com/vimeo/psalm" }, - "time": "2022-11-06T20:37:08+00:00" + "time": "2024-09-08T18:53:08+00:00" }, { "name": "webmozart/assert", @@ -7490,107 +7692,6 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" - }, - { - "name": "webmozarts/strict-phpunit", - "version": "7.11.4", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/strict-phpunit.git", - "reference": "41798e96a369b3f1ab8a84f92e3a60c0a4d06c09" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/strict-phpunit/zipball/41798e96a369b3f1ab8a84f92e3a60c0a4d06c09", - "reference": "41798e96a369b3f1ab8a84f92e3a60c0a4d06c09", - "shasum": "" - }, - "require": { - "php": "^8.1", - "phpunit/phpunit": "^9.4.3 || ^10.3" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.28", - "infection/infection": "^0.26.6" - }, - "type": "library", - "extra": { - "symfony": { - "require": "6.*.*" - } - }, - "autoload": { - "psr-4": { - "Webmozarts\\StrictPHPUnit\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bernhard.schussek@webmozarts.com" - } - ], - "description": "Enables type-safe comparisons of objects in PHPUnit", - "support": { - "issues": "https://github.com/webmozarts/strict-phpunit/issues", - "source": "https://github.com/webmozarts/strict-phpunit/tree/7.11.4" - }, - "time": "2024-02-26T13:22:01+00:00" } ], "aliases": [], @@ -7607,5 +7708,5 @@ "ext-pdo": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/settings/phpstan.neon b/settings/phpstan.neon index 44bb00ded..c1cd73cc0 100644 --- a/settings/phpstan.neon +++ b/settings/phpstan.neon @@ -3,9 +3,9 @@ parameters: paths: - ../src - ../tests - checkMissingIterableValueType: false - checkGenericClassInNonGenericObjectType: false ignoreErrors: + - + identifier: missingType.iterableValue - message: '#Parameter \#2 \$level of class Monolog\\Handler\\StreamHandler#' path: ../src/Factory.php diff --git a/settings/phpunit.xml b/settings/phpunit.xml index 91261275a..33737cf6c 100644 --- a/settings/phpunit.xml +++ b/settings/phpunit.xml @@ -2,32 +2,28 @@ + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"> ../tests/unit/ - - - diff --git a/settings/psalm.xml b/settings/psalm.xml index d95ddba46..402da5172 100644 --- a/settings/psalm.xml +++ b/settings/psalm.xml @@ -2,6 +2,8 @@ + @@ -27,11 +30,19 @@ + + + + + + + + diff --git a/src/Api/Github/GithubApi.php b/src/Api/Github/GithubApi.php index 162c38d47..14dbbd6b6 100644 --- a/src/Api/Github/GithubApi.php +++ b/src/Api/Github/GithubApi.php @@ -8,7 +8,7 @@ class GithubApi { - private const GITHUB_LATEST_RELEASE_URL = 'https://api.github.com/repos/leepeuker/movary/releases/latest'; + private const string GITHUB_LATEST_RELEASE_URL = 'https://api.github.com/repos/leepeuker/movary/releases/latest'; public function __construct( private readonly Client $httpClient, diff --git a/src/Api/Jellyfin/Cache/JellyfinCache.php b/src/Api/Jellyfin/Cache/JellyfinCache.php index d1340100a..88b0d7656 100644 --- a/src/Api/Jellyfin/Cache/JellyfinCache.php +++ b/src/Api/Jellyfin/Cache/JellyfinCache.php @@ -12,7 +12,7 @@ class JellyfinCache { - private const DEFAULT_HTTP_HEADERS = [ + private const array DEFAULT_HTTP_HEADERS = [ 'Recursive' => 'true', 'IncludeItemTypes' => 'Movie', 'hasTmdbId' => 'true', diff --git a/src/Api/Jellyfin/Dto/JellyfinMovieDtoList.php b/src/Api/Jellyfin/Dto/JellyfinMovieDtoList.php index cb67d97de..23cbf47e6 100644 --- a/src/Api/Jellyfin/Dto/JellyfinMovieDtoList.php +++ b/src/Api/Jellyfin/Dto/JellyfinMovieDtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method JellyfinMovieDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class JellyfinMovieDtoList extends AbstractList { diff --git a/src/Api/Jellyfin/JellyfinClient.php b/src/Api/Jellyfin/JellyfinClient.php index 211b8b702..c3675381e 100644 --- a/src/Api/Jellyfin/JellyfinClient.php +++ b/src/Api/Jellyfin/JellyfinClient.php @@ -18,9 +18,9 @@ class JellyfinClient { - private const DEFAULT_PAGINATION_LIMIT = 500; + private const int DEFAULT_PAGINATION_LIMIT = 500; - private const DEFAULT_TIMEOUT = 4; + private const int DEFAULT_TIMEOUT = 4; public function __construct( private readonly HttpClient $httpClient, diff --git a/src/Api/Letterboxd/LetterboxdWebScrapper.php b/src/Api/Letterboxd/LetterboxdWebScrapper.php index 339986bb0..9c8634f47 100644 --- a/src/Api/Letterboxd/LetterboxdWebScrapper.php +++ b/src/Api/Letterboxd/LetterboxdWebScrapper.php @@ -7,7 +7,7 @@ class LetterboxdWebScrapper { - private const BASE_URL = 'https://boxd.it/'; + private const string BASE_URL = 'https://boxd.it/'; private array $letterboxdIdToTmdbIdCache = []; diff --git a/src/Api/Plex/PlexApi.php b/src/Api/Plex/PlexApi.php index 7b74e9236..a429a3ff0 100644 --- a/src/Api/Plex/PlexApi.php +++ b/src/Api/Plex/PlexApi.php @@ -31,7 +31,7 @@ */ class PlexApi { - private const BASE_URL = 'https://app.plex.tv/auth#?'; + private const string BASE_URL = 'https://app.plex.tv/auth#?'; public function __construct( private readonly Authentication $authenticationService, diff --git a/src/Api/Plex/PlexClient.php b/src/Api/Plex/PlexClient.php index dae3900a4..dc863c56b 100644 --- a/src/Api/Plex/PlexClient.php +++ b/src/Api/Plex/PlexClient.php @@ -13,7 +13,7 @@ abstract class PlexClient { - protected const DEFAULT_HEADERS = [ + protected const array DEFAULT_HEADERS = [ 'accept' => 'application/json' ]; diff --git a/src/Api/Tmdb/Dto/TmdbCast.php b/src/Api/Tmdb/Dto/TmdbCast.php index eda115054..25263a4e9 100644 --- a/src/Api/Tmdb/Dto/TmdbCast.php +++ b/src/Api/Tmdb/Dto/TmdbCast.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method TmdbCastMember[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class TmdbCast extends AbstractList { diff --git a/src/Api/Tmdb/Dto/TmdbCrew.php b/src/Api/Tmdb/Dto/TmdbCrew.php index 7e9f29e26..aea642914 100644 --- a/src/Api/Tmdb/Dto/TmdbCrew.php +++ b/src/Api/Tmdb/Dto/TmdbCrew.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method TmdbCrewMember[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class TmdbCrew extends AbstractList { diff --git a/src/Api/Tmdb/Dto/TmdbGenreList.php b/src/Api/Tmdb/Dto/TmdbGenreList.php index cac0d8da8..aa316eb79 100644 --- a/src/Api/Tmdb/Dto/TmdbGenreList.php +++ b/src/Api/Tmdb/Dto/TmdbGenreList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method TmdbGenre[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class TmdbGenreList extends AbstractList { diff --git a/src/Api/Tmdb/Dto/TmdbProductionCompanyList.php b/src/Api/Tmdb/Dto/TmdbProductionCompanyList.php index 3d676f1e2..277fb9399 100644 --- a/src/Api/Tmdb/Dto/TmdbProductionCompanyList.php +++ b/src/Api/Tmdb/Dto/TmdbProductionCompanyList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method TmdbProductionCompany[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class TmdbProductionCompanyList extends AbstractList { diff --git a/src/Api/Tmdb/Dto/TmdbWatchProviderList.php b/src/Api/Tmdb/Dto/TmdbWatchProviderList.php index e34ffb052..45c6a7cc0 100644 --- a/src/Api/Tmdb/Dto/TmdbWatchProviderList.php +++ b/src/Api/Tmdb/Dto/TmdbWatchProviderList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method TmdbWatchProviderDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class TmdbWatchProviderList extends AbstractList { diff --git a/src/Api/Tmdb/TmdbClient.php b/src/Api/Tmdb/TmdbClient.php index 89e639e81..4b2ee2dd2 100644 --- a/src/Api/Tmdb/TmdbClient.php +++ b/src/Api/Tmdb/TmdbClient.php @@ -13,7 +13,7 @@ class TmdbClient { - private const BASE_URL = 'https://api.themoviedb.org/3'; + private const string BASE_URL = 'https://api.themoviedb.org/3'; public function __construct( private readonly ClientInterface $httpClient, diff --git a/src/Api/Trakt/TraktClient.php b/src/Api/Trakt/TraktClient.php index 2ee14d350..72317ea5b 100644 --- a/src/Api/Trakt/TraktClient.php +++ b/src/Api/Trakt/TraktClient.php @@ -10,9 +10,9 @@ class TraktClient { - private const BASE_URL = 'https://api.trakt.tv'; + private const string BASE_URL = 'https://api.trakt.tv'; - private const TRAKT_API_VERSION = '2'; + private const string TRAKT_API_VERSION = '2'; public function __construct( private readonly ClientInterface $httpClient, diff --git a/src/Api/Trakt/ValueObject/User/Movie/History/DtoList.php b/src/Api/Trakt/ValueObject/User/Movie/History/DtoList.php index 8f783b184..58a060f6d 100644 --- a/src/Api/Trakt/ValueObject/User/Movie/History/DtoList.php +++ b/src/Api/Trakt/ValueObject/User/Movie/History/DtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method Dto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class DtoList extends AbstractList { diff --git a/src/Api/Trakt/ValueObject/User/Movie/Rating/DtoList.php b/src/Api/Trakt/ValueObject/User/Movie/Rating/DtoList.php index 9d9c85cea..3c23f31d0 100644 --- a/src/Api/Trakt/ValueObject/User/Movie/Rating/DtoList.php +++ b/src/Api/Trakt/ValueObject/User/Movie/Rating/DtoList.php @@ -5,7 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class DtoList extends AbstractList { diff --git a/src/Api/Trakt/ValueObject/User/Movie/Watched/DtoList.php b/src/Api/Trakt/ValueObject/User/Movie/Watched/DtoList.php index d75e04324..a2a5719ac 100644 --- a/src/Api/Trakt/ValueObject/User/Movie/Watched/DtoList.php +++ b/src/Api/Trakt/ValueObject/User/Movie/Watched/DtoList.php @@ -7,8 +7,7 @@ use Movary\ValueObject\DateTime; /** - * @method Dto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class DtoList extends AbstractList { diff --git a/src/Command/CreatePublicStorageLink.php b/src/Command/CreatePublicStorageLink.php index a0327880c..0f4d1cfbf 100644 --- a/src/Command/CreatePublicStorageLink.php +++ b/src/Command/CreatePublicStorageLink.php @@ -3,14 +3,19 @@ namespace Movary\Command; use Movary\Util\File; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'storage:link', + description: 'Create the public storage symlink.', + aliases: ['storage:link'], + hidden: false, +)] class CreatePublicStorageLink extends Command { - protected static $defaultName = 'storage:link'; - public function __construct( private readonly File $fileUtil, private readonly string $appStorageDirectory, @@ -19,11 +24,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Create the public storage symlink.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/DatabaseMigrationMigrate.php b/src/Command/DatabaseMigrationMigrate.php index f3b5e8973..5599b9b22 100644 --- a/src/Command/DatabaseMigrationMigrate.php +++ b/src/Command/DatabaseMigrationMigrate.php @@ -3,14 +3,19 @@ namespace Movary\Command; use Phinx\Console\PhinxApplication; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'database:migration:migrate', + description: 'Execute missing database migrations.', + aliases: ['database:migration:migrate'], + hidden: false, +)] class DatabaseMigrationMigrate extends Command { - protected static $defaultName = 'database:migration:migrate'; - public function __construct( private readonly PhinxApplication $phinxApplication, private readonly string $phinxConfigurationFile, @@ -18,11 +23,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Execute missing database migrations.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/DatabaseMigrationRollback.php b/src/Command/DatabaseMigrationRollback.php index 7cbf13742..20096c084 100644 --- a/src/Command/DatabaseMigrationRollback.php +++ b/src/Command/DatabaseMigrationRollback.php @@ -3,14 +3,19 @@ namespace Movary\Command; use Phinx\Console\PhinxApplication; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'database:migration:rollback', + description: 'Rollback last database migration.', + aliases: ['database:migration:rollback'], + hidden: false, +)] class DatabaseMigrationRollback extends Command { - protected static $defaultName = 'database:migration:rollback'; - public function __construct( private readonly PhinxApplication $phinxApplication, private readonly string $phinxConfigurationFile, @@ -18,11 +23,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Rollback last database migration.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/DatabaseMigrationStatus.php b/src/Command/DatabaseMigrationStatus.php index c730a9bef..e9d2f485c 100644 --- a/src/Command/DatabaseMigrationStatus.php +++ b/src/Command/DatabaseMigrationStatus.php @@ -3,14 +3,19 @@ namespace Movary\Command; use Phinx\Console\PhinxApplication; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'database:migration:status', + description: 'Status of database migrations.', + aliases: ['database:migration:status'], + hidden: false, +)] class DatabaseMigrationStatus extends Command { - protected static $defaultName = 'database:migration:status'; - public function __construct( private readonly PhinxApplication $phinxApplication, private readonly string $phinxConfigurationFile, @@ -18,11 +23,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Status of database migrations.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/ImdbSync.php b/src/Command/ImdbSync.php index f93da7a2a..eeb6cdc63 100644 --- a/src/Command/ImdbSync.php +++ b/src/Command/ImdbSync.php @@ -7,22 +7,27 @@ use Movary\Service\Imdb\ImdbMovieRatingSync; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'imdb:sync', + description: 'Sync imdb ratings for local movies, sorted by how outdated they are (oldest first).', + aliases: ['imdb:sync'], + hidden: false, +)] class ImdbSync extends Command { - private const OPTION_NAME_NEVER_SYNC = 'never-synced'; + private const string OPTION_NAME_NEVER_SYNC = 'never-synced'; - private const OPTION_NAME_HOURS = 'hours'; + private const string OPTION_NAME_HOURS = 'hours'; - private const OPTION_NAME_FORCE_THRESHOLD = 'threshold'; + private const string OPTION_NAME_FORCE_THRESHOLD = 'threshold'; - private const OPTION_NAME_MOVIE_IDS = 'movieIds'; - - protected static $defaultName = 'imdb:sync'; + private const string OPTION_NAME_MOVIE_IDS = 'movieIds'; public function __construct( private readonly ImdbMovieRatingSync $imdbMovieRatingSync, @@ -36,7 +41,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Sync imdb ratings for local movies, sorted by how outdated they are (oldest first).') ->addOption(self::OPTION_NAME_MOVIE_IDS, 'movieIds', InputOption::VALUE_REQUIRED, 'Comma separated string of movie ids to force sync.') ->addOption(self::OPTION_NAME_FORCE_THRESHOLD, 'threshold', InputOption::VALUE_REQUIRED, 'Maximum number of movies to sync.') ->addOption(self::OPTION_NAME_HOURS, 'hours', InputOption::VALUE_REQUIRED, 'Number of hours required to have elapsed since last sync.') diff --git a/src/Command/JellyfinCacheDelete.php b/src/Command/JellyfinCacheDelete.php index 2300d001b..aea73ef80 100644 --- a/src/Command/JellyfinCacheDelete.php +++ b/src/Command/JellyfinCacheDelete.php @@ -4,16 +4,21 @@ use Movary\Api\Jellyfin\Cache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'jellyfin:cache:delete', + description: 'Delete the local cache of Jellyfin movies.', + aliases: ['jellyfin:cache:delete'], + hidden: false, +)] class JellyfinCacheDelete extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'jellyfin:cache:delete'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly Cache\JellyfinCache $jellyfinCache, @@ -24,8 +29,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Delete the local cache of Jellyfin movies.') - ->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); + $this->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/JellyfinCacheRefresh.php b/src/Command/JellyfinCacheRefresh.php index ac099cf6e..70e0acebb 100644 --- a/src/Command/JellyfinCacheRefresh.php +++ b/src/Command/JellyfinCacheRefresh.php @@ -4,16 +4,21 @@ use Movary\Api\Jellyfin\Cache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'jellyfin:cache:refresh', + description: 'Refresh the local cache of Jellyfin movies.', + aliases: ['jellyfin:cache:refresh'], + hidden: false, +)] class JellyfinCacheRefresh extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'jellyfin:cache:refresh'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly Cache\JellyfinCache $jellyfinCache, @@ -24,8 +29,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Refresh the local cache of Jellyfin movies.') - ->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); + $this->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/JellyfinExport.php b/src/Command/JellyfinExport.php index 405c27b9f..eefd59b5b 100644 --- a/src/Command/JellyfinExport.php +++ b/src/Command/JellyfinExport.php @@ -7,16 +7,21 @@ use Movary\Service\Jellyfin\JellyfinMoviesExporter; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'jellyfin:export', + description: 'Export Movary watch dates as plays to Jellyfin.', + aliases: ['jellyfin:export'], + hidden: false, +)] class JellyfinExport extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'jellyfin:export'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly JellyfinMoviesExporter $jellyfinMoviesExporter, @@ -29,8 +34,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Export Movary watch dates as plays to Jellyfin.') - ->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); + $this->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/JellyfinImport.php b/src/Command/JellyfinImport.php index d2eedae41..b00eed701 100644 --- a/src/Command/JellyfinImport.php +++ b/src/Command/JellyfinImport.php @@ -6,16 +6,21 @@ use Movary\Service\Jellyfin\JellyfinMoviesImporter; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'jellyfin:import', + description: 'Import Movary watch dates as plays from Jellyfin.', + aliases: ['jellyfin:import'], + hidden: false, +)] class JellyfinImport extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'jellyfin:import'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly JellyfinMoviesImporter $jellyfinMoviesImporter, @@ -27,8 +32,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Import Movary watch dates as plays from Jellyfin.') - ->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); + $this->addArgument(self::OPTION_NAME_USER_ID, InputArgument::REQUIRED, 'Id of user.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/PlexWatchlistImport.php b/src/Command/PlexWatchlistImport.php index 0a2e25783..d855acc2f 100644 --- a/src/Command/PlexWatchlistImport.php +++ b/src/Command/PlexWatchlistImport.php @@ -6,16 +6,21 @@ use Movary\Service\Plex\PlexWatchlistImporter; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'plex:watchlist:import', + description: 'Import missing movies from Plex watchlist to the Movary watchlist.', + aliases: ['plex:watchlist:import'], + hidden: false, +)] class PlexWatchlistImport extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'plex:watchlist:import'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly PlexWatchlistImporter $plexWatchlistImporter, @@ -27,8 +32,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Import missing movies from Plex watchlist to the Movary watchlist.') - ->addOption(self::OPTION_NAME_USER_ID, [], InputOption::VALUE_REQUIRED, 'Id of user to import for.'); + $this->addOption(self::OPTION_NAME_USER_ID, [], InputOption::VALUE_REQUIRED, 'Id of user to import for.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/ProcessJobs.php b/src/Command/ProcessJobs.php index 1d39b9bc8..a52f39fe5 100644 --- a/src/Command/ProcessJobs.php +++ b/src/Command/ProcessJobs.php @@ -8,15 +8,20 @@ use Movary\ValueObject\JobStatus; use Movary\ValueObject\JobType; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'jobs:process', + description: 'Process job from the queue.', + aliases: ['jobs:process'], + hidden: false, +)] class ProcessJobs extends Command { - private const OPTION_NAME_MIN_RUNTIME = 'minRuntime'; - - protected static $defaultName = 'jobs:process'; + private const string OPTION_NAME_MIN_RUNTIME = 'minRuntime'; public function __construct( private readonly JobQueue\JobQueueApi $jobApi, @@ -29,9 +34,7 @@ public function __construct( protected function configure() : void { - $this - ->setDescription('Process job from the queue.') - ->addOption(self::OPTION_NAME_MIN_RUNTIME, 'minRuntime', InputOption::VALUE_REQUIRED, 'Minimum runtime of command.'); + $this->addOption(self::OPTION_NAME_MIN_RUNTIME, 'minRuntime', InputOption::VALUE_REQUIRED, 'Minimum runtime of command.'); } // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter diff --git a/src/Command/TmdbCountryCacheDelete.php b/src/Command/TmdbCountryCacheDelete.php index ba653bec8..8d7eb4ced 100644 --- a/src/Command/TmdbCountryCacheDelete.php +++ b/src/Command/TmdbCountryCacheDelete.php @@ -4,14 +4,19 @@ use Movary\Api\Tmdb\Cache\TmdbIsoLanguageCache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:countryCodeCache:delete', + description: 'Delete cached tmdb country codes', + aliases: ['tmdb:countryCodeCache:delete'], + hidden: false, +)] class TmdbCountryCacheDelete extends Command { - protected static $defaultName = 'tmdb:countryCodeCache:delete'; - public function __construct( private readonly TmdbIsoLanguageCache $tmdbIso6931Cache, private readonly LoggerInterface $logger, @@ -19,11 +24,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Delete cached tmdb country codes'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/TmdbCountryCacheRefresh.php b/src/Command/TmdbCountryCacheRefresh.php index b7e3f43f5..dfd0d1bdf 100644 --- a/src/Command/TmdbCountryCacheRefresh.php +++ b/src/Command/TmdbCountryCacheRefresh.php @@ -4,14 +4,19 @@ use Movary\Api\Tmdb\Cache\TmdbIsoLanguageCache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:countryCodeCache:refresh', + description: 'Refresh cached tmdb country codes', + aliases: ['tmdb:countryCodeCache:refresh'], + hidden: false, +)] class TmdbCountryCacheRefresh extends Command { - protected static $defaultName = 'tmdb:countryCodeCache:refresh'; - public function __construct( private readonly TmdbIsoLanguageCache $tmdbIso6931Cache, private readonly LoggerInterface $logger, @@ -19,11 +24,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Refresh cached tmdb country codes'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/TmdbImageCacheCleanup.php b/src/Command/TmdbImageCacheCleanup.php index 34e761ce4..143d2f036 100644 --- a/src/Command/TmdbImageCacheCleanup.php +++ b/src/Command/TmdbImageCacheCleanup.php @@ -4,14 +4,19 @@ use Movary\Api\Tmdb\Cache\TmdbImageCache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:imageCache:cleanup', + description: 'Delete outdated cached images which are not referenced anymore.', + aliases: ['tmdb:imageCache:cleanup'], + hidden: false, +)] class TmdbImageCacheCleanup extends Command { - protected static $defaultName = 'tmdb:imageCache:cleanup'; - public function __construct( private readonly TmdbImageCache $imageCacheService, private readonly LoggerInterface $logger, @@ -19,11 +24,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Delete outdated cached images which are not referenced anymore.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/TmdbImageCacheDelete.php b/src/Command/TmdbImageCacheDelete.php index 5a04a2fd7..e2ab1d674 100644 --- a/src/Command/TmdbImageCacheDelete.php +++ b/src/Command/TmdbImageCacheDelete.php @@ -4,14 +4,19 @@ use Movary\Api\Tmdb\Cache\TmdbImageCache; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:imageCache:delete', + description: 'Delete cached images from themoviedb.org', + aliases: ['tmdb:imageCache:delete'], + hidden: false, +)] class TmdbImageCacheDelete extends Command { - protected static $defaultName = 'tmdb:imageCache:delete'; - public function __construct( private readonly TmdbImageCache $imageCacheService, private readonly LoggerInterface $logger, @@ -19,11 +24,6 @@ public function __construct( parent::__construct(); } - protected function configure() : void - { - $this->setDescription('Delete cached images from themoviedb.org'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/TmdbImageCacheRefresh.php b/src/Command/TmdbImageCacheRefresh.php index 1aa1c10a0..3f1b29c7c 100644 --- a/src/Command/TmdbImageCacheRefresh.php +++ b/src/Command/TmdbImageCacheRefresh.php @@ -6,18 +6,23 @@ use Movary\JobQueue\JobQueueApi; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:imageCache:refresh', + description: 'Cache themoviedb.org images used for local movies to disk.', + aliases: ['tmdb:imageCache:refresh'], + hidden: false, +)] class TmdbImageCacheRefresh extends Command { - private const OPTION_NAME_FORCE = 'force'; + private const string OPTION_NAME_FORCE = 'force'; - private const OPTION_NAME_TYPE = 'type'; - - protected static $defaultName = 'tmdb:imageCache:refresh'; + private const string OPTION_NAME_TYPE = 'type'; public function __construct( private readonly TmdbImageCache $imageCacheService, @@ -30,7 +35,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Cache themoviedb.org images used for local movies to disk.') ->addOption( self::OPTION_NAME_TYPE, 'type', diff --git a/src/Command/TmdbMovieSync.php b/src/Command/TmdbMovieSync.php index 17975f590..c69722726 100644 --- a/src/Command/TmdbMovieSync.php +++ b/src/Command/TmdbMovieSync.php @@ -7,20 +7,25 @@ use Movary\Service\Tmdb\SyncMovies; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:movie:sync', + description: 'Sync themoviedb.org meta data for local movies.', + aliases: ['tmdb:movie:sync'], + hidden: false, +)] class TmdbMovieSync extends Command { - private const OPTION_NAME_FORCE_HOURS = 'hours'; + private const string OPTION_NAME_FORCE_HOURS = 'hours'; - private const OPTION_NAME_FORCE_THRESHOLD = 'threshold'; + private const string OPTION_NAME_FORCE_THRESHOLD = 'threshold'; - private const OPTION_NAME_MOVIE_IDS = 'movieIds'; - - protected static $defaultName = 'tmdb:movie:sync'; + private const string OPTION_NAME_MOVIE_IDS = 'movieIds'; public function __construct( private readonly SyncMovies $syncMovieDetails, @@ -34,7 +39,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Sync themoviedb.org meta data for local movies.') ->addOption(self::OPTION_NAME_FORCE_THRESHOLD, 'threshold', InputOption::VALUE_REQUIRED, 'Max number of movies to sync.') ->addOption(self::OPTION_NAME_FORCE_HOURS, 'hours', InputOption::VALUE_REQUIRED, 'Hours since last updated.') ->addOption(self::OPTION_NAME_MOVIE_IDS, 'movieIds', InputOption::VALUE_REQUIRED, 'Comma seperated ids of movies to sync.'); diff --git a/src/Command/TmdbPersonSync.php b/src/Command/TmdbPersonSync.php index 7458d9f58..9e291c4b0 100644 --- a/src/Command/TmdbPersonSync.php +++ b/src/Command/TmdbPersonSync.php @@ -7,20 +7,25 @@ use Movary\Service\Tmdb\SyncPersons; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'tmdb:person:sync', + description: 'Sync themoviedb.org meta data for local persons.', + aliases: ['tmdb:person:sync'], + hidden: false, +)] class TmdbPersonSync extends Command { - private const OPTION_NAME_FORCE_HOURS = 'hours'; + private const string OPTION_NAME_FORCE_HOURS = 'hours'; - private const OPTION_NAME_FORCE_THRESHOLD = 'threshold'; + private const string OPTION_NAME_FORCE_THRESHOLD = 'threshold'; - private const OPTION_NAME_PERSON_IDS = 'personIds'; - - protected static $defaultName = 'tmdb:person:sync'; + private const string OPTION_NAME_PERSON_IDS = 'personIds'; public function __construct( private readonly SyncPersons $syncPersons, @@ -34,7 +39,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Sync themoviedb.org meta data for local persons.') ->addOption(self::OPTION_NAME_FORCE_THRESHOLD, 'threshold', InputOption::VALUE_REQUIRED, 'Max number of persons to sync.') ->addOption(self::OPTION_NAME_FORCE_HOURS, 'hours', InputOption::VALUE_REQUIRED, 'Hours since last updated.') ->addOption(self::OPTION_NAME_PERSON_IDS, 'personIds', InputOption::VALUE_REQUIRED, 'Comma seperated ids of persons to sync.'); diff --git a/src/Command/TraktCache.php b/src/Command/TraktCache.php index c78e538ad..7239cf6a5 100644 --- a/src/Command/TraktCache.php +++ b/src/Command/TraktCache.php @@ -4,16 +4,21 @@ use Movary\Service\Trakt\TraktCacheService; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'trakt:updateCache', + description: 'Update the local trakt cache timestamps with the remote state.', + aliases: ['trakt:updateCache'], + hidden: false, +)] class TraktCache extends Command { - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'trakt:updateCache'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly TraktCacheService $traktCacheService, @@ -24,8 +29,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Update the local trakt cache timestamps with the remote state.') - ->addOption(self::OPTION_NAME_USER_ID, [], InputOption::VALUE_REQUIRED, 'Id of user.'); + $this->addOption(self::OPTION_NAME_USER_ID, [], InputOption::VALUE_REQUIRED, 'Id of user.'); } protected function execute(InputInterface $input, OutputInterface $output) : int diff --git a/src/Command/TraktImport.php b/src/Command/TraktImport.php index 9d2634222..c7f6a0cf6 100644 --- a/src/Command/TraktImport.php +++ b/src/Command/TraktImport.php @@ -9,24 +9,29 @@ use Movary\Service\Trakt\ImportWatchedMovies; use Movary\ValueObject\JobStatus; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'trakt:import', + description: 'Import trakt.tv movie history and rating with local database.', + aliases: ['trakt:import'], + hidden: false, +)] class TraktImport extends Command { - private const OPTION_NAME_HISTORY = 'history'; + private const string OPTION_NAME_HISTORY = 'history'; - private const OPTION_NAME_IGNORE_CACHE = 'ignore-cache'; + private const string OPTION_NAME_IGNORE_CACHE = 'ignore-cache'; - private const OPTION_NAME_OVERWRITE = 'overwrite'; + private const string OPTION_NAME_OVERWRITE = 'overwrite'; - private const OPTION_NAME_RATINGS = 'ratings'; + private const string OPTION_NAME_RATINGS = 'ratings'; - private const OPTION_NAME_USER_ID = 'userId'; - - protected static $defaultName = 'trakt:import'; + private const string OPTION_NAME_USER_ID = 'userId'; public function __construct( private readonly ImportRatings $importRatings, @@ -39,7 +44,7 @@ public function __construct( protected function configure() : void { - $this->setDescription('Import trakt.tv movie history and rating with local database.') + $this ->addOption(self::OPTION_NAME_USER_ID, [], InputOption::VALUE_REQUIRED, 'Id of user to import to.') ->addOption(self::OPTION_NAME_HISTORY, [], InputOption::VALUE_NONE, 'Import movie history.') ->addOption(self::OPTION_NAME_RATINGS, [], InputOption::VALUE_NONE, 'Import movie ratings.') diff --git a/src/Command/UserCreate.php b/src/Command/UserCreate.php index 2bdaed4a5..11ffb87f3 100644 --- a/src/Command/UserCreate.php +++ b/src/Command/UserCreate.php @@ -8,15 +8,20 @@ use Movary\Domain\User\Exception\UsernameNotUnique; use Movary\Domain\User\UserApi; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'user:create', + description: 'Create a new user.', + aliases: ['user:create'], + hidden: false, +)] class UserCreate extends Command { - protected static $defaultName = 'user:create'; - public function __construct( private readonly UserApi $userApi, private readonly LoggerInterface $logger, @@ -27,7 +32,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Create a new user.') ->addArgument('email', InputArgument::REQUIRED, 'Email address for user') ->addArgument('password', InputArgument::REQUIRED, 'Password for user') ->addArgument('name', InputArgument::REQUIRED, 'Name for user') diff --git a/src/Command/UserDelete.php b/src/Command/UserDelete.php index a0b01961e..a777fad28 100644 --- a/src/Command/UserDelete.php +++ b/src/Command/UserDelete.php @@ -4,15 +4,20 @@ use Movary\Domain\User\UserApi; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'user:delete', + description: 'Delete a user.', + aliases: ['user:delete'], + hidden: false, +)] class UserDelete extends Command { - protected static $defaultName = 'user:delete'; - public function __construct( private readonly UserApi $userApi, private readonly LoggerInterface $logger, @@ -22,9 +27,7 @@ public function __construct( protected function configure() : void { - $this - ->setDescription('Delete a user.') - ->addArgument('userId', InputArgument::REQUIRED, 'Id of user to delete.'); + $this->addArgument('userId', InputArgument::REQUIRED, 'Id of user to delete.'); } // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter diff --git a/src/Command/UserHistoryExport.php b/src/Command/UserHistoryExport.php index 19cdca92a..850c9049d 100644 --- a/src/Command/UserHistoryExport.php +++ b/src/Command/UserHistoryExport.php @@ -5,14 +5,19 @@ use Exception; use Movary\Service\Export\ExportService; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'user:export:history', + description: 'Export the history of a user as a csv file.', + aliases: ['user:export:history'], + hidden: false, +)] class UserHistoryExport extends Command { - protected static $defaultName = 'user:export:history'; - public function __construct( private readonly ExportService $exportService, private readonly LoggerInterface $logger, @@ -23,7 +28,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Export the history of a user as a csv file.') ->addArgument('userId', InputArgument::REQUIRED, 'Id of user to export the history from.') ->addArgument('exportFilename', InputArgument::OPTIONAL, 'A full qualified file name for the export csv.', null); } diff --git a/src/Command/UserList.php b/src/Command/UserList.php index b2fe53aff..ed694dd7e 100644 --- a/src/Command/UserList.php +++ b/src/Command/UserList.php @@ -3,24 +3,24 @@ namespace Movary\Command; use Movary\Domain\User\UserApi; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'user:list', + description: 'List all existing users.', + aliases: ['user:list'], + hidden: false, +)] class UserList extends Command { - protected static $defaultName = 'user:list'; - public function __construct( private readonly UserApi $userApi, ) { parent::__construct(); } - protected function configure() : void - { - $this->setDescription('List all existing users.'); - } - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter protected function execute(InputInterface $input, OutputInterface $output) : int { diff --git a/src/Command/UserRatingExport.php b/src/Command/UserRatingExport.php index c451d6c37..e61408cf7 100644 --- a/src/Command/UserRatingExport.php +++ b/src/Command/UserRatingExport.php @@ -5,14 +5,19 @@ use Exception; use Movary\Service\Export\ExportService; use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'user:export:ratings', + description: 'Export the ratings of a user as a csv file.', + aliases: ['user:export:ratings'], + hidden: false, +)] class UserRatingExport extends Command { - protected static $defaultName = 'user:export:ratings'; - public function __construct( private readonly ExportService $exportService, private readonly LoggerInterface $logger, @@ -23,7 +28,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Export the ratings of a user as a csv file.') ->addArgument('userId', InputArgument::REQUIRED, 'Id of user to export the ratings from.') ->addArgument('exportFilename', InputArgument::OPTIONAL, 'A full qualified file name for the export csv.', null); } diff --git a/src/Command/UserUpdate.php b/src/Command/UserUpdate.php index 6c3415261..96a78aaec 100644 --- a/src/Command/UserUpdate.php +++ b/src/Command/UserUpdate.php @@ -9,16 +9,21 @@ use Movary\Domain\User\UserApi; use Psr\Log\LoggerInterface; use RuntimeException; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +#[AsCommand( + name: 'user:update', + description: 'Update user data.', + aliases: ['user:update'], + hidden: false, +)] class UserUpdate extends Command { - protected static $defaultName = 'user:update'; - public function __construct( private readonly UserApi $userApi, private readonly LoggerInterface $logger, @@ -29,7 +34,6 @@ public function __construct( protected function configure() : void { $this - ->setDescription('Update user data.') ->addArgument('userId', InputArgument::REQUIRED, 'ID of user') ->addOption('email', [], InputOption::VALUE_OPTIONAL, 'New email') ->addOption('name', [], InputOption::VALUE_OPTIONAL, 'New name') diff --git a/src/Domain/Company/CompanyEntityList.php b/src/Domain/Company/CompanyEntityList.php index 542b25e26..051249fda 100644 --- a/src/Domain/Company/CompanyEntityList.php +++ b/src/Domain/Company/CompanyEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method CompanyEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class CompanyEntityList extends AbstractList { diff --git a/src/Domain/Company/CompanyRepository.php b/src/Domain/Company/CompanyRepository.php index 47f184e02..b47855eda 100644 --- a/src/Domain/Company/CompanyRepository.php +++ b/src/Domain/Company/CompanyRepository.php @@ -8,7 +8,7 @@ class CompanyRepository { - private const TABLE_NAME = 'company'; + private const string TABLE_NAME = 'company'; public function __construct(private readonly Connection $dbConnection) { diff --git a/src/Domain/Genre/GenreEntityList.php b/src/Domain/Genre/GenreEntityList.php index 88f4c234f..17f5144cc 100644 --- a/src/Domain/Genre/GenreEntityList.php +++ b/src/Domain/Genre/GenreEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method GenreEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class GenreEntityList extends AbstractList { diff --git a/src/Domain/Movie/Cast/CastEntityList.php b/src/Domain/Movie/Cast/CastEntityList.php index 85d952a85..fbdb9b9bd 100644 --- a/src/Domain/Movie/Cast/CastEntityList.php +++ b/src/Domain/Movie/Cast/CastEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method CastEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class CastEntityList extends AbstractList { diff --git a/src/Domain/Movie/Crew/CrewApi.php b/src/Domain/Movie/Crew/CrewApi.php index cbd7a5243..a9f6eeb7e 100644 --- a/src/Domain/Movie/Crew/CrewApi.php +++ b/src/Domain/Movie/Crew/CrewApi.php @@ -7,7 +7,7 @@ class CrewApi { - private const RELEVANT_JOBS = [ + private const array RELEVANT_JOBS = [ 'Screenplay', 'Director', 'Producer', diff --git a/src/Domain/Movie/Crew/CrewEntityList.php b/src/Domain/Movie/Crew/CrewEntityList.php index b1ea5dae2..9a53dc3c8 100644 --- a/src/Domain/Movie/Crew/CrewEntityList.php +++ b/src/Domain/Movie/Crew/CrewEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method CrewEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class CrewEntityList extends AbstractList { diff --git a/src/Domain/Movie/Genre/MovieGenreEntityList.php b/src/Domain/Movie/Genre/MovieGenreEntityList.php index a52969b68..c8b827918 100644 --- a/src/Domain/Movie/Genre/MovieGenreEntityList.php +++ b/src/Domain/Movie/Genre/MovieGenreEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieGenreEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class MovieGenreEntityList extends AbstractList { diff --git a/src/Domain/Movie/History/Location/MovieHistoryLocationEntityList.php b/src/Domain/Movie/History/Location/MovieHistoryLocationEntityList.php index e81027858..c3238bdee 100644 --- a/src/Domain/Movie/History/Location/MovieHistoryLocationEntityList.php +++ b/src/Domain/Movie/History/Location/MovieHistoryLocationEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieHistoryLocationEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class MovieHistoryLocationEntityList extends AbstractList { diff --git a/src/Domain/Movie/History/MovieHistoryEntityList.php b/src/Domain/Movie/History/MovieHistoryEntityList.php index fd05fe7cf..2aedfa2ae 100644 --- a/src/Domain/Movie/History/MovieHistoryEntityList.php +++ b/src/Domain/Movie/History/MovieHistoryEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieHistoryEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class MovieHistoryEntityList extends AbstractList { diff --git a/src/Domain/Movie/MovieApi.php b/src/Domain/Movie/MovieApi.php index ea49dead3..a2de9eebd 100644 --- a/src/Domain/Movie/MovieApi.php +++ b/src/Domain/Movie/MovieApi.php @@ -560,7 +560,7 @@ public function updateCrew(int $movieId, TmdbCrew $tmdbCrew) : void $crewMember->getPerson()->getPosterPath(), ); - $this->crewApi->create($movieId, $person->getId(), $crewMember->getJob(), $crewMember->getDepartment(), $position); + $this->crewApi->create($movieId, $person->getId(), $crewMember->getJob(), $crewMember->getDepartment(), (int)$position); } } diff --git a/src/Domain/Movie/MovieEntityList.php b/src/Domain/Movie/MovieEntityList.php index c4807f75f..081f81cc9 100644 --- a/src/Domain/Movie/MovieEntityList.php +++ b/src/Domain/Movie/MovieEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class MovieEntityList extends AbstractList { diff --git a/src/Domain/Movie/ProductionCompany/ProductionCompanyEntityList.php b/src/Domain/Movie/ProductionCompany/ProductionCompanyEntityList.php index 7a494835e..63940c913 100644 --- a/src/Domain/Movie/ProductionCompany/ProductionCompanyEntityList.php +++ b/src/Domain/Movie/ProductionCompany/ProductionCompanyEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method ProductionCompanyEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class ProductionCompanyEntityList extends AbstractList { diff --git a/src/Domain/Person/PersonEntityList.php b/src/Domain/Person/PersonEntityList.php index 77c05d458..ddf1f1cb0 100644 --- a/src/Domain/Person/PersonEntityList.php +++ b/src/Domain/Person/PersonEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method PersonEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class PersonEntityList extends AbstractList { diff --git a/src/Domain/User/Service/Authentication.php b/src/Domain/User/Service/Authentication.php index 4eb362a5f..8d0713217 100644 --- a/src/Domain/User/Service/Authentication.php +++ b/src/Domain/User/Service/Authentication.php @@ -17,9 +17,9 @@ class Authentication { - private const AUTHENTICATION_COOKIE_NAME = 'id'; + private const string AUTHENTICATION_COOKIE_NAME = 'id'; - private const MAX_EXPIRATION_AGE_IN_DAYS = 30; + private const int MAX_EXPIRATION_AGE_IN_DAYS = 30; public function __construct( private readonly UserRepository $repository, @@ -84,10 +84,10 @@ public function getCurrentUser() : UserEntity public function getCurrentUserId() : int { $userId = $this->sessionWrapper->find('userId'); - $token = filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); + $token = (string)filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); - if ($userId === null && $token !== null) { - $userId = $this->repository->findUserIdByAuthToken((string)$token); + if ($userId === null && $token !== '') { + $userId = $this->repository->findUserIdByAuthToken($token); $this->sessionWrapper->set('userId', $userId); } @@ -100,8 +100,8 @@ public function getCurrentUserId() : int public function getToken(Request $request) : ?string { - $tokenInCookie = filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); - if ($tokenInCookie !== false && $tokenInCookie !== null) { + $tokenInCookie = (string)filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); + if ($tokenInCookie !== '') { return $tokenInCookie; } @@ -124,9 +124,9 @@ public function getUserIdByApiToken(Request $request) : ?int public function isUserAuthenticatedWithCookie() : bool { - $token = filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); + $token = (string)filter_input(INPUT_COOKIE, self::AUTHENTICATION_COOKIE_NAME); - if (empty($token) === false && $this->isValidAuthToken((string)$token) === true) { + if ($token !== '' && $this->isValidAuthToken($token) === true) { return true; } @@ -203,10 +203,10 @@ public function login( public function logout() : void { - $token = filter_input(INPUT_COOKIE, 'id'); + $token = (string)filter_input(INPUT_COOKIE, 'id'); - if ($token !== null) { - $this->deleteToken((string)$token); + if ($token !== '') { + $this->deleteToken($token); unset($_COOKIE[self::AUTHENTICATION_COOKIE_NAME]); setcookie(self::AUTHENTICATION_COOKIE_NAME, '', -1); } diff --git a/src/Domain/User/Service/TwoFactorAuthenticationFactory.php b/src/Domain/User/Service/TwoFactorAuthenticationFactory.php index 06b78712c..6a0b335cb 100644 --- a/src/Domain/User/Service/TwoFactorAuthenticationFactory.php +++ b/src/Domain/User/Service/TwoFactorAuthenticationFactory.php @@ -11,13 +11,13 @@ class TwoFactorAuthenticationFactory { - private const SECRET_LENGTH = 32; + private const int SECRET_LENGTH = 32; - private const REGENERATION_TIME = 30; + private const int REGENERATION_TIME = 30; - private const DIGEST_ALGORITHM = 'sha1'; + private const string DIGEST_ALGORITHM = 'sha1'; - private const DIGITS = 6; + private const int DIGITS = 6; public function __construct( private readonly ServerSettings $serverSettings, diff --git a/src/Domain/User/Service/Validator.php b/src/Domain/User/Service/Validator.php index 6061aa61b..5b5cd024f 100644 --- a/src/Domain/User/Service/Validator.php +++ b/src/Domain/User/Service/Validator.php @@ -10,7 +10,7 @@ class Validator { - private const PASSWORD_MIN_LENGTH = 8; + private const int PASSWORD_MIN_LENGTH = 8; public function __construct(private readonly UserRepository $repository) { diff --git a/src/Factory.php b/src/Factory.php index ac9f93f31..997a5a8fb 100644 --- a/src/Factory.php +++ b/src/Factory.php @@ -48,21 +48,21 @@ class Factory { - private const SRC_DIRECTORY_NAME = 'src'; + private const string SRC_DIRECTORY_NAME = 'src'; - private const DEFAULT_MIN_RUNTIME_IN_SECONDS_FOR_JOB_PROCESSING = 15; + private const int DEFAULT_MIN_RUNTIME_IN_SECONDS_FOR_JOB_PROCESSING = 15; - private const DEFAULT_DATABASE_MYSQL_CHARSET = 'utf8mb4'; + private const string DEFAULT_DATABASE_MYSQL_CHARSET = 'utf8mb4'; - private const DEFAULT_DATABASE_MYSQL_PORT = 3306; + private const int DEFAULT_DATABASE_MYSQL_PORT = 3306; - private const DEFAULT_LOG_LEVEL = LogLevel::WARNING; + private const string DEFAULT_LOG_LEVEL = LogLevel::WARNING; - private const DEFAULT_TMDB_IMAGE_CACHING = false; + private const bool DEFAULT_TMDB_IMAGE_CACHING = false; - private const DEFAULT_LOG_ENABLE_STACKTRACE = false; + private const bool DEFAULT_LOG_ENABLE_STACKTRACE = false; - private const DEFAULT_ENABLE_FILE_LOGGING = true; + private const bool DEFAULT_ENABLE_FILE_LOGGING = true; public static function createConfig(ContainerInterface $container) : Config { diff --git a/src/HttpController/Api/Dto/HistoryEntryDtoList.php b/src/HttpController/Api/Dto/HistoryEntryDtoList.php index 1b72c0dbd..554dd9c2f 100644 --- a/src/HttpController/Api/Dto/HistoryEntryDtoList.php +++ b/src/HttpController/Api/Dto/HistoryEntryDtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class HistoryEntryDtoList extends AbstractList { diff --git a/src/HttpController/Api/Dto/MovieSearchResultDtoList.php b/src/HttpController/Api/Dto/MovieSearchResultDtoList.php index a6c5c763a..86643d4ee 100644 --- a/src/HttpController/Api/Dto/MovieSearchResultDtoList.php +++ b/src/HttpController/Api/Dto/MovieSearchResultDtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieSearchResultDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class MovieSearchResultDtoList extends AbstractList { diff --git a/src/HttpController/Api/Dto/PlayedEntryDtoList.php b/src/HttpController/Api/Dto/PlayedEntryDtoList.php index d6fc31b9e..d2fa1ce17 100644 --- a/src/HttpController/Api/Dto/PlayedEntryDtoList.php +++ b/src/HttpController/Api/Dto/PlayedEntryDtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class PlayedEntryDtoList extends AbstractList { diff --git a/src/HttpController/Api/Dto/WatchDateDtoList.php b/src/HttpController/Api/Dto/WatchDateDtoList.php index 84ad3369c..1b949c43f 100644 --- a/src/HttpController/Api/Dto/WatchDateDtoList.php +++ b/src/HttpController/Api/Dto/WatchDateDtoList.php @@ -6,8 +6,7 @@ use RuntimeException; /** - * @method WatchDateDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class WatchDateDtoList extends AbstractList { diff --git a/src/HttpController/Api/Dto/WatchlistEntryDtoList.php b/src/HttpController/Api/Dto/WatchlistEntryDtoList.php index 6b836f25a..a8116fb57 100644 --- a/src/HttpController/Api/Dto/WatchlistEntryDtoList.php +++ b/src/HttpController/Api/Dto/WatchlistEntryDtoList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method MovieDto[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class WatchlistEntryDtoList extends AbstractList { diff --git a/src/HttpController/Api/RequestMapper/HistoryRequestMapper.php b/src/HttpController/Api/RequestMapper/HistoryRequestMapper.php index f343da459..2fdaef100 100644 --- a/src/HttpController/Api/RequestMapper/HistoryRequestMapper.php +++ b/src/HttpController/Api/RequestMapper/HistoryRequestMapper.php @@ -7,9 +7,9 @@ class HistoryRequestMapper { - private const DEFAULT_SORT_BY = 'watchedAt'; + private const string DEFAULT_SORT_BY = 'watchedAt'; - private const DEFAULT_SORT_ORDER = 'desc'; + private const string DEFAULT_SORT_ORDER = 'desc'; public function __construct(private readonly RequestMapper $requestMapper) { diff --git a/src/HttpController/Api/RequestMapper/PlayedRequestMapper.php b/src/HttpController/Api/RequestMapper/PlayedRequestMapper.php index 24e087dc2..9f8c57395 100644 --- a/src/HttpController/Api/RequestMapper/PlayedRequestMapper.php +++ b/src/HttpController/Api/RequestMapper/PlayedRequestMapper.php @@ -7,9 +7,9 @@ class PlayedRequestMapper { - private const DEFAULT_SORT_ORDER = 'asc'; + private const string DEFAULT_SORT_ORDER = 'asc'; - private const DEFAULT_SORT_BY = 'title'; + private const string DEFAULT_SORT_BY = 'title'; public function __construct(private readonly RequestMapper $requestMapper) { diff --git a/src/HttpController/Api/RequestMapper/RequestMapper.php b/src/HttpController/Api/RequestMapper/RequestMapper.php index 615ab71d6..eadf6bc3a 100644 --- a/src/HttpController/Api/RequestMapper/RequestMapper.php +++ b/src/HttpController/Api/RequestMapper/RequestMapper.php @@ -11,11 +11,11 @@ class RequestMapper { - private const DEFAULT_PAGE = 1; + private const int DEFAULT_PAGE = 1; - private const DEFAULT_LIMIT = 24; + private const int DEFAULT_LIMIT = 24; - private const DEFAULT_SORT_ORDER = 'desc'; + private const string DEFAULT_SORT_ORDER = 'desc'; public function __construct( private readonly UserApi $userApi, diff --git a/src/HttpController/Api/RequestMapper/WatchlistRequestMapper.php b/src/HttpController/Api/RequestMapper/WatchlistRequestMapper.php index dc6d2c812..41d1de2f7 100644 --- a/src/HttpController/Api/RequestMapper/WatchlistRequestMapper.php +++ b/src/HttpController/Api/RequestMapper/WatchlistRequestMapper.php @@ -7,9 +7,9 @@ class WatchlistRequestMapper { - private const DEFAULT_SORT_BY = 'addedAt'; + private const string DEFAULT_SORT_BY = 'addedAt'; - private const DEFAULT_SORT_ORDER = 'desc'; + private const string DEFAULT_SORT_ORDER = 'desc'; public function __construct(private readonly RequestMapper $requestMapper) { diff --git a/src/HttpController/Web/CreateUserController.php b/src/HttpController/Web/CreateUserController.php index c4b9cd820..889a2547e 100644 --- a/src/HttpController/Web/CreateUserController.php +++ b/src/HttpController/Web/CreateUserController.php @@ -18,7 +18,7 @@ class CreateUserController { - public const MOVARY_WEB_CLIENT = 'Movary Web'; + public const string MOVARY_WEB_CLIENT = 'Movary Web'; public function __construct( private readonly Environment $twig, diff --git a/src/HttpController/Web/HistoryController.php b/src/HttpController/Web/HistoryController.php index e4a912c22..a0de0c7a0 100644 --- a/src/HttpController/Web/HistoryController.php +++ b/src/HttpController/Web/HistoryController.php @@ -20,7 +20,7 @@ class HistoryController { - private const DEFAULT_LIMIT = 24; + private const int DEFAULT_LIMIT = 24; public function __construct( private readonly Environment $twig, diff --git a/src/HttpController/Web/Mapper/MoviesRequestMapper.php b/src/HttpController/Web/Mapper/MoviesRequestMapper.php index 6b9ebe9ca..cbb4cdca6 100644 --- a/src/HttpController/Web/Mapper/MoviesRequestMapper.php +++ b/src/HttpController/Web/Mapper/MoviesRequestMapper.php @@ -11,19 +11,19 @@ class MoviesRequestMapper { - private const DEFAULT_HAS_USER_RATING = null; + private const null DEFAULT_HAS_USER_RATING = null; - private const DEFAULT_USER_RATING_MIN = null; + private const null DEFAULT_USER_RATING_MIN = null; - private const DEFAULT_USER_RATING_MAX = null; + private const null DEFAULT_USER_RATING_MAX = null; - private const DEFAULT_GENRE = null; + private const null DEFAULT_GENRE = null; - private const DEFAULT_RELEASE_YEAR = null; + private const null DEFAULT_RELEASE_YEAR = null; - private const DEFAULT_LIMIT = 24; + private const int DEFAULT_LIMIT = 24; - private const DEFAULT_SORT_BY = 'title'; + private const string DEFAULT_SORT_BY = 'title'; public function __construct( private readonly UserApi $userApi, diff --git a/src/HttpController/Web/Mapper/PersonsRequestMapper.php b/src/HttpController/Web/Mapper/PersonsRequestMapper.php index ebe0a6e6a..cbcc3e918 100644 --- a/src/HttpController/Web/Mapper/PersonsRequestMapper.php +++ b/src/HttpController/Web/Mapper/PersonsRequestMapper.php @@ -11,9 +11,9 @@ class PersonsRequestMapper { - private const DEFAULT_LIMIT = 24; + private const int DEFAULT_LIMIT = 24; - private const DEFAULT_SORT_BY = 'uniqueAppearances'; + private const string DEFAULT_SORT_BY = 'uniqueAppearances'; public function __construct( private readonly UserApi $userApi, diff --git a/src/HttpController/Web/Mapper/WatchlistRequestMapper.php b/src/HttpController/Web/Mapper/WatchlistRequestMapper.php index cd2af56cb..29d4e98e1 100644 --- a/src/HttpController/Web/Mapper/WatchlistRequestMapper.php +++ b/src/HttpController/Web/Mapper/WatchlistRequestMapper.php @@ -11,15 +11,15 @@ class WatchlistRequestMapper { - private const DEFAULT_GENRE = null; + private const null DEFAULT_GENRE = null; - private const DEFAULT_RELEASE_YEAR = null; + private const null DEFAULT_RELEASE_YEAR = null; - private const DEFAULT_LIMIT = 24; + private const int DEFAULT_LIMIT = 24; - private const DEFAULT_PAGE = 1; + private const int DEFAULT_PAGE = 1; - private const DEFAULT_SORT_BY = 'addedAt'; + private const string DEFAULT_SORT_BY = 'addedAt'; public function __construct( private readonly UserApi $userApi, diff --git a/src/JobQueue/JobEntityList.php b/src/JobQueue/JobEntityList.php index 7617ffcd1..9c30a01e2 100644 --- a/src/JobQueue/JobEntityList.php +++ b/src/JobQueue/JobEntityList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method JobEntity[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class JobEntityList extends AbstractList { diff --git a/src/JobQueue/JobQueueScheduler.php b/src/JobQueue/JobQueueScheduler.php index 0f626bc9b..2a287c288 100644 --- a/src/JobQueue/JobQueueScheduler.php +++ b/src/JobQueue/JobQueueScheduler.php @@ -4,7 +4,7 @@ class JobQueueScheduler { - private const IMAGE_CACHE_BATCH_LIMIT = 250; + private const int IMAGE_CACHE_BATCH_LIMIT = 250; public function __construct( private readonly JobQueueApi $jobQueueApi, diff --git a/src/Service/Dashboard/Dto/DashboardRowList.php b/src/Service/Dashboard/Dto/DashboardRowList.php index c1aa9b2a4..3a82de9c7 100644 --- a/src/Service/Dashboard/Dto/DashboardRowList.php +++ b/src/Service/Dashboard/Dto/DashboardRowList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method DashboardRow[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class DashboardRowList extends AbstractList { diff --git a/src/Service/Emby/EmbyWebhookDtoMapper.php b/src/Service/Emby/EmbyWebhookDtoMapper.php index b868b0db9..d9cb984fa 100644 --- a/src/Service/Emby/EmbyWebhookDtoMapper.php +++ b/src/Service/Emby/EmbyWebhookDtoMapper.php @@ -10,9 +10,9 @@ class EmbyWebhookDtoMapper { - private const SUPPORTED_NOTIFICATION_TYPE = 'playback.stop'; + private const string SUPPORTED_NOTIFICATION_TYPE = 'playback.stop'; - private const SUPPORTED_ITEM_TYPE = 'Movie'; + private const string SUPPORTED_ITEM_TYPE = 'Movie'; public function __construct(private readonly LoggerInterface $logger) { diff --git a/src/Service/Export/ExportService.php b/src/Service/Export/ExportService.php index 4206a54c0..5022ea29f 100644 --- a/src/Service/Export/ExportService.php +++ b/src/Service/Export/ExportService.php @@ -8,11 +8,11 @@ class ExportService { - private const CSV_HEADER_HISTORY = 'title,year,tmdbId,imdbId,watchedAt,comment,location' . PHP_EOL; + private const string CSV_HEADER_HISTORY = 'title,year,tmdbId,imdbId,watchedAt,comment,location' . PHP_EOL; - private const CSV_HEADER_RATINGS = 'title,year,tmdbId,imdbId,userRating' . PHP_EOL; + private const string CSV_HEADER_RATINGS = 'title,year,tmdbId,imdbId,userRating' . PHP_EOL; - private const CSV_HEADER_WATCHLIST = 'title,year,tmdbId,imdbId,addedAt' . PHP_EOL; + private const string CSV_HEADER_WATCHLIST = 'title,year,tmdbId,imdbId,addedAt' . PHP_EOL; public function __construct( private readonly MovieApi $movieApi, diff --git a/src/Service/ImageCacheService.php b/src/Service/ImageCacheService.php index d0a0a30a8..cdb07d482 100644 --- a/src/Service/ImageCacheService.php +++ b/src/Service/ImageCacheService.php @@ -14,7 +14,7 @@ class ImageCacheService { - private const CACHE_DIR_PERMISSIONS = 0755; + private const int CACHE_DIR_PERMISSIONS = 0755; public function __construct( private readonly File $fileUtil, diff --git a/src/Service/Imdb/ImdbMovieRatingSync.php b/src/Service/Imdb/ImdbMovieRatingSync.php index ec22ad495..82bb0ee85 100644 --- a/src/Service/Imdb/ImdbMovieRatingSync.php +++ b/src/Service/Imdb/ImdbMovieRatingSync.php @@ -11,9 +11,9 @@ class ImdbMovieRatingSync { - private const DEFAULT_MIN_DELAY_BETWEEN_REQUESTS_IN_MS = 1000000; + private const int DEFAULT_MIN_DELAY_BETWEEN_REQUESTS_IN_MS = 1000000; - private const SLEEP_AFTER_FIRST_FAILED_REQUEST_IN_MS = 2000000; + private const int SLEEP_AFTER_FIRST_FAILED_REQUEST_IN_MS = 2000000; public function __construct( private readonly ImdbWebScrapper $imdbWebScrapper, diff --git a/src/Service/Jellyfin/JellyfinWebhookDtoMapper.php b/src/Service/Jellyfin/JellyfinWebhookDtoMapper.php index 22978c3ea..b3232c74c 100644 --- a/src/Service/Jellyfin/JellyfinWebhookDtoMapper.php +++ b/src/Service/Jellyfin/JellyfinWebhookDtoMapper.php @@ -10,9 +10,9 @@ class JellyfinWebhookDtoMapper { - private const SUPPORTED_NOTIFICATION_TYPE = 'PlaybackStop'; + private const string SUPPORTED_NOTIFICATION_TYPE = 'PlaybackStop'; - private const SUPPORTED_ITEM_TYPE = 'Movie'; + private const string SUPPORTED_ITEM_TYPE = 'Movie'; public function __construct(private readonly LoggerInterface $logger) { diff --git a/src/Service/Letterboxd/LetterboxdExporter.php b/src/Service/Letterboxd/LetterboxdExporter.php index 9c1b3644d..b8297ec8c 100644 --- a/src/Service/Letterboxd/LetterboxdExporter.php +++ b/src/Service/Letterboxd/LetterboxdExporter.php @@ -10,7 +10,7 @@ class LetterboxdExporter { - private const LIMIT_CSV_FILE_RECORDS = 1000; + private const int LIMIT_CSV_FILE_RECORDS = 1000; public function __construct( private readonly Connection $dbConnection, diff --git a/src/Service/Netflix/Dto/NetflixActivityItemList.php b/src/Service/Netflix/Dto/NetflixActivityItemList.php index 6056cb7a1..839b3c185 100644 --- a/src/Service/Netflix/Dto/NetflixActivityItemList.php +++ b/src/Service/Netflix/Dto/NetflixActivityItemList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method NetflixActivityItem[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class NetflixActivityItemList extends AbstractList { diff --git a/src/Service/Netflix/NetflixActivityItemsConverter.php b/src/Service/Netflix/NetflixActivityItemsConverter.php index dcca62df5..df29016cb 100644 --- a/src/Service/Netflix/NetflixActivityItemsConverter.php +++ b/src/Service/Netflix/NetflixActivityItemsConverter.php @@ -8,7 +8,7 @@ class NetflixActivityItemsConverter { - private const SHOW_PATTERNS = [ + private const array SHOW_PATTERNS = [ // Check for TvShow: Season 1: EpisodeTitle "(.+): .+ (\d{1,2}): (.*)", // Check for TvShow: Season 1 - Part A: EpisodeTitle diff --git a/src/Service/Plex/PlexScrobbler.php b/src/Service/Plex/PlexScrobbler.php index 5a52998e0..c40d4df00 100644 --- a/src/Service/Plex/PlexScrobbler.php +++ b/src/Service/Plex/PlexScrobbler.php @@ -16,9 +16,9 @@ class PlexScrobbler { - private const MEDIA_RATE = 'media.rate'; + private const string MEDIA_RATE = 'media.rate'; - private const MEDIA_SCROBBLE = 'media.scrobble'; + private const string MEDIA_SCROBBLE = 'media.scrobble'; public function __construct( private readonly LoggerInterface $logger, diff --git a/src/Service/Router/Dto/RouteList.php b/src/Service/Router/Dto/RouteList.php index 7d853d91c..44cfac073 100644 --- a/src/Service/Router/Dto/RouteList.php +++ b/src/Service/Router/Dto/RouteList.php @@ -5,8 +5,7 @@ use Movary\ValueObject\AbstractList; /** - * @method Route[] getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractList */ class RouteList extends AbstractList { diff --git a/src/Service/ServerSettings.php b/src/Service/ServerSettings.php index 1d6488511..2c048f035 100644 --- a/src/Service/ServerSettings.php +++ b/src/Service/ServerSettings.php @@ -8,41 +8,41 @@ class ServerSettings { - private const APPLICATION_TIMEZONE = 'TIMEZONE'; + private const string APPLICATION_TIMEZONE = 'TIMEZONE'; - private const TOTP_ISSUER = 'TOTP_ISSUER'; + private const string TOTP_ISSUER = 'TOTP_ISSUER'; - private const JELLYFIN_DEVICE_ID = 'JELLYFIN_DEVICE_ID'; + private const string JELLYFIN_DEVICE_ID = 'JELLYFIN_DEVICE_ID'; - private const PLEX_APP_NAME = 'PLEX_APP_NAME'; + private const string PLEX_APP_NAME = 'PLEX_APP_NAME'; - private const JELLYFIN_APP_NAME = 'JELLYFIN_APP_NAME'; + private const string JELLYFIN_APP_NAME = 'JELLYFIN_APP_NAME'; - private const PLEX_IDENTIFIER = 'PLEX_IDENTIFIER'; + private const string PLEX_IDENTIFIER = 'PLEX_IDENTIFIER'; - private const APPLICATION_NAME = 'APPLICATION_NAME'; + private const string APPLICATION_NAME = 'APPLICATION_NAME'; - private const APPLICATION_URL = 'APPLICATION_URL'; + private const string APPLICATION_URL = 'APPLICATION_URL'; - private const APPLICATION_VERSION = 'APPLICATION_VERSION'; + private const string APPLICATION_VERSION = 'APPLICATION_VERSION'; - private const SMTP_HOST = 'SMTP_HOST'; + private const string SMTP_HOST = 'SMTP_HOST'; - private const SMTP_SENDER_ADDRESS = 'SMTP_SENDER_ADDRESS'; + private const string SMTP_SENDER_ADDRESS = 'SMTP_SENDER_ADDRESS'; - private const SMTP_PASSWORD = 'SMTP_PASSWORD'; + private const string SMTP_PASSWORD = 'SMTP_PASSWORD'; - private const SMTP_PORT = 'SMTP_PORT'; + private const string SMTP_PORT = 'SMTP_PORT'; - private const SMTP_USER = 'SMTP_USER'; + private const string SMTP_USER = 'SMTP_USER'; - private const SMTP_FROM_ADDRESS = 'SMTP_FROM_ADDRESS'; + private const string SMTP_FROM_ADDRESS = 'SMTP_FROM_ADDRESS'; - private const SMTP_ENCRYPTION = 'SMTP_ENCRYPTION'; + private const string SMTP_ENCRYPTION = 'SMTP_ENCRYPTION'; - private const SMTP_WITH_AUTH = 'SMTP_WITH_AUTH'; + private const string SMTP_WITH_AUTH = 'SMTP_WITH_AUTH'; - private const TMDB_API_KEY = 'TMDB_API_KEY'; + private const string TMDB_API_KEY = 'TMDB_API_KEY'; public function __construct( private readonly Config $config, diff --git a/src/Service/Tmdb/SyncMovie.php b/src/Service/Tmdb/SyncMovie.php index b589802b7..4b3ce94fc 100644 --- a/src/Service/Tmdb/SyncMovie.php +++ b/src/Service/Tmdb/SyncMovie.php @@ -13,7 +13,7 @@ class SyncMovie { - private const SLEEP_AFTER_FIRST_FAILED_REQUEST_IN_MS = 1000000; + private const int SLEEP_AFTER_FIRST_FAILED_REQUEST_IN_MS = 1000000; public function __construct( private readonly TmdbApi $tmdbApi, diff --git a/src/Service/Trakt/ImportWatchedMovies.php b/src/Service/Trakt/ImportWatchedMovies.php index c1d090801..937dec12f 100644 --- a/src/Service/Trakt/ImportWatchedMovies.php +++ b/src/Service/Trakt/ImportWatchedMovies.php @@ -104,7 +104,7 @@ private function importMovieHistory( foreach ($localMovieWatchDates as $localMovieWatchDate) { $localWatchDate = Date::createFromString($localMovieWatchDate['watched_at']); - if ($traktMovieWatchDates->containsDate($localWatchDate) === false) { + if ($traktMovieWatchDates->get($localWatchDate) === null) { if ($overwriteExistingData === false) { $this->logger->debug('Trakt history import: Skipped deleting "' . $movie->getTitle() . '" watch date "' . $localWatchDate . '" not exising in trakt, overwrite not set'); @@ -122,7 +122,7 @@ private function importMovieHistory( if ($localWatchDatePlays === $traktWatchDatePlays) { $this->logger->debug('Trakt history import: Skipped "' . $movie->getTitle() . '" watch date "' . $localWatchDate . '" plays update, already up to date'); - $skipTraktWatchDates->add($localWatchDate, $localWatchDatePlays); + $skipTraktWatchDates->set($localWatchDate, $localWatchDatePlays); continue; } @@ -130,7 +130,7 @@ private function importMovieHistory( if ($overwriteExistingData === false) { $this->logger->debug('Trakt history import: Skipped "' . $movie->getTitle() . '" watch date "' . $localWatchDate . '" plays update, overwrite not set'); - $skipTraktWatchDates->add($localWatchDate, $localWatchDatePlays); + $skipTraktWatchDates->set($localWatchDate, $localWatchDatePlays); } } @@ -140,7 +140,7 @@ private function importMovieHistory( $this->replaceMovieWatchDate( $movie, $userId, - Date::createFromString($watchedAt), + Date::createFromString((string)$watchedAt), $plays, ); } diff --git a/src/Service/Trakt/WatchDateToPlaysMap.php b/src/Service/Trakt/WatchDateToPlaysMap.php index fc313eacf..f508577a2 100644 --- a/src/Service/Trakt/WatchDateToPlaysMap.php +++ b/src/Service/Trakt/WatchDateToPlaysMap.php @@ -2,28 +2,30 @@ namespace Movary\Service\Trakt; -use Movary\ValueObject\AbstractList; +use Movary\ValueObject\AbstractMap; use Movary\ValueObject\Date; use RuntimeException; /** - * @method array getIterator() - * @psalm-suppress ImplementedReturnTypeMismatch + * @extends AbstractMap + * @method Date key() + * @psalm-suppress MethodSignatureMustProvideReturnType */ -class WatchDateToPlaysMap extends AbstractList +class WatchDateToPlaysMap extends AbstractMap { public static function create() : self { return new self(); } - public function add(Date $watchDate, int $plays) : void + public function set(Date $watchDate, int $plays) : void { - if ($this->containsDate($watchDate) === true) { - throw new RuntimeException('Cannot add date date, date already exists.'); - } + $this->setKeyAndValue($watchDate, $plays); + } - $this->data[(string)$watchDate] = $plays; + public function get(Date $watchDate) : ?int + { + return $this->findByKey($watchDate); } public function containsDate(Date $watchDate) : bool @@ -33,22 +35,26 @@ public function containsDate(Date $watchDate) : bool public function getPlaysForDate(Date $watchDate) : int { - if ($this->containsDate($watchDate) === false) { + $plays = $this->get($watchDate); + + if ($plays === null) { throw new RuntimeException('Cannot get plays for missing date: ' . $watchDate); } - return $this->data[(string)$watchDate]; + return $plays; } public function incrementPlaysForDate(Date $watchDate) : void { - if ($this->containsDate($watchDate) === false) { - $this->data[(string)$watchDate] = 1; + $plays = $this->get($watchDate); + + if ($plays === null) { + $this->set($watchDate, 1); return; } - $this->data[(string)$watchDate]++; + $this->set($watchDate, $plays + 1); } public function removeWatchDates(WatchDateToPlaysMap $filteredWatchDateToPlayCountMap) : self @@ -56,13 +62,13 @@ public function removeWatchDates(WatchDateToPlaysMap $filteredWatchDateToPlayCou $filteredList = self::create(); foreach ($this as $watchDate => $plays) { - $watchDate = Date::createFromString($watchDate); + $watchDate = Date::createFromString((string)$watchDate); if ($filteredWatchDateToPlayCountMap->containsDate($watchDate) === true) { continue; } - $filteredList->add($watchDate, $plays); + $filteredList->set($watchDate, $plays); } return $filteredList; diff --git a/src/Util/SessionWrapper.php b/src/Util/SessionWrapper.php index 3200efd2f..8c9ccce1d 100644 --- a/src/Util/SessionWrapper.php +++ b/src/Util/SessionWrapper.php @@ -22,10 +22,10 @@ public function destroy() : void $sessionName, '', time() - 42000, - $params['path'], - $params['domain'], - $params['secure'], - $params['httponly'], + (string)$params['path'], + (string)$params['domain'], + (bool)$params['secure'], + (bool)$params['httponly'], ); } diff --git a/src/ValueObject/AbstractList.php b/src/ValueObject/AbstractList.php index 9057121c9..99be575be 100644 --- a/src/ValueObject/AbstractList.php +++ b/src/ValueObject/AbstractList.php @@ -14,11 +14,9 @@ */ abstract class AbstractList implements Countable, IteratorAggregate, JsonSerializable { - protected array $data; - - protected function __construct() + /** @param array $data */ + final protected function __construct(protected array $data = []) { - $this->data = []; } public function asArray() : array @@ -36,6 +34,9 @@ public function count() : int return count($this->data); } + /** + * @return ArrayIterator + */ public function getIterator() : ArrayIterator { return new ArrayIterator($this->data); diff --git a/src/ValueObject/AbstractMap.php b/src/ValueObject/AbstractMap.php new file mode 100644 index 000000000..4c891175e --- /dev/null +++ b/src/ValueObject/AbstractMap.php @@ -0,0 +1,145 @@ + + */ +abstract class AbstractMap implements Countable, Iterator +{ + //region constants and properties + private int $currentIteratorIndex = 0; + + private array $objectHashes = []; + + private array $values = []; + + //endregion constants and properties + + //region instancing + protected function __construct() + { + } + //endregion instancing + + //region methods + public function count() : int + { + return count($this->values); + } + + /** + * @return TValue + */ + #[ReturnTypeWillChange] + public function current() + { + return $this->values[$this->objectHashes[$this->currentIteratorIndex]]['value']; + } + + protected function getContainedKeys() : array + { + $keys = []; + + foreach ($this->values as $mapEntry) { + $keys[] = $mapEntry['key']; + } + + return $keys; + } + + /** + * @return TKey + */ + #[ReturnTypeWillChange] + public function key() + { + return $this->values[$this->objectHashes[$this->currentIteratorIndex]]['key']; + } + + public function next() : void + { + $this->currentIteratorIndex++; + } + + public function rewind() : void + { + $this->currentIteratorIndex = 0; + } + + public function valid() : bool + { + if (isset($this->objectHashes[$this->currentIteratorIndex])) { + return isset($this->values[$this->objectHashes[$this->currentIteratorIndex]]); + } + + return false; + } + + /** + * @param TKey $key + * @return TValue|null + */ + #[ReturnTypeWillChange] + protected function findByKey(mixed $key) + { + if ($this->hasKey($key)) { + return $this->values[$this->getObjectMapKey($key)]['value']; + } + + return null; + } + + protected function getObjectMapKey(mixed $object) : string + { + return $object instanceof Stringable ? (string)$object : spl_object_hash($object); + } + + /** + * @param TKey $key + */ + protected function hasKey(mixed $key) : bool + { + return isset($this->values[$this->getObjectMapKey($key)]); + } + + /** + * @param TKey $key + * @param TValue $value + */ + protected function setKeyAndValue(mixed $key, mixed $value) : void + { + $hash = $this->getObjectMapKey($key); + + if (isset($this->values[$hash]) === false) { + $this->objectHashes[] = $hash; + } + + $this->values[$hash] = [ + 'key' => $key, + 'value' => $value, + ]; + } + + /** + * @param TKey $key + */ + protected function unsetKey(mixed $key) : void + { + if ($this->hasKey($key) === true) { + unset($this->values[$this->getObjectMapKey($key)]); + $this->objectHashes = array_keys($this->values); + } + } + //endregion methods +} diff --git a/src/ValueObject/Date.php b/src/ValueObject/Date.php index ee6894073..055968bfc 100644 --- a/src/ValueObject/Date.php +++ b/src/ValueObject/Date.php @@ -7,7 +7,7 @@ class Date implements JsonSerializable { - private const FORMAT = 'Y-m-d'; + private const string FORMAT = 'Y-m-d'; private function __construct(private readonly string $date) { diff --git a/src/ValueObject/DateFormat.php b/src/ValueObject/DateFormat.php index 86d5699e2..58f1aa8d3 100644 --- a/src/ValueObject/DateFormat.php +++ b/src/ValueObject/DateFormat.php @@ -6,9 +6,9 @@ class DateFormat { - private const DEFAULT_ID = 0; + private const int DEFAULT_ID = 0; - private const FORMATS = [ + private const array FORMATS = [ self::DEFAULT_ID => [ self::KEY_PHP => 'y-m-d', self::KEY_JAVASCRIPT => 'yy-mm-dd', @@ -27,9 +27,9 @@ class DateFormat ], ]; - private const KEY_JAVASCRIPT = 'javascript'; + private const string KEY_JAVASCRIPT = 'javascript'; - private const KEY_PHP = 'php'; + private const string KEY_PHP = 'php'; public static function getFormats() : array { diff --git a/src/ValueObject/DateTime.php b/src/ValueObject/DateTime.php index 6aa2d4f31..60e25a197 100644 --- a/src/ValueObject/DateTime.php +++ b/src/ValueObject/DateTime.php @@ -8,11 +8,11 @@ class DateTime implements JsonSerializable { - public const DEFAULT_TIME_ZONE = 'UTC'; + public const string DEFAULT_TIME_ZONE = 'UTC'; - private const DEFAULT_STRING_FORMAT = 'Y-m-d H:i:s'; + private const string DEFAULT_STRING_FORMAT = 'Y-m-d H:i:s'; - private const STATE_FORMAT = 'Y-m-d H:i:s.u'; + private const string STATE_FORMAT = 'Y-m-d H:i:s.u'; private string $dateTime; diff --git a/src/ValueObject/Gender.php b/src/ValueObject/Gender.php index 9a5fe86f9..83ac2ccb5 100644 --- a/src/ValueObject/Gender.php +++ b/src/ValueObject/Gender.php @@ -6,29 +6,29 @@ class Gender { - private const GENDER_ABBREVIATION = [ + private const array GENDER_ABBREVIATION = [ self::GENDER_FEMALE => 'f', self::GENDER_MALE => 'm', self::GENDER_NON_BINARY => 'nb', self::GENDER_UNKNOWN => null, ]; - private const GENDER_TEXT = [ + private const array GENDER_TEXT = [ self::GENDER_FEMALE => 'Female', self::GENDER_MALE => 'Male', self::GENDER_NON_BINARY => 'Non Binary', self::GENDER_UNKNOWN => 'Unknown', ]; - private const GENDER_FEMALE = 1; + private const int GENDER_FEMALE = 1; - private const GENDER_MALE = 2; + private const int GENDER_MALE = 2; - private const GENDER_NON_BINARY = 3; + private const int GENDER_NON_BINARY = 3; - private const GENDER_UNKNOWN = 0; + private const int GENDER_UNKNOWN = 0; - private const VALID_GENDERS = [self::GENDER_FEMALE, self::GENDER_MALE, self::GENDER_NON_BINARY, self::GENDER_UNKNOWN]; + private const array VALID_GENDERS = [self::GENDER_FEMALE, self::GENDER_MALE, self::GENDER_NON_BINARY, self::GENDER_UNKNOWN]; private function __construct(private readonly int $gender) { diff --git a/src/ValueObject/JobStatus.php b/src/ValueObject/JobStatus.php index 3c1bc171e..955877243 100644 --- a/src/ValueObject/JobStatus.php +++ b/src/ValueObject/JobStatus.php @@ -7,13 +7,13 @@ class JobStatus implements JsonSerializable { - private const STATUS_DONE = 'done'; + private const string STATUS_DONE = 'done'; - private const STATUS_FAILED = 'failed'; + private const string STATUS_FAILED = 'failed'; - private const STATUS_IN_PROGRESS = 'in progress'; + private const string STATUS_IN_PROGRESS = 'in progress'; - private const STATUS_WAITING = 'waiting'; + private const string STATUS_WAITING = 'waiting'; private function __construct(private readonly string $status) { diff --git a/src/ValueObject/JobType.php b/src/ValueObject/JobType.php index 4bcd878bb..862dba500 100644 --- a/src/ValueObject/JobType.php +++ b/src/ValueObject/JobType.php @@ -7,27 +7,27 @@ class JobType implements JsonSerializable { - private const TYPE_TMDB_PERSON_SYNC = 'tmdb_person_sync'; + private const string TYPE_TMDB_PERSON_SYNC = 'tmdb_person_sync'; - private const TYPE_IMDB_SYNC = 'imdb_sync'; + private const string TYPE_IMDB_SYNC = 'imdb_sync'; - private const TYPE_LETTERBOXD_IMPORT_HISTORY = 'letterboxd_import_history'; + private const string TYPE_LETTERBOXD_IMPORT_HISTORY = 'letterboxd_import_history'; - private const TYPE_JELLYFIN_EXPORT_HISTORY = 'jellyfin_export_history'; + private const string TYPE_JELLYFIN_EXPORT_HISTORY = 'jellyfin_export_history'; - private const TYPE_JELLYFIN_IMPORT_HISTORY = 'jellyfin_import_history'; + private const string TYPE_JELLYFIN_IMPORT_HISTORY = 'jellyfin_import_history'; - private const TYPE_LETTERBOXD_IMPORT_RATINGS = 'letterboxd_import_ratings'; + private const string TYPE_LETTERBOXD_IMPORT_RATINGS = 'letterboxd_import_ratings'; - private const TYPE_TMDB_IMAGE_CACHE = 'tmdb_image_cache'; + private const string TYPE_TMDB_IMAGE_CACHE = 'tmdb_image_cache'; - private const TYPE_TMDB_MOVIE_SYNC = 'tmdb_movie_sync'; + private const string TYPE_TMDB_MOVIE_SYNC = 'tmdb_movie_sync'; - private const TYPE_TRAKT_IMPORT_HISTORY = 'trakt_import_history'; + private const string TYPE_TRAKT_IMPORT_HISTORY = 'trakt_import_history'; - private const TYPE_TRAKT_IMPORT_RATINGS = 'trakt_import_ratings'; + private const string TYPE_TRAKT_IMPORT_RATINGS = 'trakt_import_ratings'; - private const TYPE_PLEX_IMPORT_WATCHLIST = 'plex_import_watchlist'; + private const string TYPE_PLEX_IMPORT_WATCHLIST = 'plex_import_watchlist'; private function __construct(private readonly string $type) { diff --git a/src/ValueObject/PersonalRating.php b/src/ValueObject/PersonalRating.php index 4f8365f2d..657879923 100644 --- a/src/ValueObject/PersonalRating.php +++ b/src/ValueObject/PersonalRating.php @@ -6,7 +6,7 @@ class PersonalRating { - private const ALLOWED_RATINGS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + private const array ALLOWED_RATINGS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; private function __construct(private readonly int $rating) { diff --git a/src/ValueObject/Year.php b/src/ValueObject/Year.php index 0f1a84e75..3a7d2fc0a 100644 --- a/src/ValueObject/Year.php +++ b/src/ValueObject/Year.php @@ -7,9 +7,9 @@ class Year implements JsonSerializable { - private const MAX_YEAR_ALLOWED = 2155; + private const int MAX_YEAR_ALLOWED = 2155; - private const MIN_YEAR_ALLOWED = 1901; + private const int MIN_YEAR_ALLOWED = 1901; private function __construct(private readonly int $year) { diff --git a/tests/unit/Domain/Company/CompanyApiTest.php b/tests/unit/Domain/Company/CompanyApiTest.php index 0880850b2..cd658784d 100644 --- a/tests/unit/Domain/Company/CompanyApiTest.php +++ b/tests/unit/Domain/Company/CompanyApiTest.php @@ -11,13 +11,13 @@ /** @covers \Movary\Domain\Company\CompanyApi */ class CompanyApiTest extends TestCase { - private const ID = 12; + private const int ID = 12; - private const NAME = 'Company Name'; + private const string NAME = 'Company Name'; - private const ORIGIN_COUNTRY = 'US'; + private const string ORIGIN_COUNTRY = 'US'; - private const TMDB_ID = 100; + private const int TMDB_ID = 100; private MockObject|CompanyRepository $repositoryMock;