diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 1fb1680e..9a3c267d 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -14,7 +14,11 @@ $fixer 'encoding' => true, 'full_opening_tag' => true, 'blank_line_after_namespace' => true, - 'braces' => true, + 'control_structure_braces' => true, + 'control_structure_continuation_position' => ['position' => 'same_line'], + 'declare_parentheses' => true, + 'no_multiple_statements_per_line' => true, + 'statement_indentation' => true, 'class_definition' => true, 'elseif' => true, 'function_declaration' => true, diff --git a/composer.lock b/composer.lock index 4ac1787b..ba312ab0 100644 --- a/composer.lock +++ b/composer.lock @@ -1767,16 +1767,16 @@ }, { "name": "endroid/qr-code", - "version": "4.8.1", + "version": "4.8.2", "source": { "type": "git", "url": "https://github.com/endroid/qr-code.git", - "reference": "652157aee43d919be36cf2100a5a25b0882462f7" + "reference": "2436c2333a3931c95e2b96eb82f16f53143d6bba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/endroid/qr-code/zipball/652157aee43d919be36cf2100a5a25b0882462f7", - "reference": "652157aee43d919be36cf2100a5a25b0882462f7", + "url": "https://api.github.com/repos/endroid/qr-code/zipball/2436c2333a3931c95e2b96eb82f16f53143d6bba", + "reference": "2436c2333a3931c95e2b96eb82f16f53143d6bba", "shasum": "" }, "require": { @@ -1830,7 +1830,7 @@ ], "support": { "issues": "https://github.com/endroid/qr-code/issues", - "source": "https://github.com/endroid/qr-code/tree/4.8.1" + "source": "https://github.com/endroid/qr-code/tree/4.8.2" }, "funding": [ { @@ -1838,7 +1838,7 @@ "type": "github" } ], - "time": "2023-02-23T08:56:09+00:00" + "time": "2023-03-30T18:46:02+00:00" }, { "name": "erusev/parsedown", @@ -2978,16 +2978,16 @@ }, { "name": "mpdf/mpdf", - "version": "v8.1.4", + "version": "v8.1.5", "source": { "type": "git", "url": "https://github.com/mpdf/mpdf.git", - "reference": "add590e93b7502efafd9839a68cff99f3497b318" + "reference": "c264ce27af0d794ecd04e201b7e37a06b8a9d720" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mpdf/mpdf/zipball/add590e93b7502efafd9839a68cff99f3497b318", - "reference": "add590e93b7502efafd9839a68cff99f3497b318", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/c264ce27af0d794ecd04e201b7e37a06b8a9d720", + "reference": "c264ce27af0d794ecd04e201b7e37a06b8a9d720", "shasum": "" }, "require": { @@ -3051,7 +3051,7 @@ "type": "custom" } ], - "time": "2022-12-15T11:24:39+00:00" + "time": "2023-04-04T15:06:48+00:00" }, { "name": "myclabs/deep-copy", @@ -3792,24 +3792,27 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.2", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + "reference": "dfc078e8af9c99210337325ff5aa152872c98714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", + "reference": "dfc078e8af9c99210337325ff5aa152872c98714", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", @@ -3841,9 +3844,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" }, - "time": "2022-10-14T12:47:21+00:00" + "time": "2023-03-27T19:02:04+00:00" }, { "name": "phpoffice/phpspreadsheet", @@ -4065,16 +4068,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.16.1", + "version": "1.17.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571" + "reference": "d3753fcb3abc6f78f5de6f72153d4b9c99c72dee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/e27e92d939e2e3636f0a1f0afaba59692c0bf571", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/d3753fcb3abc6f78f5de6f72153d4b9c99c72dee", + "reference": "d3753fcb3abc6f78f5de6f72153d4b9c99c72dee", "shasum": "" }, "require": { @@ -4104,9 +4107,9 @@ "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.16.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.17.1" }, - "time": "2023-02-07T18:11:17+00:00" + "time": "2023-04-04T11:11:22+00:00" }, { "name": "psr/cache", @@ -4369,25 +4372,25 @@ }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -4416,9 +4419,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/1.1" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", @@ -4565,7 +4568,7 @@ }, { "name": "scheb/2fa-backup-code", - "version": "v6.7.0", + "version": "v6.8.0", "source": { "type": "git", "url": "https://github.com/scheb/2fa-backup-code.git", @@ -4608,13 +4611,13 @@ "two-step" ], "support": { - "source": "https://github.com/scheb/2fa-backup-code/tree/v6.7.0" + "source": "https://github.com/scheb/2fa-backup-code/tree/v6.8.0" }, "time": "2022-12-10T15:20:09+00:00" }, { "name": "scheb/2fa-bundle", - "version": "v6.7.0", + "version": "v6.8.0", "source": { "type": "git", "url": "https://github.com/scheb/2fa-bundle.git", @@ -4675,13 +4678,13 @@ "two-step" ], "support": { - "source": "https://github.com/scheb/2fa-bundle/tree/v6.7.0" + "source": "https://github.com/scheb/2fa-bundle/tree/v6.8.0" }, "time": "2023-01-26T18:47:22+00:00" }, { "name": "scheb/2fa-totp", - "version": "v6.7.0", + "version": "v6.8.0", "source": { "type": "git", "url": "https://github.com/scheb/2fa-totp.git", @@ -4726,7 +4729,7 @@ "two-step" ], "support": { - "source": "https://github.com/scheb/2fa-totp/tree/v6.7.0" + "source": "https://github.com/scheb/2fa-totp/tree/v6.8.0" }, "time": "2022-12-10T15:20:09+00:00" }, @@ -4804,16 +4807,16 @@ }, { "name": "spomky-labs/otphp", - "version": "11.1.0", + "version": "11.2.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/otphp.git", - "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab" + "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/4849ac1aa560bfc56c0d1534b0d72532da4665ab", - "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab", + "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/9a1569038bb1c8e98040b14b8bcbba54f25e7795", + "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795", "shasum": "" }, "require": { @@ -4831,7 +4834,7 @@ "phpstan/phpstan-strict-rules": "^1.0", "phpunit/phpunit": "^9.5.26", "qossmic/deptrac-shim": "^1.0", - "rector/rector": "^0.14", + "rector/rector": "^0.15", "symfony/phpunit-bridge": "^6.1", "symplify/easy-coding-standard": "^11.0" }, @@ -4868,7 +4871,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/otphp/issues", - "source": "https://github.com/Spomky-Labs/otphp/tree/11.1.0" + "source": "https://github.com/Spomky-Labs/otphp/tree/11.2.0" }, "funding": [ { @@ -4880,7 +4883,7 @@ "type": "patreon" } ], - "time": "2022-11-11T12:57:17+00:00" + "time": "2023-03-16T19:16:25+00:00" }, { "name": "symfony/asset", @@ -4956,16 +4959,16 @@ }, { "name": "symfony/cache", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "01a36b32f930018764bcbde006fbbe421fa6b61e" + "reference": "76babfd82f6bfd8f6cbe851a153b95dd074ffc53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/01a36b32f930018764bcbde006fbbe421fa6b61e", - "reference": "01a36b32f930018764bcbde006fbbe421fa6b61e", + "url": "https://api.github.com/repos/symfony/cache/zipball/76babfd82f6bfd8f6cbe851a153b95dd074ffc53", + "reference": "76babfd82f6bfd8f6cbe851a153b95dd074ffc53", "shasum": "" }, "require": { @@ -5032,7 +5035,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.2.7" + "source": "https://github.com/symfony/cache/tree/v6.2.8" }, "funding": [ { @@ -5048,7 +5051,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T16:15:44+00:00" + "time": "2023-03-30T07:37:32+00:00" }, { "name": "symfony/cache-contracts", @@ -5208,16 +5211,16 @@ }, { "name": "symfony/console", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45" + "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cbad09eb8925b6ad4fb721c7a179344dc4a19d45", - "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45", + "url": "https://api.github.com/repos/symfony/console/zipball/3582d68a64a86ec25240aaa521ec8bc2342b369b", + "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b", "shasum": "" }, "require": { @@ -5279,12 +5282,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.7" + "source": "https://github.com/symfony/console/tree/v6.2.8" }, "funding": [ { @@ -5300,7 +5303,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T17:00:03+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/css-selector", @@ -5369,16 +5372,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "83369dd4ec84bba9673524d25b79dfbde9e6e84c" + "reference": "b6195feacceb88fc58a02b69522b569e4c6188ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/83369dd4ec84bba9673524d25b79dfbde9e6e84c", - "reference": "83369dd4ec84bba9673524d25b79dfbde9e6e84c", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b6195feacceb88fc58a02b69522b569e4c6188ac", + "reference": "b6195feacceb88fc58a02b69522b569e4c6188ac", "shasum": "" }, "require": { @@ -5436,7 +5439,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.2.7" + "source": "https://github.com/symfony/dependency-injection/tree/v6.2.8" }, "funding": [ { @@ -5452,7 +5455,7 @@ "type": "tidelift" } ], - "time": "2023-02-16T14:11:02+00:00" + "time": "2023-03-30T13:35:57+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5523,16 +5526,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "35cb5045e15bf6bd89fd1353d9b03ff61dc1feaf" + "reference": "70e9e36a590699c26c1a0a0c46b0eaa7a6bb019d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/35cb5045e15bf6bd89fd1353d9b03ff61dc1feaf", - "reference": "35cb5045e15bf6bd89fd1353d9b03ff61dc1feaf", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/70e9e36a590699c26c1a0a0c46b0eaa7a6bb019d", + "reference": "70e9e36a590699c26c1a0a0c46b0eaa7a6bb019d", "shasum": "" }, "require": { @@ -5618,7 +5621,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.2.7" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.2.8" }, "funding": [ { @@ -5634,20 +5637,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-09T16:20:02+00:00" }, { "name": "symfony/dotenv", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "f2b09b7ee21458779df000bd24020b6e9955b393" + "reference": "4481aa45be7a11d2335c1d5b5bbe2f0c6199b105" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/f2b09b7ee21458779df000bd24020b6e9955b393", - "reference": "f2b09b7ee21458779df000bd24020b6e9955b393", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/4481aa45be7a11d2335c1d5b5bbe2f0c6199b105", + "reference": "4481aa45be7a11d2335c1d5b5bbe2f0c6199b105", "shasum": "" }, "require": { @@ -5692,7 +5695,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.2.7" + "source": "https://github.com/symfony/dotenv/tree/v6.2.8" }, "funding": [ { @@ -5708,7 +5711,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-10T10:06:03+00:00" }, { "name": "symfony/error-handler", @@ -5783,16 +5786,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "404b307de426c1c488e5afad64403e5f145e82a5" + "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/404b307de426c1c488e5afad64403e5f145e82a5", - "reference": "404b307de426c1c488e5afad64403e5f145e82a5", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", + "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", "shasum": "" }, "require": { @@ -5846,7 +5849,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.7" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.8" }, "funding": [ { @@ -5862,7 +5865,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6200,16 +6203,16 @@ }, { "name": "symfony/form", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "92379f5cf423c64e32be41897a65072ec972936e" + "reference": "751efa84f868337c63e29560c02cff7ae27d874b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/92379f5cf423c64e32be41897a65072ec972936e", - "reference": "92379f5cf423c64e32be41897a65072ec972936e", + "url": "https://api.github.com/repos/symfony/form/zipball/751efa84f868337c63e29560c02cff7ae27d874b", + "reference": "751efa84f868337c63e29560c02cff7ae27d874b", "shasum": "" }, "require": { @@ -6284,7 +6287,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.2.7" + "source": "https://github.com/symfony/form/tree/v6.2.8" }, "funding": [ { @@ -6300,20 +6303,20 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-31T11:20:06+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "01b1caa34ae121a192580acd38f66b7cb8b9ecce" + "reference": "92bf9008afea94408d10148dcff89b259b8fc328" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/01b1caa34ae121a192580acd38f66b7cb8b9ecce", - "reference": "01b1caa34ae121a192580acd38f66b7cb8b9ecce", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/92bf9008afea94408d10148dcff89b259b8fc328", + "reference": "92bf9008afea94408d10148dcff89b259b8fc328", "shasum": "" }, "require": { @@ -6322,7 +6325,7 @@ "php": ">=8.1", "symfony/cache": "^5.4|^6.0", "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.2", + "symfony/dependency-injection": "^6.2.8", "symfony/deprecation-contracts": "^2.1|^3", "symfony/error-handler": "^6.1", "symfony/event-dispatcher": "^5.4|^6.0", @@ -6355,7 +6358,7 @@ "symfony/security-csrf": "<5.4", "symfony/serializer": "<6.1", "symfony/stopwatch": "<5.4", - "symfony/translation": "<5.4", + "symfony/translation": "<6.2.8", "symfony/twig-bridge": "<5.4", "symfony/twig-bundle": "<5.4", "symfony/validator": "<5.4", @@ -6390,7 +6393,7 @@ "symfony/serializer": "^6.1", "symfony/stopwatch": "^5.4|^6.0", "symfony/string": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "symfony/translation": "^6.2.8", "symfony/twig-bundle": "^5.4|^6.0", "symfony/uid": "^5.4|^6.0", "symfony/validator": "^5.4|^6.0", @@ -6435,7 +6438,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.2.7" + "source": "https://github.com/symfony/framework-bundle/tree/v6.2.8" }, "funding": [ { @@ -6451,20 +6454,20 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-31T09:55:36+00:00" }, { "name": "symfony/http-client", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "0a5be6cbc570ae23b51b49d67341f378629d78e4" + "reference": "66391ba3a8862c560e1d9134c96d9bd2a619b477" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/0a5be6cbc570ae23b51b49d67341f378629d78e4", - "reference": "0a5be6cbc570ae23b51b49d67341f378629d78e4", + "url": "https://api.github.com/repos/symfony/http-client/zipball/66391ba3a8862c560e1d9134c96d9bd2a619b477", + "reference": "66391ba3a8862c560e1d9134c96d9bd2a619b477", "shasum": "" }, "require": { @@ -6519,8 +6522,11 @@ ], "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", + "keywords": [ + "http" + ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.2.7" + "source": "https://github.com/symfony/http-client/tree/v6.2.8" }, "funding": [ { @@ -6536,7 +6542,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T10:54:55+00:00" + "time": "2023-03-31T09:14:44+00:00" }, { "name": "symfony/http-client-contracts", @@ -6621,16 +6627,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "5fc3038d4a594223f9ea42e4e985548f3fcc9a3b" + "reference": "511a524affeefc191939348823ac75e9921c2112" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5fc3038d4a594223f9ea42e4e985548f3fcc9a3b", - "reference": "5fc3038d4a594223f9ea42e4e985548f3fcc9a3b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/511a524affeefc191939348823ac75e9921c2112", + "reference": "511a524affeefc191939348823ac75e9921c2112", "shasum": "" }, "require": { @@ -6679,7 +6685,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.2.7" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.8" }, "funding": [ { @@ -6695,20 +6701,20 @@ "type": "tidelift" } ], - "time": "2023-02-21T10:54:55+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd" + "reference": "9563229e56076070d92ca30c089e801e8a4629a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd", - "reference": "ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9563229e56076070d92ca30c089e801e8a4629a3", + "reference": "9563229e56076070d92ca30c089e801e8a4629a3", "shasum": "" }, "require": { @@ -6790,7 +6796,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.2.7" + "source": "https://github.com/symfony/http-kernel/tree/v6.2.8" }, "funding": [ { @@ -6806,20 +6812,20 @@ "type": "tidelift" } ], - "time": "2023-02-28T13:26:41+00:00" + "time": "2023-03-31T12:00:10+00:00" }, { "name": "symfony/intl", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "e7346ea6d88ae22e1b5d489b7a60135e72527cec" + "reference": "724bab553a3865d390a893f0881e855324e032e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/e7346ea6d88ae22e1b5d489b7a60135e72527cec", - "reference": "e7346ea6d88ae22e1b5d489b7a60135e72527cec", + "url": "https://api.github.com/repos/symfony/intl/zipball/724bab553a3865d390a893f0881e855324e032e1", + "reference": "724bab553a3865d390a893f0881e855324e032e1", "shasum": "" }, "require": { @@ -6871,7 +6877,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.2.7" + "source": "https://github.com/symfony/intl/tree/v6.2.8" }, "funding": [ { @@ -6887,20 +6893,20 @@ "type": "tidelift" } ], - "time": "2023-02-21T10:54:55+00:00" + "time": "2023-03-10T10:06:03+00:00" }, { "name": "symfony/mailer", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e4f84c633b72ec70efc50b8016871c3bc43e691e" + "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e4f84c633b72ec70efc50b8016871c3bc43e691e", - "reference": "e4f84c633b72ec70efc50b8016871c3bc43e691e", + "url": "https://api.github.com/repos/symfony/mailer/zipball/bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", + "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", "shasum": "" }, "require": { @@ -6950,7 +6956,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.2.7" + "source": "https://github.com/symfony/mailer/tree/v6.2.8" }, "funding": [ { @@ -6966,7 +6972,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T10:35:38+00:00" + "time": "2023-03-14T15:00:05+00:00" }, { "name": "symfony/mime", @@ -7053,16 +7059,16 @@ }, { "name": "symfony/monolog-bridge", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "c611e34f9e7b075f3af6d89d7cd10c6a80ab6a74" + "reference": "34700f2e5c7e9eae78f8e59fc02399dd8f110cae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/c611e34f9e7b075f3af6d89d7cd10c6a80ab6a74", - "reference": "c611e34f9e7b075f3af6d89d7cd10c6a80ab6a74", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/34700f2e5c7e9eae78f8e59fc02399dd8f110cae", + "reference": "34700f2e5c7e9eae78f8e59fc02399dd8f110cae", "shasum": "" }, "require": { @@ -7116,7 +7122,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.2.7" + "source": "https://github.com/symfony/monolog-bridge/tree/v6.2.8" }, "funding": [ { @@ -7132,7 +7138,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T16:15:44+00:00" + "time": "2023-03-09T16:20:02+00:00" }, { "name": "symfony/monolog-bundle", @@ -7777,16 +7783,16 @@ }, { "name": "symfony/property-access", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "5a389172011e2c37b47c896d0b156549126690a1" + "reference": "2ad1e0a07b8cab3e09905659d14f3b248e916374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/5a389172011e2c37b47c896d0b156549126690a1", - "reference": "5a389172011e2c37b47c896d0b156549126690a1", + "url": "https://api.github.com/repos/symfony/property-access/zipball/2ad1e0a07b8cab3e09905659d14f3b248e916374", + "reference": "2ad1e0a07b8cab3e09905659d14f3b248e916374", "shasum": "" }, "require": { @@ -7833,11 +7839,11 @@ "injection", "object", "property", - "property path", + "property-path", "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.2.7" + "source": "https://github.com/symfony/property-access/tree/v6.2.8" }, "funding": [ { @@ -7853,20 +7859,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-14T15:00:05+00:00" }, { "name": "symfony/property-info", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "5cf906918ea0f74032ffc5c0b85def246ce409df" + "reference": "400a019b7c05030599fd15f02b3d4ce287631732" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/5cf906918ea0f74032ffc5c0b85def246ce409df", - "reference": "5cf906918ea0f74032ffc5c0b85def246ce409df", + "url": "https://api.github.com/repos/symfony/property-info/zipball/400a019b7c05030599fd15f02b3d4ce287631732", + "reference": "400a019b7c05030599fd15f02b3d4ce287631732", "shasum": "" }, "require": { @@ -7926,7 +7932,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.2.7" + "source": "https://github.com/symfony/property-info/tree/v6.2.8" }, "funding": [ { @@ -7942,7 +7948,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:53:37+00:00" + "time": "2023-03-14T15:00:05+00:00" }, { "name": "symfony/rate-limiter", @@ -8019,16 +8025,16 @@ }, { "name": "symfony/routing", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "fa643fa4c56de161f8bc8c0492a76a60140b50e4" + "reference": "69062e2823f03b82265d73a966999660f0e1e404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/fa643fa4c56de161f8bc8c0492a76a60140b50e4", - "reference": "fa643fa4c56de161f8bc8c0492a76a60140b50e4", + "url": "https://api.github.com/repos/symfony/routing/zipball/69062e2823f03b82265d73a966999660f0e1e404", + "reference": "69062e2823f03b82265d73a966999660f0e1e404", "shasum": "" }, "require": { @@ -8087,7 +8093,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.2.7" + "source": "https://github.com/symfony/routing/tree/v6.2.8" }, "funding": [ { @@ -8103,20 +8109,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:53:37+00:00" + "time": "2023-03-14T15:00:05+00:00" }, { "name": "symfony/runtime", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "111b9d617d0cfc71d44baf01eb9951517fd8b739" + "reference": "f8b0751b33888329be8f8f0481bb81d279ec4157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/111b9d617d0cfc71d44baf01eb9951517fd8b739", - "reference": "111b9d617d0cfc71d44baf01eb9951517fd8b739", + "url": "https://api.github.com/repos/symfony/runtime/zipball/f8b0751b33888329be8f8f0481bb81d279ec4157", + "reference": "f8b0751b33888329be8f8f0481bb81d279ec4157", "shasum": "" }, "require": { @@ -8162,8 +8168,11 @@ ], "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", + "keywords": [ + "runtime" + ], "support": { - "source": "https://github.com/symfony/runtime/tree/v6.2.7" + "source": "https://github.com/symfony/runtime/tree/v6.2.8" }, "funding": [ { @@ -8179,20 +8188,20 @@ "type": "tidelift" } ], - "time": "2023-02-02T07:44:01+00:00" + "time": "2023-03-14T15:48:35+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "601bcc14b6e8c168dc5985d31cfdfd11bd07b50b" + "reference": "c781ba5ab5f71a5c8bd5fce5b4c8b6ad9eb7f3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/601bcc14b6e8c168dc5985d31cfdfd11bd07b50b", - "reference": "601bcc14b6e8c168dc5985d31cfdfd11bd07b50b", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/c781ba5ab5f71a5c8bd5fce5b4c8b6ad9eb7f3d5", + "reference": "c781ba5ab5f71a5c8bd5fce5b4c8b6ad9eb7f3d5", "shasum": "" }, "require": { @@ -8263,7 +8272,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.2.7" + "source": "https://github.com/symfony/security-bundle/tree/v6.2.8" }, "funding": [ { @@ -8279,20 +8288,20 @@ "type": "tidelift" } ], - "time": "2023-02-21T12:32:47+00:00" + "time": "2023-03-10T10:06:03+00:00" }, { "name": "symfony/security-core", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "5dd5509ec58bf30c98811681870f58e7f5918bbe" + "reference": "c141337bc7451f9a9e464733f1e536bf38d1d2fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/5dd5509ec58bf30c98811681870f58e7f5918bbe", - "reference": "5dd5509ec58bf30c98811681870f58e7f5918bbe", + "url": "https://api.github.com/repos/symfony/security-core/zipball/c141337bc7451f9a9e464733f1e536bf38d1d2fb", + "reference": "c141337bc7451f9a9e464733f1e536bf38d1d2fb", "shasum": "" }, "require": { @@ -8354,7 +8363,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.2.7" + "source": "https://github.com/symfony/security-core/tree/v6.2.8" }, "funding": [ { @@ -8370,7 +8379,7 @@ "type": "tidelift" } ], - "time": "2023-02-17T11:05:34+00:00" + "time": "2023-03-10T10:06:03+00:00" }, { "name": "symfony/security-csrf", @@ -8445,16 +8454,16 @@ }, { "name": "symfony/security-http", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "0b96e76243877b53e9ff1418f9e538ecf480dd69" + "reference": "6d47056ee9f394aeace1799e73ead5a2107f581d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/0b96e76243877b53e9ff1418f9e538ecf480dd69", - "reference": "0b96e76243877b53e9ff1418f9e538ecf480dd69", + "url": "https://api.github.com/repos/symfony/security-http/zipball/6d47056ee9f394aeace1799e73ead5a2107f581d", + "reference": "6d47056ee9f394aeace1799e73ead5a2107f581d", "shasum": "" }, "require": { @@ -8510,7 +8519,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.2.7" + "source": "https://github.com/symfony/security-http/tree/v6.2.8" }, "funding": [ { @@ -8526,20 +8535,20 @@ "type": "tidelift" } ], - "time": "2023-02-28T10:56:03+00:00" + "time": "2023-03-10T10:06:03+00:00" }, { "name": "symfony/serializer", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "df9599873fdc2540e6f4291f49be4fcc167e9cbf" + "reference": "db9d36470bf0990990fda9320b8b001bb582f075" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/df9599873fdc2540e6f4291f49be4fcc167e9cbf", - "reference": "df9599873fdc2540e6f4291f49be4fcc167e9cbf", + "url": "https://api.github.com/repos/symfony/serializer/zipball/db9d36470bf0990990fda9320b8b001bb582f075", + "reference": "db9d36470bf0990990fda9320b8b001bb582f075", "shasum": "" }, "require": { @@ -8549,7 +8558,7 @@ "conflict": { "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0|>=1.7.0", + "phpdocumentor/type-resolver": "<1.4.0", "symfony/dependency-injection": "<5.4", "symfony/property-access": "<5.4", "symfony/property-info": "<5.4", @@ -8611,7 +8620,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.2.7" + "source": "https://github.com/symfony/serializer/tree/v6.2.8" }, "funding": [ { @@ -8627,7 +8636,7 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-31T09:14:44+00:00" }, { "name": "symfony/service-contracts", @@ -8778,16 +8787,16 @@ }, { "name": "symfony/string", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "67b8c1eec78296b85dc1c7d9743830160218993d" + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/67b8c1eec78296b85dc1c7d9743830160218993d", - "reference": "67b8c1eec78296b85dc1c7d9743830160218993d", + "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", "shasum": "" }, "require": { @@ -8844,7 +8853,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.7" + "source": "https://github.com/symfony/string/tree/v6.2.8" }, "funding": [ { @@ -8860,20 +8869,20 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "symfony/translation", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "90db1c6138c90527917671cd9ffa9e8b359e3a73" + "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/90db1c6138c90527917671cd9ffa9e8b359e3a73", - "reference": "90db1c6138c90527917671cd9ffa9e8b359e3a73", + "url": "https://api.github.com/repos/symfony/translation/zipball/817535dbb1721df8b3a8f2489dc7e50bcd6209b5", + "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5", "shasum": "" }, "require": { @@ -8942,7 +8951,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.2.7" + "source": "https://github.com/symfony/translation/tree/v6.2.8" }, "funding": [ { @@ -8958,7 +8967,7 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-31T09:14:44+00:00" }, { "name": "symfony/translation-contracts", @@ -9043,16 +9052,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "f1899fd3b8a29f9544440a716a1ed7d1121c4615" + "reference": "30e3ad6ae749b2d2700ecf9b4a1a9d5c96b18927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/f1899fd3b8a29f9544440a716a1ed7d1121c4615", - "reference": "f1899fd3b8a29f9544440a716a1ed7d1121c4615", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/30e3ad6ae749b2d2700ecf9b4a1a9d5c96b18927", + "reference": "30e3ad6ae749b2d2700ecf9b4a1a9d5c96b18927", "shasum": "" }, "require": { @@ -9147,7 +9156,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.2.7" + "source": "https://github.com/symfony/twig-bridge/tree/v6.2.8" }, "funding": [ { @@ -9163,7 +9172,7 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-31T09:14:44+00:00" }, { "name": "symfony/twig-bundle", @@ -9252,16 +9261,16 @@ }, { "name": "symfony/validator", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "4b3bd0a9545bdf7ebc84f0a494c05219010bb403" + "reference": "c63584f84edbdba9d2519f888350dd90615abe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/4b3bd0a9545bdf7ebc84f0a494c05219010bb403", - "reference": "4b3bd0a9545bdf7ebc84f0a494c05219010bb403", + "url": "https://api.github.com/repos/symfony/validator/zipball/c63584f84edbdba9d2519f888350dd90615abe35", + "reference": "c63584f84edbdba9d2519f888350dd90615abe35", "shasum": "" }, "require": { @@ -9340,7 +9349,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.2.7" + "source": "https://github.com/symfony/validator/tree/v6.2.8" }, "funding": [ { @@ -9356,20 +9365,20 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e" + "reference": "d37ab6787be2db993747b6218fcc96e8e3bb4bd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e", - "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d37ab6787be2db993747b6218fcc96e8e3bb4bd0", + "reference": "d37ab6787be2db993747b6218fcc96e8e3bb4bd0", "shasum": "" }, "require": { @@ -9428,7 +9437,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.7" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.8" }, "funding": [ { @@ -9444,20 +9453,20 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "86062dd0103530e151588c8f60f5b85a139f1442" + "reference": "8302bb670204500d492c6b8c595ee9a27da62cd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/86062dd0103530e151588c8f60f5b85a139f1442", - "reference": "86062dd0103530e151588c8f60f5b85a139f1442", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8302bb670204500d492c6b8c595ee9a27da62cd6", + "reference": "8302bb670204500d492c6b8c595ee9a27da62cd6", "shasum": "" }, "require": { @@ -9497,12 +9506,12 @@ "export", "hydrate", "instantiate", - "lazy loading", + "lazy-loading", "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.2.7" + "source": "https://github.com/symfony/var-exporter/tree/v6.2.8" }, "funding": [ { @@ -9518,7 +9527,7 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-14T15:48:45+00:00" }, { "name": "symfony/webpack-encore-bundle", @@ -10600,20 +10609,21 @@ }, { "name": "doctrine/data-fixtures", - "version": "1.6.3", + "version": "1.6.5", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "c27821d038e64f1bfc852a94064d65d2a75ad01f" + "reference": "e6b97f557942ea17564bbc30ae3ebc9bd2209363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/c27821d038e64f1bfc852a94064d65d2a75ad01f", - "reference": "c27821d038e64f1bfc852a94064d65d2a75ad01f", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/e6b97f557942ea17564bbc30ae3ebc9bd2209363", + "reference": "e6b97f557942ea17564bbc30ae3ebc9bd2209363", "shasum": "" }, "require": { - "doctrine/persistence": "^1.3.3|^2.0|^3.0", + "doctrine/deprecations": "^0.5.3 || ^1.0", + "doctrine/persistence": "^1.3.3 || ^2.0 || ^3.0", "php": "^7.2 || ^8.0" }, "conflict": { @@ -10622,16 +10632,15 @@ "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^10.0", + "doctrine/coding-standard": "^11.0", "doctrine/dbal": "^2.13 || ^3.0", - "doctrine/deprecations": "^1.0", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", "doctrine/orm": "^2.12", "ext-sqlite3": "*", "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^8.5 || ^9.5", + "phpunit/phpunit": "^8.5 || ^9.5 || ^10.0", "symfony/cache": "^5.0 || ^6.0", - "vimeo/psalm": "^4.10" + "vimeo/psalm": "^4.10 || ^5.9" }, "suggest": { "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", @@ -10642,7 +10651,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" + "Doctrine\\Common\\DataFixtures\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -10662,7 +10671,7 @@ ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.6.3" + "source": "https://github.com/doctrine/data-fixtures/tree/1.6.5" }, "funding": [ { @@ -10678,7 +10687,7 @@ "type": "tidelift" } ], - "time": "2023-01-07T15:10:22+00:00" + "time": "2023-04-03T14:58:58+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -10833,16 +10842,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.15.1", + "version": "v3.16.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "d48755372a113bddb99f749e34805d83f3acfe04" + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d48755372a113bddb99f749e34805d83f3acfe04", - "reference": "d48755372a113bddb99f749e34805d83f3acfe04", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", "shasum": "" }, "require": { @@ -10917,7 +10926,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.15.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0" }, "funding": [ { @@ -10925,7 +10934,7 @@ "type": "github" } ], - "time": "2023-03-13T23:26:30+00:00" + "time": "2023-04-02T19:30:06+00:00" }, { "name": "masterminds/html5", @@ -11165,16 +11174,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.8", + "version": "1.10.11", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9" + "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9", - "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8aa62e6ea8b58ffb650e02940e55a788cbc3fe21", + "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21", "shasum": "" }, "require": { @@ -11223,7 +11232,7 @@ "type": "tidelift" } ], - "time": "2023-03-24T10:28:16+00:00" + "time": "2023-04-04T19:17:42+00:00" }, { "name": "phpstan/phpstan-doctrine", @@ -11398,22 +11407,22 @@ }, { "name": "phpstan/phpstan-symfony", - "version": "1.2.23", + "version": "1.2.24", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-symfony.git", - "reference": "8a8d0538ca943b20beda7e9799e14fb3683262d4" + "reference": "db81b1861aac7cc2e66115cb33b4d1ea2a73d096" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/8a8d0538ca943b20beda7e9799e14fb3683262d4", - "reference": "8a8d0538ca943b20beda7e9799e14fb3683262d4", + "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/db81b1861aac7cc2e66115cb33b4d1ea2a73d096", + "reference": "db81b1861aac7cc2e66115cb33b4d1ea2a73d096", "shasum": "" }, "require": { "ext-simplexml": "*", "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.9.4" + "phpstan/phpstan": "^1.9.18" }, "conflict": { "symfony/framework-bundle": "<3.0" @@ -11423,7 +11432,7 @@ "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^8.5.29 || ^9.5", "psr/container": "1.0 || 1.1.1", "symfony/config": "^5.4 || ^6.1", "symfony/console": "^5.4 || ^6.1", @@ -11463,9 +11472,9 @@ "description": "Symfony Framework extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-symfony/issues", - "source": "https://github.com/phpstan/phpstan-symfony/tree/1.2.23" + "source": "https://github.com/phpstan/phpstan-symfony/tree/1.2.24" }, - "time": "2023-02-06T10:42:02+00:00" + "time": "2023-03-30T08:38:10+00:00" }, { "name": "phpunit/php-code-coverage", @@ -13002,16 +13011,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "65a906f5141ff2d3aef1b01c128fba78f5e9f921" + "reference": "0e0d0f709997ad1224ef22bb0a28287c44b7840f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/65a906f5141ff2d3aef1b01c128fba78f5e9f921", - "reference": "65a906f5141ff2d3aef1b01c128fba78f5e9f921", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0e0d0f709997ad1224ef22bb0a28287c44b7840f", + "reference": "0e0d0f709997ad1224ef22bb0a28287c44b7840f", "shasum": "" }, "require": { @@ -13052,7 +13061,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.2.7" + "source": "https://github.com/symfony/dom-crawler/tree/v6.2.8" }, "funding": [ { @@ -13068,7 +13077,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-09T16:20:02+00:00" }, { "name": "symfony/phpunit-bridge", @@ -13155,16 +13164,16 @@ }, { "name": "symfony/process", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "680e8a2ea6b3f87aecc07a6a65a203ae573d1902" + "reference": "75ed64103df4f6615e15a7fe38b8111099f47416" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/680e8a2ea6b3f87aecc07a6a65a203ae573d1902", - "reference": "680e8a2ea6b3f87aecc07a6a65a203ae573d1902", + "url": "https://api.github.com/repos/symfony/process/zipball/75ed64103df4f6615e15a7fe38b8111099f47416", + "reference": "75ed64103df4f6615e15a7fe38b8111099f47416", "shasum": "" }, "require": { @@ -13196,7 +13205,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.7" + "source": "https://github.com/symfony/process/tree/v6.2.8" }, "funding": [ { @@ -13212,7 +13221,7 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-09T16:20:02+00:00" }, { "name": "symfony/web-profiler-bundle", diff --git a/phpstan.neon b/phpstan.neon index 98589ca7..993e07e4 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -2270,16 +2270,6 @@ parameters: count: 1 path: src/Event/AbstractTimesheetMultipleEvent.php - - - message: "#^Method App\\\\Event\\\\ActivityDetailControllerEvent\\:\\:getController\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Event/ActivityDetailControllerEvent.php - - - - message: "#^Property App\\\\Event\\\\ActivityDetailControllerEvent\\:\\:\\$controller has no type specified\\.$#" - count: 1 - path: src/Event/ActivityDetailControllerEvent.php - - message: "#^Method App\\\\Event\\\\CalendarConfigurationEvent\\:\\:__construct\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#" count: 1 @@ -2300,16 +2290,6 @@ parameters: count: 1 path: src/Event/CalendarConfigurationEvent.php - - - message: "#^Method App\\\\Event\\\\CustomerDetailControllerEvent\\:\\:getController\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Event/CustomerDetailControllerEvent.php - - - - message: "#^Property App\\\\Event\\\\CustomerDetailControllerEvent\\:\\:\\$controller has no type specified\\.$#" - count: 1 - path: src/Event/CustomerDetailControllerEvent.php - - message: "#^Cannot access offset 'actions' on mixed\\.$#" count: 11 @@ -2395,16 +2375,6 @@ parameters: count: 1 path: src/Event/PermissionsEvent.php - - - message: "#^Method App\\\\Event\\\\ProjectDetailControllerEvent\\:\\:getController\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Event/ProjectDetailControllerEvent.php - - - - message: "#^Property App\\\\Event\\\\ProjectDetailControllerEvent\\:\\:\\$controller has no type specified\\.$#" - count: 1 - path: src/Event/ProjectDetailControllerEvent.php - - message: "#^Method App\\\\Event\\\\RevenueStatisticEvent\\:\\:getRevenue\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 @@ -3455,21 +3425,11 @@ parameters: count: 1 path: src/Form/Toolbar/AbstractToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\AbstractToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/AbstractToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\AbstractToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/AbstractToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\AbstractToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/AbstractToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\AbstractToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3520,21 +3480,11 @@ parameters: count: 1 path: src/Form/Toolbar/ActivityToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ActivityToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ActivityToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ActivityToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/ActivityToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ActivityToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ActivityToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ActivityToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3585,21 +3535,11 @@ parameters: count: 1 path: src/Form/Toolbar/CustomerToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\CustomerToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/CustomerToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\CustomerToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/CustomerToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\CustomerToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/CustomerToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\CustomerToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3650,21 +3590,11 @@ parameters: count: 1 path: src/Form/Toolbar/ExportToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ExportToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/ExportToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ExportToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ExportToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3715,21 +3645,11 @@ parameters: count: 1 path: src/Form/Toolbar/InvoiceArchiveForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceArchiveForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/InvoiceArchiveForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceArchiveForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/InvoiceArchiveForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceArchiveForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/InvoiceArchiveForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceArchiveForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3780,21 +3700,11 @@ parameters: count: 1 path: src/Form/Toolbar/InvoiceToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/InvoiceToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/InvoiceToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/InvoiceToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\InvoiceToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3845,21 +3755,11 @@ parameters: count: 1 path: src/Form/Toolbar/ProjectToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ProjectToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ProjectToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ProjectToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/ProjectToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ProjectToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/ProjectToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\ProjectToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3910,21 +3810,11 @@ parameters: count: 1 path: src/Form/Toolbar/TagToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TagToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TagToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TagToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/TagToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TagToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TagToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TagToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -3975,21 +3865,11 @@ parameters: count: 1 path: src/Form/Toolbar/TeamToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TeamToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TeamToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TeamToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/TeamToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TeamToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TeamToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TeamToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -4040,21 +3920,11 @@ parameters: count: 1 path: src/Form/Toolbar/TimesheetExportToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TimesheetExportToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/TimesheetExportToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetExportToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TimesheetExportToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetExportToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -4105,21 +3975,11 @@ parameters: count: 1 path: src/Form/Toolbar/TimesheetToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TimesheetToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/TimesheetToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/TimesheetToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\TimesheetToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 @@ -4170,21 +4030,11 @@ parameters: count: 1 path: src/Form/Toolbar/UserToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\UserToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$allowEmpty with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/UserToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\UserToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" count: 1 path: src/Form/Toolbar/UserToolbarForm.php - - - message: "#^Method App\\\\Form\\\\Toolbar\\\\UserToolbarForm\\:\\:addDateRange\\(\\) has parameter \\$required with no type specified\\.$#" - count: 1 - path: src/Form/Toolbar/UserToolbarForm.php - - message: "#^Method App\\\\Form\\\\Toolbar\\\\UserToolbarForm\\:\\:addOrderBy\\(\\) has parameter \\$allowedColumns with no value type specified in iterable type array\\.$#" count: 1 diff --git a/src/Constants.php b/src/Constants.php index f9c0f4be..c78523dc 100644 --- a/src/Constants.php +++ b/src/Constants.php @@ -17,11 +17,11 @@ class Constants /** * The current release version */ - public const VERSION = '2.0.13'; + public const VERSION = '2.0.14'; /** * The current release: major * 10000 + minor * 100 + patch */ - public const VERSION_ID = 20013; + public const VERSION_ID = 20014; /** * The software name */ diff --git a/src/Controller/DoctorController.php b/src/Controller/DoctorController.php index 6ca6be57..1a2391e9 100644 --- a/src/Controller/DoctorController.php +++ b/src/Controller/DoctorController.php @@ -307,8 +307,8 @@ final class DoctorController extends AbstractController } $phpInfo = $phpinfo['phpinfo']; - unset($phpInfo[0]); - unset($phpInfo[1]); + array_pop($phpInfo); + array_shift($phpInfo); return $phpInfo; } diff --git a/src/Controller/HelpController.php b/src/Controller/HelpController.php index 700f8fe9..2e8f2135 100644 --- a/src/Controller/HelpController.php +++ b/src/Controller/HelpController.php @@ -36,6 +36,7 @@ final class HelpController extends AbstractController $table->addColumn('date', ['class' => 'alwaysVisible w-min', 'orderBy' => false]); $table->addColumn('time', ['class' => 'alwaysVisible w-min text-center', 'orderBy' => false]); $table->addColumn('duration', ['class' => 'd-none w-min text-end', 'orderBy' => false]); + $table->addColumn('decimal', ['class' => 'd-none w-min text-end', 'orderBy' => false, 'title' => 'Decimal']); $table->addColumn('money', ['class' => 'w-min text-end', 'orderBy' => false, 'title' => 'rate']); $table->addColumn('hour_24', ['class' => 'alwaysVisible w-min text-center', 'orderBy' => false]); $table->addColumn('rtl', ['class' => 'd-none w-min text-center', 'orderBy' => false, 'title' => 'RTL']); @@ -75,6 +76,7 @@ final class HelpController extends AbstractController 'date' => $formatter->dateShort($now), 'time' => $formatter->time($now), 'duration' => $formatter->duration(46120), + 'decimal' => $formatter->durationDecimal(46120), 'money' => $formatter->money(2794.83, 'EUR'), 'hour_24' => $service->is24Hour($locale), 'rtl' => $service->isRightToLeft($locale), diff --git a/src/Controller/Reporting/AbstractUserReportController.php b/src/Controller/Reporting/AbstractUserReportController.php index 48b6ff2f..95a49a59 100644 --- a/src/Controller/Reporting/AbstractUserReportController.php +++ b/src/Controller/Reporting/AbstractUserReportController.php @@ -113,6 +113,24 @@ abstract class AbstractUserReportController extends AbstractController $data[$project->getId()]['project'] = $project; } - return $data; + $customers = []; + foreach ($data as $id => $row) { + $customerId = (string) $row['project']->getCustomer()->getId(); + if (!\array_key_exists($customerId, $customers)) { + $customers[$customerId] = [ + 'customer' => $row['project']->getCustomer(), + 'projects' => [], + 'duration' => 0, + 'rate' => 0.0, + 'internalRate' => 0.0, + ]; + } + $customers[$customerId]['projects'][$id] = $row; + $customers[$customerId]['duration'] += $row['duration']; + $customers[$customerId]['rate'] += $row['rate']; + $customers[$customerId]['internalRate'] += $row['internalRate']; + } + + return $customers; } } diff --git a/src/Event/ActivityDetailControllerEvent.php b/src/Event/ActivityDetailControllerEvent.php index 4d3be7ff..a2128c0e 100644 --- a/src/Event/ActivityDetailControllerEvent.php +++ b/src/Event/ActivityDetailControllerEvent.php @@ -16,13 +16,19 @@ namespace App\Event; */ final class ActivityDetailControllerEvent extends AbstractActivityEvent { - private $controller = []; + /** + * @var array + */ + private array $controller = []; public function addController(string $controller): void { $this->controller[] = $controller; } + /** + * @return string[] + */ public function getController(): array { return $this->controller; diff --git a/src/Event/CustomerDetailControllerEvent.php b/src/Event/CustomerDetailControllerEvent.php index 3b2b0f37..b19da627 100644 --- a/src/Event/CustomerDetailControllerEvent.php +++ b/src/Event/CustomerDetailControllerEvent.php @@ -16,13 +16,19 @@ namespace App\Event; */ final class CustomerDetailControllerEvent extends AbstractCustomerEvent { - private $controller = []; + /** + * @var array + */ + private array $controller = []; public function addController(string $controller): void { $this->controller[] = $controller; } + /** + * @return string[] + */ public function getController(): array { return $this->controller; diff --git a/src/Event/ProjectDetailControllerEvent.php b/src/Event/ProjectDetailControllerEvent.php index d2aafb32..04c92142 100644 --- a/src/Event/ProjectDetailControllerEvent.php +++ b/src/Event/ProjectDetailControllerEvent.php @@ -16,13 +16,19 @@ namespace App\Event; */ final class ProjectDetailControllerEvent extends AbstractProjectEvent { - private $controller = []; + /** + * @var array + */ + private array $controller = []; public function addController(string $controller): void { $this->controller[] = $controller; } + /** + * @return string[] + */ public function getController(): array { return $this->controller; diff --git a/src/Form/Toolbar/ExportToolbarForm.php b/src/Form/Toolbar/ExportToolbarForm.php index 9e14ba81..05d893d1 100644 --- a/src/Form/Toolbar/ExportToolbarForm.php +++ b/src/Form/Toolbar/ExportToolbarForm.php @@ -25,7 +25,7 @@ final class ExportToolbarForm extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $this->addSearchTermInputField($builder); - $this->addDateRange($builder, ['timezone' => $options['timezone']]); + $this->addDateRange($builder, ['timezone' => $options['timezone']], false, true); $this->addCustomerMultiChoice($builder, ['start_date_param' => null, 'end_date_param' => null, 'ignore_date' => true], true); $this->addProjectMultiChoice($builder, ['ignore_date' => true], true, true); $this->addActivitySelect($builder, [], true, true, false); diff --git a/src/Form/Toolbar/InvoiceToolbarForm.php b/src/Form/Toolbar/InvoiceToolbarForm.php index dccac8a1..68cdeae0 100644 --- a/src/Form/Toolbar/InvoiceToolbarForm.php +++ b/src/Form/Toolbar/InvoiceToolbarForm.php @@ -26,7 +26,7 @@ final class InvoiceToolbarForm extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $this->addSearchTermInputField($builder); - $this->addDateRange($builder, ['timezone' => $options['timezone']]); + $this->addDateRange($builder, ['timezone' => $options['timezone']], false, true); $this->addCustomerMultiChoice($builder, ['start_date_param' => null, 'end_date_param' => null, 'ignore_date' => true], true); $this->addProjectMultiChoice($builder, ['ignore_date' => true], true, true); $this->addActivitySelect($builder, [], true, true, false); diff --git a/src/Form/Toolbar/ToolbarFormTrait.php b/src/Form/Toolbar/ToolbarFormTrait.php index 52e0ba8d..f17e2fb3 100644 --- a/src/Form/Toolbar/ToolbarFormTrait.php +++ b/src/Form/Toolbar/ToolbarFormTrait.php @@ -155,7 +155,7 @@ trait ToolbarFormTrait ]); } - protected function addDateRange(FormBuilderInterface $builder, array $options, $allowEmpty = true, $required = false): void + protected function addDateRange(FormBuilderInterface $builder, array $options, bool $allowEmpty = true, bool $required = false): void { $params = [ 'required' => $required, diff --git a/src/Form/Type/DatePickerType.php b/src/Form/Type/DatePickerType.php index 93c687cb..025b811d 100644 --- a/src/Form/Type/DatePickerType.php +++ b/src/Form/Type/DatePickerType.php @@ -57,6 +57,7 @@ class DatePickerType extends AbstractType $formFormat = $converter->convert($format); $resolver->setDefaults([ + 'label' => 'date', 'widget' => 'single_text', 'html5' => false, 'format' => $formFormat, diff --git a/src/Form/Type/TagsType.php b/src/Form/Type/TagsType.php index 2affc052..71ea30e4 100644 --- a/src/Form/Type/TagsType.php +++ b/src/Form/Type/TagsType.php @@ -16,6 +16,8 @@ use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; final class TagsType extends AbstractType { + private ?int $count = null; + public function __construct( private AuthorizationCheckerInterface $auth, private TagRepository $repository @@ -31,7 +33,11 @@ final class TagsType extends AbstractType public function getParent(): string { - if ($this->repository->count([]) > TagRepository::MAX_AMOUNT_SELECT) { + if ($this->count === null) { + $this->count = $this->repository->count([]); + } + + if ($this->count > TagRepository::MAX_AMOUNT_SELECT) { return TagsInputType::class; } diff --git a/src/Form/Type/UserLanguageType.php b/src/Form/Type/UserLanguageType.php index c21eb562..5c74d354 100644 --- a/src/Form/Type/UserLanguageType.php +++ b/src/Form/Type/UserLanguageType.php @@ -27,10 +27,11 @@ final class UserLanguageType extends AbstractType { $route = $this->router->generate('help_locales'); $message = $this->translator->trans('user.language.help'); + $moreLink = $this->translator->trans('help_locales'); $resolver->setDefaults([ 'help_html' => true, - 'help' => sprintf('%s', $route, $message) + 'help' => sprintf('%2$s %3$s', $route, $message, $moreLink) ]); } diff --git a/src/Pdf/MPdfConverter.php b/src/Pdf/MPdfConverter.php index b546b6c0..b0f621cd 100644 --- a/src/Pdf/MPdfConverter.php +++ b/src/Pdf/MPdfConverter.php @@ -28,7 +28,7 @@ final class MPdfConverter implements HtmlToPdfConverter $fonts = new FontVariables(); $allowed = [ 'mode', 'format', 'default_font_size', 'default_font', 'margin_left', 'margin_right', 'margin_top', - 'margin_bottom', 'margin_header', 'margin_footer', 'orientation', + 'margin_bottom', 'margin_header', 'margin_footer', 'orientation', 'fonts', ]; $filtered = array_filter($options, function ($key) use ($allowed, $configs, $fonts): bool { @@ -61,15 +61,7 @@ final class MPdfConverter implements HtmlToPdfConverter ['tempDir' => $this->cacheDirectory, 'exposeVersion' => false] ); - $mpdf = new Mpdf($sanitized); - $mpdf->creator = Constants::SOFTWARE; - - if (\array_key_exists('fonts', $options)) { - $mpdf->AddFontDirectory($this->fileHelper->getDataDirectory('fonts')); - foreach ($options['fonts'] as $fontName => $fontConfig) { - $mpdf->AddFont($fontName, $fontConfig); - } - } + $mpdf = $this->initMpdf($sanitized); // some OS'es do not follow the PHP default settings if ((int) \ini_get('pcre.backtrack_limit') < 1000000) { @@ -99,4 +91,47 @@ final class MPdfConverter implements HtmlToPdfConverter return $mpdf->Output('', Destination::STRING_RETURN); } + + /** + * @param array> $options + * @return Mpdf + */ + private function initMpdf(array $options): Mpdf + { + $options['fontDir'] = $this->getFontDirectories(); + $options['fontdata'] = $this->mergeFontData($options); + + $mpdf = new Mpdf($options); + $mpdf->creator = Constants::SOFTWARE; + + return $mpdf; + } + + /** + * @return array + */ + private function getFontDirectories(): array + { + $defaultConfig = (new ConfigVariables())->getDefaults(); + $fontDirectories = $defaultConfig['fontDir']; + $fontDirectories[] = rtrim($this->fileHelper->getDataDirectory('fonts'), DIRECTORY_SEPARATOR); + + return $fontDirectories; + } + + /** + * @param array> $options + * @return array> + */ + private function mergeFontData(array $options): array + { + $defaultFontConfig = (new FontVariables())->getDefaults(); + $fontData = $defaultFontConfig['fontdata']; + + if (\array_key_exists('fonts', $options)) { + $fontData = array_merge($fontData, $options['fonts']); + } + + return $fontData; + } } diff --git a/templates/help/index.html.twig b/templates/help/index.html.twig index 843be92f..5b68bd85 100644 --- a/templates/help/index.html.twig +++ b/templates/help/index.html.twig @@ -14,6 +14,8 @@ {{ entry.time }} {% elseif column == 'duration' %} {{ entry.duration }} + {% elseif column == 'decimal' %} + {{ entry.decimal }} {% elseif column == 'money' %} {{ entry.money }} {% elseif column == 'hour_24' %} diff --git a/templates/macros/widgets.html.twig b/templates/macros/widgets.html.twig index 0fbabbc2..fdf02839 100644 --- a/templates/macros/widgets.html.twig +++ b/templates/macros/widgets.html.twig @@ -122,6 +122,14 @@ {%- if tooltip is not same as null %} data-toggle="tooltip" data-placement="top" title="{{ tooltip }}"{% endif -%}>{{ initials }} {% endmacro %} +{% macro avatar_deleted(tooltip) %} + {% set initials = tooltip ?? '??' %} + {% set tooltip = 'deleted'|trans %} + {% set color = null|colorize(initials) %} + {{ initials }} +{% endmacro %} + {# options = {'inherit': true} #} @@ -263,6 +271,10 @@ {{ macro.action_cardtoolbutton(icon, values) }} {% endmacro %} +{% macro card_tool_create(create_url) %} + {{ _self.card_tool_button('create', {'url': create_url, 'class': 'modal-ajax-form open-edit', 'title': 'create'|trans}) }} +{% endmacro %} + {% macro action_button(icon, values, type) %} {% import '@theme/components/button.html.twig' as macro %} {% set values = values|merge({'tooltip_attr': 'data-toggle'}) %} diff --git a/templates/reporting/report_by_user_data.html.twig b/templates/reporting/report_by_user_data.html.twig index 4b2f85bc..0572ef73 100644 --- a/templates/reporting/report_by_user_data.html.twig +++ b/templates/reporting/report_by_user_data.html.twig @@ -12,7 +12,7 @@ {% else %} {% set dataTypeTitle = 'stats.durationTotal' %} {% endif %} -{% set columns = 2 %} +{% set columns = 0 %} {% set totalCurrency = false %} @@ -30,82 +30,90 @@ - {% set oldCustomer = null %} - {% for project in rows|sort((a,b) => a.project.customer.id <=> b.project.customer.id) %} - {% set currency = project.project.customer.currency %} - {% if oldCustomer is null or oldCustomer != project.project.customer.id %} - {% set oldCustomer = project.project.customer.id %} - {% if totalCurrency is same as (false) %} - {% set totalCurrency = currency %} - {% elseif project.project.customer.currency != totalCurrency %} - {% set totalCurrency = null %} - {% endif %} - - - + {% for customerId, data in rows %} + {% set currency = data.customer.currency %} + {% if totalCurrency is same as (false) %} + {% set totalCurrency = currency %} + {% elseif data.customer != totalCurrency %} + {% set totalCurrency = null %} {% endif %} - {% set absoluteDuration = absoluteDuration + project.duration %} - {% set absoluteInternalRate = absoluteInternalRate + project.internalRate %} - {% set absoluteRate = absoluteRate + project.rate %} - - - + + - {% for column in project.data.data %} - {% set dateKey = column.date|report_date %} - - {% endfor %} + - {% for activity in project.activities %} - + {% for project in data.projects %} + {% set absoluteDuration = absoluteDuration + project.duration %} + {% set absoluteInternalRate = absoluteInternalRate + project.internalRate %} + {% set absoluteRate = absoluteRate + project.rate %} + - - {% for column in activity.data.data %} - {% endfor %} + {% for activity in project.activities %} + + + + {% for column in activity.data.data %} + + {% endfor %} + + {% endfor %} {% endfor %} {% endfor %} diff --git a/templates/user/stats.html.twig b/templates/user/stats.html.twig index d0ff6dd2..178eab85 100644 --- a/templates/user/stats.html.twig +++ b/templates/user/stats.html.twig @@ -85,8 +85,7 @@ {%- endblock %} {% block box_tools %} {%- if canSeeReport -%} - {% from '@theme/components/buttons.html.twig' import action_cardtoolbutton %} - {{ action_cardtoolbutton('reporting', {'url': path('report_user_year', {'user': user.id, 'date': year ~ '-01-01'})}) }} + {{ macros.card_tool_button('reporting', {'url': path('report_user_year', {'user': user.id, 'date': year ~ '-01-01'})}) }} {% endif %} {% endblock %} {% block box_body %}
{{ widgets.label_customer(project.project.customer) }}
- {{ widgets.label_project(project.project) }} - +
{{ widgets.label_customer(data.customer) }} {% if dataType == 'rate' %} - {{ project.rate|money(currency) }} + {{ data.rate|money(currency) }} {% elseif dataType == 'internalRate' %} - {{ project.internalRate|money(currency) }} + {{ data.internalRate|money(currency) }} {% else %} - {{ project.duration|duration(decimal) }} + {{ data.duration|duration(decimal) }} {% endif %} - {% if column.duration > 0 or column.rate > 0 or column.internalRate > 0 %} - {% if dataType == 'rate' %} - {% set totalsRate = totalsRate|merge({(dateKey): (totalsRate[dateKey] + column.rate)}) %} - {{ column.rate|money(currency) }} - {% elseif dataType == 'internalRate' %} - {% set totalsInternalRate = totalsInternalRate|merge({(dateKey): (totalsInternalRate[dateKey] + column.internalRate)}) %} - {{ column.internalRate|money(currency) }} - {% else %} - {% set totalsDuration = totalsDuration|merge({(dateKey): (totalsDuration[dateKey] + column.duration)}) %} - {{ column.duration|duration(decimal) }} - {% endif %} - {% endif %} -
- {{ widgets.label_activity(activity.activity) }} + {{ widgets.label_project(project.project) }} + {% if dataType == 'rate' %} - {{ activity.rate|money(currency) }} + {{ project.rate|money(currency) }} {% elseif dataType == 'internalRate' %} - {{ activity.internalRate|money(currency) }} + {{ project.internalRate|money(currency) }} {% else %} - {{ activity.duration|duration(decimal) }} + {{ project.duration|duration(decimal) }} {% endif %} + {% for column in project.data.data %} + {% set dateKey = column.date|report_date %} + {% if column.duration > 0 or column.rate > 0 or column.internalRate > 0 %} {% if dataType == 'rate' %} - {{ column.rate|money(currency) }} + {% set totalsRate = totalsRate|merge({(dateKey): (totalsRate[dateKey] + column.rate)}) %} + {{ column.rate|money(currency) }} {% elseif dataType == 'internalRate' %} - {{ column.internalRate|money(currency) }} + {% set totalsInternalRate = totalsInternalRate|merge({(dateKey): (totalsInternalRate[dateKey] + column.internalRate)}) %} + {{ column.internalRate|money(currency) }} {% else %} - {{ column.duration|duration(decimal) }} + {% set totalsDuration = totalsDuration|merge({(dateKey): (totalsDuration[dateKey] + column.duration)}) %} + {{ column.duration|duration(decimal) }} {% endif %} {% endif %}
+ {{ widgets.label_activity(activity.activity) }} + + {% if dataType == 'rate' %} + {{ activity.rate|money(currency) }} + {% elseif dataType == 'internalRate' %} + {{ activity.internalRate|money(currency) }} + {% else %} + {{ activity.duration|duration(decimal) }} + {% endif %} + + {% if column.duration > 0 or column.rate > 0 or column.internalRate > 0 %} + {% if dataType == 'rate' %} + {{ column.rate|money(currency) }} + {% elseif dataType == 'internalRate' %} + {{ column.internalRate|money(currency) }} + {% else %} + {{ column.duration|duration(decimal) }} + {% endif %} + {% endif %} +