From 1e5b2c0a15e7d5089e5da8fb72c28dd3996d4797 Mon Sep 17 00:00:00 2001 From: Sergio Ojeda Date: Thu, 25 Apr 2024 11:33:40 -0300 Subject: [PATCH] feature: add array types shapes validation to phpstan --- .github/PULL_REQUEST_TEMPLATE.md | 5 +- composer.lock | 333 +++++++++--------- phpstan.neon | 3 + .../Users/App/Request/StoreUserRequest.php | 3 + .../App/Transformers/UserTransformer.php | 3 + src/Backoffice/Users/Domain/Models/User.php | 6 +- src/Shared/App/Console/CommandManager.php | 3 + 7 files changed, 187 insertions(+), 169 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b04fd133962..f37347f0b24 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,7 +18,7 @@ Please include a summary of the change and which issue is fixed. Please also inc Example: --> -I've added support for authentication to implement Key Result 2 of OKR1. It includes model, table, controller and test. +For more background, see ticket **CU-#[in-progress].** ### Before @@ -61,4 +61,5 @@ This - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes +- [ ] If my task include an endpoint, I add the endpoint to Hopscotch/Postman Project - [ ] Any dependent changes have been merged and published in downstream modules diff --git a/composer.lock b/composer.lock index 6649167a929..44bfa267f28 100644 --- a/composer.lock +++ b/composer.lock @@ -1180,16 +1180,16 @@ }, { "name": "laravel/framework", - "version": "v11.2.0", + "version": "v11.5.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "a1750156b671f37cba702380107e2d22161c31e3" + "reference": "e3c24268f1404805e15099b9f035fe310cb30753" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/a1750156b671f37cba702380107e2d22161c31e3", - "reference": "a1750156b671f37cba702380107e2d22161c31e3", + "url": "https://api.github.com/repos/laravel/framework/zipball/e3c24268f1404805e15099b9f035fe310cb30753", + "reference": "e3c24268f1404805e15099b9f035fe310cb30753", "shasum": "" }, "require": { @@ -1208,7 +1208,7 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.15", + "laravel/prompts": "^0.1.18", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", @@ -1381,20 +1381,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-04-02T14:01:33+00:00" + "time": "2024-04-23T15:11:31+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.17", + "version": "v0.1.20", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5" + "reference": "bf9a360c484976692de0f3792f30066f4f4b34a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", - "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", + "url": "https://api.github.com/repos/laravel/prompts/zipball/bf9a360c484976692de0f3792f30066f4f4b34a2", + "reference": "bf9a360c484976692de0f3792f30066f4f4b34a2", "shasum": "" }, "require": { @@ -1436,22 +1436,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.17" + "source": "https://github.com/laravel/prompts/tree/v0.1.20" }, - "time": "2024-03-13T16:05:43+00:00" + "time": "2024-04-18T00:45:25+00:00" }, { "name": "laravel/sanctum", - "version": "v4.0.1", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "d1de99bf8d31199aaf93881561622489ab91ba58" + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/d1de99bf8d31199aaf93881561622489ab91ba58", - "reference": "d1de99bf8d31199aaf93881561622489ab91ba58", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/9cfc0ce80cabad5334efff73ec856339e8ec1ac1", + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1", "shasum": "" }, "require": { @@ -1502,7 +1502,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2024-03-19T20:09:38+00:00" + "time": "2024-04-10T19:39:58+00:00" }, { "name": "laravel/serializable-closure", @@ -1820,16 +1820,16 @@ }, { "name": "league/flysystem", - "version": "3.26.0", + "version": "3.27.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be" + "reference": "4729745b1ab737908c7d055148c9a6b3e959832f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/072735c56cc0da00e10716dd90d5a7f7b40b36be", - "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4729745b1ab737908c7d055148c9a6b3e959832f", + "reference": "4729745b1ab737908c7d055148c9a6b3e959832f", "shasum": "" }, "require": { @@ -1894,7 +1894,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.26.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.27.0" }, "funding": [ { @@ -1906,7 +1906,7 @@ "type": "github" } ], - "time": "2024-03-25T11:49:53+00:00" + "time": "2024-04-07T19:17:50+00:00" }, { "name": "league/flysystem-local", @@ -2095,16 +2095,16 @@ }, { "name": "monolog/monolog", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", "shasum": "" }, "require": { @@ -2127,7 +2127,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", @@ -2180,7 +2180,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.6.0" }, "funding": [ { @@ -2192,20 +2192,20 @@ "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2024-04-12T21:02:21+00:00" }, { "name": "nesbot/carbon", - "version": "3.2.3", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "4d599a6e2351d6b6bf21737accdfe1a4ce3fdbb1" + "reference": "7219739c4e01d4680c980545821733b6ed8ee880" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4d599a6e2351d6b6bf21737accdfe1a4ce3fdbb1", - "reference": "4d599a6e2351d6b6bf21737accdfe1a4ce3fdbb1", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7219739c4e01d4680c980545821733b6ed8ee880", + "reference": "7219739c4e01d4680c980545821733b6ed8ee880", "shasum": "" }, "require": { @@ -2298,7 +2298,7 @@ "type": "tidelift" } ], - "time": "2024-03-30T18:22:00+00:00" + "time": "2024-04-18T16:35:06+00:00" }, { "name": "nette/schema", @@ -3465,16 +3465,16 @@ }, { "name": "sentry/sentry", - "version": "4.6.1", + "version": "4.7.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409" + "reference": "d6769b2a5e6bf19ed3bbfbf52328ceaf8e6fcb1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5a94184175e5830b589bf923da8c9c3af2c0f409", - "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/d6769b2a5e6bf19ed3bbfbf52328ceaf8e6fcb1f", + "reference": "d6769b2a5e6bf19ed3bbfbf52328ceaf8e6fcb1f", "shasum": "" }, "require": { @@ -3538,7 +3538,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.6.1" + "source": "https://github.com/getsentry/sentry-php/tree/4.7.0" }, "funding": [ { @@ -3550,27 +3550,27 @@ "type": "custom" } ], - "time": "2024-03-08T08:18:09+00:00" + "time": "2024-04-10T13:22:13+00:00" }, { "name": "sentry/sentry-laravel", - "version": "4.4.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "f375fed71f2d8ec164dd392c43b0cf716bf7725a" + "reference": "a15b2f5fa7b446f006eb93134e237c38a11776cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/f375fed71f2d8ec164dd392c43b0cf716bf7725a", - "reference": "f375fed71f2d8ec164dd392c43b0cf716bf7725a", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/a15b2f5fa7b446f006eb93134e237c38a11776cf", + "reference": "a15b2f5fa7b446f006eb93134e237c38a11776cf", "shasum": "" }, "require": { "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", "nyholm/psr7": "^1.0", "php": "^7.2 | ^8.0", - "sentry/sentry": "^4.5", + "sentry/sentry": "^4.7", "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0" }, "require-dev": { @@ -3627,7 +3627,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.4.0" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.5.1" }, "funding": [ { @@ -3639,7 +3639,7 @@ "type": "custom" } ], - "time": "2024-03-25T13:06:38+00:00" + "time": "2024-04-24T08:58:34+00:00" }, { "name": "spatie/laravel-package-tools", @@ -6792,16 +6792,16 @@ }, { "name": "captainhook/captainhook", - "version": "5.22.1", + "version": "5.23.0", "source": { "type": "git", "url": "https://github.com/captainhookphp/captainhook.git", - "reference": "dbd4dd6ae6ae9a05c014a01f50417aee8a7520cd" + "reference": "08d90e4d98db123ab58826be8e891d7d36c14f2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/dbd4dd6ae6ae9a05c014a01f50417aee8a7520cd", - "reference": "dbd4dd6ae6ae9a05c014a01f50417aee8a7520cd", + "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/08d90e4d98db123ab58826be8e891d7d36c14f2a", + "reference": "08d90e4d98db123ab58826be8e891d7d36c14f2a", "shasum": "" }, "require": { @@ -6864,7 +6864,7 @@ ], "support": { "issues": "https://github.com/captainhookphp/captainhook/issues", - "source": "https://github.com/captainhookphp/captainhook/tree/5.22.1" + "source": "https://github.com/captainhookphp/captainhook/tree/5.23.0" }, "funding": [ { @@ -6872,7 +6872,7 @@ "type": "github" } ], - "time": "2024-03-06T13:08:46+00:00" + "time": "2024-04-12T10:39:21+00:00" }, { "name": "captainhook/plugin-composer", @@ -7136,16 +7136,16 @@ }, { "name": "composer/composer", - "version": "2.7.2", + "version": "2.7.4", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "b826edb791571ab1eaf281eb1bd6e181a1192adc" + "reference": "a625e50598e12171d3f60b1149eb530690c43474" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/b826edb791571ab1eaf281eb1bd6e181a1192adc", - "reference": "b826edb791571ab1eaf281eb1bd6e181a1192adc", + "url": "https://api.github.com/repos/composer/composer/zipball/a625e50598e12171d3f60b1149eb530690c43474", + "reference": "a625e50598e12171d3f60b1149eb530690c43474", "shasum": "" }, "require": { @@ -7230,7 +7230,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.2" + "source": "https://github.com/composer/composer/tree/2.7.4" }, "funding": [ { @@ -7246,7 +7246,7 @@ "type": "tidelift" } ], - "time": "2024-03-11T16:12:18+00:00" + "time": "2024-04-22T19:17:03+00:00" }, { "name": "composer/metadata-minifier", @@ -8055,16 +8055,16 @@ }, { "name": "jetbrains/phpstorm-attributes", - "version": "1.0", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/JetBrains/phpstorm-attributes.git", - "reference": "a7a83ae5df4dd3c0875484483de19de8edf60a9f" + "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/a7a83ae5df4dd3c0875484483de19de8edf60a9f", - "reference": "a7a83ae5df4dd3c0875484483de19de8edf60a9f", + "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/22fb28d679deceedba8366dbae65cc8ebfc17e26", + "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26", "shasum": "" }, "type": "library", @@ -8091,9 +8091,9 @@ ], "support": { "issues": "https://youtrack.jetbrains.com/newIssue?project=WI", - "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.0" + "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.1" }, - "time": "2020-11-17T11:09:47+00:00" + "time": "2023-09-01T08:50:25+00:00" }, { "name": "justinrainbow/json-schema", @@ -8167,16 +8167,16 @@ }, { "name": "larastan/larastan", - "version": "v2.9.2", + "version": "v2.9.5", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "a79b46b96060504b400890674b83f66aa7f5db6d" + "reference": "101f1a4470f87326f4d3995411d28679d8800abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/a79b46b96060504b400890674b83f66aa7f5db6d", - "reference": "a79b46b96060504b400890674b83f66aa7f5db6d", + "url": "https://api.github.com/repos/larastan/larastan/zipball/101f1a4470f87326f4d3995411d28679d8800abe", + "reference": "101f1a4470f87326f4d3995411d28679d8800abe", "shasum": "" }, "require": { @@ -8189,15 +8189,15 @@ "illuminate/pipeline": "^9.52.16 || ^10.28.0 || ^11.0", "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", "php": "^8.0.2", - "phpmyadmin/sql-parser": "^5.8.2", - "phpstan/phpstan": "^1.10.50" + "phpmyadmin/sql-parser": "^5.9.0", + "phpstan/phpstan": "^1.10.66" }, "require-dev": { "doctrine/coding-standard": "^12.0", - "nikic/php-parser": "^4.17.1", - "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.0", - "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.0", - "phpunit/phpunit": "^9.6.13 || ^10.5" + "nikic/php-parser": "^4.19.1", + "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.2", + "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.3", + "phpunit/phpunit": "^9.6.13 || ^10.5.16" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -8245,7 +8245,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v2.9.2" + "source": "https://github.com/larastan/larastan/tree/v2.9.5" }, "funding": [ { @@ -8265,20 +8265,20 @@ "type": "patreon" } ], - "time": "2024-02-27T03:16:03+00:00" + "time": "2024-04-16T19:13:34+00:00" }, { "name": "laravel/pint", - "version": "v1.15.1", + "version": "v1.15.2", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "5f288b5e79938cc72f5c298d384e639de87507c6" + "reference": "2c9f8004899815f3f0ee3cb28ef7281e2b589134" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/5f288b5e79938cc72f5c298d384e639de87507c6", - "reference": "5f288b5e79938cc72f5c298d384e639de87507c6", + "url": "https://api.github.com/repos/laravel/pint/zipball/2c9f8004899815f3f0ee3cb28ef7281e2b589134", + "reference": "2c9f8004899815f3f0ee3cb28ef7281e2b589134", "shasum": "" }, "require": { @@ -8289,13 +8289,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.52.1", - "illuminate/view": "^10.48.4", - "larastan/larastan": "^2.9.2", + "friendsofphp/php-cs-fixer": "^3.54.0", + "illuminate/view": "^10.48.8", + "larastan/larastan": "^2.9.5", "laravel-zero/framework": "^10.3.0", "mockery/mockery": "^1.6.11", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.34.5" + "pestphp/pest": "^2.34.7" }, "bin": [ "builds/pint" @@ -8331,7 +8331,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-04-02T14:28:47+00:00" + "time": "2024-04-23T15:42:34+00:00" }, { "name": "laravel/sail", @@ -8827,16 +8827,16 @@ }, { "name": "pestphp/pest", - "version": "v2.34.6", + "version": "v2.34.7", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "680111fb1e7175a5010b73c115edef58ceef303e" + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/680111fb1e7175a5010b73c115edef58ceef303e", - "reference": "680111fb1e7175a5010b73c115edef58ceef303e", + "url": "https://api.github.com/repos/pestphp/pest/zipball/a7a3e4240e341d0fee1c54814ce18adc26ce5a76", + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76", "shasum": "" }, "require": { @@ -8846,10 +8846,10 @@ "pestphp/pest-plugin": "^2.1.1", "pestphp/pest-plugin-arch": "^2.7.0", "php": "^8.1.0", - "phpunit/phpunit": "^10.5.16" + "phpunit/phpunit": "^10.5.17" }, "conflict": { - "phpunit/phpunit": ">10.5.16", + "phpunit/phpunit": ">10.5.17", "sebastian/exporter": "<5.1.0", "webmozart/assert": "<1.11.0" }, @@ -8919,7 +8919,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.34.6" + "source": "https://github.com/pestphp/pest/tree/v2.34.7" }, "funding": [ { @@ -8931,7 +8931,7 @@ "type": "github" } ], - "time": "2024-03-28T11:36:46+00:00" + "time": "2024-04-05T07:44:17+00:00" }, { "name": "pestphp/pest-plugin", @@ -9321,28 +9321,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "version": "5.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a", + "reference": "298d2febfe79d03fe714eb871d5538da55205b1a", "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": { @@ -9366,15 +9373,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.0" }, - "time": "2021-10-19T17:43:47+00:00" + "time": "2024-04-09T21:13:58+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -9571,16 +9578,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.66", + "version": "1.10.67", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/16ddbe776f10da6a95ebd25de7c1dbed397dc493", + "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493", "shasum": "" }, "require": { @@ -9623,13 +9630,9 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2024-03-28T16:17:31+00:00" + "time": "2024-04-16T07:22:02+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -10004,16 +10007,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.16", + "version": "10.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd" + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd", - "reference": "18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c1f736a473d21957ead7e94fcc029f571895abf5", + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5", "shasum": "" }, "require": { @@ -10085,7 +10088,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.16" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.17" }, "funding": [ { @@ -10101,7 +10104,7 @@ "type": "tidelift" } ], - "time": "2024-03-28T10:08:10+00:00" + "time": "2024-04-05T04:39:01+00:00" }, { "name": "react/promise", @@ -10178,16 +10181,16 @@ }, { "name": "rector/rector", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b" + "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/c59507a9090b465d65e1aceed91e5b81986e375b", - "reference": "c59507a9090b465d65e1aceed91e5b81986e375b", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/6e04d0eb087aef707fa0c5686d33d6ff61f4a555", + "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555", "shasum": "" }, "require": { @@ -10200,6 +10203,9 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, "bin": [ "bin/rector" ], @@ -10222,7 +10228,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.3" + "source": "https://github.com/rectorphp/rector/tree/1.0.4" }, "funding": [ { @@ -10230,7 +10236,7 @@ "type": "github" } ], - "time": "2024-03-14T15:04:18+00:00" + "time": "2024-04-05T09:01:07+00:00" }, { "name": "sebastian/cli-parser", @@ -11670,16 +11676,16 @@ }, { "name": "spatie/backtrace", - "version": "1.5.3", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", "shasum": "" }, "require": { @@ -11687,6 +11693,7 @@ }, "require-dev": { "ext-json": "*", + "laravel/serializable-closure": "^1.3", "phpunit/phpunit": "^9.3", "spatie/phpunit-snapshot-assertions": "^4.2", "symfony/var-dumper": "^5.1" @@ -11716,7 +11723,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.5.3" + "source": "https://github.com/spatie/backtrace/tree/1.6.1" }, "funding": [ { @@ -11728,7 +11735,7 @@ "type": "other" } ], - "time": "2023-06-28T12:59:17+00:00" + "time": "2024-04-24T13:22:11+00:00" }, { "name": "spatie/flare-client-php", @@ -11801,16 +11808,16 @@ }, { "name": "spatie/ignition", - "version": "1.13.1", + "version": "1.13.2", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "889bf1dfa59e161590f677728b47bf4a6893983b" + "reference": "952798e239d9969e4e694b124c2cc222798dbb28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/889bf1dfa59e161590f677728b47bf4a6893983b", - "reference": "889bf1dfa59e161590f677728b47bf4a6893983b", + "url": "https://api.github.com/repos/spatie/ignition/zipball/952798e239d9969e4e694b124c2cc222798dbb28", + "reference": "952798e239d9969e4e694b124c2cc222798dbb28", "shasum": "" }, "require": { @@ -11880,20 +11887,20 @@ "type": "github" } ], - "time": "2024-03-29T14:03:47+00:00" + "time": "2024-04-16T08:49:17+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.5.1", + "version": "2.5.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9" + "reference": "c93fcadcc4629775c839ac9a90916f07a660266f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9", - "reference": "0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/c93fcadcc4629775c839ac9a90916f07a660266f", + "reference": "c93fcadcc4629775c839ac9a90916f07a660266f", "shasum": "" }, "require": { @@ -11903,7 +11910,7 @@ "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.13", + "spatie/ignition": "^1.13.2", "symfony/console": "^6.2.3|^7.0", "symfony/var-dumper": "^6.2.3|^7.0" }, @@ -11972,7 +11979,7 @@ "type": "github" } ], - "time": "2024-04-02T06:30:22+00:00" + "time": "2024-04-16T08:57:16+00:00" }, { "name": "spaze/phpstan-disallowed-calls", @@ -12043,16 +12050,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.1", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909" + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/267a4405fff1d9c847134db3a3c92f1ab7f77909", - "reference": "267a4405fff1d9c847134db3a3c92f1ab7f77909", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", "shasum": "" }, "require": { @@ -12119,7 +12126,7 @@ "type": "open_collective" } ], - "time": "2024-03-31T21:03:09+00:00" + "time": "2024-04-23T20:25:34+00:00" }, { "name": "symfony/filesystem", @@ -12761,38 +12768,38 @@ }, { "name": "worksome/coding-style", - "version": "v2.10.1", + "version": "v2.10.2", "source": { "type": "git", "url": "https://github.com/worksome/coding-style.git", - "reference": "f1f67914dc183a35133b579f54b5cfe0efafde0b" + "reference": "4830cc0cd5f2a09ab30732e0479cdad4d42c2201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/worksome/coding-style/zipball/f1f67914dc183a35133b579f54b5cfe0efafde0b", - "reference": "f1f67914dc183a35133b579f54b5cfe0efafde0b", + "url": "https://api.github.com/repos/worksome/coding-style/zipball/4830cc0cd5f2a09ab30732e0479cdad4d42c2201", + "reference": "4830cc0cd5f2a09ab30732e0479cdad4d42c2201", "shasum": "" }, "require": { "canvural/larastan-strict-rules": "^2.1.10", "composer-plugin-api": "^2.0", "jetbrains/phpstorm-attributes": "^1.0", - "larastan/larastan": "^2.7", + "larastan/larastan": "^2.8.1", "php": "^8.2", - "phpstan/phpstan": "^1.10.47", - "phpstan/phpstan-mockery": "^1.1.1", + "phpstan/phpstan": "^1.10.57", + "phpstan/phpstan-mockery": "^1.1.2", "rector/rector": "^1.0", "slevomat/coding-standard": "^8.14.1", "spaze/phpstan-disallowed-calls": "^2.16", - "symplify/easy-coding-standard": "^12.0.12", + "symplify/easy-coding-standard": "^12.1.10", "thecodingmachine/safe": "^2.5" }, "require-dev": { - "composer/composer": "^2.6.5", - "friendsofphp/php-cs-fixer": "^3.40", - "pestphp/pest": "^2.28", + "composer/composer": "^2.7", + "friendsofphp/php-cs-fixer": "^3.53", + "pestphp/pest": "^2.34", "spatie/invade": "^1.1.1", - "squizlabs/php_codesniffer": "^3.7" + "squizlabs/php_codesniffer": "^3.8" }, "type": "composer-plugin", "extra": { @@ -12820,9 +12827,9 @@ "description": "Worksomes coding style", "support": { "issues": "https://github.com/worksome/coding-style/issues", - "source": "https://github.com/worksome/coding-style/tree/v2.10.1" + "source": "https://github.com/worksome/coding-style/tree/v2.10.2" }, - "time": "2024-04-04T07:54:02+00:00" + "time": "2024-04-16T15:34:47+00:00" }, { "name": "worksome/request-factories", diff --git a/phpstan.neon b/phpstan.neon index b919647055e..e5c4d49e199 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -3,6 +3,9 @@ includes: parameters: reportUnmatchedIgnoredErrors: false + checkGenericClassInNonGenericObjectType: true + checkMissingIterableValueType: true + paths: - src - database diff --git a/src/Backoffice/Users/App/Request/StoreUserRequest.php b/src/Backoffice/Users/App/Request/StoreUserRequest.php index f5eae5d745c..ec7e99199b8 100644 --- a/src/Backoffice/Users/App/Request/StoreUserRequest.php +++ b/src/Backoffice/Users/App/Request/StoreUserRequest.php @@ -14,6 +14,9 @@ class StoreUserRequest extends FormRequest public const EMAIL = 'email'; public const PASSWORD = 'password'; + /** + * @return array + */ public function rules(): array { return [ diff --git a/src/Backoffice/Users/App/Transformers/UserTransformer.php b/src/Backoffice/Users/App/Transformers/UserTransformer.php index 4db8edf312c..5da089b0e89 100644 --- a/src/Backoffice/Users/App/Transformers/UserTransformer.php +++ b/src/Backoffice/Users/App/Transformers/UserTransformer.php @@ -9,6 +9,9 @@ class UserTransformer extends Transformer { + /** + * @return array{id: int, name: string, email: string} + */ public function transform(User $user): array { return [ diff --git a/src/Backoffice/Users/Domain/Models/User.php b/src/Backoffice/Users/Domain/Models/User.php index 490e7c34d2a..bf3f5125dda 100644 --- a/src/Backoffice/Users/Domain/Models/User.php +++ b/src/Backoffice/Users/Domain/Models/User.php @@ -86,14 +86,12 @@ protected function casts(): array public function email(): Attribute { return Attribute::make( - function (mixed $value) { + get: static function (mixed $value) { /** @var string $value */ - return strtolower($value); }, - function (mixed $value) { + set: static function (mixed $value) { /** @var string $value */ - return strtolower($value); }, ); diff --git a/src/Shared/App/Console/CommandManager.php b/src/Shared/App/Console/CommandManager.php index 24d1a95b802..3c423e46eaa 100644 --- a/src/Shared/App/Console/CommandManager.php +++ b/src/Shared/App/Console/CommandManager.php @@ -8,6 +8,9 @@ class CommandManager { + /** + * @return string[] + */ public static function getCommands(): array { return [