diff --git a/composer.lock b/composer.lock index 3e2eb39c..dd801f72 100644 --- a/composer.lock +++ b/composer.lock @@ -137,16 +137,16 @@ }, { "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", "shasum": "" }, "require": { @@ -206,9 +206,9 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" }, - "time": "2022-10-27T11:44:00+00:00" + "time": "2024-07-08T12:26:09+00:00" }, { "name": "doctrine/inflector", @@ -579,24 +579,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -625,7 +625,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -637,26 +637,26 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -667,9 +667,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -747,7 +747,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -763,20 +763,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", "shasum": "" }, "require": { @@ -784,7 +784,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -830,7 +830,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.3" }, "funding": [ { @@ -846,20 +846,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-07-18T10:29:17+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -874,8 +874,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -946,7 +946,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -962,7 +962,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "guzzlehttp/uri-template", @@ -1052,16 +1052,16 @@ }, { "name": "laravel/framework", - "version": "v11.13.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "92deaa4f037ff100e36809443811301819a8cf84" + "reference": "9d9d36708d56665b12185493f684abce38ad2d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/92deaa4f037ff100e36809443811301819a8cf84", - "reference": "92deaa4f037ff100e36809443811301819a8cf84", + "url": "https://api.github.com/repos/laravel/framework/zipball/9d9d36708d56665b12185493f684abce38ad2d30", + "reference": "9d9d36708d56665b12185493f684abce38ad2d30", "shasum": "" }, "require": { @@ -1114,6 +1114,7 @@ }, "provide": { "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { @@ -1166,7 +1167,7 @@ "nyholm/psr7": "^1.2", "orchestra/testbench-core": "^9.1.5", "pda/pheanstalk": "^5.0", - "phpstan/phpstan": "^1.4.7", + "phpstan/phpstan": "^1.11.5", "phpunit/phpunit": "^10.5|^11.0", "predis/predis": "^2.0.2", "resend/resend-php": "^0.10.0", @@ -1253,20 +1254,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-06-27T09:04:50+00:00" + "time": "2024-08-20T15:00:52+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.24", + "version": "v0.1.25", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "409b0b4305273472f3754826e68f4edbd0150149" + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/409b0b4305273472f3754826e68f4edbd0150149", - "reference": "409b0b4305273472f3754826e68f4edbd0150149", + "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95", + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95", "shasum": "" }, "require": { @@ -1309,32 +1310,33 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.24" + "source": "https://github.com/laravel/prompts/tree/v0.1.25" }, - "time": "2024-06-17T13:58:22+00:00" + "time": "2024-08-12T22:06:33+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v1.3.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81", + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "nesbot/carbon": "^2.61", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "nesbot/carbon": "^2.61|^3.0", "pestphp/pest": "^1.21.3", "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" + "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" }, "type": "library", "extra": { @@ -1371,20 +1373,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-11-08T14:08:06+00:00" + "time": "2024-08-02T07:48:17+00:00" }, { "name": "league/commonmark", - "version": "2.4.2", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" + "reference": "b650144166dfa7703e62a22e493b853b58d874b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", + "reference": "b650144166dfa7703e62a22e493b853b58d874b0", "shasum": "" }, "require": { @@ -1397,8 +1399,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.3", - "commonmark/commonmark.js": "0.30.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", "erusev/parsedown": "^1.0", @@ -1420,7 +1422,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.6-dev" } }, "autoload": { @@ -1477,7 +1479,7 @@ "type": "tidelift" } ], - "time": "2024-02-02T11:59:32+00:00" + "time": "2024-08-16T11:46:16+00:00" }, { "name": "league/config", @@ -1852,16 +1854,16 @@ }, { "name": "nesbot/carbon", - "version": "3.6.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c" + "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/39c8ef752db6865717cc3fba63970c16f057982c", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f", + "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f", "shasum": "" }, "require": { @@ -1954,7 +1956,7 @@ "type": "tidelift" } ], - "time": "2024-06-20T15:52:59+00:00" + "time": "2024-08-19T06:22:39+00:00" }, { "name": "nette/schema", @@ -2020,20 +2022,20 @@ }, { "name": "nette/utils", - "version": "v4.0.4", + "version": "v4.0.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", - "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", "shasum": "" }, "require": { - "php": ">=8.0 <8.4" + "php": "8.0 - 8.4" }, "conflict": { "nette/finder": "<3", @@ -2100,9 +2102,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.4" + "source": "https://github.com/nette/utils/tree/v4.0.5" }, - "time": "2024-01-17T16:50:36+00:00" + "time": "2024-08-07T15:39:19+00:00" }, { "name": "nunomaduro/termwind", @@ -2194,16 +2196,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.2", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { @@ -2211,13 +2213,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -2253,7 +2255,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -2265,7 +2267,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "psr/clock", @@ -2580,16 +2582,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "79dff0b268932c640297f5208d6298f71855c03e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", + "reference": "79dff0b268932c640297f5208d6298f71855c03e", "shasum": "" }, "require": { @@ -2624,9 +2626,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.1" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-08-21T13:31:24+00:00" }, { "name": "psr/simple-cache", @@ -2980,16 +2982,16 @@ }, { "name": "symfony/console", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3" + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", + "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111", + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111", "shasum": "" }, "require": { @@ -3053,7 +3055,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.1" + "source": "https://github.com/symfony/console/tree/v7.1.4" }, "funding": [ { @@ -3069,7 +3071,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-15T22:48:53+00:00" }, { "name": "symfony/css-selector", @@ -3205,16 +3207,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.1", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd" + "reference": "432bb369952795c61ca1def65e078c4a80dad13c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", + "reference": "432bb369952795c61ca1def65e078c4a80dad13c", "shasum": "" }, "require": { @@ -3260,7 +3262,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.1.1" + "source": "https://github.com/symfony/error-handler/tree/v7.1.3" }, "funding": [ { @@ -3276,7 +3278,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-07-26T13:02:51+00:00" }, { "name": "symfony/event-dispatcher", @@ -3436,16 +3438,16 @@ }, { "name": "symfony/finder", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6" + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6", + "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823", + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823", "shasum": "" }, "require": { @@ -3480,7 +3482,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.1" + "source": "https://github.com/symfony/finder/tree/v7.1.4" }, "funding": [ { @@ -3496,20 +3498,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.1.1", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa" + "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/74d171d5b6a1d9e4bfee09a41937c17a7536acfa", - "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f602d5c17d1fa02f8019ace2687d9d136b7f4a1a", + "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a", "shasum": "" }, "require": { @@ -3557,7 +3559,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.1.1" + "source": "https://github.com/symfony/http-foundation/tree/v7.1.3" }, "funding": [ { @@ -3573,20 +3575,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-07-26T12:41:01+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f" + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fa8d1c75b5f33b1302afccf81811f93976c6e26f", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6efcbd1b3f444f631c386504fc83eeca25963747", + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747", "shasum": "" }, "require": { @@ -3671,7 +3673,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/v7.1.1" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.4" }, "funding": [ { @@ -3687,20 +3689,20 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:52:15+00:00" + "time": "2024-08-30T17:02:28+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e" + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/2eaad2e167cae930f25a3d731fec8b2ded5e751e", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e", + "url": "https://api.github.com/repos/symfony/mailer/zipball/8fcff0af9043c8f8a8e229437cea363e282f9aee", + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee", "shasum": "" }, "require": { @@ -3751,7 +3753,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.1" + "source": "https://github.com/symfony/mailer/tree/v7.1.2" }, "funding": [ { @@ -3767,20 +3769,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "symfony/mime", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df" + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/21027eaacc1a8a20f5e616c25c3580f5dd3a15df", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df", + "url": "https://api.github.com/repos/symfony/mime/zipball/ccaa6c2503db867f472a587291e764d6a1e58758", + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758", "shasum": "" }, "require": { @@ -3835,7 +3837,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.1" + "source": "https://github.com/symfony/mime/tree/v7.1.4" }, "funding": [ { @@ -3851,7 +3853,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4565,16 +4567,16 @@ }, { "name": "symfony/process", - "version": "v7.1.1", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028" + "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028", + "url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca", + "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca", "shasum": "" }, "require": { @@ -4606,7 +4608,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.1" + "source": "https://github.com/symfony/process/tree/v7.1.3" }, "funding": [ { @@ -4622,20 +4624,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-07-26T12:44:47+00:00" }, { "name": "symfony/routing", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "60c31bab5c45af7f13091b87deb708830f3c96c0" + "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/60c31bab5c45af7f13091b87deb708830f3c96c0", - "reference": "60c31bab5c45af7f13091b87deb708830f3c96c0", + "url": "https://api.github.com/repos/symfony/routing/zipball/1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", + "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", "shasum": "" }, "require": { @@ -4687,7 +4689,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.1" + "source": "https://github.com/symfony/routing/tree/v7.1.4" }, "funding": [ { @@ -4703,7 +4705,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-29T08:16:25+00:00" }, { "name": "symfony/service-contracts", @@ -4790,16 +4792,16 @@ }, { "name": "symfony/string", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2" + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2", + "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b", + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b", "shasum": "" }, "require": { @@ -4857,7 +4859,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.1" + "source": "https://github.com/symfony/string/tree/v7.1.4" }, "funding": [ { @@ -4873,20 +4875,20 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "symfony/translation", - "version": "v7.1.1", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3" + "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", + "url": "https://api.github.com/repos/symfony/translation/zipball/8d5e50c813ba2859a6dfc99a0765c550507934a1", + "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1", "shasum": "" }, "require": { @@ -4951,7 +4953,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.1.1" + "source": "https://github.com/symfony/translation/tree/v7.1.3" }, "funding": [ { @@ -4967,7 +4969,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-07-26T12:41:01+00:00" }, { "name": "symfony/translation-contracts", @@ -5049,16 +5051,16 @@ }, { "name": "symfony/uid", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277" + "reference": "82177535395109075cdb45a70533aa3d7a521cdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/bb59febeecc81528ff672fad5dab7f06db8c8277", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277", + "url": "https://api.github.com/repos/symfony/uid/zipball/82177535395109075cdb45a70533aa3d7a521cdf", + "reference": "82177535395109075cdb45a70533aa3d7a521cdf", "shasum": "" }, "require": { @@ -5103,7 +5105,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.1" + "source": "https://github.com/symfony/uid/tree/v7.1.4" }, "funding": [ { @@ -5119,20 +5121,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293" + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/deb2c2b506ff6fdbb340e00b34e9901e1605f293", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a5fa7481b199090964d6fd5dab6294d5a870c7aa", + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa", "shasum": "" }, "require": { @@ -5186,7 +5188,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.1" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.4" }, "funding": [ { @@ -5202,7 +5204,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-30T16:12:47+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -5259,23 +5261,23 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.0", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.2", + "graham-campbell/result-type": "^1.1.3", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2", + "phpoption/phpoption": "^1.9.3", "symfony/polyfill-ctype": "^1.24", "symfony/polyfill-mbstring": "^1.24", "symfony/polyfill-php80": "^1.24" @@ -5292,7 +5294,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -5327,7 +5329,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" }, "funding": [ { @@ -5339,7 +5341,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" }, { "name": "voku/portable-ascii", @@ -5591,16 +5593,16 @@ }, { "name": "larastan/larastan", - "version": "v2.9.7", + "version": "v2.9.8", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb" + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/5c805f636095cc2e0b659e3954775cf8f1dad1bb", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb", + "url": "https://api.github.com/repos/larastan/larastan/zipball/340badd89b0eb5bddbc503a4829c08cf9a2819d7", + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7", "shasum": "" }, "require": { @@ -5614,7 +5616,7 @@ "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", "php": "^8.0.2", "phpmyadmin/sql-parser": "^5.9.0", - "phpstan/phpstan": "^1.11.1" + "phpstan/phpstan": "^1.11.2" }, "require-dev": { "doctrine/coding-standard": "^12.0", @@ -5669,7 +5671,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v2.9.7" + "source": "https://github.com/larastan/larastan/tree/v2.9.8" }, "funding": [ { @@ -5689,20 +5691,20 @@ "type": "patreon" } ], - "time": "2024-05-27T18:33:26+00:00" + "time": "2024-07-06T17:46:02+00:00" }, { "name": "laravel/laravel", - "version": "v11.1.1", + "version": "v11.1.4", "source": { "type": "git", "url": "https://github.com/laravel/laravel.git", - "reference": "ad38e564ac871505e2fa829004cc45848b8b85e5" + "reference": "2897a49c65a37e385d25d6606d8258e1afb39774" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/laravel/zipball/ad38e564ac871505e2fa829004cc45848b8b85e5", - "reference": "ad38e564ac871505e2fa829004cc45848b8b85e5", + "url": "https://api.github.com/repos/laravel/laravel/zipball/2897a49c65a37e385d25d6606d8258e1afb39774", + "reference": "2897a49c65a37e385d25d6606d8258e1afb39774", "shasum": "" }, "require": { @@ -5741,22 +5743,22 @@ "laravel" ], "support": { - "source": "https://github.com/laravel/laravel/tree/v11.1.1" + "source": "https://github.com/laravel/laravel/tree/v11.1.4" }, - "time": "2024-06-04T13:28:32+00:00" + "time": "2024-07-16T14:39:20+00:00" }, { "name": "laravel/pint", - "version": "v1.16.1", + "version": "v1.17.2", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "9266a47f1b9231b83e0cfd849009547329d871b1" + "reference": "e8a88130a25e3f9d4d5785e6a1afca98268ab110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/9266a47f1b9231b83e0cfd849009547329d871b1", - "reference": "9266a47f1b9231b83e0cfd849009547329d871b1", + "url": "https://api.github.com/repos/laravel/pint/zipball/e8a88130a25e3f9d4d5785e6a1afca98268ab110", + "reference": "e8a88130a25e3f9d4d5785e6a1afca98268ab110", "shasum": "" }, "require": { @@ -5767,13 +5769,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.59.3", - "illuminate/view": "^10.48.12", - "larastan/larastan": "^2.9.7", + "friendsofphp/php-cs-fixer": "^3.61.1", + "illuminate/view": "^10.48.18", + "larastan/larastan": "^2.9.8", "laravel-zero/framework": "^10.4.0", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.34.8" + "pestphp/pest": "^2.35.0" }, "bin": [ "builds/pint" @@ -5809,7 +5811,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-06-18T16:50:05+00:00" + "time": "2024-08-06T15:11:54+00:00" }, { "name": "laravel/tinker", @@ -6022,16 +6024,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.1.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", "shasum": "" }, "require": { @@ -6042,7 +6044,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -6074,9 +6076,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2024-07-01T20:03:41+00:00" }, { "name": "phar-io/manifest", @@ -6198,16 +6200,16 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.9.0", + "version": "5.10.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "011fa18a4e55591fac6545a821921dd1d61c6984" + "reference": "91d980ab76c3f152481e367f62b921adc38af451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/011fa18a4e55591fac6545a821921dd1d61c6984", - "reference": "011fa18a4e55591fac6545a821921dd1d61c6984", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/91d980ab76c3f152481e367f62b921adc38af451", + "reference": "91d980ab76c3f152481e367f62b921adc38af451", "shasum": "" }, "require": { @@ -6225,8 +6227,7 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.9.12", "phpstan/phpstan-phpunit": "^1.3.3", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpunit/phpunit": "^8.5 || ^9.6", "psalm/plugin-phpunit": "^0.16.1", "vimeo/psalm": "^4.11", "zumba/json-serializer": "~3.0.2" @@ -6282,20 +6283,20 @@ "type": "other" } ], - "time": "2024-01-20T20:34:02+00:00" + "time": "2024-08-29T20:56:34+00:00" }, { "name": "phpstan/phpstan", - "version": "1.11.5", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443" + "reference": "384af967d35b2162f69526c7276acadce534d0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", + "reference": "384af967d35b2162f69526c7276acadce534d0e1", "shasum": "" }, "require": { @@ -6340,36 +6341,36 @@ "type": "github" } ], - "time": "2024-06-17T15:10:54+00:00" + "time": "2024-08-27T09:18:05+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "11.0.3", + "version": "11.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e35a2cbcabac0e6865fd373742ea432a3c34f92" + "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e35a2cbcabac0e6865fd373742ea432a3c34f92", - "reference": "7e35a2cbcabac0e6865fd373742ea432a3c34f92", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ebdffc9e09585dafa71b9bffcdb0a229d4704c45", + "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.0", + "nikic/php-parser": "^5.1.0", "php": ">=8.2", - "phpunit/php-file-iterator": "^5.0", - "phpunit/php-text-template": "^4.0", - "sebastian/code-unit-reverse-lookup": "^4.0", - "sebastian/complexity": "^4.0", - "sebastian/environment": "^7.0", - "sebastian/lines-of-code": "^3.0", - "sebastian/version": "^5.0", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { "phpunit/phpunit": "^11.0" @@ -6381,7 +6382,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -6410,7 +6411,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.3" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.6" }, "funding": [ { @@ -6418,20 +6419,20 @@ "type": "github" } ], - "time": "2024-03-12T15:35:40+00:00" + "time": "2024-08-22T04:37:56+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.0.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "99e95c94ad9500daca992354fa09d7b99abe2210" + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/99e95c94ad9500daca992354fa09d7b99abe2210", - "reference": "99e95c94ad9500daca992354fa09d7b99abe2210", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", "shasum": "" }, "require": { @@ -6471,7 +6472,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" }, "funding": [ { @@ -6479,20 +6480,20 @@ "type": "github" } ], - "time": "2024-02-02T06:05:04+00:00" + "time": "2024-08-27T05:02:59+00:00" }, { "name": "phpunit/php-invoker", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5d8d9355a16d8cc5a1305b0a85342cfa420612be" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5d8d9355a16d8cc5a1305b0a85342cfa420612be", - "reference": "5d8d9355a16d8cc5a1305b0a85342cfa420612be", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { @@ -6535,7 +6536,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -6543,20 +6544,20 @@ "type": "github" } ], - "time": "2024-02-02T06:05:50+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "4.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "d38f6cbff1cdb6f40b03c9811421561668cc133e" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/d38f6cbff1cdb6f40b03c9811421561668cc133e", - "reference": "d38f6cbff1cdb6f40b03c9811421561668cc133e", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { @@ -6595,7 +6596,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.0" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -6603,20 +6604,20 @@ "type": "github" } ], - "time": "2024-02-02T06:06:56+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "7.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8a59d9e25720482ee7fcdf296595e08795b84dc5" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8a59d9e25720482ee7fcdf296595e08795b84dc5", - "reference": "8a59d9e25720482ee7fcdf296595e08795b84dc5", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { @@ -6655,7 +6656,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { @@ -6663,20 +6664,20 @@ "type": "github" } ], - "time": "2024-02-02T06:08:01+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { "name": "phpunit/phpunit", - "version": "11.2.5", + "version": "11.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "be9e3ed32a1287a9bfda15936cc86fef4e4cf591" + "reference": "fe179875ef0c14e90b75617002767eae0a742641" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/be9e3ed32a1287a9bfda15936cc86fef4e4cf591", - "reference": "be9e3ed32a1287a9bfda15936cc86fef4e4cf591", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fe179875ef0c14e90b75617002767eae0a742641", + "reference": "fe179875ef0c14e90b75617002767eae0a742641", "shasum": "" }, "require": { @@ -6686,25 +6687,25 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0", - "phpunit/php-file-iterator": "^5.0", - "phpunit/php-invoker": "^5.0", - "phpunit/php-text-template": "^4.0", - "phpunit/php-timer": "^7.0", - "sebastian/cli-parser": "^3.0", - "sebastian/code-unit": "^3.0", - "sebastian/comparator": "^6.0", - "sebastian/diff": "^6.0", - "sebastian/environment": "^7.0", - "sebastian/exporter": "^6.1.2", - "sebastian/global-state": "^7.0", - "sebastian/object-enumerator": "^6.0", - "sebastian/type": "^5.0", - "sebastian/version": "^5.0" + "phpunit/php-code-coverage": "^11.0.5", + "phpunit/php-file-iterator": "^5.0.1", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.1", + "sebastian/comparator": "^6.0.2", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.0", + "sebastian/exporter": "^6.1.3", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.0.1", + "sebastian/version": "^5.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -6715,7 +6716,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.2-dev" + "dev-main": "11.3-dev" } }, "autoload": { @@ -6747,7 +6748,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.2.5" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.3.1" }, "funding": [ { @@ -6763,7 +6764,7 @@ "type": "tidelift" } ], - "time": "2024-06-20T13:11:31+00:00" + "time": "2024-08-13T06:14:23+00:00" }, { "name": "psy/psysh", @@ -6846,16 +6847,16 @@ }, { "name": "sebastian/cli-parser", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "00a74d5568694711f0222e54fb281e1d15fdf04a" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/00a74d5568694711f0222e54fb281e1d15fdf04a", - "reference": "00a74d5568694711f0222e54fb281e1d15fdf04a", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { @@ -6891,7 +6892,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -6899,20 +6900,20 @@ "type": "github" } ], - "time": "2024-03-02T07:26:58+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "6634549cb8d702282a04a774e36a7477d2bd9015" + "reference": "6bb7d09d6623567178cf54126afa9c2310114268" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6634549cb8d702282a04a774e36a7477d2bd9015", - "reference": "6634549cb8d702282a04a774e36a7477d2bd9015", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6bb7d09d6623567178cf54126afa9c2310114268", + "reference": "6bb7d09d6623567178cf54126afa9c2310114268", "shasum": "" }, "require": { @@ -6948,7 +6949,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.1" }, "funding": [ { @@ -6956,20 +6957,20 @@ "type": "github" } ], - "time": "2024-02-02T05:50:41+00:00" + "time": "2024-07-03T04:44:28+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "df80c875d3e459b45c6039e4d9b71d4fbccae25d" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/df80c875d3e459b45c6039e4d9b71d4fbccae25d", - "reference": "df80c875d3e459b45c6039e4d9b71d4fbccae25d", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { @@ -7004,7 +7005,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.0" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -7012,20 +7013,20 @@ "type": "github" } ], - "time": "2024-02-02T05:52:17+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "6.0.0", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "bd0f2fa5b9257c69903537b266ccb80fcf940db8" + "reference": "450d8f237bd611c45b5acf0733ce43e6bb280f81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/bd0f2fa5b9257c69903537b266ccb80fcf940db8", - "reference": "bd0f2fa5b9257c69903537b266ccb80fcf940db8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/450d8f237bd611c45b5acf0733ce43e6bb280f81", + "reference": "450d8f237bd611c45b5acf0733ce43e6bb280f81", "shasum": "" }, "require": { @@ -7081,7 +7082,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.0.0" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.0.2" }, "funding": [ { @@ -7089,20 +7090,20 @@ "type": "github" } ], - "time": "2024-02-02T05:53:45+00:00" + "time": "2024-08-12T06:07:25+00:00" }, { "name": "sebastian/complexity", - "version": "4.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "88a434ad86150e11a606ac4866b09130712671f0" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/88a434ad86150e11a606ac4866b09130712671f0", - "reference": "88a434ad86150e11a606ac4866b09130712671f0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { @@ -7139,7 +7140,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -7147,20 +7148,20 @@ "type": "github" } ], - "time": "2024-02-02T05:55:19+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ab83243ecc233de5655b76f577711de9f842e712" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ab83243ecc233de5655b76f577711de9f842e712", - "reference": "ab83243ecc233de5655b76f577711de9f842e712", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { @@ -7206,7 +7207,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -7214,20 +7215,20 @@ "type": "github" } ], - "time": "2024-03-02T07:30:33+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "7.1.0", + "version": "7.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "4eb3a442574d0e9d141aab209cd4aaf25701b09a" + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4eb3a442574d0e9d141aab209cd4aaf25701b09a", - "reference": "4eb3a442574d0e9d141aab209cd4aaf25701b09a", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", "shasum": "" }, "require": { @@ -7242,7 +7243,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -7270,7 +7271,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.1.0" + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" }, "funding": [ { @@ -7278,20 +7279,20 @@ "type": "github" } ], - "time": "2024-03-23T08:56:34+00:00" + "time": "2024-07-03T04:54:44+00:00" }, { "name": "sebastian/exporter", - "version": "6.1.2", + "version": "6.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "507d2333cbc4e6ea248fbda2d45ee1511e03da13" + "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/507d2333cbc4e6ea248fbda2d45ee1511e03da13", - "reference": "507d2333cbc4e6ea248fbda2d45ee1511e03da13", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e", + "reference": "c414673eee9a8f9d51bbf8d61fc9e3ef1e85b20e", "shasum": "" }, "require": { @@ -7348,7 +7349,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.1.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/6.1.3" }, "funding": [ { @@ -7356,20 +7357,20 @@ "type": "github" } ], - "time": "2024-06-18T11:19:56+00:00" + "time": "2024-07-03T04:56:19+00:00" }, { "name": "sebastian/global-state", - "version": "7.0.1", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "c3a307e832f2e69c7ef869e31fc644fde0e7cb3e" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c3a307e832f2e69c7ef869e31fc644fde0e7cb3e", - "reference": "c3a307e832f2e69c7ef869e31fc644fde0e7cb3e", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { @@ -7410,7 +7411,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -7418,20 +7419,20 @@ "type": "github" } ], - "time": "2024-03-02T07:32:10+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "376c5b3f6b43c78fdc049740bca76a7c846706c0" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/376c5b3f6b43c78fdc049740bca76a7c846706c0", - "reference": "376c5b3f6b43c78fdc049740bca76a7c846706c0", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { @@ -7468,7 +7469,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -7476,20 +7477,20 @@ "type": "github" } ], - "time": "2024-02-02T06:00:36+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "6.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f75f6c460da0bbd9668f43a3dde0ec0ba7faa678" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f75f6c460da0bbd9668f43a3dde0ec0ba7faa678", - "reference": "f75f6c460da0bbd9668f43a3dde0ec0ba7faa678", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { @@ -7526,7 +7527,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.0" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -7534,20 +7535,20 @@ "type": "github" } ], - "time": "2024-02-02T06:01:29+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "4.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "bb2a6255d30853425fd38f032eb64ced9f7f132d" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/bb2a6255d30853425fd38f032eb64ced9f7f132d", - "reference": "bb2a6255d30853425fd38f032eb64ced9f7f132d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { @@ -7582,7 +7583,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.0" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -7590,20 +7591,20 @@ "type": "github" } ], - "time": "2024-02-02T06:02:18+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2f15508e17af4ea35129bbc32ce28a814d9c7426" + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2f15508e17af4ea35129bbc32ce28a814d9c7426", - "reference": "2f15508e17af4ea35129bbc32ce28a814d9c7426", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", "shasum": "" }, "require": { @@ -7646,7 +7647,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" }, "funding": [ { @@ -7654,20 +7655,20 @@ "type": "github" } ], - "time": "2024-06-17T05:22:57+00:00" + "time": "2024-07-03T05:10:34+00:00" }, { "name": "sebastian/type", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8502785eb3523ca0dd4afe9ca62235590020f3f" + "reference": "fb6a6566f9589e86661291d13eba708cce5eb4aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8502785eb3523ca0dd4afe9ca62235590020f3f", - "reference": "b8502785eb3523ca0dd4afe9ca62235590020f3f", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb6a6566f9589e86661291d13eba708cce5eb4aa", + "reference": "fb6a6566f9589e86661291d13eba708cce5eb4aa", "shasum": "" }, "require": { @@ -7703,7 +7704,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/type/tree/5.0.1" }, "funding": [ { @@ -7711,20 +7712,20 @@ "type": "github" } ], - "time": "2024-02-02T06:09:34+00:00" + "time": "2024-07-03T05:11:49+00:00" }, { "name": "sebastian/version", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "13999475d2cb1ab33cb73403ba356a814fdbb001" + "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/13999475d2cb1ab33cb73403ba356a814fdbb001", - "reference": "13999475d2cb1ab33cb73403ba356a814fdbb001", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/45c9debb7d039ce9b97de2f749c2cf5832a06ac4", + "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4", "shasum": "" }, "require": { @@ -7757,7 +7758,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/version/tree/5.0.1" }, "funding": [ { @@ -7765,7 +7766,7 @@ "type": "github" } ], - "time": "2024-02-02T06:10:47+00:00" + "time": "2024-07-03T05:13:08+00:00" }, { "name": "theseer/tokenizer", diff --git a/database/factories/OptionFactory.php b/database/factories/OptionFactory.php new file mode 100644 index 00000000..232ac19f --- /dev/null +++ b/database/factories/OptionFactory.php @@ -0,0 +1,26 @@ + + */ + protected $model = Option::class; + + /** + * Define the model's default state. + */ + public function definition(): array + { + return [ + // + ]; + } +} diff --git a/database/migrations/2020_01_01_000100_create_root_media_table.php b/database/migrations/2020_01_01_000100_create_root_media_table.php index 9832145f..a3abfa7d 100644 --- a/database/migrations/2020_01_01_000100_create_root_media_table.php +++ b/database/migrations/2020_01_01_000100_create_root_media_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class() extends Migration +return new class extends Migration { /** * Run the migrations. diff --git a/database/migrations/2020_07_01_000000_create_root_meta_data_table.php b/database/migrations/2020_07_01_000000_create_root_meta_data_table.php index 34db46a2..d3482080 100644 --- a/database/migrations/2020_07_01_000000_create_root_meta_data_table.php +++ b/database/migrations/2020_07_01_000000_create_root_meta_data_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class() extends Migration +return new class extends Migration { /** * Run the migrations. diff --git a/database/migrations/2023_08_15_101934_create_root_notifications_table.php b/database/migrations/2023_08_15_101934_create_root_notifications_table.php index e5de7021..c6a8cb00 100644 --- a/database/migrations/2023_08_15_101934_create_root_notifications_table.php +++ b/database/migrations/2023_08_15_101934_create_root_notifications_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class() extends Migration +return new class extends Migration { /** * Run the migrations. diff --git a/database/migrations/2024_03_21_175513_create_root_events_table.php b/database/migrations/2024_03_21_175513_create_root_events_table.php index c809bf44..f7d4a489 100644 --- a/database/migrations/2024_03_21_175513_create_root_events_table.php +++ b/database/migrations/2024_03_21_175513_create_root_events_table.php @@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class() extends Migration +return new class extends Migration { /** * Run the migrations. diff --git a/database/migrations/2024_05_14_091321_create_auth_codes_table.php b/database/migrations/2024_05_14_091321_create_root_auth_codes_table.php similarity index 94% rename from database/migrations/2024_05_14_091321_create_auth_codes_table.php rename to database/migrations/2024_05_14_091321_create_root_auth_codes_table.php index 703468eb..e8df84a7 100644 --- a/database/migrations/2024_05_14_091321_create_auth_codes_table.php +++ b/database/migrations/2024_05_14_091321_create_root_auth_codes_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class() extends Migration +return new class extends Migration { /** * Run the migrations. diff --git a/database/migrations/2024_05_14_101321_create_root_options_table.php b/database/migrations/2024_05_14_101321_create_root_options_table.php new file mode 100644 index 00000000..1ccac29f --- /dev/null +++ b/database/migrations/2024_05_14_101321_create_root_options_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('key')->unique()->index(); + $table->text('value')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('root_options'); + } +}; diff --git a/routes/web.php b/routes/web.php index 9c884374..6df70b7a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use Cone\Root\Http\Controllers\DashboardController; use Cone\Root\Http\Controllers\DownloadController; +use Cone\Root\Http\Controllers\OptionController; use Cone\Root\Http\Controllers\ResourceController; use Illuminate\Support\Facades\Route; @@ -11,6 +12,9 @@ // Download Route::get('/download/{medium:uuid}', DownloadController::class)->name('download'); +// Options +Route::get('/options/{group}', [OptionController::class, 'index'])->name('options.index'); + // Resource Route::get('/{resource}', [ResourceController::class, 'index'])->name('resource.index'); Route::get('/{resource}/create', [ResourceController::class, 'create'])->name('resource.create'); diff --git a/src/Actions/Action.php b/src/Actions/Action.php index 2ec3e3af..3609896e 100644 --- a/src/Actions/Action.php +++ b/src/Actions/Action.php @@ -4,6 +4,7 @@ use Closure; use Cone\Root\Exceptions\QueryResolutionException; +use Cone\Root\Exceptions\SaveFormDataException; use Cone\Root\Fields\Field; use Cone\Root\Fields\Relation; use Cone\Root\Http\Controllers\ActionController; @@ -23,11 +24,13 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; use Illuminate\Routing\Router; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\MessageBag; use Illuminate\Support\Str; use JsonSerializable; use Symfony\Component\HttpFoundation\Response; +use Throwable; abstract class Action implements Arrayable, Form, JsonSerializable { @@ -108,7 +111,7 @@ public function getModalKey(): string public function resolveQuery(Request $request): Builder { if (is_null($this->queryResolver)) { - throw new QueryResolutionException(); + throw new QueryResolutionException; } return call_user_func_array($this->queryResolver, [$request]); @@ -226,12 +229,24 @@ public function handleFormRequest(Request $request, Model $model): void */ public function perform(Request $request): Response { - $this->handleFormRequest($request, $this->resolveQuery($request)->getModel()); + try { + DB::beginTransaction(); - return Redirect::back()->with( - sprintf('alerts.action-%s', $this->getKey()), - Alert::info(__(':action was successful!', ['action' => $this->getName()])) - ); + $this->handleFormRequest($request, $this->resolveQuery($request)->getModel()); + + return Redirect::back()->with( + sprintf('alerts.action-%s', $this->getKey()), + Alert::info(__(':action was successful!', ['action' => $this->getName()])) + ); + + DB::commit(); + } catch (Throwable $exception) { + report($exception); + + DB::rollBack(); + + throw new SaveFormDataException($exception->getMessage()); + } } /** diff --git a/src/Breadcrumbs/Registry.php b/src/Breadcrumbs/Registry.php index 06019ae9..4fd0c4ff 100644 --- a/src/Breadcrumbs/Registry.php +++ b/src/Breadcrumbs/Registry.php @@ -3,10 +3,11 @@ namespace Cone\Root\Breadcrumbs; use Closure; +use Cone\Root\Interfaces\Breadcrumbs\Registry as Contract; use Illuminate\Http\Request; use Illuminate\Routing\Route; -class Registry +class Registry implements Contract { /** * The registered patterns. diff --git a/src/Fields/BelongsToMany.php b/src/Fields/BelongsToMany.php index 50c1a8cf..6343c15a 100644 --- a/src/Fields/BelongsToMany.php +++ b/src/Fields/BelongsToMany.php @@ -131,7 +131,7 @@ public function withPivotFields(Closure $callback): static $this->withFields($callback); $this->pivotFieldsResolver = function (Request $request, Model $model, Model $related) use ($callback): Fields { - $fields = new Fields(); + $fields = new Fields; $fields->register(Arr::wrap(call_user_func_array($callback, [$request]))); diff --git a/src/Fields/Editor.php b/src/Fields/Editor.php index 3c8b1be5..e376964a 100644 --- a/src/Fields/Editor.php +++ b/src/Fields/Editor.php @@ -86,7 +86,7 @@ public function getConfig(): array public function withMedia(?Closure $callback = null): static { if (is_null($this->fields)) { - $this->fields = new Fields(); + $this->fields = new Fields; } if (is_null($this->media)) { @@ -122,7 +122,7 @@ public function __construct(string $modelAttribute) parent::__construct(__('Media'), $modelAttribute.'-media', static function (): MorphToMany { return new MorphToMany( Medium::proxy()->newQuery(), - new class() extends Model + new class extends Model { // }, diff --git a/src/Fields/Field.php b/src/Fields/Field.php index c3f6f146..71084777 100644 --- a/src/Fields/Field.php +++ b/src/Fields/Field.php @@ -547,7 +547,7 @@ public function resolveErrorsUsing(Closure $callback): static public function resolveErrors(Request $request): MessageBag { return is_null($this->errorsResolver) - ? $request->session()->get('errors', new ViewErrorBag())->getBag('default') + ? $request->session()->get('errors', new ViewErrorBag)->getBag('default') : call_user_func_array($this->errorsResolver, [$request]); } diff --git a/src/Fields/Media.php b/src/Fields/Media.php index e846bd60..2db3d8d8 100644 --- a/src/Fields/Media.php +++ b/src/Fields/Media.php @@ -60,7 +60,7 @@ public function multiple(bool $value = true): static */ public function getModel(): Model { - return $this->model ?: new class() extends Model + return $this->model ?: new class extends Model { use HasMedia; }; @@ -80,7 +80,7 @@ public function fields(Request $request): array public function filters(Request $request): array { return [ - new MediaSearch(), + new MediaSearch, ]; } @@ -147,7 +147,7 @@ public function store(Request $request, Model $model, UploadedFile $file): array $disk->append($file->getClientOriginalName(), $file->get()); if ($request->header('X-Chunk-Index') !== $request->header('X-Chunk-Total')) { - return array_merge($this->toOption($request, $model, new Medium()), [ + return array_merge($this->toOption($request, $model, new Medium), [ 'processing' => true, 'fileName' => null, ]); diff --git a/src/Fields/Repeater.php b/src/Fields/Repeater.php index c4a4f3ab..2778991f 100644 --- a/src/Fields/Repeater.php +++ b/src/Fields/Repeater.php @@ -158,7 +158,7 @@ public function withFields(Closure $callback): static public function resolveOptionFields(Request $request, Model $model, Model $tmpModel): Fields { return is_null($this->optionFieldsResolver) - ? new Fields() + ? new Fields : call_user_func_array($this->optionFieldsResolver, [$request, $model, $tmpModel]); } @@ -167,7 +167,7 @@ public function resolveOptionFields(Request $request, Model $model, Model $tmpMo */ public function newTemporaryModel(array $attributes = []): Model { - $model = new class() extends Model + $model = new class extends Model { // }; diff --git a/src/Filters/MediaSearch.php b/src/Filters/MediaSearch.php index 2c1930fb..21d5d159 100644 --- a/src/Filters/MediaSearch.php +++ b/src/Filters/MediaSearch.php @@ -20,7 +20,7 @@ public function __construct(array $attributes = ['file_name']) { $this->attributes = $attributes; - parent::__construct(new Fields()); + parent::__construct(new Fields); } /** diff --git a/src/Http/Controllers/OptionController.php b/src/Http/Controllers/OptionController.php new file mode 100644 index 00000000..f1b9c5df --- /dev/null +++ b/src/Http/Controllers/OptionController.php @@ -0,0 +1,19 @@ + + */ + protected $fillable = [ + 'key', + 'value', + ]; + + /** + * The table associated with the model. + * + * @var string + */ + protected $table = 'root_options'; + + /** + * Get the proxied interface. + */ + public static function getProxiedInterface(): string + { + return Contract::class; + } + + /** + * Create a new factory instance for the model. + */ + protected static function newFactory(): OptionFactory + { + return OptionFactory::new(); + } + + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'value' => match (true) { + is_null($this->key) => 'string', + default => Root::instance()->options->repository->resolveCast($this->key), + }, + ]; + } +} diff --git a/src/Navigation/Registry.php b/src/Navigation/Registry.php index 1f6c254a..bec6def3 100644 --- a/src/Navigation/Registry.php +++ b/src/Navigation/Registry.php @@ -2,7 +2,9 @@ namespace Cone\Root\Navigation; -class Registry +use Cone\Root\Interfaces\Navigation\Registry as Contract; + +class Registry implements Contract { /** * The navigation locations. diff --git a/src/Notifications/AuthCodeNotification.php b/src/Notifications/AuthCodeNotification.php index e5496b99..e6bb8974 100644 --- a/src/Notifications/AuthCodeNotification.php +++ b/src/Notifications/AuthCodeNotification.php @@ -42,7 +42,7 @@ public function via(object $notifiable): array */ public function toMail(object $notifiable): MailMessage { - return (new MailMessage()) + return (new MailMessage) ->subject(sprintf('%s - %s', Config::get('app.name'), __('Two Factor Code'))) ->line(__('Your verification code is: :code.', ['code' => $this->code->code])) ->action(__('Verify Authentication'), URL::route('root.auth.two-factor.show', ['code' => $this->code->code])) diff --git a/src/Options/Group.php b/src/Options/Group.php new file mode 100644 index 00000000..d357e468 --- /dev/null +++ b/src/Options/Group.php @@ -0,0 +1,73 @@ +getModel())->classBasename()->plural()->kebab()->value(); + } + + /** + * Get the URI key. + */ + public function getUriKey(): string + { + return $this->getKey(); + } + + /** + * Get the name. + */ + public function getName(): string + { + return __(Str::of($this->getModel())->classBasename()->headline()->plural()->value()); + } + + /** + * Make a new Eloquent query instance. + */ + public function query(): Builder + { + return $this->getModelInstance()->newQuery()->with($this->with)->withCount($this->withCount); + } + + /** + * Handle the request. + */ + public function handleFormRequest(Request $request): void + { + $this->validateFormRequest($request); + + try { + DB::beginTransaction(); + + $this->resolveFields($request) + ->authorized($request) + ->visible($request->isMethod('POST') ? 'create' : 'update') + ->persist($request, $model); + + DB::commit(); + } catch (Throwable $exception) { + report($exception); + + DB::rollBack(); + + throw new SaveFormDataException($exception->getMessage()); + } + } +} diff --git a/src/Options/Registry.php b/src/Options/Registry.php new file mode 100644 index 00000000..e009fabf --- /dev/null +++ b/src/Options/Registry.php @@ -0,0 +1,46 @@ +repository = $repository; + } + + /** + * Get or create a new group. + */ + public function group(string $key): Group + { + $this->groups[$key] ??= new Group(Str::headline($key), $key); + + return $this->groups[$key]; + } + + /** + * Get the option groups. + */ + public function groups(): array + { + return $this->groups; + } +} diff --git a/src/Options/Repository.php b/src/Options/Repository.php new file mode 100644 index 00000000..44e6a9ce --- /dev/null +++ b/src/Options/Repository.php @@ -0,0 +1,133 @@ +cache = new Collection; + } + + /** + * Get the option query. + */ + public function query(): Builder + { + return Option::proxy()->newQuery(); + } + + /** + * Get the option. + */ + public function get(string $key, mixed $default = null, bool $refresh = false): mixed + { + if (! $refresh && $this->cache->has($key)) { + return $this->cache->get($key); + } + + $option = $this->query()->where('key', $key)->first(); + + $value = match (true) { + ! is_null($option) => $option->value, + default => $default, + }; + + $this->cache->put($key, $value); + + return $value; + } + + /** + * Get the options. + */ + public function getMany(array $keys, array $defaults = [], bool $refresh = false): Collection + { + $cache = $this->cache->whereIn('key', $refresh ? $keys : []); + + $options = $this->query()->whereIn('key', $cache->diffKeys($keys))->get(); + + return Collection::make($defaults) + ->merge($cache) + ->merge($options->pluck('value', 'key')->all()); + } + + /** + * Set the option. + */ + public function set(string $key, mixed $value): void + { + $this->query()->updateOrCreate( + ['key' => $key], + ['value' => $value] + ); + + $this->cache->put($key, $value); + } + + /** + * Set the options. + */ + public function setMany(array $values): void + { + foreach ($values as $key => $value) { + $this->set($key, $value); + } + } + + /** + * Delete the option. + */ + public function delete(string $key): void + { + $this->query()->where('key', $key)->delete(); + + $this->cache->forget($key); + } + + /** + * Delete the options. + */ + public function deleteMany(array $keys): void + { + $this->query()->whereIn('key', $keys)->delete(); + + $this->cache->forget($keys); + } + + /** + * Set the cast to the given key. + */ + public function cast(string $key, string $cast): static + { + $this->casts[$key] = $cast; + + return $this; + } + + /** + * Resolve the cast for the given key. + */ + public function resolveCast(string $key): string + { + return $this->casts[$key] ?? 'string'; + } +} diff --git a/src/Resources/Resource.php b/src/Resources/Resource.php index efd682d2..62b899ca 100644 --- a/src/Resources/Resource.php +++ b/src/Resources/Resource.php @@ -315,7 +315,7 @@ public function resolveFields(Request $request): Fields if (is_null($this->fields)) { $this->withFields(function (): array { return in_array(HasRootEvents::class, class_uses_recursive($this->getModel())) - ? [new Events()] + ? [new Events] : []; }); } @@ -337,7 +337,7 @@ public function filters(Request $request): array return array_values(array_filter([ $searchables->isNotEmpty() ? new Search($searchables) : null, $sortables->isNotEmpty() ? new Sort($sortables) : null, - $this->isSoftDeletable() ? new TrashStatus() : null, + $this->isSoftDeletable() ? new TrashStatus : null, ])); } diff --git a/src/Resources/Resources.php b/src/Resources/Resources.php index bd5c9874..aba72c9f 100644 --- a/src/Resources/Resources.php +++ b/src/Resources/Resources.php @@ -38,7 +38,7 @@ public function forModel(string|Model $model): ?Resource public function resolve(string $key): Resource { if (! $this->has($key)) { - throw new ResourceResolutionException(); + throw new ResourceResolutionException; } return $this->get($key); diff --git a/src/Root.php b/src/Root.php index bccf5b6d..12e805c9 100644 --- a/src/Root.php +++ b/src/Root.php @@ -3,9 +3,10 @@ namespace Cone\Root; use Closure; -use Cone\Root\Breadcrumbs\Registry as Breadcrumbs; +use Cone\Root\Interfaces\Breadcrumbs\Registry as Breadcrumbs; +use Cone\Root\Interfaces\Navigation\Registry as Navigation; +use Cone\Root\Interfaces\Options\Registry as Options; use Cone\Root\Models\User; -use Cone\Root\Navigation\Registry as Navigation; use Cone\Root\Resources\Resources; use Cone\Root\Widgets\Widgets; use DateTimeZone; @@ -23,7 +24,7 @@ class Root * * @var string */ - public const VERSION = '2.3.3'; + public const VERSION = '2.4.0'; /** * The registered booting callbacks. @@ -55,6 +56,11 @@ class Root */ public readonly Breadcrumbs $breadcrumbs; + /** + * The options instance. + */ + public readonly Options $options; + /** * The auth resolver. */ @@ -71,10 +77,11 @@ class Root public function __construct(Application $app) { $this->app = $app; - $this->resources = new Resources(); - $this->widgets = new Widgets(); - $this->navigation = new Navigation(); - $this->breadcrumbs = new Breadcrumbs(); + $this->resources = new Resources; + $this->widgets = new Widgets; + $this->navigation = $app->make(Navigation::class); + $this->breadcrumbs = $app->make(Breadcrumbs::class); + $this->options = $app->make(Options::class); $this->timezone = $app['config']->get('app.timezone'); } @@ -108,6 +115,14 @@ public function boot(): void }, sprintf('%s/{resource}/{resourceModel}/edit', $this->getPath()) => __('Edit'), ]); + + foreach ($this->options->groups() as $group) { + $this->navigation->location('sidebar')->new( + $group->getUri(), + $group->getName(), + ['icon' => $this->getIcon(), 'group' => __('Options')], + ); + } } /** diff --git a/src/RootServiceProvider.php b/src/RootServiceProvider.php index 4afdaf6c..4254d039 100644 --- a/src/RootServiceProvider.php +++ b/src/RootServiceProvider.php @@ -34,11 +34,16 @@ class RootServiceProvider extends ServiceProvider * @var array */ public $bindings = [ + Interfaces\Breadcrumbs\Registry::class => Breadcrumbs\Registry::class, Interfaces\Models\AuthCode::class => Models\AuthCode::class, Interfaces\Models\Medium::class => Models\Medium::class, Interfaces\Models\Meta::class => Models\Meta::class, Interfaces\Models\Notification::class => Models\Notification::class, + Interfaces\Models\Option::class => Models\Option::class, Interfaces\Models\User::class => Models\User::class, + Interfaces\Navigation\Registry::class => Navigation\Registry::class, + Interfaces\Options\Registry::class => Options\Registry::class, + Interfaces\Options\Repository::class => Options\Repository::class, ]; /** diff --git a/src/Traits/AsForm.php b/src/Traits/AsForm.php index 8108d1c3..546d48e8 100644 --- a/src/Traits/AsForm.php +++ b/src/Traits/AsForm.php @@ -43,7 +43,7 @@ public function validateFormRequest(Request $request, Model $model): array public function errors(Request $request): MessageBag { if (is_null($this->errors)) { - $this->errors = $request->session()->get('errors', new ViewErrorBag())->getBag($this->errorBag); + $this->errors = $request->session()->get('errors', new ViewErrorBag)->getBag($this->errorBag); } return $this->errors; diff --git a/src/Traits/HasAttributes.php b/src/Traits/HasAttributes.php index f15961c5..b2c10bb8 100644 --- a/src/Traits/HasAttributes.php +++ b/src/Traits/HasAttributes.php @@ -38,7 +38,7 @@ public function class(string|array $value): static public function classList(): ClassList { if (! isset($this->attributes['class'])) { - $this->attributes['class'] = new ClassList(); + $this->attributes['class'] = new ClassList; } return $this->attributes['class']; diff --git a/src/Traits/InteractsWithProxy.php b/src/Traits/InteractsWithProxy.php index 5f4d6766..5ea084e1 100644 --- a/src/Traits/InteractsWithProxy.php +++ b/src/Traits/InteractsWithProxy.php @@ -25,7 +25,7 @@ public static function proxy(): static static::getProxiedInterface() ); } catch (Throwable) { - $proxy = new static(); + $proxy = new static; } } diff --git a/tests/Actions/ActionTest.php b/tests/Actions/ActionTest.php index 5fa17bda..84bdf07c 100644 --- a/tests/Actions/ActionTest.php +++ b/tests/Actions/ActionTest.php @@ -14,7 +14,7 @@ public function setUp(): void { parent::setUp(); - $this->action = new SendPasswordResetNotification(); + $this->action = new SendPasswordResetNotification; $this->action->withQuery(fn () => User::query()); } @@ -96,7 +96,7 @@ public function test_an_action_has_array_representation(): void public function test_an_action_has_form_representation(): void { - $model = new User(); + $model = new User; $this->assertSame(array_merge($this->action->toArray(), [ 'url' => null, diff --git a/tests/Breadcrumbs/RegistryTest.php b/tests/Breadcrumbs/RegistryTest.php index 8bc5d54c..c7135642 100644 --- a/tests/Breadcrumbs/RegistryTest.php +++ b/tests/Breadcrumbs/RegistryTest.php @@ -15,7 +15,7 @@ public function setUp(): void { parent::setUp(); - $this->registry = new Registry(); + $this->registry = new Registry; } public function test_a_breadcrumb_registry_can_register_patterns(): void diff --git a/tests/Fields/BelongsToTest.php b/tests/Fields/BelongsToTest.php index ee024498..2123883f 100644 --- a/tests/Fields/BelongsToTest.php +++ b/tests/Fields/BelongsToTest.php @@ -22,7 +22,7 @@ public function test_a_belongs_to_field_hydates_model(): void { $medium = Medium::factory()->make(); - $user = new User(); + $user = new User; $this->field->resolveHydrate($this->app['request'], $medium, $user); diff --git a/tests/Fields/BooleanTest.php b/tests/Fields/BooleanTest.php index 022d26fd..52527a8c 100644 --- a/tests/Fields/BooleanTest.php +++ b/tests/Fields/BooleanTest.php @@ -52,7 +52,7 @@ public function test_a_boolean_field_gets_value_for_hydrate(): void public function test_a_boolean_field_resolves_value(): void { - $model = new User(); + $model = new User; $this->assertFalse($this->field->resolveValue($this->app['request'], $model)); $model->forceFill(['admin' => false]); @@ -64,7 +64,7 @@ public function test_a_boolean_field_resolves_value(): void public function test_a_boolean_field_resolves_format(): void { - $model = new User(); + $model = new User; $model->forceFill(['admin' => false]); $this->assertSame( diff --git a/tests/Fields/DateTest.php b/tests/Fields/DateTest.php index caeb4051..a907167d 100644 --- a/tests/Fields/DateTest.php +++ b/tests/Fields/DateTest.php @@ -39,7 +39,7 @@ public function test_date_has_min_max_attributes(): void public function test_a_date_field_has_time(): void { - $model = new User(); + $model = new User; $now = DateFactory::now(); diff --git a/tests/Fields/IDTest.php b/tests/Fields/IDTest.php index 703a09cf..24c26b5f 100644 --- a/tests/Fields/IDTest.php +++ b/tests/Fields/IDTest.php @@ -13,7 +13,7 @@ public function setUp(): void { parent::setUp(); - $this->field = new ID(); + $this->field = new ID; } public function test_an_id_field_has_default_attributes(): void diff --git a/tests/Fields/MetaTest.php b/tests/Fields/MetaTest.php index 5defe2a9..5c630a87 100644 --- a/tests/Fields/MetaTest.php +++ b/tests/Fields/MetaTest.php @@ -34,7 +34,7 @@ public function test_a_meta_filed_has_different_types(): void public function test_a_meta_field_has_options(): void { - $model = new User(); + $model = new User; $this->assertSame( [], $this->field->resolveOptions($this->app['request'], $model) @@ -43,7 +43,7 @@ public function test_a_meta_field_has_options(): void public function test_a_meta_field_hydates_model(): void { - $model = new User(); + $model = new User; $this->assertFalse($model->relationLoaded('__root_price')); @@ -54,7 +54,7 @@ public function test_a_meta_field_hydates_model(): void public function test_a_meta_field_has_display_representation(): void { - $model = new User(); + $model = new User; $this->assertSame( $this->field->getField()->toDisplay($this->app['request'], $model), @@ -64,7 +64,7 @@ public function test_a_meta_field_has_display_representation(): void public function test_a_meta_field_has_input_representation(): void { - $model = new User(); + $model = new User; $this->assertSame( json_encode($this->field->getField()->toInput($this->app['request'], $model)), diff --git a/tests/Fields/SelectTest.php b/tests/Fields/SelectTest.php index 0e4ea739..2011efa6 100644 --- a/tests/Fields/SelectTest.php +++ b/tests/Fields/SelectTest.php @@ -59,7 +59,7 @@ public function test_a_select_field_has_size_attribute(): void public function test_a_select_field_has_options(): void { - $model = new User(); + $model = new User; $this->assertEmpty($this->field->resolveOptions($this->app->request, $model)); @@ -88,7 +88,7 @@ public function test_a_select_field_has_options(): void public function test_a_select_field_resolves_format(): void { - $model = new User(); + $model = new User; $this->field->options([ 'edit' => 'Edit', @@ -106,7 +106,7 @@ public function test_a_select_field_resolves_format(): void public function test_a_select_field_has_input_representation(): void { - $model = new User(); + $model = new User; $this->assertEmpty( array_diff( diff --git a/tests/Fields/URLTest.php b/tests/Fields/URLTest.php index 7e3173c7..4fd268e4 100644 --- a/tests/Fields/URLTest.php +++ b/tests/Fields/URLTest.php @@ -24,7 +24,7 @@ public function test_an_url_field_has_url_type(): void public function test_a_url_field_resolves_format(): void { - $model = new User(); + $model = new User; $model->forceFill(['profile_url' => 'https://github.com/conedevelopment']); $this->assertSame( diff --git a/tests/Filters/FilterTest.php b/tests/Filters/FilterTest.php index c6956b5e..f3d32774 100644 --- a/tests/Filters/FilterTest.php +++ b/tests/Filters/FilterTest.php @@ -15,7 +15,7 @@ public function setUp(): void { parent::setUp(); - $this->filter = new class() extends Filter + $this->filter = new class extends Filter { public function __construct() { diff --git a/tests/Filters/SelectFilterTest.php b/tests/Filters/SelectFilterTest.php index a699ca39..b8d518b1 100644 --- a/tests/Filters/SelectFilterTest.php +++ b/tests/Filters/SelectFilterTest.php @@ -15,7 +15,7 @@ public function setUp(): void { parent::setUp(); - $this->filter = new class() extends Select + $this->filter = new class extends Select { public function __construct() { diff --git a/tests/Models/UserTest.php b/tests/Models/UserTest.php index 532a7a57..b1465b8a 100644 --- a/tests/Models/UserTest.php +++ b/tests/Models/UserTest.php @@ -40,7 +40,7 @@ public function test_a_user_has_notifications(): void public function test_a_user_has_avatar(): void { - $this->assertNull((new User())->avatar); + $this->assertNull((new User)->avatar); $this->assertNotNull($this->user->avatar); } diff --git a/tests/Navigation/NavigationTest.php b/tests/Navigation/NavigationTest.php index 69a7a989..424dae4c 100644 --- a/tests/Navigation/NavigationTest.php +++ b/tests/Navigation/NavigationTest.php @@ -14,7 +14,7 @@ public function setUp(): void { parent::setUp(); - $this->registry = new Registry(); + $this->registry = new Registry; } public function test_a_navigation_registry_can_register_locations(): void diff --git a/tests/Resources/ResourceTest.php b/tests/Resources/ResourceTest.php index e60ab921..2b6f73aa 100644 --- a/tests/Resources/ResourceTest.php +++ b/tests/Resources/ResourceTest.php @@ -115,7 +115,7 @@ public function test_a_resource_registers_routes(): void public function test_a_resource_handles_form_requests(): void { - $user = new User(); + $user = new User; $this->app['request']->merge([ 'name' => 'Test', diff --git a/tests/Resources/UserResource.php b/tests/Resources/UserResource.php index 774d3872..e0fb6fe2 100644 --- a/tests/Resources/UserResource.php +++ b/tests/Resources/UserResource.php @@ -26,7 +26,7 @@ class UserResource extends Resource public function actions(Request $request): array { return [ - new SendPasswordResetNotification(), + new SendPasswordResetNotification, ]; } @@ -82,8 +82,8 @@ public function fields(Request $request): array public function widgets(Request $request): array { return [ - new UsersCount(), - new UsersTrend(), + new UsersCount, + new UsersTrend, ]; } } diff --git a/tests/Team.php b/tests/Team.php index b69c3f80..95824a1e 100644 --- a/tests/Team.php +++ b/tests/Team.php @@ -14,7 +14,7 @@ class Team extends Model protected static function newFactory() { - $factory = new class() extends Factory + $factory = new class extends Factory { protected $model = Team::class; diff --git a/tests/TestCase.php b/tests/TestCase.php index 30f48e4f..44c9a8cb 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -27,7 +27,7 @@ public function createApplication(): Application $app->bind(UserInterface::class, User::class); Root::instance()->resources->register([ - new UserResource(), + new UserResource, ]); }); diff --git a/tests/User.php b/tests/User.php index b2c0fb57..d9f278c4 100644 --- a/tests/User.php +++ b/tests/User.php @@ -26,7 +26,7 @@ class User extends Model implements MustVerifyEmail protected static function newFactory(): UserFactory { - return new class() extends UserFactory + return new class extends UserFactory { protected $model = User::class;